Hoofdstuk 2: overzicht 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
Hoofdstuk 12: Bestandsbeheer
Overzicht
In de meeste toepassingen is het bestand het centrale element.
voor een gebruiker is het bestandssysteem een van de belangrijkste onderdelen van het OS.
bestanden hebben onder andere de volgende eigenschappen:
 langdurig bestaand
 deelbaar tussen processen
 structuur
Bestandsbeheer
Bestaat uit systeemhulpprogramma's die worden uitgevoerd als geprivilegieerde toepassingen.
Het bestandssysteem is geassocieerd met het secundaire geheugen.
de volgende functies zijn beschikbaar:
 maken
 wissen
 openen
 sluiten
 lezen
 schrijven
Bestandsstructuur
Vier begrippen:
 veld
o basiselement van gegevens
o bevat 1 waarde
o onderscheidt zijn door een lengte en een gegevenstype
 record
o verzameling van gerelateerde velden
o worden behandeld als een eenheid
 bestand
o verzameling vergelijkbare records
o behandeld als een enkele entiteit
o hebben unieke bestandsnamen
o toegangscontrole en restricties worden doorgaans toegepast op bestandsniveau
 database
o verzameling van gerelateerde gegevens
o er bestaan relaties tussen gegevenselementen
o database bestaat uit 1 of meerdere bestanden
Bestandsbeheersystemen
verzorgt diensten voor gebruikers en toepassingen bij het gebruiken van bestanden  de manier
waarop een gebruiker of toepassing toegang heeft tot bestanden.
De programmeur moet geen bestandsbeheersysteem programmeren.
bestandsbeheersysteem moet voldoen aan de volgende doelstellingen:
 voorzien in de behoeften en vereisten voor het gegevensbeheer van de gebruiker
 zoveel mogelijk garanderen dat de gegevens in bestanden geldig zijn
 prestaties optimaliseren
 voorzien in I/O-ondersteuning voor diverse soorten opslagapparaten
 minimaliseren of elimineren van de mogelijkheid dat gegevens verloren gaan of vernietigd
worden
 voorzien in een gestandaardiseerde verzameling interfaceroutines voor I/O
 ondersteuning van I/O bieden aan meerdere gebruikers bij systemen voor meerdere
gebruikers
voor een interactief systeem voor algemene doeleinden is het volgende een minimale verzameling
van eisen:
 elke gebruiker moet bestanden kunnen creëren, verwijderen en wijzigen
 elke gebruiker moet gecontroleerde toegang kunnen krijgen tot bestanden van andere
gebruikers
 elke gebruiker moet kunnen bepalen welke soorten toegang zijn toegestaan voor zijn
bestanden
 elke gebruiker moet de structuur van zijn bestanden kunnen aanpassen tot een vorm die
aansluit op het op to lossen probleem
 elke gebruiker moet gegevens kunnen verplaatsen tussen bestanden
 elke gebruiker moet een reservekopie van zijn bestanden kunnen maken en de bestanden in
geval van schade kunnen herstellen
 elke gebruiker moet toegang kunnen krijgen tot zijn bestanden via een symbolische naam
Architectuur van bestandssystemen
Apparaatstuurprogramma's
 communiceren op het laagste niveau
 communiceert rechtstreeks met randapparaten of hun controllers of kanalen
 verantwoordelijk voor het starten van I/O-bewerkingen op een apparaat
 verwerken van de voltooiing van een I/O-opdracht
Basisbestandssysteem
 Fysieke I/O genoemd
 basisinterface met de omgeving buiten het computersysteem
 behandelt de gegevensblokken die worden uitgewisseld met schijf- of tapeapparaten
 verzorgt de plaatsing van blokken
 verzorgt het bufferen van die blokken in het hoofdgeheugen
De supervisor voor basis-I/O
 verantwoordelijk voor het starten en beëindigen van alle bestand-I/O
 besturingsstructuren worden bijgehouden voor:
o apparaat-I/O
o scheduling
o bestandsstatus
 selecteert het apparaat waarop bestands-I/O wordt uitgevoerd
