2.2 Evolutie van besturingssystemen

advertisement
Besturingssystemen
Intro
Besturingssysteem:
 softwarelaag tussen gebruiker en hardware
 softwarelaag tussen toepassingssoftware en de uiteindelijke uitvoering van de machinebevelen
2 aspecten:
 hoe zit het in mekaar?
 hoe moet/kan ik het configureren?
Bootproces
Het besturingssysteem is een programma:
 staat op extern geheugen
 moet gekopieerd worden naar het werkgeheugen (inladen)
Het inladen van het OS  speciale procedure  om iets in te laden moet er programmatuur zijn
inladen harde schijf:
 partities, MBR
 PBR
 wat gebeurt er als je computer start?
Partities





Deel van de harde schijf  opeenvolgende cilinders
maximum 4 primaire partities
indelen:
o bij het begin van de installatie van het OS
o eventueel achteraf wijzigen  tools
in een partitie kan je een OS installeren, maximum 1 partitie kan actief zijn
bij opstarten  starten van OS in de actieve partitie
sporen en cilinders
MBR (Master Boot Record)
bevat:
 MBR-startprogramma (IPL  Initial Program Loader)
 partitietabel
 magisch getal
bij opstarten  starten van het OS in de actieve partitie
Partitietabel
Kan 4 partitierecords bevatten die ieder een primaire partitie beschrijven, bevat per partitie:
 (1b) Bootable flag  actief/niet actief
 (3b) Cylinder/Head/Sector van 1e sector
 (1b) Partitie-type  geeft aan welk bestandssysteem op de partitie staat
 (4b) LBA-nummer van de 1e sector
 (4b) LBA-nummer van de laatste sector
 hoe groot is de partitietabel?
Logische partities
4 primaire partities  soms te weinig
Primaire partitie kan onderverdeeld worden in logische partities  extended partition
info in "extended master boot record"
EMBR (Extended MBR)


voor de extended partitie
voor elke logische partitie
EMBR  2 items:
 info over de partitie zelf
 info over de rest
welke info:
 type
 CHS 1e sector
 CHS laatste sector
 grootte
PBR




partitie wordt geformatteerd
1e sector van de partitie  partition boot sector
sector = record  PBR = PBS
PBR bevat:
o sprongbevel
o info over de partitie
o PBR-startprogramma
BIOS EEPROM






Soms nog CMOS genoemd  Complementary Metal-Oxide Semiconductor
CMOS  gebruikt geen CMOS-technologie
vroeger CMOS-geheugen dat door batterij onder spanning werd gehouden
bevat:
o opstartvolgorde
o informatie over randapparaten
o BIOS-paswoord
o ...
BIOS kan geconfigureerd worden
bv  bootsequence (opstartvolgorde):
o op welke apparaten zoeken naar OS en in welke volgorde:
 HDD
 CD
 USB
 Netwerk
Wat gebeurt er als de computer start?
1. interne voeding wordt geïnitialiseerd
a. testen van de geleverde spanningen
b. reset-signaal naar de CPU sturen
2. wanneer spanning OK  "Power good" signaal naar moederbord  stop reset
3. processor begint met bevelen uit te voeren
a. welke mode?
b.  reële mode
c. welk bevel?
d.  op adres FFFF:0000
e. wat betekend dit?
f.  FFFF0(segmentadres) + 0000(verplaatsing) = FFFF0
g. FFFF0 is een adres in het werkgeheugen, toegewezen aan het BIOS
4. startprogramma  POST  Power On Self Test controleert vitale systeemonderedelen:
5.
6.
7.
8.
9.
10.
11.
12.
13.
a. CPU
b. toetsenbord
c. RAM
d. video
e. ...
indien niet OK:
a. meeste fouten zijn fataal, vootproces kan niet verder gaan
b. misschien gaan ledjes aan
c. misschien horen we beeps
d. misschien foutmelding op scherm
indien POST  succes:
BIOS-startprogrammagaat na wat het boot-apparaat is, onderstel: de HDD
MBR kopiëren naar werkgeheugen (bevat IPL)
sprong naar 1e bevel in IPL
IPL:
a. leest partitietabel
b. kopieert PBR van deze partitie naar werkgeheugen
c. sprong naar bevel vanaf 1e byte v. PBR
1e bevel in PBR  sprong naar PBR-startprogramma
PBR-startprogramma  NTLDR inladen
a. NTLDR niet gevonden  "NTLDR missing" op het serm
wel gevonden  NTLDR  procesor naar protected mode en Windows starten
Hoofdstuk 1: Overzicht van computersystemen
1.1 Basiselementen



gebruikt de hardwarebronnen van een of meer processors
verzorgt een aantal diensten voor de gebruikers van het systeem
beheert het secundaire geheugen en invoer/uitvoerapparaten
Basiselementen van een computer
 processor
 hoofdgeheugen
 I/O-modules
 systeembus
Processor
 beheert de werking van de computer
 voert gegevensverwerking uit
 2 interne registers:
o geheugenadresregister (MAR)
o geheugenbufferregister (MBR)
 I/O-adresregister
 I/O-bufferregister
