Multitasking, osdev wiki, rajongók powered by Wikia
Multitasking - képes az operációs rendszer (vagy szoftver környezetben), hogy támogassák egyidejű végrehajtása együttes és kölcsönhatás több feladatot (programok, szálai végrehajtás) egymással és a környezetet.
Ha a rendszer csak akkor végezhető feladatokat szekvenciálisan a következő csak befejezése után az áramot, akkor a rendszer az úgynevezett single-tasking. Az első rendszer volt ilyen.
Átmeneti linket multitasking operációs rendszer egy operációs rendszer kötegelt feldolgozás: egy-tasking, mint azt illeti, egy ilyen rendszer nem működik, egy alkalmazás és csomag áramlását, amely szekvenciális folyamatok (futó funkciók vagy programok).
Közvetlenül az ugyanazon a többfeladatos kell mondani, ha a környezet biztosítja, hogy a rendszer egyidejűleg több szálon a végrehajtás.
Ideális esetben egy párhuzamos többfeladatos többfeladatos ahol minden feladatot végre a hardver mikroprocesszor kernel tulajdonképpen egyszerre egymással. Ez az opció még végrehajtani, például Propeller mikrokontroller a Parallax (biztosítja a működést közvetlenül 8 problémák), de általában a használata külön hardver minden egyes feladat túl pazarló, ennek megfelelően egy ál multitask feldolgozás, ha a mikroprocesszor források felváltva között átadott feladatok amely az illúzió a egyidejűség, vagy és egy ál párhuzamos beállítása a többfeladatos több processzor magok.
Két fő típusa ál többfeladatos:
- nem preemptív - igényelni kell közötti vezérlés átadása a feladatok bizonyos pontokon saját kezdeményezésre;
- áthelyező - amelyben közötti váltást játszódik le a feladatkezelő egy tetszőleges időzítéssel.
Nevytyasnyayuschaya multitasking, mint a legprimitívebb, jött létre az első, és megvan a dostinstva és hátrányai:
- + nagyon könnyen megvalósítható;
- + jól kiszámítható viselkedés, amely kiküszöböli a sok veszélyes helyzeteket, mint például a verseny során használt megosztott erőforrások;
- + Ír elő minimális rendszerkövetelmények és tölti minimális erőforrás (esetleg még a használatát több feladatot a stack);
- - Szükség van egy különleges stílusú írás programok, ami megnehezíti mind az új és már muködo;
- - akadályozta a gyors válasz a külső eseményekre;
- - gyakorlatilag lehetetlen megvédeni feladatokat egymástól, ami jelentősen csökkenti a rendszer megbízhatóságát - általában egy nem működik rendesen a probléma könnyen kitölti az összes többi (blokkok vagy megszakítja a munkát).
Ezzel szemben van elmozdítva egy feladatot. Ebben a szervezet közötti kölcsönhatás teljesen ruházni a szoftver környezet (azaz a Task Manager), amely lehetővé teszi több feladat egyidejű dolgozni a rendszert, mintha minden volt az egyetlen. Az esetleges elmozdulás a probléma bármikor és bármely pontján a kódot (kivéve a helyeken, ahol ez kifejezetten tilos), hogy váltani egy másik. Érvek és ellenérvek a következők:
- + nem igényel feladat váltás gondoskodó közöttük, olyan feladat, de ettől nem igényel kölcsönhatás egyéb feladatokat, illetve polzovatley megosztott erőforrások ugyanúgy néz ki, mintha egy feladatot környezetben;
- + A probléma gyorsan ellenőrzés, ha szükséges, függetlenül attól, hogy az állapota egyéb feladatokat, amelyek a valós idejű teljesítmény;
- + széles megvalósíthatóságát védi az operációs rendszer feladatait hibák és támadások;
- - Különleges eljárások szükségesek feladat-szinkronizálás egymással annak érdekében, hogy elkerüljék a bizonytalan helyzeteket és konfliktusokat;
- - Meg kell a hardver által támogatott (legalábbis menteni és visszaállítani az állam, amikor váltani mikroprotsesor);
- - Igényel több erőforrást (memória a verem és a megtakarítás az állam minden egyes processzor, és közben az összefüggésben váltás).
Előnyök preemptív multitasking a legjelentősebb a legtöbb gyakorlati problémákat, és ezért szinte minden fejlett elég modern operációs rendszerek megvalósítása ilyen típusú multitasking.
A hatékonyság a többfeladatos rendszer nagymértékben függ az eljárás ütemezési feladatok végrehajtását. Ahhoz, hogy megértsük a koncepció ütemezése fontos feladata az állam. A fő feladata az állam:
- végezzük;
- végrehajtásra kész;
- zárva.
A kihívás a végrehajtás, amikor kiválasztja a CPU erőforrás, és átadja a vezérlést. Nyilvánvaló, hogy a rendszer úgy működik, mint a fizikai feladatokat több processzort. Ezért van egy második feltétel - végrehajtásra kész. A feladat ebben az állapotban, ha lehet végrehajtani, vagyis nincs oka a dugulás, de mivel a számítási erőforrások egyéb feladatokra. A harmadik állam a feladatot kapja, hogy lehetetlen a végrehajtás egy adott időpontban. Ez lehet
- várakozás mindenképpen (nyitó egy szemafor üzenet érkezése, stb ...);
- stub inicializálás (ha nincs beállítva másik feladatot vagy a rendszer, a kezdeti feltételek induló);
- „Fagyasztás” (explicit végrehajtása megáll, általában hibakereső célokra);
- befejezése (az állam a „zombi”, amikor a teljesítmény már befejeződött, de a források még nem adták ki);
- vagy néhány speciális esetekben.
Sok opertsionnoy rendszerek kezelésére ezekben az esetekben eltérő, de tükröződnek csak a végrehajtás részleteit.
Eltérően az első kettő, a zár állapotát, általában ez nem kötelező. Meglehetősen normál esetben is csak arra vár, séta, és lehetséges, hogy végre egy üres ciklust. Azonban ez egy hulladék CPU időt, amely akár egy másik feladat, ezért blokkolt állapotban van szinte minden többfeladatos operációs rendszer.
Számos alapvető ütemezési stratégia:
kör (round-robin) közötti ellenőrzési feladatok elvégzett bármilyen meghatározott sorrendben, rendszeres időközönként; random (véletlenszerű) keresztül minden bizonyos ideig a vezérlés átkerül egy véletlen kérdés; priority (elsőbbség alapján) minden egyes feladat egy prioritási szint és a fogadott nem összeakadt ellenőrzési feladat, amelynek a legmagasabb szinten; (Határidő-vezérelt) ellenőrzés átadása, az eljárás biztosítja a feladatok teljesülését egy bizonyos időszakban.