Logische I/O
 verschaft gebruikers en toepassingen toegang tot records
 vormt algemene voorziening voor record-I/O
 houd basisgegevens over bestanden bij
Toegangsmethode
 dichtste bij de gebruiker
 vormt een standaardinterface tussen toepassing en de bestandsysteem en apparaten die
gegevens bevatten
 er kunnen verschillende toegangsmethoden worden gebruikt voor verschillende
bestandsstructuren
Functies van bestandsbeheer
12.2 bestandsorganisatie en -toegang
Bestandsorganisatie
gebruikt voor de logische structuur van de records
wordt bepaald door de manier waarop bestanden worden benaderd
criteria voor bestandsorganisatie:
 korte toegangstijd
 gemak van bijwerken
 efficiënt gebruik van opslagruimte
 onderhoudsgemak
 betrouwbaarheid
de relatieve prioriteit van deze criteria is afhankelijk van de toepassingen die het bestand gebruiken
Het stapelbestand
 gegevens worden verzameld in de volgorde waarin ze binnenkomen  geen structuur
 de functie van de stapel is de gegevensmassa te vergaren en op te slaan
 records kunnen verschillende velden hebben
 recordtoegang vindt plaats door volledig zoeken
Het sequentieel bestand
 vaste indeling voor records
 records hebben dezelfde lengte
 alle velden zijn hetzelfde
 veldnamen en lengtes zijn attributen van het bestand
 sleutelveld
o unieke identificatie van het record
o records worden opgeslagen in sleutelvolgorde
Het index-sequentieel bestand
 behoudt het hoofdkenmerk van het sequentiële bestand  records zijn ingedeeld in
volgorde op basis van het sleutelveld
 2 kenmerken toegevoegd:
o een index naar het bestand voor het ondersteunen van willekeurige toegang
o een overloopbestand (overflow file)
Het geïndexeerd bestand
 gebruikt meerdere indexen voor verschillende sleutelvelden
o een volledige index bevat 1 ingang voor elk record in het hoofdbestand
o een gedeeltelijke index bevat ingangen voor records waarin het gewenste veld
voorkomt
 wordt een nieuw record toegevoegd aan het hoofdbestand dan moeten alle indexbestanden
worden aangepast
Het directe of hashed bestand
 heeft directe toegang tot elk blok met een bekend adres
 een sleutelveld is vereist voor elk record
12.3 Bestandsdirectory's
Inhoud
 bevat informatie over bestanden:
o attributen
o locatie
o eigendom
 de directory zelf is een bestand dat door allerlei bestandsbeheerroutines kan worden
benaderd
 voert een vertaalslag uit tussen bestandsnamen en de bestanden zelf
Informatie-elementen van een bestandsdirectory
 bestandsnaam
o naam zoals gekozen door de maker
o moet uniek zijn binnen een specifiek directory
 bestandstype
 bestandsorganisatie
o voor systemen die verschillende bestandsorganisaties ondersteunen
 volume
o geeft het apparaat aan waarop het bestand is opgeslagen
 beginadres
 gebruikte grootte
o huidige bestanddsgrootte in bytes, woorden of blokken
 toegewezen grootte
o maximale grootte van het bestand
 eigenaar
o eigenaar kan toegang toestaan of weigeren aan andere gebruikers en hun privileges
veranderen
 toegangsinformatie
o kan de naam en het wachtwoord van iedere geautoriseerde gebruiker bevatten
 toelaatbare acties
o controleert het lezen, schrijven, uitvoeren en verzenden via een netwerk
 datum gecreëerd
 identiteit van de maker
 datum laatste keestoegang
 identiteit van laatste lezer
 datum laatste wijziging
 identiteit voor laatste wijziging
 datum laatste reservekopie
 huidig gebruik
Structuur
de manier waarop de informatie wordt opgeslagen verschilt sterk van systeem tot systeem.
de eenvoudigste structuur voor een directory is die van een lijst van ingangen, met 1 ingang voor elk
bestand:
 een sequentieel bestand waarbij de naam van het bestand de sleutel is
 zorgt niet voor hulp in het organiseren van bestanden
 verplicht de gebruiker om niet dezelfde naam te gebruiken voor 2 verschillende bestanden