Hoofdgeheugen
 vluchtig
o data is verloren wanneer de stroom wegvalt
 reëel geheugen of primair geheugen genoemd
 bestaat uit een set van locaties gedefinieerd door sequentiële adresnummers
o ze bevatten data of instructies
I/O-modules
 verplaatsen gegevens tussen computer en zijn externe omgeving:
o opslag (HDD)
o communicatieapparatuur
o werkstations
 gespecificeerd door een I/O-adresregister
o I/OAR
Systeembus
 communicatie tussen de processors, het hoofdgeheugen en de I/O-modules
1.2 Processorregisters
sneller en kleiner dan het hoofdgeheugen
2 soorten:
 Registers die zichtbaar zijn voor de gebruiker
o bieden de programmeur de mogelijkheid om verwijzingen naar het hoofdgeheugen
te minimaliseren door het registergebruik te optimaliseren
o mag naar worden verwezen door een machinetaal
 beschikbaar voor alle programma's  toepassingsprogramma's en
systeemprogrammas
o de registertypen die meetal beschikbaar zijn:
 dataregisters
 uiteenlopende functies
 er zijn beperkingen
 adresregisters
 indexregister
 segmentwijzer
 stackwijzer
 conditiecoderegisters
 stuur- en statusregisters
o gebruikt door de processor voor het besturen van de werking van de processor
o gebruikt door geprivilegieerde routines van het OS voor het beheren van de
uitvoering van programma's
o 3 registers:
 Program counter (PC)
 bevat het adres van de volgende op te vragen instructie
 Instructieregister (IR)
 bevat de laatst opgevraagde instructie
 Programmastatuswoord (PSW)
 bevat statusinformatie
o Conditiecodes (flags of vlaggen)
 maken doorgaans deel uit van een stuurregister
 bits die worden ingesteld door de processorhardware als resultaat van
bewerkingen
 alleen lezen, ze zijn bedoeld om feedback te geven bij uitvoering van
een instructie
1.3 Uitvoering van instructies


een programma bestaat uit een verzameling instructies opgeslagen in het geheugen
2 stappen:
o processor leest de instructies uit het geheugen
o processor voert elke instructie uit
1.3.1 Ophalen en uitvoeren van een instructie
de processor haalt de instructie uit het geheugen.
de programmateller (PC) heeft het adres van de volgende op te halen instructie:
 de programmateller wordt verhoogd na het ophalen van elke instructie
Instructieregister
de opgehaalde instructie wordt geladen in het instructieregister
4 categorieën:
 Processorgeheugen
 processor-I/O
 gegevensverwerking
 besturing
1.4 Interrups
onderbreken de normale verwerking van de processor
worden gebruikt als middel om verwerkingsefficiëntie te verhogen:
 de meeste I/O-apparaten zijn langzamer dan de processor
 de processor moet pauzeren en op het apparaat wachten
Klassen interrupts
 Programma:
o gegenereerd door het resultaat van de uitvoering van een instructie, bijvoorbeeld
een rekenkundige berekening met een te grote waarde, delen door nul, een poging
tot het uitvoeren van een ongeldige machine-instructie en een verwijzing buiten de
geheugenruimte waartoe een gebruikersprogramma toegang heeft
 Timer:
o gegenereerd door een timer binnen de processor. hiermee kan het
besturingssysteem functies uitvoeren met een bepaalde regelmaat
 I/O:
o gegenereerd door een I/O-controller om de normale voltooiing van een bewerking of
uiteenlopende foutcondities te melden
 Hardwarefout:
o gegenereerd door fouten zoals het uitvallen van de stroom of geheugenpariteitsfout
1.4.3 Meervoudige interrupts
veronderstel dat een interrupt zicht voordoet terwijl een andere interrups afgehandeld word:
 bv: een interrupt van de communicatie terwijl een interrupt van de printer wordt verwerkt
2 benaderingen:
 uitschakelen van interrupts terwijl een interrupt wordt verwerkt
 een prioriteitsschema gebruiken
1.4.4 Multiprogrammering



de processor kan meerdere gebruikersprogramma's tegelijkertijd uitvoeren
de volgorde waarin de programma's worden verwerkt is afhenkelijk van hun relatieve
prioriteit en van het feit of ze wachten op I/O
na het voltooien van de interruptafhandelingsroutine wordt de besturing niet altijd
onmiddellijk teruggegeven aan het gebruikersprogramma dat op dat moment wordt
uitgevoerd
1.5 De geheugenhiërarchie
3 hoofdkenmerken in het geheugen:
 kosten
 capaciteit
 toegangstijd
de volgende relaties:
 kortere toegangstijd  hogere kosten per bit
 hogere capaciteit  lagere kosten per bit
 hogere capaciteit  langere toegangssnelheid
Hiërarchie van boven naar onder dan gebeurt er:
 de kosten per bit dalen
 de capaciteit neemt toe
 de toegangstijd neemt toe
 de frequentie van de processortoegang tot het geheugen neemt af
Secundair geheugen




