Oplossing Computer Architectuur vraag A2

advertisement
Oplossing Computer Architectuur vraag A2
a) bespreek de drie meest typische kenmerken van moderne besturingssystemen.
b) in hoeverre beantwoorden UNIX, Linux en Windows NT hieraan? Geef hierbij de belangrijkste
elementen van de detailstructuur van deze besturingssystemen.
a)

multitasking en multithreading
 multitasking

processoren hebben een groot deel vd tijd niets te doen: processorgebonden perioden
worden afgewisseld met I/O gebonden perioden, waarbij de CPU deze laatste periode niet
voldoende benut (zelfs niet met interrupts)

oplossing: multitasking/multiprocessing: bij onderbreking van een programma door een
interrupt, kan de routine voor interruptafhandeling na verwerken van de interrupt de
besturing onmiddellijk teruggeven aan het onderbroken programma, of aan een ander
programma overdragen.

de volgorde van verwerking van programma's door hun relatieve prioriteit.

interleaving: processorgebonden perioden van meerdere programma's met elkaar verweven.

elk individueel programma heeft de illusie als enige de systeembronnen te gebruiken (door
transparantie van gedeeld gebruik van processortijd, geheugen en andere bronnen door OS)
 multithreading

geavanceeerde vorm van multitasking en verschilt van multiprocessing

multiprocessing:systeem bevat meerdere processoren, twee processoren kunnen hetzelfde
tijdstip elk een proces uitvoeren.

multithreading:

meerdere gelijktijdige threads voor uitvoering van instructies

proces heeft meerdere programmatellers: voor elke thread specifieke teller

alle threads delen alle bronnen a/h proces toegewezen

alle threads binnen proces zijn evenwaardig (geen ouder-kind relatie)

symmetrische multiprocessing

assymetrische multiprocessing:

één master processor waar de kernel van het OS wordt uitgevoerd, andere
processoren voor gebruikersprogramma's en hulpprogramma's.

master verantwoordelijk voor scheduling.

indien processor een dienst nodig heeft (bvb I/O oproep): verzoek sturen naar
master, wachten tot dienst uitgevoerd is: master vormt bottleneck voor het systeem.

vereist weinig aanpassingen aan het OS.

symmetrische multiprocessing:

kernel uitgevoerd op elke processor.

ofwel kernel opgebouwd als meerdere processoren, waardoor gedeelten van
kernel parallel kunnen worden uitgevoerd door verschillende processoren.

ofwel voert elke processor volledige kopie van OS uit.

in beide gevallen kan scheduling van taken op elke processor worden uitgevoerd.

hogere eisen aan OS: communicatie tussen processoren en synchroniseren van
aanspraken op bronnen.

ruime mogelijkheden op het gebied van beschikbaarheid en
uitbreidingsmogelijkheden.

performantie stijgt niet lineair met aantal processoren:niet altijd genoeg programma's
die effectief van processor gebruik kunnen maken.





modulair ontwerp
OS software moet regelmatig aangepast worden voor verbetering van fouten, invoeren van diensten
of compatibiliteit met nieuwe hardware: noodzaak voor modulair ontwerp.
verschillende manieren voor verdeling in modules
hiërarchisch gescheiden lagen:

interactie hardware op onderste niveau ; gebruikersinterface op hoogste niveau

elk niveau verzorgt diensten voor het volgende niveau en verbergt implementatiedetails

theoretisch model voor hiërarchisch OS in 13 niveaus (cfr OSI 7 model)

volledige kernel blijft draaien in kernelmodus waardoor elke laag rechtstreeks
toegang heeft tot hardware.

Strikte volgorde bij lagenmodel onmogelijk.

correcte oplossing waarbij interactie tussen twee niveaus door elke tussenliggende laag
wordt doorgegeven: niet efficiënt.

in OS geen concrete implementaties van dit gelaagd model.

wel toegepast op schaal in bepaalde deelmodules, oa. I/O subsystemen
microkernelarchitectuur:

client/server model: enkele essentiële functies vh OS worden toegewezen aan kernel.

kernel wordt klein gehouden; andere diensten worden verzorgd door processen (~servers)
die in gebruikersmodus worden uitgevoerd.

serverprocessen hebben geen rechtstreekse toegang tot de hardware. Ze werken onderling
samen adhv doorgeven van berichten via kernel.

microkernel maakt modulaire ontwikkeling van kernel en servers wel mogelijk.

nieuwe servers en meerdere servers in hetzelfde functionele gebied kunnen toegevoegd
worden ; bestaande servers kunnen weggelaten worden (gereduceerde implementaties zoals
Windows XP embedded)