bewerkingen die op een directory worden uitgevoerd
 zoeken
 bestand creëren
 bestand verwijderen
 directory weergeven
 directory bijwerken
Schema met 2 niveaus
 1 directory voor iedere gebruiker en 1 hoofddirectory (master directory)
o de hoofddirectory bevat 1 ingang voor elke gebruiker
o bevat adres- en toegangscontrole-informatie
 elke gebruikersdirectory is een eenvoudige lijst met bestanden van die gebruiker
o verzorgt geen structuur voor verzamelingen van bestanden
Hiërarchische of een boomstructuur directory
 1 hoofddirectory met daarin enkele gebruikersdirectory's
 elke gebruikersdirectory kan op zijn beurt subdirectory's en bestanden bevatten
Naamgeving
 gebruikers moeten met een symbolische naam naar een bestand kunnen verwijzen
o elk bestand in het systeem moet een unieke naam hebben
 het gebruik van een boomstructuur verkleint de moeilijkheid van het toewijzen van unieke
namen
Werkdirectory
 de volledige padnaam spellen bij elke verwijzing naar een bestand is lastig
 doorgaans is aan een interactieve gebruiker of een proces een huidige directory verbonden
o vervolgens wordt relatief ten opzichte van de werkdirectory verwezen naar
bestanden
12.4 Gemeenschappelijk gebruik van bestanden
In een systeem met meerdere gebruikers vereist bijna altijd dat ebstanden gedeeld kunnen worden
door een aantal gebruikers  twee kwesties: toegangsrechten en het beheer van de gelijktijdige
toegang.
Toegangsrechten
 geen  de gebruiker weet wellicht niet dat het bestand bestaat
 kennis  de gebruiker kan vaststellen dat het bestand bestaat en wie zijn eigenaar is
 uitvoeren  de gebruiker kan een programma laden en uitvoeren met het niet kopiëren
 lezen  de gebruiker kan het bestand voor elk doel lezen, onder andere om het te kopiëren
of uit te voeren
 toevoegen  de gebruiker kan gegevens toevoegen aan het bestand, maar kan niets van de
inhoud van het bestand wijzigen of verwijderen
 bijwerken  de gebruiker kan gegevens in het bestand wijzigen, verwijderen en toevoegen
 beveiliging wijzigen  de gebruiker kan de toegangsrechten van andere gebruikers wijzigen
 verwijderen  de gebruiker kan het bestand verwijderen uit het bestandssysteem
Gebruikerscategorieën
 eigenaar
 specifieke gebruikers
 gebruikersgroepen
 alle
Gelijktijdige toegang
 de gebruiker kan het volledige bestand vergrendelen wanneer dat wordt bijgewerkt
 de gebruiker kan afzonderlijke records vergrendelen tijdens het bijwerken
 problemen met wederzijdse uitsluiting en deadlocks moeten opgelost worden
12.5 Blokvorming van records
records zijn de logische eenheid bij toegang tot een bestand, terwijl blokken de eenheid zijn van I/O
met secundaire opslag
3 methoden zijn bekend voor blokvorming:
 blokvorming met vaste lengte
o gebruik van records met vaste lengte en er wordt een geheel aantal records
opgeslagen in een blok
o er kan ongebruikte ruimte zijn aan het einde van elk blok  interne fragmentatie
 gekoppelde blokvorming met variabele lengte
o gebruik van records met variabele lengte en deze worden samengepakt in blokken
o sommige records kunnen daarbij 2 blokken omspannen  vervolg wordt aangeduid
door een verwijzing naar het volgende blok
 niet-gekoppelde blokvorming met variabele lengte
o gebruik van records met variabele lengte
o de meeste blokken bevatten loze ruimte, omdat het onmogelijk is de rest van een
blok te gebruiken als de volgende record groter is dan de resterende, ongebruikte
ruimte
12.6 Beheer van secundaire opslag
het OS is verantwoordelijk voor het toewijzen van blokken aan bestanden
2 aandachtspunten:
 de ruimte moet op secundaire opslag worden toegewezen aan bestanden
 het is noodzakelijk bij te houden welke ruimte beschikbar is voor toewijzing