aanvullend geheugen
extern
niet-vluchtig
gebruikt voor de opslag van programma- en gegevensbestanden
1.6 Cachegeheugen



onzichtbaar voor het OS
o werkt samen met andere hardware voor geheugenbeheer
per instructiecyclus heeft de processor ten minste 1 keer toegang tot het geheugen
o de snelheid waarmee de processor instructies kan uitvoeren, wordt duidelijk beperkt
door de lengte van het geheugen
toepassen van het beginsel van lokaliteit door een klein snel geheugen tussen de processor
en het hoofdgeheugen te plaatsen  cache
Cacheprincipes


de cache bevat een kopie van een deel van het hoofdgeheugen
de processor kijkt de cache eerst na
o als de bytes niet gevonden zijn  lees het blok uit het geheugen in in de cache

wanneer een blok gegevens in de cache wordt geplaatst, zullen toekomstige
geheugenverwijzingen verwijzen naar andere bytes in dat blok.
Ontwerp van cachegeheugen
categorieën:
 cachegrootte
o kleine caches hebben een significantie invloed op prestaties
 blokgrootte
o de eenheid gegevens die wordt uitgewisseld tussen het cachegeheugen en het
hoofdgeheugen
o grotere blokgrootte  grotere hit-ratio
o te grote blokgrootte  verlaagt de kans van hergebruiking
 adresseringsfunctie
o bepaald welke locatie het blok zal innemen in de cache
o 2 beperkingen:
 bij het inlezen van een blok moet een ander blok worden vervangen
 hoe flexibeler de adresseringsfunctie is, des te meer ruimte hebben we om
een vervangingsalgoritme te ontwerpen dat de hit-ratio maximaliseert
 vervangingsfunctie
o kiest het blok dat vervangen wordt
o liefst een blok vervangen waarvan de kans dat we het in de nabije toekomst nodig
hebben, klein is
 onmogelijk om te garanderen
o een effectieve strategie is het vervangen van het blok dat zich het langst in de cache
bevind zonder dat ernaar verwezen is  Least Recently Used (LRU)
 schrijfstrategie
o bepaalt wanneer de geheugenschrijfbewerking plaatsvindt
o kan optreden elke keer een blij wordt bijgewerkt
o kan optreden wanneer het blok wordt vervangen
 minimaliseert de geheugenschrijfbewerkingen
 laat het hoofdgeheugen in een verouderde toestand
1.7 I/O-technieken

wanneer de processor bij de uitvoering van een programma een instructie tegenkomt
waarbij I/O nodig is
o wordt de instructie uitgevoerd door een opdracht te verzenden naar de betreffende
I/O-module
3 mogelijke technieken zijn mogelijk voor I/O-operaties:
 geprogrammeerde I/O
 interruptgestuurde I/O
 directe geheugentoegang (DMA)
Geprogrammeerde I/O
 de I/O-module voert de gevraagde actie uit
o zet de juiste bits in het I/O-statusregister
o onderneemt verder geen actie om de processor te waarschuwen

als er geen interrupts zijn, moet de processor zelf controleren wanneer de instructie voltooid
is
Geprogrammeerde I/O instructieset
 besturen  gebruikt om een extern apparaat te activeren en te vertellen wat het moet doen
 status controleren  statuscondities testen
 lezen en schrijven  schrijven/lezen tussen de processorregisters en externe apparaten
Geprogrammeerde I/O voorbeeld
Gegevens worden met 1 woord tegelijk ingelezen  zolang de processor leest houdt hij de
statuscontrolelus aan.
Interruptgestuurde I/O
 de processor geeft een opdracht aan een I/O-module
o de processor gaat dan zelf ander nuttig werk doen
 de I/O-module zal de processor dan onderbreken met een interrupt als de module gereed is
om gegevens uit te wisselen met de processor
 elimineert het onnodige wachten
o maar alles gaat langs de processor
Directe geheugentoegang (DMA)
 I/O-opdracht wordt uitgevoerd door een DMA-module
 de processor doet alleen mee bij het beginnen en eindigen van de overdracht
 veel efficiënter
Hoofdstuk 2: overzicht van besturingssystemen
2.1 Doel en functies van OS
OS


een programma dat de uitvoering van toepassingsprogramma's regelt
een interface tussen de gebruiker van de computer en de hardware
3 doelstellingen:
 gemak
 efficiëntie
 Flexibiliteit
Diensten van het OS
 ontwikkelen van programma's  voor editors en debuggers
 uitvoeren van programmas  het OS regelt een aantal zaken die nodig zijn om een
programma uit te voeren
 toegang tot I/O-apparaten  elk I/O-apparaat heeft een unieke interface + OS voorziet een
algemene interface voor de gebruikers
 beheerde toegang tot bestanden  toegang tot verschillende media, maar het OS
presenteert een algemene interface + beveiligingsmechanismen voor het beheren van de
toegang tot bestanden
 toegang tot het systeem  beheert de toegang tot het systeem en zijn systeembronnen
 opsporen en afhandelen van fouten
