Multikörning

Från Rilpedia

(Omdirigerad från Multitasking)
Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

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 dels för att skapa ett intryck av samtidighet, dels för att effektivt utnyttja olika delar av datorn, har datorn en kö av aktiva processer och byter mellan dessa tiotals gånger per sekund eller oftare. Så länge datorn inte är överlastad upplever en mänsklig användare att trådarna körs samtidigt. Datorer med flera (central)processorer kan köra flera trådar samtidigt, men använder i allmänhet därtill den här beskrivna tidsdelade multikörningen.

Innehåll

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 låser sig, så avstannar inte hela systemet, utan bara en den process som låste sig. 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 fordras determinitisk schemaläggning med garanterade svarstider, kan samverkande multikörning vara lämpligt.

Exempel

Samverkande multikörning

Exempel på operativsystem som använder sig av samverkande multikörning;

Tidsdelad multikörning

Exempel på operativsystem som använder sig av tidsdelad multikörning;

Personliga verktyg