VyÜlo v t²denφku: COMPUTERWORLD
╚φslo:10/93
RoΦnφk:1993
Rubrika/kategorie: Co (ne)najdete ve slovnφku

zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek

Ji°φ Peterka

Multitasking

V dobßch, kdy poΦφtaΦe byly velkΘ, pomalΘ a drahΘ, bylo jist∞ velmi ₧ßdoucφ, aby ka₧d² z nich mohl slou₧it pot°ebßm vφce u₧ivatel∙. S v²vojem v²poΦetnφ techniky se vÜak vyvφjel i zp∙sob, jak²m se toho dosahovalo.

O nejstarÜφm pou₧φvanΘm mechanismu jsme se na strßnkßch tΘto rubriky ji₧ zmφnili - Ülo o tzv. dßvkovΘ zpracovßnφ (batch processing), kdy si ka₧d² u₧ivatel p°ipravil svou ·lohu ve form∞ dßvky, a ta se pak ve vhodnou dobu spustila. Cel² poΦφtaΦ se p°itom s veÜkerou svou kapacitou v∞noval prßv∞ a pouze tΘto ·loze, dokud ji nedokonΦil. To ale nemuselo b²t v₧dy nejefektivn∞jÜφ - jedinß ·loha Φasto nedokßzala "zam∞stnat" rovnom∞rn∞ vÜechny Φßsti poΦφtaΦe. Zatφmco n∞kterΘ pracovaly, jinΘ zahßlely.

Snaha odstranit nerovnom∞rnΘ vytφ₧enφ jednotliv²ch Φßstφ poΦφtaΦe se zcela zßkonit∞ ubφrala jedin²m mo₧n²m sm∞rem - zavßd∞nφm co mo₧nß nejv∞tÜφ mφry paralelismu (jako₧to soub∞₧nΘho provßd∞nφ vφce r∙zn²ch Φinnostφ). Tak aby nap°φklad jedna ·loha v rßmci svΘ vstupn∞-v²stupnφ operace pracovala s diskem, jinß mohla n∞co Φφst z magnetickΘ pßsky, a jeÜt∞ jinß ·loha mohla mezitφm intenzivn∞ "poΦφtat" na procesoru.

Pokud ale procesor z∙stal stßle jen jeden, musely se na n∞m vÜechny ·lohy vhodn∞ st°φdat. Nap°φklad tak, ₧e po urΦit² Φasov² interval (nap°. n∞kolik stovek milisekund) byl procesor vyhrazen jednΘ ·loze a po uplynutφ tΘto doby se zaΦal v∞novat jinΘ ·loze, kterß byla takΘ p°ipravena ke zpracovßnφ na procesoru, ale musela Φekat, a₧ na ni dojde °ada. TΘto technice se °φkalo time slicing (p°id∞lovßnφ Φasov²ch kvant). Mφsto skuteΦn∞ paralelnφho b∞hu vφce ·loh, ke kterΘmu je zapot°ebφ vφce procesor∙, dokßzala tato technika zajistit pouze tzv. pseudoparalelismus. Tedy paralelismus pouze p°edstφran², kter² vÜak u₧ivatel∙m dokßzal vytvo°it dostateΦn∞ v∞rnou iluzi toho, ₧e poΦφtaΦ se jejich ·loze v∞nuje soustavn∞.

Technika p°id∞lovßnφ Φasov²ch kvant ovÜem nebyla jedin²m zp∙sobem, jak dosßhnout pseudoparalelismu. DalÜφ mo₧nostφ bylo dobrovolnΘ st°φdßnφ ·loh, kdy jedna ·loha sama a z vlastnφ iniciativy p°edala procesor jinΘ ·loze nap°φklad v okam₧iku, kdy se rozhodla zahßjit urΦitou vstupn∞-v²stupnφ operaci, kterß mohla probφhat bez ·Φasti procesoru. Pou₧φvaly se vÜak i jinΘ techniky.

A¥ vÜak byl pseudoparalelismus realizovßn jakkoliv, v₧dy se v poΦφtaΦi nachßzelo vφce ·loh v r∙znΘm stadiu rozpracovanosti - n∞kterΘ prßv∞ provßd∞ly svΘ vstupn∞-v²stupnφ operace, zatφmco jinΘ se st°φdaly na procesoru. JednotlivΘ ·lohy p°itom mohly pat°it r∙zn²m u₧ivatel∙m, ale ka₧d² z nich si mohl myslet, ₧e cel² poΦφtaΦ se jeho ·loze v∞nuje soustavn∞ a tato ·loha "b∞₧φ" trvale. Ve skuteΦnosti byly jednotlivΘ ·lohy provßd∞ny pouze pseudoparaleln∞ a vÜichni u₧ivatelΘ se ve skuteΦnosti d∞lili o strojov² Φas - proto se tomuto zp∙sobu vyu₧itφ jednoho poΦφtaΦe vφce u₧ivateli zaΦalo °φkat time-sharing neboli sdφlenφ Φasu.