o interne en externe hardwarefouten
o softwarefouten
o OS kan een verzoek van een programma niet toelaten
 administratie
o verzamelt gebruiksstatistieken
o bewaakt prestatieparameters
De rol van een OS
een computer is een verzameling van bronnen voor het verplaatsen, opslaan en verwerken van
gegevens.
Het OS is verantwoordelijk voor het beheer van deze bronnen
OS als software
 het OS werkt hetzelfde als gewone computersoftware  het is een programma dat wordt
uitgevoerd door de processor
 het OS geeft de besturing veelvuldig uit handen en is voor het terugkrijgen van de besturing
afhankelijk van de processor
Ontwikkelingsmogelijkheden van het OS
OS zullen zich in de loop van de tijd ontwikkelen:
 hardwarevernieuwingen en nieuwe typen hardware
 nieuwe diensten
 verbeteringen
2.2 Evolutie van besturingssystemen
Seriële verwerking
 geen OS
 machines werden bestuurd via een bedieningspaneel dat bestond uit lampjes, schakelaars,
een invoerapparaat en een printer
enkele problemen:
 scheduling
 insteltijden
Eenvoudige batchsystemen
 de eerste machines waren duur  belangrijk om het gebruik te maximaliseren
 monitor
o software dat de volgorde van gebeurtenissen controleert
o combineert jobs bij elkaar tot een batch
o programma geeft controle terug aan de monitor wanneer het klaar is
vanuit de monitor gezien:
 software dat de volgorde van gebeurtenissen controleert
 resident monitor  software dat altijd in het geheugen is
 de monitor leest een taak in en geeft controle
 de taakt geeft de controle terug aan de monitor
Jobbesturingstaal
speciaal type van programeertaal om taken te controleren.
geeft instructies aan de monitor:
 welke compiler het moet gebruiken
 welke data het moet gebruiken
Gewenste hardwaremogelijkheden
 geheugenbeveiliging  taken kunnen niet overschrijven/veranderen
 timer  voorkomen dat 1 taak onbeperkt beslag legt op het hele systeem
 geprivilegieerde instructies  alleen uitgevoerd door de monitor
 interrupts
werkingsmodi
gebruikersmodus:
 gebruikersprogramma wordt uitgevoerd in gebruikersmodus
 bepaalde gebieden in het geheugen zijn niet beschikbaar voor de gebruiker
 bepaalde instructies mogen niet worden uitgevoerd
kernelmodus:
 monitor wordt uitgevoerd in systeemmodus
 bevoorrechte instructies mogen niet worden uitgevoerd
 heel het geheugen kan benaderd worden
Batchsystemen met multiprogrammering
CPU is voor niets gebruikt:
 zelfs niet bij automatische taakverwerking
 I/O-apparaten zijn traag vergeleken met de processor
wanneer een taak moet wachten voor I/O kan de processor veranderen naar een andere taak
uniprogrammering
de processor moet wachten to een I/O-instructie is voltooid voordat hij kan doorgaan
Systemen met timesharing
 gebruiken van multiprogrammering om meerdere batchjobs tegelijk af te handelen
 de processortijd wordt gedeeld door de meerdere gebruikers
 meerdere gebruikers hebben toegang tot het systeem door terminals
Vroeg voorbeeld: CTSS (Compatible Time Sharing System)
ontwikkeld op MIT als project MAC (Machine-aided Cognition / Multiple Access Computers)
Time slicing:
 de besturing werd overgedragen aan een gebruiker
 het programma van de gebruiker en de gegevens werden geladen
 de systeemklok genereerde interrupts met een snelheid van 1 per 0,2 seconden
 bij elke klokinterrupt kreeg het OS de besturing terug zodat het de processor kon toewijzen
aan een andere gebruiker
Problemen
 meerdere taken in het geheugen moesten beveiligd worden voor elkanders data
 het bestandssysteem moest worden beveiligd zodat uitsluitend geautoriseerde gebruikers
toegang hebben tot een bepaald bestand
 conflicten die optreden wij het gelijktijdig gebruik van systeembronnen moeten worden
afgehandeld (printers, opslag, etc)
2.3 Belangrijke prestaties
OS'en behoren tot de meest complexe stukken software die tot dusver zijn ontwikkeld
belangrijke prestaties zijn:
 processen
 geheugenbeheer
 bescherming en beveiliging van informatie
 scheduling en beheer van bronnen
 systeemstructuur
Processen
essentieel voor de structuur van OS
een proces is:
 een programma dat uitgevoerd wordt
 een geactiveerd programma dat op een computer draait
 de entiteit die kan worden toegewezen aan en worden uitgevoerd door een processor
 een eenheid van activiteit die wordt gekenmerkt door een enkelvoudige sequentiële
verwerking, een actuele toestand en een aantal bijbehorende concepten
oorzaken van fouten wanneer men een OS ontwerpt
 fouten in het ontwerp van een OS zijn vaak subtiel en moeilijk om te vinden
 fouten zijn vaak:
