Multitasking multi-user besturingssystemen hebben zeer krachtige architecturen . Zij worden verwacht dat een groot aantal gebruikers inloggen via het netwerk op een centrale server of werkstation te onderhouden . De kernel van het besturingssysteem - de kern of het centrum waaromheen de buitenste functionaliteit van het OS is gelaagd - praat met de kale hardware via stuurprogramma's en software via het proces - controle subsysteem . De kernel neemt de controle van de toewijzing van middelen en process scheduling . Het drijft de processen in en uit actieve modi , wakker slapen processen , ringen alarmen en stuurt signalen . Proces Elke uitvoerbare stuk code die kan laden in het systeemgeheugen en het uitvoeren van acties is een proces . Er zijn systeemprocessen en gebruikersprocessen . Een proces vorken of spawnt een kind proces . Met uitzondering van de oorspronkelijke proces OS , genaamd proces 0 in Unix , worden alle processen die op deze manier en hebben dus een bovenliggende proces . Een proces krijgt de aandacht van de CPU's alleen wanneer de kernel het toelaat . Gebruikers en Kernel Modes Een proces draait in beide user mode of kernel mode en onderhoudt twee aparte stapels bij het wisselen tussen de modi . Sommige besturingssystemen kunnen meer modi . Als je een programma schrijft , bouwen en draaien , het lopende proces is in de user mode . Het gaat kernel -modus wanneer het een system call of ontvangt een interrupt signaal . Het signaal kan afkomstig zijn van een andere gebruiker en de kernel zelf . Zodra een proces is in de kernel -modus , de kernel escaleert haar prioriteit bij de planning regeling . Het maakt ook niet de kernel -mode proces vooruit kan lopen tot het klaar is de kritische systeem werken , waarna het weer in de user mode . Een proces in user modus kan alleen toegang krijgen tot zijn eigen instructies en data of proces ruimte . De kernel -mode proces kan toegang tot de adressen in de kernel . Een goed voorbeeld is een stukje assembler code die een sprong naar een interrupt maakt . System Calls Zoals eerder vermeld , het is het systeem oproep , het maakt niet uit wie het maakt en hoe , dat een proces brengt in de kernelmodus . Een systeem oproep is een aanroeping van een low - level besturingssysteem functie die toegang en manipuleert low - level apparaat entiteiten en gereserveerde gebieden van het geheugen . Het is praktisch OS code . Functies die op OS-apparaten , zoals bestanden , pijpen en semaforen system calls . Opent ( ) , sluit ( ) , gelezen ( ) , write ( ) , lock ( ) , unlock ( ) , init ( ) , fork ( ) , slaapstoornissen ( ) , wakeup ( ) en signaal ( ) zijn system calls . Zij controleren OS middelen en processen net zoals de kernel zou doen . Signaal en interrupt verwerking ook het gebied van de kernel en het niet gebruikersproces . In de kernel mode , wordt de besturing gegeven aan het systeem gesprek dat doet systeemtaken , of het werk dat de kernel anders zou doen . Het is code die speciale herinnering toegang en registreert gereserveerd voor OS taken . Onderbreekt en Privileged instructies Sommige machine-instructies zijn bevoorrecht en resulteren in fout als uitgevoerd in user mode . Bijvoorbeeld , zou een proces in user mode niet worden toegestaan om het proces statusregister veranderen . Registers en bevoorrechte kernel geheugen van de kernel te helpen bij haar procescontrole werk . Als iemand anders komt en ze verandert , kunnen de resultaten onvoorspelbaar zijn . Als een ander proces of de kernel onderbreekt een gebruiker proces , de kernel slaat de huidige toestand van het proces op stapel , bepaalt de oorzaak van de onderbreking , de diensten van de interrupt en brengt controle terug naar wat het proces van het doen was . De kernel knalt het proces stack zodat de gebruiker proces kan worden hervat waar het gebleven .
|