Multikörning
Wikipedia
Multikörning (engelska multitasking) gör det möjligt för ett operativsystem att genom tidsdelning köra flera processer samtidigt.
De flesta datorer kan bara köra en tråd åt gången, men för att skenbart skapa ett intryck av samtidighet kan de mycket snabbt byta mellan olika trådar. Så snabbt att det för en mänskilig betraktare upplevs som att de sker samtidigt.
Innehåll |
[redigera] Två typer av multikörning
Det finns två tillvägagångssätt för att uppnå multikörning. tidsdelad (en: preemptive) och samverkande (en: cooperative) multikörning . I samverkande multikörning lämnar varje process frivilligt över processorn till en annan process med jämna mellanrum, exempelvis när processen ändå skall vänta på något.
Om datorsystemet har tillgång till ett tidsavbrott, det vill säga att en speciell rutin kan anropas periodiskt, kan tidsdelad multikörning användas. En särskild rutin, en schemaläggare, läggs på tidsavbrottet. Schemaläggaren väljer efter olika kriterier ut den process som får en liten stunds processortid och startar denna. Schemaläggaren avbryter sedan processen, för att ge en annan process processortid.
Fördelen med tidsdelad multikörning är, att även om en process kraschar, så kraschar inte hela systemet, utan bara en den process som kraschade. Vid samverkande multikörning låser en process som inte vill lämna ifrån sig kontrollen hela systemet. Ändå lämpar det sig mycket väl för små inbyggda system där resurserna är begränsade, eller specialiserade tillämpningar där alla processer i hela systemet är kända i förväg. Även i realtidssystem, där det fodras determinitisk schemaläggning med garanterade svarstider, kan samverkande multikörning vara lämpligt.
[redigera] Exempel
[redigera] Samverkande multikörning
Exempel på operativsystem som använder sig av samverkande multikörning;
- Mac OS – Alla versioner fram till Mac OS X.
- NetWare
- Windows – Alla versioner fram till och med Windows 3.11.
[redigera] Tidsdelad multikörning
Exempel på operativsystem som använder sig av tidsdelad multikörning;