o slechte synchronisatie
o mislukte wederzijdse uitsluiting
o niet-vastomschreven programmawerking
o dodelijke omarming
proces heeft 3 delen
 een uitvoerbaar programma
 de bijhorende gegevens die het programma nodig heeft
 de uitvoeringscontext van het programma
De uitvoeringscontext is de verzameling interne informatie waardoor het besturingssysteem het
proces kan controleren.
Geheugenbeheer
Het OS heeft 5 hoofdtaken bij het beheer van opslag:
 procesisolatie
 automatische toewijzing en beheer
 ondersteuning van modulair programmeren
 bescherming en toegangsbeheer
 langetermijnopslag
Virtueel geheugen
 bestandssysteem zorgt voor de opslag op lange termijn
 virtueel geheugen is een voorziening waarmee programma's geheugen op logisch niveau
kunnen adresseren, zonder rekening te houden met de hoeveelheid hoofdgeheugen dat
fysiek aanwezig is.
Paging
 laat toe om processen op te delen in een aantal blokken van vaste lengte  pagina's
 virtueel adres bestaat uit een paginanummer en een relatieve locatie (offset) binnen de
pagina
 elke pagina kan overal binnen het hoofdgeheugen geplaatst worden
Bescherming en beveiliging van informatie
het probleem kan algemeen worden geformuleerd als "het controleren van de toegang tot
computersystemen en van de informatie die erop is opgeslagen"
4 categorieën:
 beschikbaarheid
 vertrouwelijkheid
 gegevensintegriteit
 authenticiteit
Scheduling en beheer van bronnen
hoofdverantwoordelijkheid OS  beheren van de verschillende bronnen
elke strategie voor de toewijzing en de scheduling van bronnen moet zijn gebaseerd op:
 rechtvaardigheid
 gedifferentieerd reactievermogen
 efficiëntie
Systeemstructuur
 het systeem beschouwen als een reeks niveaus
 elk niveau voert een specifieke deelverzameling uit van de functies die het OS moet
uitvoeren
 elk niveau verzorgt diensten voor het volgende, lagere niveau
 hiermee is het probleem gesplitst in enkele beter hanteerbare deelproblemen
2.4 Ontwikkeling in de aanloop naar modernere OS
Microkernelarchitectuur
de meeste OS hadden 1 kolossale monolithische kernel  verzorgen het overgrote deel vande
functionaliteit van het OS
een microkernel wijst slechts enkele essentiële functies toe aan de kernel:
 adresruimten
 communicatie tussen processen
 basisscheduling
Multithreading
een proces is verdeeld in draden (threads) die tegelijkertijd kunnen worden uitgevoerd.
een draad:
 inzetbare eenheid werk
 een draad wordt sequentieel uitgevoerd en kan worden onderbroken
een proces  verzameling van 1 of meerdere draden
Symmetrische multiprocessing (SMP)
een SMP heeft:
 meerdere processoren
 deze processors delen hetzelfde hoofdgeheugen en dezelfde I/O-voorzieningen
 alle processors kunnen dezelfde functies uitvoeren
het OS van een SMP verdeelt processen of threads over alle processors.
voordelen SMP:
 prestaties  laat parallele uitvoering toe
 beschikbaarheid  het uitvallen van 1 processor stop de machine niet
 stapsgewijze groei  extra processors kunnen bijgevoegd worden
 schaalbaarheid
Gedistribueerde OS'en
geeft de illusie bij de gebruiker dat:
 er maar 1 hoofdgeheugen en 1 opslagplaats is
vroeg stadium van ontwikkeling
Objectgeoriënteerd ontwerp
Gebruikt om modulaire uitbreidingen toe te voegen aan een kleine kernel
Het laat programmeurs toe een OS aan te passen zonder de integriteit van het systeem in gevaar te
brengen
2.5 Overzicht van MS Windows
Multitasking voor 1 gebruiker
 de ontwikkeling van Windows werd gedreven door de noodzaak de enorme kracht te
benutten van de moderne 32-bits microprocessor en 64-bit microprocessor
 ontworpen voor gebruikers die meerdere programma's tegelijk gebruiken
 voornaamste drivers zijn:
o verhoogd geheugen en snelheid van microprocessors
o ondersteuning voor virtueel geheugen
Client/servermodel
De executive, de beveiligde subsystemen en de toepassingen zijn gestructureerd volgens het
client/servermodel  een veel gebruikt model voor gedistribueerde verwerking toegepast op 1
systeem
de processen communiceren via RPC
Objecten in Windows
Windows is in sterke mate ontwikkeld op basis van de concepten van OO-ontwerp.
de belangrijkste OO-concepten van Windows zijn:
 inkapseling
 objectklasse en objectinstantie
 overerving
 polymorfie
2.6 Traditionale UNIX-systemen
Beschrijving
Traditionele UNIX kernel
Moderne UNIX kernel
2.7 Linux
Modulaire structuur
de meeste UNIX-kernels zijn monolithisch, deze is gestructureerd als een collectie van modules:
 loadable modules  een objectbestand waarvan de code tijdens bedrijf aan de kernel
gekoppeld of waarvan de kernel losgekoppeld kan worden.
karakteristieken:
 dynamisch koppelen
 stapelbare modules
