2010 samenvatting van Onbekend
Hoofdstuk 1 Overzicht van computersystemen
Interrupts
Onderbreken de normale verwerking van een processor
De meeste I/O apparaten zijn trager dan de processor, de processor moet dus wachten op het apparaat. -> verspilling van processortijd
4 klassen van Interrupts:
- Programma: resultaat van uitvoering van een instructie. Bv delen door nul
- Timer: gegenereerd door een timer binnen de processor
- I/O: gegenereerd door een I/O-controller om de normale voltooiing van een bewerking of foutcondities te melden
- Hardwarefout: geheugenpariteitsfout, uitvallen van stroom, ..
Processor controleert of er een interrupt is opgetreden, indien dit zo is dan onderbreekt de processor het huidige programma en voert hij een routine uit voor interruptafhandeling
Interruptverwerking
1. Apparaatcontroller of andere systeemhardware geeft een interrupt
2. Processor voltooit de uitvoering van de huidige instructie
3. Processor bevestigt de ontvangst van de interrupt
4. Processor plaatst het programmastatuswoord (PSW) en de programmateller (PC) op de besturingsstack
5. Processor laadt nieuwe PC-waarde op basis van de interrupt
6. Sla het restant van de informatie over de processtatus op
7. Verwerk de interrupt
8. Herstel de informatie over de processtatus
9. Herstel het oude PSW en de oude PC
1 te.m. 5: Hardware
6 t.e.m. 9: Software
Multiprogramming
Processor heeft meer dan één programma om uit te voeren. Als de processor wacht op een I/O-module, gaat hij beginnen aan de uitvoering van een ander proces. Krijgt hij een interrupt dan gaat hij terug naar de eerste. Volgorde hangt af van hun relatieve prioriteit.
Komt er dus hierna een ander programma met hogere prioriteit, zal het tweede programma moeten wachten.
I/O technieken
1. Geprogrammeerde I/O
I/O-module doet de gevraagde actie, bv enkele bytes in buffer plaatsen. Hierna plaatst het de juiste bits in het I/O statusregister. Er komt geen interrupt. De processor moet regelmatig kijken of de I/O-instructie voltooid is.
=> tijdsverslindend proces dat de processor onnodig bezighoudt
2. Interruptgestuurde IO
I/O-module stuurt een interrupt wanneer het klaar is om gegevens uit te wisselen. Processor slaat context van het huidige programma op en begint aan de interruptafhandeling
=> Geen nodeloos wachten, maar gebruikt nogaltijd veel processortijd doorat de processor elk geschreven of gelezen woord langs de processor moet.
3. Directe geheugentoegang (DMA)
Verstuurt een blok data meteen van of naar het geheugen. Een interrupt wordt gestuurd wanneer de overdracht compleet is. Dit is veel efficiënter.
Hoofdstuk 2 Overzicht van besturingssystemen
Besturingssysteem: Programma dat de uitvoering van toepassingsprogramma’s regelt en de functie vervult van een interface tussen de gebruiker van de computer en de computerhardware.
Drie doelstellingen:
- Gemak: gemakkelijker te gebruiken
- Efficiëntie: Systeembronnen efficiënt gebruiken
- Flexibiliteit: ontwikkelen,testen en introduceren van nieuwe systeemfuncties mogelijk
Besturingssysteem verzorgt volgende diensten:
- Ontwikkelen van programma’s
o Editors en debuggers
- Uitvoeren van programma’s
- Toegang tot I/O-apparaten
- Beheerde toegang tot bestanden
- Toegang tot het systeem
- Opsporen en afhandelen van fouten
o Interne en externe hardwarefouten
o Softwarefouten
o Verzoek van toepassing waaraan het besturingssysteem niet aan kan voldoen
- Administratie
o Gebruiksstatistieken
o Prestatieparameters bewaken
o Anticiperen op behoefte
o Toerekenen van kosten
Het besturingssysteem is verantwoordelijk voor beheer van systeembronnen.
Het werkt hetzelfde als gewone computersoftware: het is een programma dat wordt uitgevoerd door de processor.
Het geeft de besturing veelvuldig uit de handen en is voor het terugkrijgen afhankelijk van de processor.
Kernel
Deel van het besturingssysteem dat zich in het hoofdgeheugen bevindt.
Het bevat de meest gebruikte functies. Wordt ook wel eens nucleus genoemd.
Evolutie van besturingssystemen
Een besturingssysteem zal zich om een aantal redenen in de loop van de tijd ontwikkelen:
- Hardwarevernieuwing en nieuwe typen hardware. Bv Paginerende hardware, grafische werkstations
- Nieuwe diensten: wensen van gebruikers
- Verbeteringen: verbeteren van fouten in BS
Seriële verwerking
Men werkte meteen met de hardware, er was geen besturingssysteem. Het werd bestuurd via een bedieningspaneel met lampjes, schakelaars, een invoerapparaat en een printer.
Twee problemen:
- Scheduling: reserveren van machinetijd. Reserveerde je een uur, en had je maar 45 min nodig was het verspilling, had je meer nodig, dan moest je stoppen.
- Insteltijden: één programma bestond uit meerdere stappen, zat hier een fout in, dan moest je teruggaan naar het begin.
Eenvoudige batchsystemen
Gebruik van een monitor. Dit is software die de volgorde controleerde. Gebruiker gaf meerdere opdrachten aan operator, deze maakte hier een batch van en gaf deze aan de monitor. Na uitvoering hiervan werd er teruggegaan naar de monitor die dan weer verder ging met het volgende programma.
Job Control Language: Speciaal type van programmeertaal (jobbesturingstaal) die wordt gebruikt voor het opgeven van instructies aan de monitor. Zoals welke compiler te gebruiken, welke data te gebruiken.
Hardwaremogelijkheden:
- Geheugenbeveiliging: Een gebruikersprogramma mag het geheugengebied met de monitor niet wijzigen
- Timer: Een taak krijgt maar een bepaalde tijd voor een taak, verloopt deze wordt er een interrupt gestuurd.
- Geprivilegieerde instructies: Sommige instructies mogen enkel door de monitor uitgevoerd worden
- Interrupts: interrupts verhogen de flexibiliteit bij het afstaan en verkrijgen van besturing aan en van gebruikersprogramma’s
Geheugenbeveiliging:
Gebruikersprogramma’s worden uitgevoerd in gebruikersmodus: bepaalde instructies mogen niet uitgevoerd worden.
Monitor wordt uitgevoerd in kernelmodus: geprivilegieerde instructies mogen uitgevoerd worden, beveiligde geheugengebieden mogen benaderd worden.
Timesharing systemen
Multiprogramming gebruiken om meerdere interactieve jobs af te handelen. Meerdere gebruikers gebruiken hetzelfde systeem dmv terminals. Elke gebruiker krijgt kleine periodes van processortijd wanneer dit nodig is.
Belangrijke prestaties
Vijf belangrijke intellectuele prestaties verricht op het gebied van:
- Processen
- Geheugenbeheer
- Bescherming en beveiliging van informatie
- Scheduling en beheer van bronnen
- Systeemstructuur
Processen
- Een programma dat wordt uitgevoerd
- Een geactiveerd programma dat op een computer draait
- De entiteit die kan worden toegewezen aan en worden uitgevoerd door de processor
- Een eenheid van activiteit die word gekenmerkt door een enkelvoudige sequentiële verwerking (thread), een actuele toestand en een aantal bijbehorende systeembronnen
Vier hoofdoorzaken van fouten:
- Onjuiste synchronisatie: proces wacht op I/O maar signaal komt niet of dubbel aan
- Mislukte wederzijdse uitsluiting: Twee processen mogen niet hetzelfde bestand tegelijk aanpassen
- Niet-vastomschreven programmawerking: als er gedeeld geheugen is tussen 2 programma’s, en een van de twee overschrijft dit op onvoorstelbare wijze, kan het andere onstabiel worden.
- Dodelijke omarming (deadlock): twee programma’s zitten vast omdat ze op elkaar wachten.
Proces bestaat uit drie delen:
- Een uitvoerbaar (executable) programma
- De bijbehorende gegevens die het programma nodig heeft (variabelen, werkruimte, buffers)
- Uitvoeringscontext van het programma (inhoud gegevensregisters, programmateller, prioriteit,..)
Geheugenbeheer
Vijf hoofdtaken:
- Procesisolatie: onafhankelijke processen mogen elkaars geheugen niet verstoren
- Automatische toewijzing en beheer: programma’s moeten juist verdeeld worden over geheugenhiërarchie
- Ondersteuning van modulair programmeren
- Bescherming en toegangsbeheer
- Langetermijnopslag
Virtueel geheugen
- Zorgt voor opslag op lange termijn, informatie word opgeslagen in bestanden
- Geheugen op logisch niveau adresseren
Paginering
- Proces opdelen in een aantal blokken van vaste lengte (pagina’s)
- Virtueel adres bestaat uit paginanummer en een relatieve locatie binnen de pagina (offset)
- Een pagina kan zich overal in het hoofdgeheugen bevinden
- Reëel adres is het geheugenadres
Bescherming en beveiliging van informatie
Vier categorieën:
- Beschikbaarheid: beveiligen van systeem tegen onderbrekingen
- Vertrouwelijkheid: Geen gegevens lezen waarvoor ze geen toestemming hebben
- Gegevensintegriteit: bescherming van gegevens tegen ongewenst gebruik
- Authenticiteit: correcte verificatie van identiteit en geldigheid van gegevens
Scheduling en beheer van bronnen
Drie overwegingen:
- Rechtvaardigheid: evenredige en rechtvaardige toegang tot een bron
- Gedifferentieerd reactievermogen: onderscheid maken tussen verschillende klassen taken die een andere afhandeling vereisen. Bv I/O voorlaten om het apparaat vrij te maken voor andere processen
- Efficiëntie: Doorvoer maximaliseren, antwoordtijd minimaliseren en zoveel mogelijk gebruikers tegelijk ondersteunen
Systeemstructuur
Het systeem is een serie van niveaus. Elk niveau heeft een eigen deelverzameling van functies. Elk niveau is afhankelijk van het volgende lagere niveau voor meer primitieve functies.
Dit splitst het probleem in beter hanteerbare deelproblemen.
Moderne besturingssystemen
Microkernelarchitectuur
Slechts enkele essentiële functies worden toegewezen aan de kernel. Waaronder adresruimten, communicatie tussen processen (IPC) en basisscheduling. Rest wordt afgehandeld door servers.
Multithreading
Proces wordt onderverdeeld in draden die tegelijkertijd kunnen uitgevoerd worden.
Een draad is een inzetbare eenheid werk, het wordt sequentieel uitgevoerd. Een proces is een verzameling van een of meer threads.
Symmetrische multiprocessing
- Meerdere processors
- Deze processors delen hetzelfde hoofdgeheugen en dezelfde I/O-voorzieningen
- Alle processors kunnen dezelfde functies uitvoeren
Het besturingssysteem van een SMP verdeelt processen of threads over alle processors.
Voordelen:
- Prestaties: meerdere processen tegelijkertijd actief
- Beschikbaarheid: het uitvallen van één processor stopt het systeem niet
- Stapsgewijze groei: de prestaties kunnen verbeteren door extra processoren toe te voegen
- Schaalbaarheid
Hoofdstuk 3 Beschrijving en besturing van processen
Vereisten waaraan een besturingssysteem moet voldoen in termen van processen:
- Het besturingssysteem moet de uitvoering van meerdere processen verweven om de processortijd te maximaliseren en tegelijk zorgen voor een aanvaardbare antwoordtijd.
- Het besturingssysteem moet bronnen toewijzen aan processen
- Communicatie tussen processen en creëren van processen door de gebruiker ondersteunen
Wat is een proces?
Concepten
1. Een computer bestaat uit een verzameling hardwarebronnen
2. Computerprogramma’s zijn ontwikkeld om een bepaalde taak uit te voeren
3. Het is inefficiënt om toepassing te schrijven voor een specifiek computersysteem
4. Het besturingssysteem werd ontwikkeld als veilige en consistente interface voor toepassingen
5. Het besturingssysteem is een uniforme, abstracte representatie van bronnen die door toepassingen benut kunnen worden.
Beheren van uitvoering van toepassingen:
- Bronnen beschikbaar maken voor verschillende toepassingen
- Fysieke processor schakelt tussen verschillende toepassingen, zodat deze allemaal verder worden uitgevoerd
- Processor en I/O-apparaten efficiënt kunnen worden gebruikt
Elementen van een proces:
- Identificatienummer
- Toestand
- Prioriteit
- Programmateller
- Geheugenwijzers
- Contextgegevens
- I/O-toestandinformatie
- Beheersinformatie
Dit wordt opgeslagen in een procesbesturingsblok. Dit wordt gecreëerd en beheerd door het besturingssysteem. Hierdoor is multiprogrammering mogelijk, de huidige waarden worden dan opgeslagen in het procesbesturingsblok.
Procestoestanden
Spoor van een proces: Volgorde van instructies die voor dat proces worden uitgevoerd
Dispatcher wijst de processor wisselend toe aan een ander proces.
Procesmodel met twee toestanden
Proces kan zich in twee toestanden bevinden: Actief en niet-actief
Creëren van processen
Redenen:
- Nieuwe batchtaak
- Interactieve aanmelding
- Gecreëerd door het besturingssysteem om een dienst te verzorgen
- Verwekt door een bestaand proces
Beëindigen van processen
Redenen:
- Normale voltooiing
- Tijdslimiet overschreden
- Onvoldoende geheugen beschikbaar
- Overtreding geheugengrens
- Beschermingsfout
- Rekenkundige fout
- Tijd verstreken
- I/O-fout
- Ongeldige instructie
- Geprivilegieerde instructie
- Onjuist gebruik van gegevens
- Ingreep van de gebruiker of het besturingssysteem
- Beëindiging van het ouderproces
- Verzoek van het ouderproces
Procesmodel met vijf toestanden
De dispatcher kan niet zomaar het proces selecteren dat het langst in de wachtrij zit want het kan op geblokkeerd staan.
- Actief
- Gereed
- Geblokkeerd
- Nieuw
- Einde
Opgeschorte processen
De processor is sneller dan I/O, dus alle processen zouden op I/O kunnen wachten. Deze programma’s worden verplaatst van het hoofdgeheugen naar een wachtrij Opgeschort op de schijf zodat er plaats is voor andere processen.
Twee nieuwe toestanden:
- Geblokkeerd – opgeschort: het proces bevindt zicht in het secundaire geheugen en wacht op een gebeurtenis
- Gereed – opgeschort: het proces bevindt zich in het secundaire geheugen maar is beschikbaar voor uitvoering zodra het in het hoofdgeheugen is geladen
Definitie:
1. Het proces is niet onmiddellijk beschikbaar voor uitvoering
2. Het proces kan al of niet wachten op een gebeurtenis. Wacht het, dan is deze toestand Geblokkeerd onafhankelijk van de toestand Opgeschort en zal het optreden van de blokkerende gebeurtenis het proces niet automatisch geschikt maken voor uitvoering
3. Het proces werd in de toestand Opgeschort geplaatst door het proces zelf of door een ander (ouderproces of besturingssysteem) om de uitvoering van het proces te verhinderen
4. Het proces kan deze toestand niet verlaten tenzij een ander hiervoor expliciet een opdracht geeft
Redenen voor het opschorten van processen:
- Swapping
- Andere reden van het besturingssysteem
- Verzoek van een interactieve gebruiker
- Timing
- Verzoek van het ouderproces
Beschrijvingen van processen
Beheersstructuren in het besturingssysteem
Om te beheren moet het besturingssysteem informatie bezitten over de huidige status van elk proces en elke bron. Hiervoor maakt en onderhoudt het tabellen met informatie over elke entiteit die het beheert.
Geheugentabellen bevatten volgende informatie:
- De toewijzing van hoofdgeheugen aan processen
- De toewijzing van secundair geheugen aan processen
- Eventuele beschermingsattributen van segmenten voor toegang tot gedeelde geheugengebieden
- Alle informatie die nodig is voor het beheren van het virtuele geheugen
I/O-tabellen worden gebruikt voor het beheren van I/O-apparaten en kanalen. Een apparaat kan op een bepaald moment beschikbaar of toegewezen zijn. Wordt er een I/O-bewerking uitgevoerd, dan moet het besturingssysteem kennis hebben van de status van de bewerking. Ook de locatie in het hoofdgeheugen die als bron of bestemming van de I/O-opdracht wordt gebruikt.
Bestandstabellen verschaffen informatie over het bestaan van bestanden, hun locatie, hun huidige status en andere attributen. Een groot deel hiervan wordt bijgehouden door het bestandsbeheersysteem.
Procestabellen worden bijgehouden om processen te beheren. Het bevat de locatie van het proces en de volgende attributen:
- Programma
- Gegevens
- Stack
Dit geheel noemen we het procesbeeld (process image).
Procesbesturingsblok
Procesidentificatie
Identificatiecodes
- Identificatiecode van proces
- Identificatiecode van het ouderproces
- Identificatiecode van gebruiker
Processortoestandsinformatie
Registers die zichtbaar zijn voor de gebruiker
Stuur en statusregisters
- Programmateller
- Conditiecodes
- Statusinformatie
Stackwijzers
Procesbesturingsinformatie
Scheduling en toestandsinformatie
- Procestoestand
- Prioriteit
- Scheduling gerelateerde informatie
- Gebeurtenis
Gegevensstructuur
Communicatie tussen processen
Procesprivileges
Geheugenbeheer
Eigendom en gebruik van bronnen
Procesbesturing
Creëren van processen
1. Het besturingssysteem wijst een unieke procesidentificatie toe aan het nieuwe proces
2. Besturingssysteem wijst ruimte toe aan het proces
3. Het procesbesturingsblok moet worden geïnitialiseerd
4. De juiste koppelingen moeten worden ingesteld
5. Soms moeten andere gegevensstructuren worden gemaakt of uitgebreid
Wisselen van processen
Wanneer wisselen?
- Klokinterrupt: proces heeft maximale tijd overschreden
- I/O-interrupt: I/O-actie is opgetreden
- Geheugenfout: verwijzing naar woord in virtuele geheugen dat zich niet in het hoofdgeheugen bevindt.
- Val: Een fout of uitzonderingsconditie wordt gegenereerd. Kan proces naar Einde-status brengen
- Supervisoraanroep: bv het openen van een bestand
Wisselen van status
- Opslaan van context van processor
- Aanpassen van procesbesturingsblok van het actieve proces
- Procesbesturingsblok verplaatsen naar juiste wachtrij (Gereed, geblokkeerd, ..)
- Ander proces selecteren
- Procesbesturingsblok van geselecteerd proces aanpassen
- Bijwerken van gegevensstructuren voor het geheugenbeheer
- Context van dit proces terugbrengen naar oorspronkelijke staat
Uitvoering van het besturingssysteem
Procesloze kernel: uitvoeren van kernel buiten alle processen. Het besturingssysteem wordt uitgevoerd als een afzonderlijke entiteit die werkt in een geprivilegieerde modus.
Uitvoering binnen gebruikersprocessen: uitvoeren in de context van een gebruikersproces. Er is een aparte stack voor beheren van aanroepen ren returns terwijl het zich in kernelmodus bevindt.
Op processen gebaseerd besturingssysteem
Het besturingssysteem is een verzameling van systeemprocessen. Nuttig in een omgeving met meerdere processors of computers.
Hoofdstuk 12 Bestandsbeheer
Bestandsbeheersystemen bestaan uit systeemhulpprogramma’s die worden uitgevoerd in kernelmodus.
Overzicht
Bestanden en bestandssystemen
Drie eigenschappen van bestanden:
- Langdurig bestaand
- Deelbaar tussen processen
- Structuur
Volgende functies zijn beschikbaar:
- Maken
- Wissen
- Openen
- Sluiten
- Lezen
- Schrijven
Vier begrippen:
• Veld
- Basiselement van gegevens
- Bevat één waarde
- Onderscheidt zich door een lengte en een gegevenstype
• Record
- Collectie van gerelateerde velden
- Wordt behandeld als een eenheid
• Bestand
- Een verzameling vergelijkbare records
- Één entiteit
- Bestandsnaam
- Toegangscontrole mogelijk
• Database
- Verzameling gerelateerde gegevens
- Expliciete relaties aanwezig tussen gegevenselementen
Standaardbewerkingen:
- Retrieve_All
- Retrieve_One
- Retrieve_Next
- Retrieve_Previous
- Insert_One
- Delete_One
- Update_One
- Retrieve_Few
Systemen voor bestandsbeheer
Manier waarop gebruiker of toepassing een bestand mag benaderen. Programmeur moet geen speciale software ontwikkelen voor elke toepassing.
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
Minimale verzameling van eisen:
- Elke gebruiker moet bestanden kunnen creëren, verwijden en wijzigen
- Elke gebruik 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 te 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 kunne krijgen tot zijn bestanden via een symbolische naam
Architectuur van bestandssystemen
Apparaatstuurprogramma’s
- Communiceert op laagste niveau rechtstreeks met randapparaten
- Verantwoordelijk voor starten van I/O-bewerkingen en verwerken van voltooiing
Basisbestandsysteem is het volgende niveau
- Fysieke I/O
- Behandelt de gegevensblokken die worden uitgewisseld
- Verzorgt plaatsing van blokken en bufferen van die blokken
Supervisor voor basis-I/O
- Verantwoordelijk voor het starten en beëindigen van alle bestand-I/O
- Houdt besturingsstructuren bij
- Selecteert apparaat waarop I/O wordt uitgevoerd
- Verzorgt scheduling van toegangen om prestaties te optimaliseren
- Onderdeel van besturingssysteem
Logische I/O
- Verschaft gebruikers toegang to records
- Algemene voorziening voor record-I/O
- Houdt basisgegevens over bestanden bij
Toegangsmethode
- Verschillende toegangsmogelijkheden voor verschillende structuren en verschillende methoden om gegevens te verwerken en lezen
Functies van bestandsbeheer
- Geselecteerd bestand identificeren en vinden
- Gebruiken van directory die de locatie van alle bestanden beschrijft plus bijbehorende attributen
- Op een gedeeld systeem zorgen voor toegangscontrole van gebruikers
- Gebruik maken van blokken voor toegang tot bestanden
- Bestanden toewijzen aan vrije blokken
- Beheren van vrije opslagruimte zodat bekend is welke blokken beschikbaar zijn
Bestandsorganisatie en –toegang
Bij het kiezen van een bestandsorganisatie zijn diverse criteria belangrijk:
- Korte toegangstijd
- Gemak van bijwerken
- Efficiënt gebruik van opslagruimte
- Onderhoudsgemak
- betrouwbaarheid
- Korte toegangstijd
Stapelbestand
- Data wordt opgeslagen in volgorde waarin het binnenkomt
- Functie is slechts gegevensmassa te vergaren en op te slaan
- Records kunne verschillende velden hebben
- Geen structuur
- Om een record te zoeken moet het heel bestand doorzocht worden
Sequentieel bestand
- Vast formaat voor records
- Alle records hebben dezelfde lengte
- Alle velden zijn dezelfde(lengte en positie)
- Veldnaam en lengte zijn attributen
- Een bepaald veld wordt sleutelveld genoemd
- Unieke identificatie
- Records opgeslagen in sleutelvolgorde
- Nieuwe records worden in een logbestand geplaatst
- Batchverwerking wordt uitgevoerd om beide bestanden samen te voegen
Index-sequentieel bestand
- Index voorziet in een opzoekmogelijkheid waarmee snel de nabijheid van de gewenste record kan worden bereikt
- Bevat sleutelveld en verwijzing naar hoofdbestand
- Index wordt doorzocht naar hoogste sleutelwaarde die gelijk of kleiner is dan de gewenste sleutelwaarde
- Zoektocht gaat verder in hoofdbestand op positie aangeduid door verwijzing
- Vergelijking tussen sequentieel en index-sequentieel
- Bv een sequentieel bestand van één miljoen records. Het zoeken naar een bepaalde sleutelwaarde vereist gemiddeld een half miljoen recordtoegangen. Als er nu echter een index met duizen ingangen wordt gemaakt. Dan kost het zoeken van de records gemiddeld 500 toegangen tot het indexbestand, en dan nog eens 500 tot het hoofdbestand. De gemiddelde zoeklengte wordt dus verminderd van een half miljoen tot duizend.
- Nieuw record wordt toegevoegd aan een overloopbestand
- Record in hoofdbestand dat dit voorafgaat wordt aangepast met een verwijzing naar overloopbestand
- Bestanden worden samengevoegd bij een batchverwerking
- Meerdere indexen voor het zelfde sleutelveld is mogelijk
Geïndexeerd bestand
- Bevat meerdere indexen voor verschillende sleutelvelden
- Kan een index bevatten met een verwijzing naar elke record
- Kan een gedeeltelijke index bevatten
Direct of hashed bestand
- Directe toegang tot een blok op een gekend adres
- Sleutelveld nodig voor elke record
Bestandsdirectory’s
Bevat informatie over bestanden:
- Attributen
- Locatie
- Eigenaarschap
Directory is een bestand beheerd door het besturingssysteem.
Verzorgt vertaalslag tussen bestandsnamen en bestanden zelf
Informatie-elementen van een directory:
Basisinformatie
- Bestandsnaam
- Bestandstype
- Bestandsorganisatie
Adresinformatie
- Volume
- Beginadres
- Gebruikte grootte
- Toegewezen grootte
- Eigenaar
- Toegangsinformatie
- Toelaatbare acties
Gebruiksinformatie
- Datum gecreëerd
- Identiteit van maker
- Datum laatste leestoegang
- Identiteit van laatste lezer
- Datum laatste wijziging
- Identiteit voor laatste wijziging
- Datum laatste reservekopie
- Huidig gebruik
Simpele structuur
- Lijst van ingangen, één ingang voor elk bestand
- Sequentieel bestand met de naam van elk bestand dat dienst doet als sleutel
- Geeft geen hulp bij het organiseren van bestanden
- Verplicht gebruiker voorzichtig te zijn om niet twee keer dezelfde naam te gebruiken
Twee-niveau schema
- Een directory voor elke gebruiker en een hoofddirectory
- Hoofddirectory bevat ingang voor elke gebruiker
- Bevat adres en toegangscontrole-informatie
- Elke gebruikersdirectory is een eenvoudige lijst met bestanden van die gebruiker
- Voorziet geen hulp bij structureren
Hiërarchische of boomstructuur
- Hoofddirectory met gebruikerdirectories eronder
- Elke gebruikersdirectory kan meerdere subdirectories en bestanden bevatten
- Bestanden kunnen gevonden door een pad te volgen van de hoofddirectory langs subdirectories. Dit is de padnaam
- Meerdere bestanden kunnen dezelfde naam hebben zolang ze een unieke padnaam hebben
- De huidige directory is de werkdirectory
- Er wordt relatief ten opzichte van de werkdirectory verwezen naar bestanden
Gemeenschappelijk gebruik van bestanden
Toegangsrechten
- Geen
- Kennis
- Uitvoeren
- Lezen
- Toevoegen
- Bijwerken
- Beveiliging wijzigen
- Verwijderen
Eigenaar:
- Heeft alle voorgaande rechten
- Kan rechten uitdelen aan anderen volgens de volgende klassen van gebruikers:
- Specifieke gebruiker
- Gebruikersgroepen
- Alle
Gelijktijdige toegang
- Gebruiker kan een heel bestand vergrendelen wanneer het bijgewerkt wordt
- Individuele records vergrendelen tijdens bijwerken
- Wederzijdse uitsluiting en deadlocks zijn problemen voor gedeelde toegang
Blokvorming van records
Records = logische toegang
I/O: blokken op schijf
Grote blokken versus Kleine Blokken
Drie methoden:
- Blokvorming met vaste lengte: Hierbij worden records met vaste lengte gebruikt en wordt een geheel aantal records opgeslagen in een blok. Er kan ongebruikte ruimte zijn aan het einde van elk blok; dit wordt aangeduid als interne fragmentatie
- Gekoppelde blokvorming met variabele lengte: hierbij worden records met variabele lengte gebruikt en deze worden samengepakt in blokken, alle ruimte wordt gebruikt. Sommige records kunnen daarbij twee blokken omspannen, waarbij het vervolg wordt aangegeven door een verwijzing naar het volgende blok
- Niet-gekoppelde blokvorming met variabele lengte: hierbij worden records met variabele lengte gebruikt, maar deze worden niet gekoppeld opgeslagen. 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 ruimte
Beheer van secundaire opslag
- Ruimte moet toegewezen worden aan ebstanden
- Moet bijhouden welke ruimte vrij is voor toewijzing
Bestandstoewijzing
Maximumgrootte van een bestand bij de creatie?
Moeilijk om de maximale grootte te voorspellen
Vaak de neiging om de bestandsgrootte te overschatten
Methoden van bestandstoewijzing
- Aaneengesloten toewijzing (=Bij aaneengesloten toewijzing wordt één aaneengesloten verzameling blokken toegewezen aan een bestand op het moment dat het bestand wordt gecreëerd.
- Tabel voor bestandstoewijzing bevat maar één ingang voor elke bestand te bevatte, die het beginblok en de lengte aangeeft.
- Externe fragmentatie zal voorkomen
- Samenpakken is nodig
- Kettingtoewijzing; is het tegenovergestelde van aaneengesloten toewijzing. De toewijzing vindt meestal plaats op basis van afzonderlijke blokken. Elk blok bevat een wijzer naar het volgende blok in de ketting.
- Tabel voor bestandstoewijzing bevat maar één ingang voor elke bestand, die het beginblok en de lengte aangeeft.
- Geen externe fragmentatie
- Beste voor sequentiële bestanden
- Niet goed voor lokaliteit (cache)
- Indextoewijzing; Hierbij bevat de tabel voor bestandstoewijzing een afzonderlijke index van één niveau voor elk bestand. De index heeft één ingang voor elke portie die aan het bestand is toegewezen.
- Tabel voor bestandstoewijzing bevat bloknummer van index
Inodes
- Informatieknooppunt: (information node)
- Controlestructuur die sleutelinformatie bevat voor een bepaald bestand
Windows file system
Kernzaken van NTFS
- Herstelbaarheid
- Beveiliging
- Grote schijven en grote bestanden
- Meervoudige gegevensstromen
- Algemene indexvoorzieningen
NTFS volume en bestandsstructuur
- Sector: kleinste fysieke opslageenheid op de schijf
- Cluster: een of meer aaneengesloten sectoren
- Volume: een logische partitie op schijf
Hoofdstuk 6: Bootproces
Het besturingssysteem is een programma dat op extern geheugen staat en moet gekopieerd worden naar het werkgeheugen (= inladen). Het besturingssysteem inladen is een speciale procedure, want om iets in te laden moet er al programmatuur zijn.
Partities
Deel van de harde schijf: opeenvolgende cilinders.
- Maximum 4 primaire partities.
- In partities indelen gebeurt bij het begin van de installatie van het besturingssysteem.
- Eventueel kan men achteraf partities wijzigen, mits speciale tools.
In een partitie kan je een besturingssysteem installeren.
Er kan maximum 1 partitie actief zijn.
Bij opstarten zal het besturingssysteem starten in de actieve partitie.
MBR
= Master Boot Record (Record = sector).
MBR bevat:
- MBR-startprogramma (Initial Program Loader, IPL)
- Partitietabel
- Magisch getal
Bij het booten start het besturingssysteem in de actieve partitie
Partitietabel
De partitietabel kan 4 partitie-records bevatten die ieder een primaire partitie beschrijven. De partitietabel bevat per partitie:
- Bootable flag : actief / niet actief
- Cylinder/Head/Sector van 1e sector
- Partitie-type : geeft aan welk bestandssysteem op de partitie staat
- Cylinder/Head/Sector van laatste sector
- LBA-nummer van 1e sector
- LBA-nummer van laatste sector
Logische partities
4 primaire partities is soms te weinig. Een primaire partitie kan onderverdeeld worden in logische partities (= extended)
EMBR
= Extended Master Boot Record
EMBR voor de extended partities
EMBR voor elke logische partitie
Elke EMBR heeft 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 (bestandssysteem opgeven)
1e sector van de partitie is de Partition Boot Sector (sector = record; PBR = PBS)
PBR bevat:
- Sprongbevel (spring x aantal bytes verder, naar PBR-startprogramma)
- Info over de partitie
- PBR-startprogramma
Wat gebeurt als je computer start?
1. Interne voeding wordt geïnitialiseerd
- Testen van de geleverde spanningen
- Reset-signaal naar CPU sturen
2. Wanneer spanning O.K.: “Power Good” signaal naar moederbord (= stoppen met reset)
3. Processor begint bevelen uit te voeren
- Welke mode?
• Reële mode (Intel)
- Welk bevel?
• Op adres FFFF:0000
- Wat betekent dit?
FFFF0 segmentadres
+0000 verplaatsing
FFFF0 (in register CS staat FFFF)
FFFF0 is een adres in het werkgeheugen, toegewezen aan het BIOS (vroeger ROM, nu EEPROM).
BIOS EEPROM:
- Soms nog “CMOS” genoemd (Complementary Metal-Oxide Semiconductor)
- Eigenlijk is “de CMOS” 1 van de weinige chips in een computer die geen CMOS-technologie gebruikt
- Vroeger CMOS-geheugen dat door batterijen onder spanning werd gehouden
- Bevat:
• Opstartvolgorde
• Informatie over randapparaten
• BIOS-paswoord
• …
Processor begint met BIOS-startprogramma (op adres FFFF0)
• Wat doet dit startprogramma?
4. Power on self test uitvoeren, POST controleert vitale systeemonderdelen :
- CPU
- Toetsenbord (verbonden, controller O.K.?)
- RAM (lezen, schrijven)
- Video,…
5. Bios-startprogramma gaat na wat het boot-apparaat is
6. MBR kopiëren naar werkgeheugen (bevat IPL)
7. Sprong naar 1e bevel in IPL
8. IPL :
- Leest partitietabel (gaat na welke de actieve partitie is)
- Kopieert PBR (met PBR-startprogramma) van deze partitie naar werkgeheugen
- Sprong naar bevel vanaf 1e byte van PBR
9. 1e bevel in PBR : sprong naar PBR-startprogramma
10. PBR-startprogramma : ntldr inladen
- Indien niet gevonden : “ntldr missing” op het scherm zetten
11. Ntldr : processor naar protected mode en Windows starten