Úkol (výpočet) - Task (computing)

Ukázkový fond vláken (zelené rámečky) s frontami úkolů čekajících úkolů (modrý) a dokončených úkolů (žlutý) ve smyslu úkolu jako „jednotka práce“.

Ve výpočetní technice je úkolem jednotka provedení nebo jednotka práce. Termín je nejednoznačný; přesné alternativní termíny zahrnují proces , lehký proces , vlákno (pro provedení), krok , požadavek nebo dotaz (pro práci). V sousedním diagramu jsou fronty příchozích prací a odchozích dokončených prací a fond vláken pro provádění této práce. Samotné pracovní jednotky nebo vlákna, která vykonávají práci, lze označit jako „úkoly“ a tyto lze označit jako požadavky / odpovědi / vlákna, příchozí úkoly / dokončené úkoly / vlákna (jak je znázorněno) nebo požadavky / odpovědi / úkoly.

Terminologie

Ve smyslu „jednotky provedení“ je v některých operačních systémech úkol synonymem procesu a v jiných podprocesu . V neinteraktivním provádění ( dávkové zpracování ) je úkol jednotkou provádění v rámci úlohy , přičemž samotná úloha je obvykle proces. Termín „ multitasking “ primárně označuje smysl zpracování - více úkolů prováděných současně - ale má nuance smyslu práce více úkolů prováděných současně.

Ve smyslu „jednotky práce“ může v úloze (tj. „Jednorázové dílo“) úkol odpovídat jednomu kroku (samotný krok, nikoli jeho provedení), zatímco při dávkovém zpracování mohou jednotlivé úkoly odpovídají jednomu kroku zpracování jedné položky v dávce nebo jednomu kroku zpracování všech položek v dávce. V online systémech úkoly nejčastěji odpovídají jednomu požadavku (v architekturách požadavek-odezva ) nebo dotazu (při získávání informací ), buď jedné fázi zpracování, nebo zpracování celého systému.

Příklady

V programovacím jazyce Java jsou tyto dva pojmy (jednotka práce a jednotka provedení) při práci přímo s vlákny sjednoceny, ale v rámci Exekutorů jsou jasně rozlišeny :

Když pracujete přímo s vlákny, a Threadslouží jako jednotka práce a mechanismus pro jeho provádění. V rámci exekutora jsou jednotka práce a mechanismus provádění oddělené. Klíčová abstrakce je jednotka práce, která se nazývá úkol .

Terminologie IBM

Použití termínu ze strany IBM mělo vliv, ačkoli podtrhuje nejednoznačnost termínu, v terminologii IBM má „úkol“ desítky konkrétních významů, včetně:

  • Jednotka práce představující jeden z kroků procesu.
  • Jednotka práce, kterou má provést zařízení nebo proces.
  • Proces a postupy, které proces spouští.
  • Sada akcí určených k dosažení konkrétního výsledku. Úkol se provádí na sadě cílů v konkrétním plánu.
  • Jednotka výpočtu. V paralelní úloze spolupracují dva nebo více souběžných úkolů prostřednictvím předávání zpráv a sdílené paměti. I když je běžné přidělit jeden úkol každému fyzickému nebo logickému procesoru, výrazy „úkol“ a „procesor“ nejsou zaměnitelné.
  • Činnost, která má obchodní hodnotu, je iniciována uživatelem a je prováděna softwarem.

Konkrétně v systému z / OS je přesně definován jako:

  • „V prostředí multiprogramování nebo více procesů jedna nebo více sekvencí instrukcí považovaných řídicím programem za prvek práce, který má provést počítač.“

Termín úkol v OS / 360 až z / OS je zhruba ekvivalentní lehkému procesu; úkoly v kroku úlohy sdílejí adresní prostor. V MVS / ESA prostřednictvím systému z / OS však může mít úkol nebo blok požadavku na službu (SRB) přístup do dalších adresních prostor prostřednictvím svého přístupového seznamu.

Linuxové jádro

Termín task se používá v linuxovém jádře (minimálně od verze 2.6.13, až do verze 4.8) včetně, aby odkazoval na jednotku provedení, která může sdílet různé systémové prostředky s dalšími úkoly v systému. V závislosti na úrovni sdílení může být úkol považován za konvenční vlákno nebo proces . Úkoly vznikají pomocí clone()systémového volání, kde může uživatel určit požadovanou úroveň sdílení prostředků.

Dějiny

Termín úkol pro část úlohy se datuje do multiprogramování na počátku 60. let, jako v tomto příkladu od roku 1961:

Sériový model má schopnost zpracovávat úkoly jedné úlohy nezávislým způsobem podobným fungování IBM 709 .

Termín byl propagován zavedením OS / 360 (oznámeno v roce 1964), který uváděl multiprogramování s pevným počtem úkolů (MFT) a multiprogramování s variabilním počtem úkolů (MVT). V tomto případě byly úkoly identifikovány pomocí lehkých procesů, úloha se skládala z řady úkolů a později mohly mít úkoly dílčí úkoly (v moderní terminologii podřízené procesy ).

Dnes je termín „úkol“ používán velmi nejednoznačně. Například Správce úloh systému Windows spravuje (běží) procesy , zatímco Plánovač úloh systému Windows naplánuje spuštění programů v budoucnu, což je tradičně známé jako plánovač úloh , a používá .jobrozšíření. Naproti tomu se termín „ fronta úkolů “ běžně používá ve smyslu „pracovních jednotek“.

Viz také

Reference