Hoofdstuk 3: Beschrijving en besturing van processen
Benodigdheden van het OS
fundamentele taak  processen managen
het OS moet:
 de uitvoering van meerdere processen verwerken
 bronnen toewijzen aan processen volgens een bepaalde strategie en tegelijkertijd een
deadlock voorkomen
 communicatie tussen processen en het creëren van processen door de gebruiker
ondersteunen
 synchronisatie tussen processen toelaten
3.1 Wat is een proces?
van de vorige hoofdstukken:
 een computer bestaat uit een verzameling hardwarebronnen
 computertoepassingen zijn ontwikkeld om een bepaalde taak uit te voeren
 het is allerminst efficiënt om toepassingen te schrijven voor een specifiek computersysteem
 het OS werd ontwikkeld als veilige en consistente interface waar toepassingen gebruik van
kunnen maken
 je kan het OS oorstellen als een uniforme, abstracte representatie van bronnen die door
toepassingen benut kunnen worden
Het OS beheert de uitvoering van programma's
 bronnen worden beschikbaar gemaakt voor verschillende toepassingen
 de fysieke processor schakelt tussen verschillende toepassingen
 de processor en I/O-apparaten kunnen efficiënt worden gebruikt
Definitie proces
 een programma dat wordt uitgevoerd
 een instantie van een programma die op een computer wordt uitgevoerd
 de entiteit die aan een processor kan worden toegewezen en op die processor kan worden
uitgevoerd
 een eenheid van activiteit, die gekenmerkt wordt door de uitvoering van een reeks
instructies
proces voorstellen als entiteit die bestaat uit een aantal elementen:
 programmacode
 verzameling gegevens
 een aantal elementen die de status van de uitvoering van het programma beschrijven:
o indentificatienummer
o toestand
o prioriteit
o
o
o
o
programmateller
geheugenwijzers
I/O-toestandinformatie
beheersinformatie
Procesbesturingsblok
 bevat de proceselementen
 gecreëerd en beheerd door het OS
 ondersteunt verschillende processen
3.2 Procestoestanden
het gedrag van een individueel proces kan beschreven worden aan de hand van de vorlgorde van
instructies die voor dat proces worden uitgevoerd  zo een lijst wordt een "trace" (spoor) genoemd.
de dispatcher is een klein programma dat de processor wisselend toewijst aan een ander proces.
Uitvoeren van een proces
 veronderstel dat er 3 processen worden uitgevoerd
 ze zitten allemaal in het geheugen (+ de toedeler (dispatcher))
 negeer virtueel geheugen voor dit voorbeeld
Vanuit het oogpunt van processen
 elk proces runt tot het voltooid is
Vanuit oogpunt van de processors
Procesmodel met 2 toestanden
proces kan in 2(3) statussen zijn:
 actief
 niet-actief
 (geblokkeerd)
Creëren en beëindigen van processen
zie tabel 3-1 en 3-2 op pagina 129 + 130 + 140
Creëren van processen
 het OS maakt een gegevensstructuur die wordt gebruikt bij het procesbeheer
 traditioneel creëerde het OS alle processen  het kan zinvol zijn een proces de mogelijkheid
te bieden een ander proces te creëren
 deze actie noemt men procesverwekking (process spawning)
o ouderproces(parent process) is het originele proces dat het andere verwekt
o het kinderproces(child proces) is het verwekte proces
Beëindigen van processen
Er moet een manier zijn waarop een proces kan aangeven dat hij voltooid is
deze indicatie kan zijn:
 een "halt"-instructie dat een interrupt veroorzaakt die het OS waarschuwt dat een proces
voltooid is
 een actie van de gebruiker die aanduid dat het proces voltooid is
 een fout of error
 het ouderproces afsluiten
Procesmodel met 5 toestanden
Opgeschorte processen
de processor is sneller dan I/O-activiteiten  veel processen kunnen wachten op een I/O-activiteit
 het hoofdgeheugen uitbreiden om ruimte te bieden aan meer processen
wanneer een proces naar de schijf wordt geswapt (verplaatsen van een deel of het geheel van een
proces van het hoofdgeheugen naar schijf) wordt de status "opgeschort"
2 nieuwe statussen:
 geblokkeerd/opgeschort
 gereed/opgeschort
Redenen voor het opschorten van processen
Reden
Swapping
Andere OS reden
Verzoek van een interactieve gebruiker
timing
Verzoek van een ouderproces
commentaar
Het OS moet voldoende hoofdgeheugen
vrijmaken voor het binnenhalen van een proces
dat gereed is om te worden uitgevoerd
Het OS kan een achtergrond- of hulpproces
opschorten of een proces dat ervan wordt
verdacht een probleem te veroorzaken
Een gebruiker kan de uitvoering van een
programma opschorten om fouten te zoeken of
om een bron te gebruiken
Een proces kan periodiek worden uitgevoerd en
kan worden opgeschort terwijl wordt gewacht
op de volgende tijdsinterval
Een ouderproces kan de uitvoering van een
kindproces opschorten om het opgeschorte
proces te onderzoeken ofte wijzigen of om de
activiteiten van meerdere kindprocessen te
coördineren
3.3 Beschrijving van processen
processen en bronnen
Beheersstructuren in het OS
 wil het OS processen en bronnen kunnen beheren, dan moet het informatie bezitten over de
