Opgave (computing) - Task (computing)
I computing er en opgave en enhed til udførelse eller en enhed af arbejde. Udtrykket er tvetydigt; Præcise alternative udtryk inkluderer proces , letvægtsproces , tråd (til udførelse), trin , anmodning eller forespørgsel (til arbejde). I det tilstødende diagram er der køer med indkommende arbejde at udføre og udgående afsluttet arbejde og en trådpulje af tråde til at udføre dette arbejde. Enten kan arbejdsenhederne selv eller trådene, der udfører arbejdet, kaldes "opgaver", og disse kan henvises til henholdsvis anmodninger / svar / tråde, indgående opgaver / afsluttede opgaver / tråde (som illustreret) eller anmodninger / svar / opgaver.
Terminologi
I betydningen "udførelsesenhed", i nogle operativsystemer, er en opgave synonymt med en proces og i andre med en tråd . I ikke-interaktiv udførelse ( batchbehandling ) er en opgave en enhed til udførelse inden for et job , hvor selve opgaven typisk er en proces. Udtrykket " multitasking " henviser primært til forarbejdningssansen - flere opgaver, der udføres på samme tid - men har nuancer af arbejdssansen for, at flere opgaver udføres på samme tid.
I betydningen "arbejdsenhed" kan en opgave i et job (hvilket betyder "engangsarbejde") svare til et enkelt trin (selve trinnet, ikke udførelsen af det), mens individuelle opgaver i batchbehandling kan svarer til et enkelt trin til behandling af en enkelt vare i en batch eller til et enkelt trin til behandling af alle varer i batchen. I online-systemer svarer opgaver oftest til en enkelt anmodning (i anmodning – svararkitekturer) eller en forespørgsel (i informationshentning ), enten et enkelt trin i håndteringen eller hele systemadministrationen.
Eksempler
I Java- programmeringssproget er disse to begreber (enhed af arbejde og enhed for udførelse) sammenflettet, når der arbejdes direkte med tråde, men der skelnes tydeligt i rammerne for eksekutorer :
Når du arbejder direkte med tråde,
Threadfungerer a som både en arbejdsenhed og mekanismen til at udføre den. I eksekutorrammen er arbejdsenheden og udførelsesmekanismen adskilt. Nøgleabstraktionen er den enhed af arbejde, der kaldes en opgave .
IBM-terminologi
IBMs brug af udtrykket har været indflydelsesrig, selvom det understreger tvetydigheden i udtrykket i IBM-terminologi har "opgave" snesevis af specifikke betydninger, herunder:
- En arbejdsenhed, der repræsenterer et af trinene i en proces.
- En enhed af arbejde, der skal udføres af en enhed eller proces.
- En proces og de procedurer, der kører processen.
- Et sæt handlinger designet til at opnå et bestemt resultat. En opgave udføres på et sæt mål på en bestemt tidsplan.
- En beregningsenhed. I et parallelt job arbejder to eller flere samtidige opgaver sammen gennem meddelelsesoverføring og delt hukommelse. Selv om det er almindeligt at allokere en opgave pr. Fysisk eller logisk processor, er udtrykkene "opgave" og "processor" ikke udskiftelige.
- En aktivitet, der har forretningsværdi, initieres af en bruger og udføres af software.
I z / OS specifikt er det defineret præcist som:
- "I et multiprogrammerings- eller multiprocesseringsmiljø, behandles en eller flere sekvenser af instruktioner af et kontrolprogram som et arbejdselement, der skal udføres af en computer."
Udtrykket opgave i OS / 360 til z / OS svarer stort set til en letvægtsproces; opgaverne i et jobtrin deler et adresseområde. I MVS / ESA via z / OS kan en opgave eller en SRB ( Service Request Block ) dog have adgang til andre adresserum via sin adgangsliste.
Linux-kerne
Udtrykket opgave bruges i Linux-kernen (i det mindste siden v2.6.13, op til og med v4.8) til at henvise til en eksekveringsenhed, som kan dele forskellige systemressourcer med andre opgaver på systemet. Afhængigt af delingsniveauet kan opgaven betragtes som en konventionel tråd eller proces . Opgaver clone()tilvejebringes ved hjælp af systemopkaldet, hvor en bruger kan specificere det ønskede niveau for ressourcedeling.
Historie
Udtrykket opgave for en del af et job stammer fra multiprogrammering i begyndelsen af 1960'erne, som i dette eksempel fra 1961:
Den serielle model har evnen til at behandle opgaver for et job på en uafhængig måde svarende til funktionen af IBM 709 .
Udtrykket blev populariseret med introduktionen af OS / 360 (annonceret 1964), som indeholdt multiprogrammering med et fast antal opgaver (MFT) og multiprogrammering med et variabelt antal opgaver (MVT). I dette tilfælde blev opgaver identificeret med lette processer, et job bestod af en række opgaver, og senere kunne opgaver have underopgaver (i moderne terminologi, underordnede processer ).
I dag bruges udtrykket "opgave" meget tvetydigt. For eksempel styrer Windows Task Manager (kører) processer , mens Windows Task Scheduler planlægger programmer, der skal udføres i fremtiden, hvad der traditionelt er kendt som en jobplanlægning , og bruger .jobudvidelsen. I modsætning hertil bruges udtrykket " opgavekø " almindeligvis i betydningen "arbejdsenheder".