De architecten bij Bell Laboratories en hun oorspronkelijke vennoten bij General Electric en het Massachusetts Institute of Technology ontworpen Unix als een krachtig multitasking besturingssysteem. De Unix kernel - de kern of het centrum waaromheen de buitenste functionaliteit van het OS is gelaagd - praat met de kale hardware via stuurprogramma's en software om processen te controleren en toewijzen van systeembronnen . Een proces op Unix is een uitvoerbaar control -flow procedure in het geheugen geladen , en het wordt de aandacht van de CPU's alleen wanneer de kernel het toelaat . Proces De centrale en cruciale onderdeel van de Unix kernel , het proces - controle subsysteem , is verantwoordelijk voor het proces synchronisatie , inter-proces communicatie , proces scheduling en geheugenbeheer . Een proces creëert een kind proces met behulp van de fork ( ) systeem aanroep , en met uitzondering van proces 0 , alle processen hebben een ouder proces dat genoemd fork ( ) op een gegeven moment om het kind te creëren . De kernel identificeert een proces door zijn ID , aangeduid als PID . Een Unix- proces draait in beide user mode of kernel -modus , en onderhoudt twee aparte stapels bij het schakelen tussen hen. Een proces komt kernel -modus wanneer het een system call of ontvangt een interrupt of een signaal , waardoor het een hogere prioriteit en meer aanspraak op middelen en preemption dan die in user mode . Scheduling < br > de kernel zorgt voor een nieuw of ander proces om de CPU alleen te gebruiken wanneer het eerste proces gaat slapen , en niet mogelijk is om de toestand van of de toegang middelen toegewezen aan een ander proces te veranderen . De kernel planner module voorrang op een gebruiker proces regelmatig om te voorkomen dat het monopoliseren van de CPU echter . Controle Processen met elkaar communiceren via system calls , en terwijl ze kunnen suggereren dat een ander proces weg te gaan , kan alleen de kernel het vooruit kan lopen . Een proces kan gaan slapen op zijn eigen , maar de kernel kan wekken . Processen meestal slapen op een gebeurtenis , wacht de CPU zolang de gewenste gebeurtenis bezetten heeft plaatsgevonden . Signalering Wanneer de kernel wijst de CPU naar een andere proces, genaamd een context switch , wordt het preempted proces opgeslagen op stapel , waardoor het hervatten waar het gebleven op zijn volgende beurt . Een proces kan een signaal sturen naar de andere of de kernel kan een signaal intern te sturen , maar alleen de kernel kan een signaal sturen naar een lopend proces om het beslag te leggen , zodat deze gaat slapen . De kernel swaps het dan met een kant-en - run proces dat had gewacht om de controle van de CPU te verkrijgen . Een proces kan slapen op een bepaald interruptible prioriteit en negeer een lage prioriteit signaal . Fair Share De kernel implementeert een fair- share scheduling algoritme dat processen geeft een aandeel processortijd basis van prioriteiten toegewezen , afhankelijk van de aard van de taak . Hogere prioriteit processen raken vaker gepland en krijgen meer CPU-tijd , maar een proces kan ruwe controle van zijn plannen uit te oefenen met behulp van de system call mooi ( ) als volgt : mooi ( waarde ) ; Proces prioriteit is een functie van dit mooie waarde . proces prioriteit = recente CPU-gebruik /een constante + basisprioriteit + leuke prijs . Dit algoritme geeft gebruikersgroep a twee keer het slot voor groep B , drie keer dat van C en vier keer dat van D , waar de gebruiker processen zijn gegroepeerd op prioriteit . Deze methode is niet geschikt voor real - time verwerking , waar het proces niet kan veroorloven om te wachten op bedrijfskritische taken; zo'n proces krijgt direct CPU-gebruik door het maken van het systeem bellen en het versturen van hoge prioriteit interrupt signalen < . br >
|