Sätten att konstruera
operativsystem varierar. MS-DOS t ex består av ett antal procedurer
som alla kan anropa varandra kors och tvärs.
Detta gör att det i praktiken
är mycket svårt att bygga ut och förändra ett sådant
operativsystem eftersom det är hart när omöjligt att se vilka
procedurer som påverkar varandra.
Man kan även konstruera
ett operativsystem genom att dela upp det i olika moduler och lager.
En modul innehåller
ett antal funktioner som andra moduler kan anropa. Kod i ett lager anropar
bara kod som finns längre ner i hierarkin. Det har den fördelen att
man får väl definierade moduler med väl definierade funktioner
och gränssnitt. Det gör att man kan byta ut en modul utan att resten
av operativsystemet påverkas.
Ytterligare ett sätt
att konstruera ett operativsystem på är enligt client/server
- modellen.
Här delar man upp operativsystemet
i olika processer som består av olika tjänster, t ex minneshantering,
skapande processer osv. Varje server ligger hela tiden och känner av om
någon klient begär en tjänst. En klient kan vara ett operativsystemet
eller en applikation. För att begära en tjänst skickar klienten
ett meddelande till servern via kärnan.
Kärnan i operativsystemet som exekverar i privilegierat läge vidarebefordrar meddelandet till servern som i sin tur utför operationen. När operationen är färdig skickar kärnan resultatet tillbaka till klienten via ett nytt meddelande.
Ett operativsystem som baseras
på den här modellen innehåller små komponenter som
i hög grad sköter sig själva. Varje server exekverar som
en separat process vilket gör att resten av operativsystemet inte
påverkas om en enskild server går ned. Olika servrar kan dessutom
exekveras på olika processorer eller till och med på flera
olika datorer. Det gör att operativsystemet med fördel kan användas
i distribuerade miljöer.
Systemstrukturen i Windows NT, översikt
Windows NT Server är
byggt som ett modulärt operativsystem, med tydliga gränser mellan
olika lager. Operativsystemet körs i två lägen:
User mode (användarläge)
och Kernel mode (kärnläge). Det är bara i Kernel mode
som maskinvara kan anropas. Program körs alltid i User mode, där körningen
kan övervakas och kontrolleras av operativsystemet.
De viktigaste delarna i Kernel
mode kallas också med ett samlingsnamn för Microsoft Windows
NT Executive.
Hardware Abstraction Layer
HAL presenterar olika typer
av maskinvara på ett likartat sätt för de övre delarna
av operativsystemet. De enda delarna av Microsoft Windows NT Executive
som kommunicerar med HAL är kernel (kärnan) och drivrutiner för
I/O.
De övre delarna av Microsoft
Windows NT Executive och enskilda program som körs har ingen aning om hur
maskinvaran ser ut. Därför behöver inte heller de delar bytas
ut om Microsoft Windows NT Server flyttas från en typ av plattform till
en annan.
Kernel
Kärnan är
motorn i Microsoft Windows NT Server.
Kernels uppgift är att schemalägga
och starta processer. En process består alltid av en eller flera trådar
som kan exekveras i processorn. Kernel arbetar med köer, där trådar
väntar på sin tur att få del av processortiden. Kernel ansvarar
för att trådar får tilldelning av tidsskivor så att de
kan utföra sitt arbete.
Kernel hanterar också avbrott
till maskinvaror som tangentbord, skärm m.m. I kernels uppgifter ingår
också att övervaka maskinvarufel.