huidige status van elk proces en elke bron
 tabellen worden gemaakt met informatie over elke entiteit die het beheert
Geheugentabellen
 gebruikt voor het bijhouden van het hoofdgeheugen en het secundaire geheugen
 moet de volgende informatie bevatten:
o de toewijzing van hoofdgeheugen aan processen
o de toewijzing van secundair geheugen aan processen
o eventuele beschermingsattributen van segmenten van het hoofdgeheugen of het
virtuele geheugen
o alle informatie die nodig is voor het beheren van het virtuele geheugen
I/O-tabellen
 gebruikt door het OS voor het beheren van de I/O-apparaten en I/O-kanalen van het OS
 het OS moet weten:
o of het I/O-apparaat beschikbaar of aangewezen is
o de status van de I/O-bewerking
o de locatie in het hoofdgeheugen wordt gebruikt als bron of bestemming van de I/Ooverdracht
Bestandstabellen
bevatten informatie over:
 bestaan van bestanden
 locatie in het secundaire geheugen
 huidige status
 andere attributen
soms wordt deze informatie bijgehouden door een bestandsbeheersysteem (file management
system)
Procestabellen
worden gebruikt door het OS voor het beheren van processen
ze houden bij:
 houdige status



procesnummer
locatie in het geheugen
etc...
procesbesturingsblok  procesbeeld is de collectie van een programma (gegevens, systeemstack en
attributen)
Procesattributen
we kunnen de procesbesturingsblok informatie groeperen in 3 algemene categorieën:
 procesidentificatie
o elk proces heeft een uniek identificatienummer toegewezen
o veel andere tabellen die worden beheerd door het OS, kunnen procesindentificatie
gebruiken voor kruisverwijzingen naar procestabellen
 processortoestandsinformatie
o bestaat uit de inhoud van processorregisters
 registers die zichtbaar zijn voor de gebruikers
 stuur en statusregisters
 stackwijzers
o programmastatuswoord (PSW)
 bevat statusinformatie
 bv  EFLAGS register op een pentiumprocessor
 procesbesturingsinformatie
o dit is de aanvullende informatie die het besturingssysteem nodig heeft voor het
beheren en coördineren van diverse actieve processen
Rol van het procesbesturingsblok
 de belangrijkste gegevensstructuur in het OS  definieert de status van het OS
 het procesbesturingsblok heeft bescherming nodig:
o een fout in 1 routine kan procesbesturingsblokken beschadigen, waardoor het
systeem de desbetreffende processen niet meer kan beheersen
o een aanpassing van het ontwerp van de structuur of semantiek van het
procesbesturingsblok kan invloed hebben op meerdere modules in het OS
3.4 Procesbesturing
Uitvoeringsmodi
de meeste processors ondersteunen ten minste 2 modi voor uitvoering
gebruikersmodus:
 minder geprivilegieerde mode
 gebruikersprogramma's worden meestal in deze modus uitgevoerd
systeemmodus (kernel mode):
 meer geprivilegieerde mode
 kernel van het OS
Creëren van een proces
als het OS besloten heeft om een nieuw proces te creëren dan:
 wijst het OS een uniek procesidentificatie toe aan het nieuwe proces
 het OS wijst ruimte toe aan het proces
 het procesbesturingsblok moet worden geïnitialiseerd
 de juiste koppelingen moeten worden ingesteld
 soms moeten andere gegevensstructuren worden gemaakt of uitgebreid
Wisselen van processen
hierbij spelen verschillende ontwerpskwesties een rol:
 welke gebeurtenissen veroorzaken een proceswisseling
 we moeten het verschil herkennen tussen een moduswisseling en een proceswisseling
 wat moet het OS doen met de diverse gegevensstructuren die het beheert om een
proceswisseling te bereiken
Wanneer moeten processen gewisseld worden
mechanisme
oorzaak
Interrupt
Extern aan de uitvoering van
het huidige proces
Trap (val)
Verbonden aan de uitvoering
van de huidige instructie
Aanroep supervisor
Expliciet verzoek
gebruik
Reactie op een asynchrone,
externe gebeurtenis
Afhandelen van een fout of een
uitzonderlijke conditie
Aanroep van een functie van
het OS
Wisseling van procestoestand
stappen:
 het opslaan van de context van het proces, inclusief de programmateller en andere registers
 het bijwerken van het procesbesturingsblok van het afgebroken proces
 het verplaatsen van het betreffende procesbesturingsblok naar de juiste wachtrij
 het selecteren van een ander uit te voeren proces
 het bijwerken van het procesbesturingsblok van dit geselecteerde proces
 het bijwerken van de gegevensstructuren voor het geheugenbeheer
 het terugbrengen van de context van dit proces naar de originele context