Bestandstoewijzing
verschillende kwesties:
 als een nieuw bestand wordt gecreëerd, wordt de maximumruimte die vereist is voor het
bestand dan in 1 keer toegewezen?
 ruimte wordt toegewezen aan een bestand als 1 of meer aaneengesloten eenheden (porties)
 welke soort gegevensstructuur of -tabel wordt gebruikt voor het bijhouden van de porties die
aan een bestand zijn toegewezen?
Toewijzing vooraf of dynamisch?
 vereist dat de maximale grootte van een bestand wordt gedeclareerd bij het verzoek om
creatie van het bestand
 het is moeilijk de mogelijke maximale grootte van het bestand betrouwbaar te schatten
 programmeurs hebben de neiging de bestandsgrootte te overschatten om te voorkomen dat
ze ruimte tekortkomen
Portiegrootte
2 uitersten:
 portie wordt toegewezen die groot genoeg is voor het hele bestand
 ruimte toegewezen op de schijf met 1 blok tegelijk
Bij het kiezen van de portiegrootte moet een balans worden gevonden tussen de efficiëntie, gezien
vanuit 1 bestand en de algehele systeemefficiëntie
Methoden van bestandstoewijzing
3 methoden:
 aaneengesloten toewijzing (contiguous allocation)
o aaneengesloten verzameling blokken worden toegewezen aan een bestand op het
moment van creatie
o de tabel voor bestandstoewijzing hoeft slechts 1 ingang voor elk bestand te bevatten
 die het beginblok en de lengte van het bestand aangeeft
o externe fragmentatie  slechts 1 blok tegelijk nodig
 kettingtoewijzing
o lokaliteit op basis van een individueel blok
o elke blok heeft een pointer die verwijst naar de volgende blok in de ketting
o 1 ingang in de bestandstoewijzingstabel  startblok en lengte van bestand
o geen externe framentatie
o beste voor sequentiële bestanden

indextoewijzing
o de bestandstoewijzingtabel bevat een afzonderlijke index van 1 niveau voor elk
bestand
o de index heeft 1 ingang voor elke portie die aan het bestand is toegewezen
o de bestandstoewijzingtabel bevat bestandsindex voor een bestand dat bijgehouden
word in een apart blok
o de toewijzing kan gebeuren op basis van:
 blokken met vaste grootte
 blokken met variabele grootte
o toewijzing in blokken voorkomt externe fragmentatie
o toewijzing in porties met variabele grootte verbetert de lokaliteit
o in beide gevallen kunnen bestanden zo nu en dan samengevoegd worden
Beheer van vrije ruimte
 net zoals de ruimte die aan bestanden is toegewezen moet worden beheerd, moet ook de
vrije ruimte beheerd worden
 voor het uitvoeren van bestandstoewijzing is het noodzakelijk dat bekend is welke blokken
op schijf beschikbaar zijn
 we hebben daarom naast een tabel voor bestandstoewijzing een tabel voor schijftoewijzing
nodig
Bittabel
De methode met een bittabel maakt gebruik van een vector die 1 bit bevat voor elke blok op schijf.
elke ingang met 0 komt overeen met een vrij blok en elke 1 komt overeen met een blok dat in
gebruik is.
voordelen:
 werkt goed met bestandstoewijzingsmethoden
 bittabel is zo klein als het maar kan
Vrije porties in een ketting
de vrije porties kunnen aaneengeketend zijn door in elke vrije portie een wijzer en een lengtewaarde
te gebruiken.
de methode heeft een verwaarloosbare ruimteoverhead.
de methode is geschikt voor alle vormen van bestandstoewijzing.
 leidt tot fragmentatie
