Arkitekterna vid Bell Laboratories och deras ursprungliga biträdande jurister på General Electric och Massachusetts Institute of Technology utformad Unix som en kraftfull multitasking operativsystem . Unix kernel - kärnan eller centrum kring vilket den yttre funktionerna i OS är skiktade - talar till hake hårdvara via drivrutiner och programvara för att styra processer och allokera systemresurser . En process på Unix är alla körbara kontroll - flöde förfarande laddad i minnet , och det blir den CPU uppmärksamhet endast när kärnan gör det . Process
central och viktig del av Unix -kärnan , den process - delsystemet , är ansvarig för process synkronisering , kommunikation mellan processer , process schemaläggning och minneshantering . En process skapar ett barn process med hjälp av gaffeln ( ) systemanrop , och med undantag för process 0 , alla processer har en förälder process som kallas fork () vid något tillfälle att skapa barnet .
Kärnan identifierar en process hjälp av dess ID , kallad PID. Ett Unix -processen körs i antingen användarläge eller kernel -läge , och upprätthåller två separata staplar när du växlar mellan dem . En process går kernel -läge när den gör ett samtal eller tar emot ett avbrott eller en signal , vilket ger högre prioritet och mer anspråk på resurser och preemption än de i användarläge .
Schemaläggning
kärnan gör en ny eller annorlunda process att använda processorn endast när den första processen går att sova , och inte tillåter den att ändra tillståndet för eller resurser åtkomst tilldelas till en annan process . Kärnans schemaläggaren modul preempts en användare process jämna mellanrum för att förhindra den från att monopolisera processorn , dock .
Kontroll
Processer kommunicerar med varandra via systemanrop , och medan de kan föreslå att en annan process går bort , kan bara kärnan föregripa det . En process kan somna på egen hand , men kärnan kan väcka den . Processer vanligtvis sover på en händelse , väntar på att ockupera CPU så länge som den önskade händelsen inte har inträffat .
Signaler
När kärnan allokerar CPU till en annan process , som kallas en context switch , är det preempted processen sparas på stacken , så att den kan fortsätta där den slutade på sin nästa sväng . En process kan sända en signal till en annan eller kärnan kan sända en signal internt , men endast kärnan kan sända en signal till en körande process att föregripa det så att det går att sova . Kärnan swappar sedan med en färdig - to-run process som hade väntat på att få kontroll över processorn . En process kan sova på en viss avbrytbara prioritet och ignorera en låg prioritet signal .
Fair Share
Kärnan genomför en rättvis andel schemaläggning algoritm som ger bearbetar en andel av CPU- tid baserat på prioriteringar som tilldelats dem , beroende på vilken typ av uppdrag . Högre prioritet processerna blir schemalagd oftare och få mer CPU- tid , men en process kan utöva rå kontroll över sin schemaläggning med hjälp av systemet samtalet fint ( ) enligt följande : fint ( value ) , Process prioritet är en funktion av denna trevliga värde . process priority = senaste CPU-användning /konstant + bas prioritet + trevlig värde .
Denna algoritm ger användaren grupp a två gånger facket för grupp B , tre gånger så stor som C och fyra gånger så stor som D , där användarnas processer grupperas efter prioritet . Denna metod är inte lämplig för realtid , där processen inte har råd att vänta på affärskritiska uppgifter, sådan process vinner omedelbar CPU-användning genom att göra systemanrop och skicka högprioriterade avbrottssignaler
< . br > Addera