Is het OS een proces?
Het OS is een programma dat uitgevoerd wordt door de processor. het OS geeft de besturing vaak uit
handen en is voor het terugkrijgen ervan afhankelijk van de processor  dit zijn kenmerken van een
proces
Procesloze kernel
het uitvoeren van de kernel van het OS buiten alle processen.
het concept van een proces wordt alleen toegepast op gebruikersprogramma's  de code van het
OS is uitgevoerd als een aparte entiteit die werkt in een geprivilegieerde modus (a)
Uitvoering binnen gebruikersprocessen
het uitvoeren van vrijwel alle software van het OS in de context van een gebruikersproces
(b)
Op processen gebaseerd OS
het implementeren van het OS als een verzameling systeemprocessen. (c)
Veiligheidsproblemen
 een OS associeert een set privileges met elk proces  hoogste level = administrator,
supervisor of root (wortel) toegang
 een sleutel veiligheidsprobleem in het ontwerpen van eender welk OS is om te voorkomen
dat iets toegang krijgt tot ongeauthoriseerde privileges op het systeem  vooral rootaccess
voorkomen
Systeemtoegang bedreiging
 indringers
o outsider  masquerader
o insider  misfaesor
o outsider or insider  clandestine gebruiker
 malware
Tegenmaatregelen: indringer detectie
 indringer detectie systemen zij meestal ontworpen om een menselijke indringer en malware
te ontdekken
 kan host- of netwerk gebaseerd zijn
 indringer detectie systemen (IDS) bevatten meestal
o sensoren
o analysatoren
o user interface
Tegenmaatregelen: authenticatie
2 stadia:
 identificatie
 verificatie
4 factoren:
 iets dat het individu weet
 iets dat het individu bezit
 iets dat het individu is
 iets dat het individu doet
Tegenmaatregelen: Toegangscontrole
 een policy die de bronnen beheert
 een veiligheids administrator die een authorizatie database beheerd
 een controlefunctie die controleert en een rapport bijhoudt van gebruikerstoegang tot
systeembronnen
Tegenmaatregelen: firewalls
traditioneel is een firewall een computer die:
 interfacet met computers buiten het netwerk
 heeft speciale veiligheidsvoorzorgsmaatregelen ingebouwd om gevoelige bestanden op
computers binnen het netwerk te beschermen
3.5 Procesbeheer in Unix SRV4
systeemprocessen  enkel kernel mode
gebruikersprocessen:
 werken in gebruikersmodus voor het uitvoeren van gebruikersprogramma's en
hulpprogramma's
 werken in kernel mode voor het uitvoeren van instructies die tot de kernel behoren
Unix procestoestand overgangsdiagram
Unix procestoestanden
User running
Kernel running
Ready to run, in memory
Asleep in memory
Ready to run, swapped
Uitvoering in gebruikersmodus
Uitvoering in kernelmodus
Gereed om te worden uitgevoerd zodra de
kernel het proces inroostert
Kan niet worden uitgevoerd totdat een
gebeurtenis optreedt, het proces bevindt zich in
het hoofdgeheugen
Het proces is gereed om te worden uitgevoerd,
maar de wisselaar moet het proces naar het
Sleeping, swapped
Preemted
Created
zombie
hoofdgeheugen swappen voordat de kernel het
kan inroosteren voor uitvoering
Het proces wacht op een gebeurtenis en is naar
secundaire opslag geswapt
Het proces keert terug van kernel- naar
gebruikersmodus, maar de kernel onderbreekt
het preemptief en voert een proceswisseling uit
om een ander proces in te roosteren
Het proces is zojuist gecreëerd en is nog niet
gered om te worden uitgevoerd
Het proces bestaat niet meer maar laat een
record achter voor verwerking door zijn
ouderproces
Procesbeschrijving
een proces in Unix is een tamelijk complexe verzameling gegevensstructuren die het OSvoorziet van
alle informatie, nodig voor het beheren en toedelen van processen
de elementen worden verdeeld in 3 delen:
 context op gebruikersniveau
 registercontext
 context op systeemniveau
Beheer van processen
in Unix wordt een proces gecreëerd met de systeemaanroef "fork()" in de kernel.
het OS doet daardoor:
 het wijst een positie (slot) in de procestabel toe aan het nieuwe proces
 het wijst een unieke procesidentificatiecode toe aan het kindproces
 het maakt een kopie van het procesbeeld van de ouder, met uitzondering van eventueel
gedeeld geheugen
 het verhoogt de tellers voor alle bestanden die in het bezit zijn van het ouderproces om aan
te geven dat een extra proces deze bestanden nu ook in het bezit heeft
 het plaatst het kindproces in een toestand "Ready to run"
 het geeft de identificatiecode van het kindproces terug aan het ouderproces en geeft een
waarde 0 aan het kindproces
Na de creatie
is de kernel klaar met deze functies dan kan hij een van de volgende bewerkingen uitvoeren, als
onderdeel van het toedelen (dispatching):
 in het ouderproces blijven
 de besturing overdragen aan het kindproces
 de besturing overdragen aan een ander proces
Download