indextabel
de indexmethode behandelt vrije ruimte als een bestand en gebruikt een indextabel zoals is
beschreven bij bestandstoewijzing.
vanwege de efficiëntie moet de index zijn gebaseerd op porties met variabele grootte en niet op
blokken  de tabel bevat dus 1 ingang voor elke vrije portie op de schijf.
Deze aanpak zorgt voor een efficiënte ondersteuning bij alle vormen voor bestandstoewijzing
Lijst met vrije blokken
ieder blok krijgt een opeenvolgend nummer toegewezen  de lijst met nummers van alle vrije
blokken wordt bijgehouden in een gereserveerd gedeelte van de schijf
Volumes
een verzameling van adresseerbare sectoren in het secundaire geheugen dat een OS of toepassing
kan gebruiken voor dataopslag.
De sectoren in een volume moeten niet opeenvolgend zijn op een fysiek opslagtoestel.
een volume kan het resultaat zijn van assembleren en samenvoegen van kleinere volumes
Toegangsbeheer
 bij het succesvol aanmelden op het systeem is de gebruiker geïdentificeerd
 het OS kan dan regels opleggen  toegang geven tot bestanden en toepassingen
 het OS moet een set regels afdwingen  een van deze set regels is een toegangsmatrix
Toegangsbeheerlijsten
 een matrix kan ontbonden worden in kolommen
 dit geeft een toegangsbeheerlijst (ACL) voor elk bestand
Vermogenlijsten
 een matrix ontbonden in rijen geeft vermogenlijsten  specificeert geautoriseerde objecten
en verrichtingen voor een gebruiker
12.7 Bestandsbeheer in Unix
6 verschillende types bestanden:
 ordinary
 directory
 special
 named pipes
 links
 symbolic links
Inodes
 informatieknooppunt
 besturingsstructuur die de sleutelinformatie bevat die het OS nodig heeft voor een bepaald
bestand

er kunnen verschillende bestandsnamen worden verbonden met 1 inode  maar een
inactieve inode is met precies 1 bestand verbonden en elk bestand wordt bestuurd door
precies 1 inode.
Bestandstoewijzing
 bestandstoewijzing uitgevoerd op basis van blokken
 de toewijzing is dynamisch  blokken mogen niet aangrenzend zijn
 de indexmethode wordt gebruikt voor het beheer van elk bestand  een deel van de index
is opgeslagen in de inode voor het bestand
 de inode heeft meerdere directe verwijzingen en 3 indirecte verwijzingen (pointers)
Directory's
directory's zijn bestanden die bevatten:
 een lijst van bestandsnamen
 pointers naar inodes
Unix bestandstoegangbeheer
De bestanden zijn geassocieerd met toestemmingen voor:
 gebruikersID
 groepID
 alle anderen
12.8 Virtueel bestandssysteem in Linux



1 uniform bestandssysteeminterface gebruikt voor de gebruikersprocessen
stelt de algemene werking en het algemeen gedrag van elk denkbaar bestandssysteem voor
te stellen
het gaat ervan ui dat bestanden objecten zijn in het massageheugen van een computer die
elementaire eigenschappen met elkaar gemeen hebben, ongeacht het uiteindelijke
bestandssysteem of de onderliggende processorsoftware
hoofdonderdelen van een virtueel bestandssysteem strategie (VFS)
een gebruikersproces roept een bestandssysteemfunctie aan het behulp van het VFS:
 het VFS converteert deze aanroep naar een interne bestandssysteemaanroep
 deze wordt doorgegeven aan een verwijzingsfunctie voor een specifiek bestandssysteem
De rol van VFS binnen de kernel
de 4 primaire objecten in VFS zijn:
 superblokobject  representeert een specifiek gemount bestandssysteem
 inode-object  representeert een specifiek bestand
 dentry-object  representeert een specifiek element in een directory
 bestandsobject  representeert een geopend bestand dat is gekoppeld aan een proces
12.9 Het bestandssysteem van Windows
hoofdonderdelen van NTFS (New Technology File System):
 recupereerbaarheid
 beveiliging
 grote schijven en grote bestanden
 meervoudige gegevensstromen
 journaling
 algemene indexeringsvoorziening
Volume- en bestandsstructuur in NTFS
 sector
o de kleinste fysieke opslageenheid op de schijf


o bijna altijd 512 bytes
cluster
o een of meer aangesloten sectoren
volume
o logische partitie op schijf
Volume-indeling van NTFS
elk element op een volume is een bestand en elk bestand bestaat uit een verzameling attributen,
zelfs de gegevensinhoud van een bestand bestaat uit een verzameling attributen.
Download