alle hardware afhankelijkheid zit in microkernel.

geschikt voor gedistribueerde systemen: cluster van afzonderlijke computers: processen op
verschillende computers sturen onderling berichten zonder te weten op welke machine deze
draaien.

nadeel: weinig performant door belasting van berichtenuitwisseling.

huidig systeem: hoofdmodule (kernel) zorgt voor basisdiensten ; deelmodules geladen
indien functionaliteit ervan noodzakelijk is. Deze modules hebben afgeschermde interfaces,
en kunnen zelf nieuwe modules oproepen. Er is ook communicatie mogelijk tussen
hoofdmodule en deelmodules.
b)


Windows NT
volgens microkernelarchitectuur

NT bestaat uit een microkernel en een aantal modules

Elke systeemfunctie wordt door slechts één component beheerd met een gestandaardiseerde
interface

elke module kan onafhankelijk van de anderen worden vervangen

aantal modules worden in kernelmodus uitgevoerd (performantie: snellere toegang
hardware): Executive (gelaagde structuur)

Hardware Abstraction Layer: vertaling van algemene opdrachten naar instructies,
geheugenmapping, configuratie bussen, afhandeling DMA

microkernel: scheduling, synchronisatie processen, traps en interrupts, herstel na
stroomonderbreking

executieve diensten: NT modules in kernelmodus, geïmplementeerd door
systeemthreads











I/O manager (I/O verzoeken)

Cache manager (schrijfcache beheren)

Security Reference Monitor (toegangcontrole)

Object Manager (objectbeheer)

Proces Manager (proces/threadobjectenbeheer)

Virtual Memory Manager (vertaling virtuele->fysieke geheugenadressen)

modules in gebruikersmodus: omgevingssubsystemen en afschermingssubsystemen

aparte adresruimte

controle identiteit

generatie toegangstokens

versleuteling gegevens

beveilingsbeleid (Local Security Authority Subsystem)

zorgt voor interactie gebruiker dmv API

elk programma: 1 omgevingssubsysteem (indien niet actief: dynamisch
opgestart)

POSIX subsysteem: UNIX compatibele software compileren en uitvoeren

uitgevoerd als proces (Local Procedure Call: aanvraag (bericht) van client via
Executive naar juiste server en van die server via Executive terug naar
client). LPC beschikbaar via DLL's.
objectgeörienteerde principes zonder uitsluitend objectgeörienteerde methoden te gebruiken

grotendeels geïmplementeerd in C/Assembler

objecten krijgen een naam (padnaam in dezelfde abstracte naamruimte met 1 enkele
root)

in gebruikersruimte: toegang tot object indirect via gebruikersfuncties en een
objecthandle (beheerd door Object Manager van Executive)

objecten gebruikt voor

gegevensstructuren binnen Executive (voor toegang in gebruikersruimte)

toegang tot gegevens die gedeeld of beveiligd zijn (via Security Descriptors)

kernelobjecten/dispatchterobjecten (semaforen, processen, threads)

bestanden, geheugensegmenten, I/O poorten

berichtenuitwisseling LPC mechanisme
UNIX
bestaat uit twee interfaces:

kernel (isoleert hardware van gebruiker en toepassingen)

gebruikersdiensten (shell, interfacesoftware, componenten C compiler)
kernel van oudere UNIX versies is weinig modulair opgebouwd (niets voorzien om
gegevensstructuren te beschermen tegen gelijktijdige toegang door meerdere processoren)
bestaat ook uit twee subsystemen:

procesbeheer: geheugenbeheer, scheduling en communicatie tussen processen

bestandbeheer en I/O: lagere niveaus binnen dit subsysteem bevat machineafhankelijke
code: routines voor interruptafhandeling en apparaatstuurprogramma's ontwikkeld in C ->
vrij eenvoudig om UNIX naar nieuwe hardware over te brengen.
Linux
modulaire architectuur (kleine kern, aangevuld met andere modules): elke module kan
onafhankelijk van elkaar worden geïmplementeerd, op voorwaarde dat externe interfaces van de
routines ongewijzigd blijven.
hoofddoel: zoveel mogelijk functionaliteit met beperkte bronnen.
voldoen aan POSIX compatibiliteit
algemeen ontwerp van de kernel lijkt sterk op traditionele vorm UNIX: monolithische kernel


modulaire benadering via Loadable Kernel Modules (stuurprogramma's, netwerkprotocol,
bestandssysteem): dynamisch linken en verwijderen aan actieve kernel
draaien in kernelmodus en dus volledige toegang tot hardware
Download