Kdy₧ se pak poslΘze poΦφtaΦe staly menÜφmi, rychlejÜφmi a hlavn∞ lacin∞jÜφmi, nemusely ji₧ slou₧it vφce u₧ivatel∙m souΦasn∞. Mohly b²t naopak vyhrazeny jen jednomu jedinΘmu u₧ivateli. To vÜak nemuselo nutn∞ znamenat zßnik vÜech dosud pou₧φvan²ch technik a mechanism∙ umo₧≥ujφcφch provozovat vφce ·loh souΦasn∞. I jednomu jedinΘmu u₧ivateli se m∙₧e velmi hodit, kdy₧ si na svΘm poΦφtaΦi m∙₧e spustit vφce ·loh souΦasn∞. P°edstavme si nap°φklad situaci, kdy u₧ivatel na svΘm osobnφm poΦφtaΦi prßv∞ pφÜe dopis pomocφ svΘho oblφbenΘho editoru, a nßhle si pot°ebuje zjistit n∞jak² ·daj ve svΘ osobnφ databßzi (nap°. n∞Φφ adresu). Pracuje-li takov²to u₧ivatel v prost°edφ, kterΘ neumo₧≥uje souΦasn² b∞h vφce ·loh, musφ rozepsan² dopis ulo₧it, prßci s editorem ukonΦit, spustit svou databßzi, v nφ najφt vÜe pot°ebnΘ, pak prßci s nφ ukonΦit, znovu zavolat editor a pokraΦovat v psanφ rozepsanΘho dopisu. Pracuje-li vÜak u₧ivatel v takovΘm prost°edφ, kterΘ umo₧≥uje souΦasn² b∞h vφce ·loh, m∙₧e si spustit editor i databßz i souΦasn∞ (jako dv∞ samostatnΘ ·lohy) a podle pot°eby se mezi nimi p°epφnat. Tedy chvφli pracovat nap°. s editorem, pak se na chvφli p°epnout do databßze (ani₧ by prßci s editorem ukonΦil), a poslΘze se zase p°epnout do editoru.

I prßv∞ naznaΦen² p°φklad je paralelismem (p°esn∞ji: pseudoparalelismem) neboli soub∞₧n²m provßd∞nφm vφce ·loh - odliÜnß je jen technika st°φdßnφ jednotliv²ch ·loh na jedinΘm procesoru. Zde dochßzφ k p°epφnßnφ mezi ·lohami a₧ na explicitnφ zßsah u₧ivatele (obvykle po mnohem v∞tÜφch Φasov²ch intervalech ne₧ v p°φpad∞ techniky p°id∞lovßnφ Φasov²ch kvant) - tΘto variant∞ se obvykle °φkß context-switching (p°epφnßnφ kontextu). Je to ale stßle jen dalÜφ forma realizace tΘho₧ obecnΘho mechanismu - souΦasnΘho b∞hu vφce ·loh na tΘm₧e poΦφtaΦi neboli tzv. multitaskingu.

V tomto konkrΘtnφm p°φpad∞ jde tedy o multitasking s p°epφnßnφm kontextu. Jinou variantou je multitasking s p°id∞lovßnφm Φasov²ch kvant (time-slice multitasking) a dalÜφ variantou pak tzv. kooperativnφ multitasking (cooperative multitasking), kdy si jednotlivΘ ·lohy p°edßvajφ procesor dobrovoln∞ tehdy, kdy to ony samy uznajφ za vhodnΘ.

Shr≥me si nynφ jeÜt∞ jednou to, co jsme si dosud °ekli: multitasking neboli souΦasn² b∞h vφce ·loh je mechanismus. M∙₧e b²t realizovßn r∙zn²mi zp∙soby (p°epφnßnφm kontext∙, p°id∞lovßnφm Φasov²ch kvant, jako kooperativnφ multitasking) a m∙₧e slou₧it r∙zn²m ·Φel∙m - tomu, aby vφce u₧ivatel∙ sdφlelo jeden poΦφtaΦ (pak jde o tzv. sdφlenφ Φasu), nebo tomu, aby si jeden u₧ivatel mohl na svΘm poΦφtaΦi provozovat vφce ·loh souΦasn∞, p°φpadn∞ ob∞ma ·Φel∙m souΦasn∞.

Multitasking jako takov² je zajiÜ¥ovßn operaΦnφm systΘmem - ovÜem za podmφnky, ₧e hardware p°φsluÜnΘho poΦφtaΦe (p°edevÜφm vÜak procesor) je k tomu vhodn∞ uzp∙soben. Tolik rozÜφ°en², oblφben², a zßrove≥ i zatracovan² operaΦnφ systΘm MS DOS pro poΦφtaΦe PC je p°φkladem operaΦnφho systΘmu, kter² s multitaskingem nepoΦφtß (multitasking umo₧≥uje a₧ jeho nadstavba - MS Windows - a to jeÜt∞ jen v tzv. enhanced re₧imu na mikroprocesorech 386 a vyÜÜφch). OpaΦn²m p°φkladem je operaΦnφ systΘm Unix, kter² od zaΦßtku poΦφtal se souΦasn²m b∞hem vφce ·loh - multitaskingem - a obsahuje vÜe, co je k tomu pot°ebnΘ. Unix je navφc vφceu₧ivatelsk²m operaΦnφm systΘmem, a umo₧≥uje tedy i prßci v re₧imu sdφlenφ Φasu, kdy je v rßmci multitaskingu provozovßno vφce ·loh pat°φcφch r∙zn²m u₧ivatel∙m.


zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek
Tento Φlßnek m∙₧e b²t voln∞ Üφ°en, pokud se tak d∞je pro studijnφ ·Φely, na nev²d∞leΦnΘm zßklad∞ a se zachovßnφm tohoto dov∞tku. Podrobnosti hledejte zde, resp. na adrese http://archiv.czech.net/copyleft.htm