Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is...

49
1. Overzicht van computersystemen Een besturingssysteem gebruikt de hardwarebronnen van een of meer processors om een aantal diensten te verzorgen voor de gebruikers van het systeem. Het besturingssysteem beheert ook het secundaire geheugen en I/O- apparaten voor de gebruikers. 1.1. Basiselementen Processor De processor beheert de werking van de computer en voert de functies voor de gegevensverwerking uit. De processor heeft 2 interne registers: 1. Geheugenadresregister (Memory Address Register, MAR): bevat geheugenadres voor de volgende lees- of schrijfbewerking 2. Geheugenbufferregister (Memory Buffer Register, MBR): bevat gegevens die naar het geheugen worden geschreven of de gegevens ontvangt die uit het geheugen worden gelezen. Overeenkomstig: 1. I/O-adresregister (I/O AR): bevat een bepaald I/O-apparaat 2. I/O-bufferregister (I/O BR): wordt gebruikt voor het uitwisselen van gegevens tussen een I/O-module en de processor Hoofdgeheugen Hoofdgeheugen wordt ook wel reëel geheugen of primair geheugen genoemd. Hoofdgeheugen is een vluchtig geheugen: wanneer de computer uitgeschakeld wordt, gaat de inhoud van het geheugen verloren. I/O-modules De I/O-modules verplaatsen gegevens tussen de computer en en zijn externe omgeving: - Harde schijven - Communicatie-apparatuur - Werkstations Systeembus De systeembus verzorgt de communicatie tussen de processors, het hoofdgeheugen en de I/O-modules

Transcript of Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is...

Page 1: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

1. Overzicht van computersystemen

Een besturingssysteem gebruikt de hardwarebronnen van een of meer processors om een aantal diensten te verzorgen voor de gebruikers van het systeem.Het besturingssysteem beheert ook het secundaire geheugen en I/O-apparaten voor de gebruikers.

1.1. BasiselementenProcessor

De processor beheert de werking van de computer en voert de functies voor de gegevensverwerking uit.De processor heeft 2 interne registers:1. Geheugenadresregister (Memory Address Register, MAR): bevat geheugenadres voor de volgende lees- of schrijfbewerking2. Geheugenbufferregister (Memory Buffer Register, MBR): bevat gegevens die naar het geheugen worden geschreven of de gegevens ontvangt die uit het geheugen worden gelezen.

Overeenkomstig:1. I/O-adresregister (I/O AR): bevat een bepaald I/O-apparaat2. I/O-bufferregister (I/O BR): wordt gebruikt voor het uitwisselen van gegevens tussen een I/O-module en de processor

Hoofdgeheugen

Hoofdgeheugen wordt ook wel reëel geheugen of primair geheugen genoemd.Hoofdgeheugen is een vluchtig geheugen: wanneer de computer uitgeschakeld wordt, gaat de inhoud van het geheugen verloren.

I/O-modules

De I/O-modules verplaatsen gegevens tussen de computer en en zijn externe omgeving:- Harde schijven- Communicatie-apparatuur- Werkstations

Systeembus

De systeembus verzorgt de communicatie tussen de processors, het hoofdgeheugen en de I/O-modules

Page 2: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

1.2. ProcessorregistersProcessorregisters zijn sneller en kleiner dan het hoofdgeheugen. De registers in de processor dienen 2 doelen:- Registers die zichtbaar zijn voor de gebruiker: laat de programmeur toe verwijzingen naar het

hoofdgeheugen te minimaliseren door het registergebruik te optimaliseren.- Stuur- statusregisters: worden gebruikt door

de processor voor het besturen van de werking van de processor geprivilegieerde routine’s van het besturingssysteem voor het beheren van de uitvoering van

programma’s

1.2.1. Registers die zichtbaar zijn voor de gebruiker

Een register dat zichtbaar is voor de gebruiker is een register waarnaar kan worden verwezen in de gebruikte machinetaal en dat doorgaans beschikbaar is voor alle programma’s, waaronder toepassingsprogramma’s en systeemprogramma’s.

De beschikbare registertypen:- Gegevensregisters- Adresregisters- Conditiecoderegisters

GegevensregistersGegevensregisters kunnen gebruikt worden door de programmeur voor verschillende functies.

Page 3: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

Soms is hun doel algemeen, maar vaak zijn er echter beperkingen. Er kunnen bijvoorbeeld speciale reigsters zijn voor floating-pointbewerkingen.

AdresregistersAdresregisters bevatten adressen van gegevens en instructies in het hoofdgeheugen.Voorbeelden:- Indexregister- Segmentwijzer- Stackwijzer

Conditiecoderegisters

1.2.2. Stuur- en statusregisters

- Programmateller (PC): bevat het adres van de volgende op te vragen instructie- Instructieregister (IR): bevat de laatste opgevraagde instructie- Programmastatuswoord (PSW): bevat statusinformatie

ConditiecodesConditiecodes (ook wel flags of vlaggen genoemd) zijn bits die worden ingesteld door de processorhardware als het resultaat van bewerkingen.Doorgaans maken ze deel uit van een stuurregister.

1.3. Uitvoering van instructiesEen programma bestaat uit een verzameling instructies die is opgeslagen in het geheugen.Het uitvoeren van een instructie bestaat uit 2 stappen:1. De processor haalt (fetches) instructies één voor één op uit het geheugen2. De processor voert (executes) elke instructies uit

Instructiecyclus: tijd die nodig is om één instructie uit te voeren.

De processor haalt de instructie op uit het geheugen. De programmateller bevat het adres van de volgende op te halen instructie. De teller wordt altijd verhoogd na het ophalen van een instructie, zodat de daarop volgende instructie zal worden opgehaald.De opgevraagde instructie is geladen in het instructieregister. De instructie bevat bits die aangeven welke actie de processor moet uitvoeren. De processor interpreteert de instructie en voert de gewenste actie uit. Hierbij zijn er 4 categorieën:1. Processorgeheugen: gegevens worden overgebracht van de processor naar het geheugen of omgekeerd2. Processor-I/O: gegevens worden uitgewisseld tussen de processor en een I/O module.3. Gegevensverwerking: rekenkundige of logische bewerking uitvoeren op gegevens4. Besturing: de volgorde van uitvoering wijzigen

Page 4: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

1.4. InterruptsInterrupt is een mechanisme waarmee andere modules de normale verwerking door de processor kunnen onderbreken. Interrupts worden vooral gebruikt om de verwerkingsefficiëntie te verhogen. De meeste externe apparaten zijn langzamer dan de processor. Na elke schrijfbewerking moet de processor pauzeren totdat het apparaat de instructie heeft verwerkt.

Page 5: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

Verschillende klassen van interrupts:- Programma: gegenereerd door het resultaat van de uitvoering van een instructie, vb. 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: gegenereerd door een timer binnen de processor. Hiermee kan het besturingssysteem functies uitvoeren met een bepaalde regelmaat

- I/O: gegenereerd door een I/O-controller om de normale voltooiing van een bewerking of uiteenlopende foutcondities te melden

- Hardwarefout: gegenereerd door fouten zoals het uitvallen van de stroom of een geheugenpariteitsfout

1.4.1.Interrupts en de instructiecyclus

Voor interrupts wordt een interruptfase toegevoegd aan de instructiecyclus. In de interruptfase controleert de processor of er interrupts zijn opgetreden. Als er een interrupt is, dan onderbreekt de processor het huidige programma en voert hij een routine uit voor een interruptafhandeling.

Page 6: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

Is de routine voor de interruptafhandeling voltooid, dan kan de processor de uitvoering van het gebruikersprogramma hervatten op het punt van de onderbreking.Er wordt verondersteld dat de tijd die nodig is voor de I/O-bewerking relatief kort is: korter dan de tijd die nodig is voor het voltooien van de uitvoering van instructies tussen schrijfbewerkingen in het gebruikersprogramma. Meestal echter zal de I/O-bewerking veel meer tijd kosten dan de uitvoering van meerdere gebruikersinstructies.

Page 7: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies
Page 8: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

1.4.2.InterruptverwerkingEenvoudige interruptverwerking:1. Apparaatcontroller of andere systeemhardware geeft een interrupt2. Processor voltooit de uitvoering van de huidige instructie3. Processor bevestigt de ontvangst van de interrupt4. Processor plaatst het programmastatuswoord (PSW) en de programmateller (PC) op de besturingsstack5. Processor laadt nieuwe PC-waarde op basis van de interrupt6. Sla het restant van de informatie over de processtatus op7. Verwerk de interrupt8. Herstel de informatie over de processtatus9. Herstel het oude PSW en de oude PC 1 te.m. 5: Hardware 6 t.e.m. 9: Software

1.4.3.Meervoudige interruptsStel dat er een interrupt optreedt terwijl een andere interrupt wordt afgehandeld.2 benaderingen:

Page 9: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

1. Uitschakelen van interrupts terwijl een interrupt wordt verwerkt. Interrupts worden in strikt sequentiële volgorde afgehandeld.

2.

Het definiëren van prioriteiten voor interrupts en toestaan dat een interrupt met een hogere prioriteit een interruptafhandeling met een lagere prioriteit onderbreekt

1.4.4.Multiprogrammering- De processor wordt niet altijd erg efficiënt gebruikt, zelfs met interrupts.- De processor kan meer dan één programma uitvoeren.

De volgorde waarin de programma’s worden verwerkt is afhankelijk van hun relatieve prioriteit en van het feit of ze wachten op I/O.

Na het voltooien van de interruptafhandelings routine hoeft de besturing niet altijd onmiddellijk te worden teruggegeven aan het gebruikersprogramma dat op dat moment wordt uitgevoerd.

1.5. De geheugenhiërarchieDe ontwerpbewerkingen voor het geheugen in drie vragen:1. Hoeveel?2. Hoe snel?3. Hoe duur?

- Kortere toegangstijd: hogere kosten per bit

- Hogere capaciteit: lagere kosten per bit- Hogere capaciteit: lagere

toegangssnelheid

Dit kan allemaal opgelost worden door de geheugen hiërarchie. Van boven naar onder gebeurt het volgende:a. De kosten per bit dalenb. De capaciteit neemt toec. De toegangstijd neemt toed. De frequentie van de processortoegang

tot het geheugen neemt af.

Lokaliteit van verwijzingen (locality of reference)

Page 10: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

1.6. Cachegeheugen- Cachegeheugen is onzichtbaar voor het besturingssysteem, het werkt samen met andere hardware

voor geheugenbeheer.- Processor heeft minstens 1 keer toegang tot het geheugen per instructiecyclus

Processorssnelheid is sneller dan de toegangssnelheid van geheugen

Grondbeginselen van cachegeheugen

De cache bevat een kopie van een deel van het hoofdgeheugen.Als de processor een byte in het geheugen te lezen, dan wordt gecontroleerd of de byte zich in de cache bevindt. Zo ja, dan wordt de byte doorgegeven aan de processor.Zo nee, dan wordt eerst een blok uit het hoofdgeheugen naar de cache geschreven en wordt dan ook doorgegeven aan de processor.

Door de lokaliteit van verwijzingen is het waarschijnlijk dat wanneer een blok gegevens in de cache wordt geplaatst, toekomstige geheugenverwijzingen zullen verwijzen naar andere bytes in dat blok.

Page 11: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

Bij het ontwerp van cachegeheugen kunnen we de volgende aandachtspunten onderscheiden:- Cachegrootte:

Kleine caches hebben een duidelijke invloed op prestaties- Blokgrootte:

De eenheid gegevens die wordt uitgewisseld tussen het cachegeheugen en het hoofdgeheugen Grotere blokken betekenen grotere hit-ratio Te grote blokken minimaliseren kansen om gegevens te hergebruiken die al in de cache staan

- Adresseringsfunctie: Bepaalt welke locatie het nieuwe blok zal innemen in de cache 2 beperkingen:

1. Bij het inlezen van een nieuwe blok kan een andere blok worden vervangen2. Flexibelere adresseringsfunctie vereist ingewikkeldere elektronische schakelingen voor het doorzoeken van de cache

- Vervangingsalgoritme: Kiest het blok dat wordt vervangen Liefst een blok vervangen dat in de nabije toekomst niet nodig is

onmogelijk te garanderen Effectieve strategie: het vervangen van een blok dat zich het langst in de cahce bevindt zonder

gebruikt te zijn = Least Recently Used (LRU)

Page 12: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

- Schrijfstrategie: Bepaalt wanneer de geheugenschrijfbewerking plaatsvindt

o Elke keer dat het blok wordt bijgewerkto Als het blok wordt vervangen Minimaliseert schrijfbewerkingen Laat het hoofdgeheugen in een verouderde toestand

1.7. I/O-technieken3 technieken die worden toegepast:1. Geprogrammeerde I/O2. Interruptgestuurde I/O3. Directe geheugentoegang (DMA)

1.7.1.Geprogrammeerde I/ODe I/O-module voert eerst de gevraagde actie uit en plaatst vervolgens de juiste bits in het I/O-statusregister, maar onderneemt verder geen actie om de processor te waarschuwen. De module stuurt zelfs geen interrupt naar de processor.Als de I/O-instructie is uitgevoerd, moet de processor zelf actie ondernemen om te bepalen wanneer de I/O-instructie is voltooid.

De instructieset bevat de volgende categorieën I/O-instructies:- Besturen: extern apparaat activeren en zeggen wat te doen- Status controleren: diverse statuscondities testen- Lezen en schrijven: overdracht van gegevens tussen de processorregisters en externe apparaten

1.7.2.Interruptgestuurde I/ODe processor geeft een opdracht aan een I/O-module en doet daarna ander nuttig werk.De I/O-module zal de processor onderbreken met een interrupt als de module gereed is om gegevens uit te wisselen met de processor.

1.7.3.Directe geheugentoegang (DMA)De DMA-functie kan worden uitgevoerd door een aparte module op de systeembus.Wil de processor een blok gegevens lezen of schrijven, dan geeft hij de DMA-module een opdracht door de volgende informatie te verzenden naar de module:- Of wordt gevraagd om te lezen of te schrijven- Het adres van het betrokken I/O-apparaat- De beginlocatie in het geheugen waaruit data moet worden gelezen of waarnaar data moet

worden geschreven- Het aantal woorden dat moet worden gelezen of geschreven

De processor heeft deze I/O-bewerking gedelegeerd aan de DMA-module en die zal de bewerking verder afhandelen.De processor is alleen betrokken bij het begin en het einde van de overdracht.

2. Overzicht van besturingssystemenBesturingssysteem = programma dat de uitvoering van toepassingsprogramma’s regelt en de functie vervult van een interface tussen de gebruikers en de computerhardware.

2.1. Doel en functies van besturingssystemenEen besturingssysteem heeft 3 doelstellingen:

4. Gemak: een besturingssysteem maakt een computer makkelijk te gebruiken

Page 13: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

5. Efficiëntie: dankzij een besturingssysteem kunnen de systeembronnen van een computer efficiënt worden gebruikt

6. Flexibiliteit: een besturingssysteem moet zo zijn gemaakt dat het ontwikkelen, testen en introduceren van nieuwe systeemfuncties goed mogelijk is, zonder dat bestaande diensten verstoord worden

2.1.1.Het besturingssysteem als interface tussen gebruiker en computerHet besturingssysteem verzorgt doorgaans diensten op de volgende gebieden: Ontwikkelen van programma’s: het besturingssysteem biedt

uiteenlopende voorzieningen en diensten, zoals editors en debuggers, die de programmeur helpen bij het maken van programma’s

Uitvoeren van programma’s: Instructies en gegevens moeten in het hoofdgeheugen worden geladen. I/O-apparaten en bestanden moeten worden geïnitialiseerd en andere bronnen moeten worden voorbereid besturingssysteem verzorgt deze taken voor de gebruiker

Toegang tot I/O-apparaten: Elk I/O-apparaat vereist voor een correcte werking een eigen, specifieke verzameling instructies of besturingssignalen. Het besturingssysteem voorziet in een uniforme interface die alle details verbergt

Beheerde toegang tot bestanden: bij bestanden moet het besturingssysteem kennis hebben van de aard van het I/O-apparaat, maar ook van de bestandsindeling op het opslagmedium. Bij een systeem dat meerdere gebruikers tegelijk ondersteunt, kan het systeem daarnaast voorzien in beveiligingsmechanismen voor het beheren de toegang tot bestanden.

Toegang tot het systeem: de toegangsfunctie moet voorzien in de beveiliging van bronnen en gegevens tegen ongeautoriseerd gebruik en moet bij te zware belasting conflicten oplossen

Opsporen en afhandelen van fouten: interne en externe hardwarefouten, diverse softwarefouten. Bij elk probleem moet het besturingssysteem zo reageren dat de fouttoestand wordt verwijderd met zo min mogelijk invloed op de toepassingen die worden uitgevoerd

Administratie: verzamelt gebruiksstatistieken, bewaakt prestatiemeters, informatie is nuttig voor het anticiperen op de behoefte aan toekomstige verbeteringen en het bijstellen van het systeem voor het verbeteren van de prestaties. Ook kan de informatie worden gebruikt voor het toerekenen van kosten bij een systeem met meerdere gebruikers

2.1.2.Het besturingssysteem als beheerder van bronnenHet besturingssysteem werkt hetzelfde als gewone computersoftware. Het is een programma dat wordt uitgevoerd door de processor.

Het besturingssysteem geeft de besturing veelvuldig uit handen en is voor het terugkrijgen van de besturing afhankelijk van de processor.

Een deel van het besturingssysteem bevindt zich in het hoofdgeheugen. Daartoe behoren de kernel of nucleus, die de meest gebruikte functies in het besturingssysteem bevat, en andere delen van het besturingssysteem die op dit moment worden gebruikt.

Page 14: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

2.1.3.Ontwikkelingsmogelijkheden van een besturingssysteemEen veelgebruikt besturingssysteem zal zich om een aantal redenen in de loop van de tijd ontwikkelen: Hardwarevernieuwing en nieuwe typen hardware Nieuwe diensten Verbeteringen

2.2. Evolutie van besturingssystemen

2.2.1.Seriële verwerkingBesturingssystemen bestonden vroeger nog niet. Deze machines werden bestuurd via een bedieningspaneel dat bestond uit lampjes, schakelaars, een invoerapparaat en een printer2 problemen: Scheduling: via een inschrijflijst Insteltijden: het laden van de compiler in het geheugen en het bronprogramma, het opslaan van

het gecompileerde programma, en het laden en koppelen van het objectprogramma en algemene functies. Trad er een fout op, dan moest de gebruiker teruggaan naar het begin van de instelprocedure. Daardoor werd veel tijd besteed aan alleen al het instellen van het uit te voeren programma

2.2.2.Eenvoudige batchsystemenDe eerste computers waren duur en daarom was het belangrijk om het gebruik van een machine te maximaliseren. Belangrijkste gedachte: monitor.Deze software combineerde jobs sequentieel tot een batch en de gehele batch in een invoerapparaat plaatste voor gebruik door de monitor. Elk programma keert na het voltooien van de verwerking terug naar de monitor.

De monitor bepaalt de volgorde van gebeurtenissen. Hiertoe moet een groot deel van de monitor zich altijd in het hoofdgeheugen bevinden en beschikbaar zijn voor de uitvoering = resident monitor.De monitor leest per keer één taak in. Na het inlezen, wordt deze in het gebied van het gebruikersprogramma geplaatst en wordt de besturing overgegevn aan deze taak. Na het voltooien van de taak, wordt de besturing teruggegeven aan de monitor.

Jobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies aan de monitor.

Ook enkele andere mogelijkheden van de hardware zijn gewenst:- Geheugenbeveiliging: terwijl het gebruikersprogramma wordt

uitgevoerd, mag dit het geheugengebied met de monitor niet wijzigen.

- Timer: voorkomt dat één taak onbeperkt beslag legt op het hele systeem

- Geprivilegieerde instructies: deze kunnen uitsluitend uitgevoerd worden door de monitor

- Interrupts: verhogen de flexibiliteit van het besturingssysteem bij het afstaan en terugkrijgen van de besturing aan en van gebruikersprogramma’s.

Werkingsmodi:

Page 15: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

- Gebruikersmodus: Gebruikersprogramma wordt uitgevoerd in een gebruikersmodus Bepaalde gebieden in het geheugen zijn niet beschikbaar voor de gebruiker Bepaalde instructies mogen niet worden uitgevoerd

- Kernelmodus: Monitor wordt uitgevoerd in een systeemmodus (= kernelmodus) Bevoorrechte instructies kunnen worden uitgevoerd Beveiligde gebieden in het geheugen kunnen benaderd worden

2.2.3.Batchsystemen met multiprogrammeringZelfs bij de automatische taakverwerking van een eenvoudig batchbesturingssysteem wordt de processor vaak niet gebruikt. De I/O-apparaten zijn vergeleken met de processor relatief langzaam.Uniprogrammering = de processor moet wachten tot de I/O-instructie is voltooid voordat hij kan doorgaan.

Multiprogrammering = als een taak moet wachten op I/O, dan kan de processor overschakelen naar een andere taak, die waarschijnlijk niet wacht op I/O.

Page 16: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

2.2.4.Systemen met timesharingBij timesharing wordt multiprogrammering gebruikt voor het afhandelen van meerdere interactieve taken. De processortijd wordt gedeeld door meerdere gebruikers. Meerdere gebruikers hebben via werkstations tegelijkertijd toegang tot het systeem en het besturingssysteem geeft afwisselend elk gebruikersprogramma een korte rekenperiode.

2.3. Belangrijke prestatiesBesturingssystemen behoren tot de meeste complexe stukken software die zijn ontwikkeld.Er zijn vijf belangrijke intellectuele prestaties verricht op het gebied van: Processen Geheugenbeheer Bescherming en beveiliging van informatie Scheduling en beheer van bronnen Systeemstructuur

2.3.1.ProcessenEen proces is essentieel voor de structuur van besturingssystemen. Een programma dat wordt uitgevoerd 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 (thread)- een actuele toestand- een aantalbijbehorende systeembronnen

Het ontwerpen van systeemsoftware bleek uiterst moeilijk te zijn. In het algemeen worden 4 hoofdoorzaken onderscheiden voor de fouten:

7. Onjuiste synchronisatie8. Mislukte wederzijdse uitsluiting (mutual exclusion)9. Niet-vastomschreven programmawerking10.Dodelijke omarming (deadlock

Een proces bestaat uit 3 onderdelen:1. Een uitvoerbaar programma2. De bijbehorende gegevens die het programma nodig heeft3. De uitvoeringscontext van het programma: alle informatie die het besturingssysteem nodig heeft om

het proces te controleren en te regelen

2.3.2.GeheugenbeheerHet besturingssysteem heeft 5 hoofdtaken bij het beheer van opslag:

1. Procesisolatie: voorkomen dat onafhankelijke processen elkaars geheugen, zowel gegevens als instructies, verstoren

Page 17: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

2. Automatische toewijzing en beheer: programma’s moeten waar nodig dynamisch worden verdeeld over de geheugenhiërarchie. De toewijzing moet transparant zijn voor de programmeur. Het besturingssysteem kan efficiënt werken door geheugen alleen toe te wijzen aan taken die het nodig hebben

3. Ondersteuning van modulair programmeren: programmeurs moeten programmamodules kunnen definiëren en modules dynamisch kunnen maken, verwijderen en vergroten en verkleinen

4. Bescherming en toegangsbeheer: toestaan dat gedeelten van het geheugen op verschillende manieren toegankelijk zijn voor verschillende gebruikers

5. Langetermijnopslag: veel gebruikers en toepassingen vereisen middelen voor het opslaan van informatie gedurende langere periodes

Meestal gebruiken besturingssystemen virtueel geheugen en bestandssystemen om aan deze vereisten te voldoen. Het bestandssysteem zorgt voor de opslag op lange termijn.Virtueel geheugen is een voorziening waarmee programma’s geheugen op logisch niveau kunnen adresseren.

Om grote processen op te delen in een aantal blokken van vaste lengte, werden pagineringssystemen ontwikkeld. Een programma verwijst naar een woord met behulp van een virtueel adres dat bestaat uit een paginanummer en een relatieve locatie binnen de pagina (offset). Iedere pagina kan overal binnen het hoofdgeheugen geplaatst worden. Het pagineringssysteem voorziet in een dynamische vertaling van het virtuele adres binnen het programma naar een reëel of fysiek adres binnen het hoofdgeheugen.

2.3.3.Bescherming en beveiliging van informatieVeel van het werk m.b.t. beveiliging en bescherming in besturingssystemen kan verdeeld worden in 4 categorieën:1. Beschikbaarheid: het beveiligen van het systeem tegen onderbrekingen2. Vertrouwelijkheid: garandeert dat gebruikers geen gegevens kunnen lezen waarvoor ze geen

toestemming hebben3. Gegevensintegriteit: bescherming van gegevens tegen ongewenst wijzigen4. Authenticiteit: hangt samen met de correcte verificatie van de identiteit van gebruikers en de

geldigheid van berichten of gegevens

2.3.4.Scheduling en beheer van bronnenHet beheren van de verschillende bronnen die beschikbaar zijn is een hoofdverantwoordelijkheid van het besturingssysteem.Elke strategie voor de toewijzing en de scheduling van bronnen moet zijn gebaseerd op 3 overwegingen:1. Rechtvaardigheid2. Gedifferentieerd reactievermogen

Page 18: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

3. Efficiëntie

Kortetermijnwachtrij: processen die zich in het hoofdgeheugen bevinden en die gereed zijn om te worden uitgevoerd.Langetermijnwachtrij: lijst van nieuwe taken die wachten om het systeem te gebruiken.Voor elk I/O-apparaat is er een I/O-wachtrij. Alle processen die wachten op het gebruik van het apparaat, worden toegevoegd aan de wachtrij van dat apparaat.

2.3.5.SysteemstructuurEen systeem kan worden beschouwd als een reeks niveaus. Elk niveau voert een specifieke deelverzameling uit van functies die het besturingssysteem moet uitvoeren. Elk niveau is afhankelijk van het volgende, lagere niveau voor het uitvoeren van meer primitieve functies. Hierdoor is een probleem gesplitst in enkele beter hanteerbare deelproblemen.

Ontwerphiërarchie van een besturingssysteem: Niveau 1: elektronische schakelingen. De objecten waarmee worden gewerkt zijn registers,

geheugencellen en logische poorten. De bewerkingen die voor deze objecten worden gedefinieerd, zijn acties zoals het wissen van een register of het lezen van een geheugenlocatie

Niveau 2: instructieset van de processor. Hier zijn het de bewerkingen die zijn toegestaan in de instructieset van de machinetaal, zoals add, subtract, load en store

Niveau 3: voegt het concept van een procedure of subroutine toe, plus de bewerkingen voor aanroep en terugkeer

Niveau 4: introduceert interrupts. Die zorgen ervoor dat de processor de huidige context opslaat en een interruptafhandelingsroutine activeert

De 1e 4 lagen zijn geen onderdeel van het besturingssysteem maar vormen de processorhardware. Op niveau 5 bereiken we echt het besturingssysteem en beginnen de concepten die samenhangen met multiprogrammering te verschijnen Niveau 5: introduceert het concept van een proces als een programma dat wordt uitgevoerd. De

fundamentele vereiste waaraan een besturingssysteem moet voldoen om meerdere processen te ondersteunen, is de mogelijkheid processen te onderbreken en voort te zetten

Niveau 6: wordt gebruikt voor de secundaire opslagapparaten van de computer. Hier treden de functies voor het positioneren van de lees- en schrijfkoppen en de feitelijke overdracht van blokken gegevens op.

Niveau 7: maakt logische adresruimte voor processen. Dit niveau verdeelt de virtuele adresruimte in blokken die kunnen worden verplaatst tussen het hoofdgeheugen en het aanvullend geheugen

Tot en met niveau 7 heeft het besturingssysteem te maken met de bronnen van 1 processor. Vanaf niveau 8 houdt het besturingssysteem zich bezig met externe objecten zoals randapparaten en eventueel netwerken en computers die met het netwerk verbonden zijn. Niveau 8: verzorgt de communicatie van informatie en berichten tussen processen Niveau 9: ondersteunt de opslag voor lange termijn van benoemde bestanden Niveau 10: zorgt voor de toegang tot externe apparaten m.b. v. gestandaardiseerde interfaces Niveau 11: verantwoordelijk voor het onderhouden van de associatie tussen externe en interne

identifiers van de bronnen en objecten van het systeem Niveau 12: biedt een complete voorziening voor het ondersteunen van processen Niveau 13: vormt de interface tussen het besturingssysteem en de gebruiker

2.4. Ontwikkelingen in de aanloop naar moderne besturingssystemenEr zijn tal van uiteenlopende benaderingen en ontwerpelementen toegepast in zowel experimentele als commerciële besturingssystemen, maar de meeste daarvan kunnen worden ondergebracht in de volgende categorieën.

Page 19: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

Microkernelarchitectuur

De meeste besturingssystemen hadden één kolossale monolithische kernel. Deze grote kernels verzorgen het overgrote deel van de functionaliteit van het besturingssysteem.Bij een microkernel architectuur worden slechts enkele essentiële functies toegewezen aan de kernel:- Adresruimten- Communicatie tussen processen (interprocess communication, IPC)- BasisschedulingAndere diensten van het besturingssysteem worden verzorgd door processen

Multithreading

Proces wordt verdeeld in draden (threads) die tegelijkertijd kunnen worden uitgevoerd- Thread: inzetbare eenheid werk, wordt sequentieel uitgevoerd en kan worden onderbroken- Proces: verzameling van 1 of meer threads en de bijbehorende bronnen

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

Gedistribueerde besturingssystemen

- Verzameling computers die elk hun eigen geheugen en I/O-modules hebben

Page 20: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

- Wekt de illusie van 1 hoofdgeheugenruimte, 1 secundaire geheugenruimte en andere gelijkgeschakelde toegangsvoorzieningen

Objectgeoriënteerd ontwerp

Proces waarbij modulaire uitbreidingen worden toegevoegd aan een kleine kernel. Het geeft de mogelijkheid een besturingssysteem aan te passen zonder de integriteit van het systeem in gevaar te brengen

3. Beschrijving en besturing van processenHet besturingssysteem beheert de uitvoering van toepassingen ordelijk zodat:- Bronnen beschikbaar gemaakt worden voor verschillende toepassingen- De fysieke processor schakelt tussen verschillende toepassingen- De processor en I/O-apparaten efficiënt kunnen worden gebruikt

3.1. Wat is een proces?Verschillende definities:- Programma in uitvoering- Instantie van een programma die op een computer wordt uitgevoerd- Entiteit die aan een processor kan worden toegewezen en op die processor kan worden

uitgevoerd- Eenheid van activiteiten, die gekenmerkt wordt door de uitvoering van een reeks instructies, een

huidige toestand en een bijbehorende verzameling systeembronnenEen proces is een entiteit die bestaat uit een aantal elementen:- Programmacode (die met andere processen die hetzelfde programma uitvoeren gedeeld wordt)- Verzameling gegevens

Tijdens de uitvoering van het programma, heeft het proces een aantal elementen:- Identificatienummer- Toestand- Prioriteit- Programmateller- Geheugenwijzers- Contextgegevens- I/O-toestandsinformatie- Beheersinformatie

Al het voorgaande wordt opgeslagen in een procesbesturingsblok, die door het besturingssysteem gecreëerd en beheerd wordt. Het bevat voldoende informatie om een proces te onderbreken en er later mee verder te gaan. Hierdoor wordt multiprocessing mogelijk.

3.2. ProcestoestandenSpoor (trace): volgorde van instructies die voor dat proces worden uitgevoerdDispatcher: wisselt de processor van 1 proces naar een ander

De belangrijkste taak van het besturingssysteem is het besturen van de procesuitvoering:- Het bepalen van het patroon waarin de uitvoering ervan wordt verweven- Het toewijzen van bronnen aan processen

Page 21: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

3.2.1.Procesmodel met 2 toestandenEen proces kan zich in 2 toestanden bevinden: actief (running) of niet-actief (not running)

3.2.2.

Creëren en beëindigen van processenRedenen voor het creëren van een proces:- Nieuwe batchtaak- Interactieve aanmelding- Gecreëerd door het besturingssysteem om een dienst te verzorgen- Verwekt door een bestaand proces

Redenen voor het beëindigen van een proces:- Normale voltooiing- Tijdslimiet overschreden- Onvoldoende geheugen beschikbaar- Overtreding geheugengrens- Beschermingsfout- Rekenkundige fout- Tijd verstreken- I/O-fout- Ongeldige instructie- Geprivilegieerde instructie- Onjuist gebruik gegevens- Ingreep van de gebruiker of het besturingssysteem- Beëindiging van het ouderproces- Verzoek van het ouderproces

3.2.3.Procesmodel met 5 toestanden- Actief (running): het proces dat op dit moment wordt uitgevoerd- Gereed (ready): een proces dat direct kan worden uitgevoerd wanneer het daartoe de gelegenheid

krijgt- Geblokkeerd (blocked): een proces dat niet kan worden uitgevoerd totdat een bepaalde gebeurtenis

optreedt- Nieuw (new): een proces dat onlangs is gecreëerd maar nog niet door het systeem is toegevoegd aan

de verzameling met uitvoerbare processen- Einde (exit): een proces dat door het besturingssysteem wordt ontslagen uit de groep uitvoerbare

processen, omdat het is beëindigd of omdat het om een bepaalde reden is afgebroken

Page 22: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

Soorten overgangen:- Niets Nieuw: een nieuw proces wordt gecreëerd voor het uitvoeren van een programma- Nieuw Gereed: het besturingssysteem zal een proces verplaatsen van de toestand Nieuw naar de

toestand Gereed wanneer het toestaat dat nieuwe proces in uitvoering te nemen- Gereed Actief: als men een nieuw proces moet selecteren voor uitvoering, dan kiest het

besturingssysteem een van de processen met de toestand Gereed- Actief Einde: het proces dat op dat moment wordt uitgevoerd, wordt door het besturingssysteem

beëindigd als het proces aangeeft dat het is voltooid of als het wordt afgebroken- Actief Gereed: deze overgang treedt meestal op doordat het actieve proces de maximaal

toegestane tijd voor een ononderbroken uitvoering heeft bereikt- Actief Geblokkeerd: een proces wordt in de toestand Geblokkeerd geplaatst als het vraagt om iets

waarop het moet wachten- Geblokkeerd Gereed: een proces in de toestand Geblokkeerd wordt verplaatst naar de toestand

Gereed wanneer de gebeurtenis optreedt waarop het heeft gewacht- Gereed Einde: bij sommige processen kan een ouderproces een kindproces beëindigen.

Bovendien kunnen alle kindprocessen die aan een bepaald ouderproces zijn verbonden, worden beëindigd wanneer de ouder wordt beëindigd

- Geblokkeerd Einde: zelfde als voor de vorige overgang

3.2.4.Opgeschorte processenProcessor is zoveel sneller dan de I/O dat het vaak zal voorkomen dat alle processen in het geheugen wachten op I/O.Oplossing: wisselen (swapping): het verplaatsen van een deel of het geheel van een proces van het hoofdgeheugen naar schijf.Bevindt geen enkel proces in het hoofdgeheugen zich in de toestand Gereed, dan verplaatst het besturingssysteem 1 van de geblokkeerde processen naar een wachtrij Opgeschort (suspend) = wachtrij van bestaande processen die tijdelijk uit het hoofdgeheugen zijn verwijderd

2 nieuwe toestanden:

Page 23: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

- 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

Nieuwe overgangen:- Geblokkeerd Geblokkeerd-opgeschort: zijn er geen processen gereed, dan wordt ten minste 1

geblokkeerd proces uit het hoofdgeheugen geswapt om ruimte te maken voor een ander proces dat niet geblokkeerd is

- Geblokkeerd-opgeschort Gereed-opgeschort: een proces in de toestand Geblokkeerd-opgeschort wordt verplaatst naar de toestand Gereed-opgeschort als de gebeurtenis optreedt waarop het proces heeft gewacht

- Gereed-opgeschort Gereed: bevindt zich geen proces in de rij Gereed, dan moet het besturingssysteem een proces binnenhalen om de uitvoering te kunnen voortzetten

- Gereed Gereed-opgeschort: het kan noodzakelijk zijn een gereed proces te swappen als dat de enige mogelijkheid is om een voldoende groot blok hoofdgeheugen vrij te maken

- Nieuw Gereed-opgeschort en Nieuw Gereed: wordt een nieuw proces gecreëerd, dan kan het worden toegevoegd aan de wachtrij Gereed of aan de wachtrij Gereed-opgeschort. In beide gevallen moet het besturingssysteem enkele tabellen maken voor het beheren van het proces en een adresruimte toewijzen aan het proces

- Geblokkeerd-opgeschort Geblokkeerd: er bevindt zich in de wachtrij Geblokkeerd-opgeschort een proces dat een hogere prioriteit heeft dan alle andere processen in de wachtrij Gereed-opgeschort en het besturingssysteem heeft een goede reden om aan te nemen dat de blokkade voor dat proces binnenkort zal zijn opgeheven. Onder deze omstandigheden kan het zinvol zijn een geblokkeerd proces in plaats van een gereed proces in het hoofgeheugen te laden

- Actief Gereed-opgeschort: behandelt het besturingssysteem een actief proces preëmptief omdat een proces met een hogere prioriteit in de wachtrij Geblokkeerd-opgeschort zojuist niet-geblokkeerd is geworden, dan kan het besturingssysteem het actieve proces rechtstreeks verplaatsen naar de wachtrij Gereed-opgeschort om extra geheugen vrij te maken

- Diverse toestanden Einde: bij sommige besturingssystemen kan een proces worden beëindigd door het ouderproces dat het proces heeft gecreëerd of door beëindiging van het ouderproces zelf. Is dit toegestaan, dan kan een proces vanuit elke toestand worden verplaatst naar de toestand EindeDefinitie opgeschort proces

1. Het proces is niet onmiddellijk beschikbaar voor uitvoering2. 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

Page 24: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

3.3. Beschrijving van processen

3.3.1.Beheersstructuren in het besturingssysteemAls het besturingssysteem processen en bronnen wil kunnen beheren, dan moet het informatie bezitten over de huidige status van elk proces en elke bron. Hiervoor maakt en onderhoudt het besturingssysteem tabellen met informatie over elke entiteit die het beheert

Alle besturingssystemen werken in essentie met informatie over de volgende 4 categorieën:

Geheugentabellen (memory tables)

Geheugentabellen worden gebruikt voor het bijhouden van het hoofdgeheugen (het reële geheugen) en het secundaire geheugen (het virtuele geheugen).De geheugentabellen bevatten de volgende informatie:- De toewijzing van hoofdgeheugen aan processen- De toewijzing van secundair geheugen aan processen- Beschermingsattributen voor welke processen toegang mogen krijgen tot bepaalde gedeelde

geheugengebieden- Alle informatie die nodig is voor het beheren van het virtuele geheugen

I/O-tabellen (I/O tables)

I/O-tabellen worden door het besturingssysteem gebruikt voor het beheren van de I/O-apparaten en I/O-kanalen van het computersysteem.De I/O-tabellen bevatten de volgende informatie:- Of een I/O-apparaat beschikbaar is of toegewezen is aan een bepaald proces- Status van de I/O-bewerking- Locatie in het hoofdgeheugen die wordt gebruikt als bron of bestemming van de I/O-overdracht

Page 25: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

Bestandstabellen (file tables)

Deze tabellen verschaffen informatie over:- Het bestaan van bestanden- Hun locatie in het secundaire geheugen- Hun huidige status- Andere attributen.Vaak wordt al deze informatie bijgehouden en gebruikt door het bestandsbeheersysteem (file management system)

Procestabellen (process tables)

Voor het beheren en besturen van een proces, moet een besturingssysteem bepaalde dingen weten:- Procesidentificatienummer- Procestoestant- Waar het proces zich bevindtHet procesbeeld (process image) is de verzameling die bestaat uit het programma, de gegevens, de stack en de attributen

3.3.2.Beheersstructuren voor processenWe kunnen de informatie in het procesbesturingsblok groeperen tot drie algemene categorieën:1. Procesidentificatie2. Processortoestandsinformatie3. Procesbesturingsinformatie

Procesidentificatie

Aan elk proces is een unieke, numerieke identificatiecode toegewezen, wat niet meer hoeft te zijn dan een eenvoudige index in de primaire procestabel.Veel andere tabellen die worden beheerd door het besturingssysteem, kunnen procesidentificatie gebruiken voor kruisverwijzing naar procestabellen.

Processortoestandsinformatie

Processortoestandsinformatie bestaat uit de inhoud van processorregisters:- Registers die zichtbaar zijn voor de gebruiker- Beheer- en statusregisters- StackwijzersVoor belangrijk is dat alle processorontwerpen een register of verzameling registers bevatten waarin statusinformatie is opgeslagen, het programmastatuswoord (program status word, PSW) genoemd. Het PSW bevat statusinformatie.

Procesbesturingsinformatie

Dit is de aanvullende informatie die het besturingssysteem nodig heeft voor het beheren en coördineren van de diverse actieve processen.

Page 26: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

Rol van het procesbesturingsblok

Het procesbesturingsblok is de belangrijkste gegevensstructuur in een besturingssysteem.Het verschaffen van toegang is niet moeilijk. Elke procesidentificatiecode kan worden gebruikt als idex in een tabel.De moeilijkheid zit hem in de bescherming:- Een fout in één routine kan procesbesturingsblokken beschadigen, waardoor het systeem de

betreffende processen niet meer kan beheren- Een aanpassing van het ontwerp van de structuur van het procesbesturingsblok kan invloed

hebben op meerdere modules in het besturingssysteem.Deze problemen kunnen worden opgelost door alle routines in het systeem te laten werken via één afhandelingsroutine.

3.4. Procesbesturing

3.4.1.UitvoeringsmodiGebruikersmodus (user mode)

- Minder geprivilegieerde modus- Gebruikersprogramma’s worden meestal in deze modus uitgevoerd

Systeemmodus (system mode)

- Meer geprivilegieerde modus- Kernel van het besturingssysteem - Synoniemen: besturingsmodus (control mode), kernelmodus (kernel mode)

3.4.2.Creëren van processen1. Het besturingssysteem wijst een unieke procesidentificatie toe aan het nieuwe proces2. Het besturingssysteem wijst ruimte toe aan het proces3. Het procesbesturingsblok moet worden geïnitialiseerd4. De juiste koppelingen moeten worden ingesteld5. Soms moeten andere gegevensstructuren worden gemaakt of uitgebreid

Page 27: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

3.4.3.Wisselen van processenWanneer moeten processen worden gewisseld:- Klokinterrupt- I/O-interrupt- Geheugenfout- Val (trap)- Supervisor-aanroep

Wisseling van procestoestand:1. Opslaan van de context van het proces, inclusief de

programmateller en andere registers2. Bijwerken van het procesbesturingsblok van het afgebroken

proces. Dit omvat het wijzigen van de toestand Actief in 1 van de andere toestanden (Gereed, Geblokkeerd, Gereed-opgeschort, Einde)

3. Het verplaatsen van het betreffende procesbesturingsblok naar de juiste wachtrij (Gereed, Geblokkeerd, Gereed-opgeschort)

4. Selecteren van een ander uit te voeren proces5. Bijwerken van het procesbesturingsblok van het geselecteerde

proces6. Bijwerken van de gegevensstructuren voor het geheugenbeheer7. Terugbrengen van de context van dit proces naar de context zoals

deze was op het moment dat het geselecteerde proces het laatst uit de toestand Actief werd gewisseld, door het laden van de opgeslagen waarden van de programmateller en andere registers

3.4.4.Uitvoering van het besturingssysteemProcesloze kernel

Het uitvoeren van de kernel van het besturingssysteem buiten alle processen. De code van het besturingssysteem wordt uitgevoerd als een afzonderlijke entiteit die werkt in een geprivilegieerde modus

Uitvoering binnen gebruikersprocessen

Diverse functies van het besturingssysteem worden uitgevoerd binnen de omgeving van het gebruikersproces

Op processen gebaseerd besturingssysteem

Implementeren van het besturingssysteem als een verzameling systeemprocessen. Dit is nuttig in een omgeving met meerdere processen of meerdere computers, waarbij een deel van de functies van het besturingssysteem kan worden verplaatst naar speciale processors, hetgeen de prestaties verbetert

4. Bestandsbeheer

4.1. Overzicht

4.1.1.Bestanden en bestandssystemenIn de meeste toepassingen is het bestand het centrale element.

Page 28: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

Vanuit het oogpunt van de gebruiker is het bestandssysteem een van de belangrijkste onderdelen van een besturingssysteem.Het bestandssysteem stelt gebruikers in staat bestanden met volgende eigenschappen te maken: Langdurig bestaand Deelbaar tussen processen Structuur

Functies die kunnen worden toegepast op bestanden: Maken, wissen Openen, sluiten Lezen, schrijven

Aantal attributen aan het bestand: Eigenaar Tijd waarop het bestand werd gemaakt Tijd waarop het bestand voor het laatst werd gewijzigd Toegangsrechten

Bestandsstructuur

Bij het bespreken van bestanden worden 4 begrippen algemeen gebruikt: Veld (field):

- Basiselement van gegevens- Bevat 1 waarde, vb. achternaam van een werknemer, datum,...- Onderscheid zich door de lengte en gegevenstype

Record: - Verzameling gerelateerde velden- Kan als eenheid worden behandeld

Bestand (file): - Verzameling vergelijkbare records- Wordt behandeld als 1 entiteit- Hebben unieke bestandsnamen- Toegangscontrole en restricties worden doorgaans toegepast

Database: - Verzameling gerelateerde gegevens- Relaties bestaan tussen gegevenselementen- Bestaat uit een of meer soorten bestanden

4.1.2.Systemen voor bestandsbeheerSysteem voor bestandsbeheer (file management system) = verzameling systeemsoftware die diensten verzorgt voor gebruikers en toepassingen bij het gebruiken van bestanden. De gebruiker of programmeur moet geen speciale software ontwikkelen voor elke toepassing.Een systeem voor bestandsbeheer moet voldoen aan de volgende doelstellingen:- Voorzien in de behoeften en vereisten voor het gegevensbeheer van de gebruiker- Garanderen dat de gegevens in de 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

Page 29: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

- Voorzien in een gestandaardiseerde verzameling interfaceroutines voor I/O- Ondersteuning van I/O bieden aan meerdere gebruikers bij systemen voor meerdere gebruikers

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 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 kunnen krijgen tot zijn bestanden via een symbolische naam

4.1.3.Architectuur van bestandssystemenApparaatstuurprogramma’s (device drivers)

- Laagste niveau- Communiceert rechtstreeks met randapparaten- Verantwoordelijk voor het starten van I/O-bewerkingen op een apparaat- Verwerkt de voltooiing van een I/O-opdracht

Basisbestandssysteem (basic file system)

- Fysieke I/O- Behandelt de gegevensblokken die worden uitgewisseld- Verzorgt de plaatsing van die blokken- Buffert de blokken in het hoofdgeheugen

Basis-I/O (basic I/O supervisor)

- Verantwoordelijk voor het starten en beëindigen van alle bestand-I/O- Besturingsstructuren worden bijgehouden- Selecteert het apparaat waarop bestands-I/O wordt uitgevoerd- Verzorgt de scheduling van schijf- en tapetoegangen om de prestaties te optimaliseren- Onderdeel van het besturingssysteem

Logische I/O

- Verschaft gebruikers en toepassingen toegang tot records

- Vormt een algemene voorziening voor record-I/O

- Houdt basisgegevens over bestanden bij

Page 30: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

Toegangsmethode (access methode)

- Verschillende toegangsmethoden voor verschillende bestandsstructuren- Verschillende methoden om gegevens te lezen en verwerken

4.2. Bestandsorganisatie en –toegangDe term bestandsorganisatie wordt gebruikt voor de logische structuur van de records zoals die wordt bepaald door de manier waarop ze worden benaderd. De fysieke indeling van het bestand in het secundaire geheugen is afhankelijk van de strategie voor blokvorming en bestandstoewijzing.Diverse criteria zijn belangrijk:- Korte toegangstijd- Gemak van bijwerken- Efficiënt gebruik van opslagruimte- Onderhoudsgemak- Betrouwbaarheid

4.2.1.

Stapelbestand- Gegevens worden verzameld in de volgorde waarin ze binnenkomen- De gegevensmassa vergaren en opslaan- Records kunnen verschillende velden hebben- Geen structuur- Recordtoegang vindt plaats via volledig zoeken

Stapelbestanden worden toegepast wanneer gegevens voorafgaan aan de verwerking worden verzameld en opgeslagen, of wanneer gegevens niet gemakkelijk zijn in te delen.Voordelen:

- Efficiënt gebruik van de ruimte als de grootte en structuur van de opgeslagen gegevens variëren- Uitstekend geschikt voor volledige zoekbewerkingen- Gemakkelijk bij te werken

Dit soort bestand is echte ongeschikt voor de meeste toepassingen

4.2.2.Sequentieel bestand- Vaste indeling van records- Alle records hebben dezelfde lengte- Hetzelfde aantal velden met vaste lengte in een specifieke volgorde- Veldnaam en lengte zijn attributen van het bestand- Meestal 1 veld in elk record = sleutelveld (key field)- Unieke identificatie van de record

Page 31: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

- Records worden opgeslagen in sleutelvolgorde

Sequentiële bestanden worden gebruikt in batchtoepassingen of toepassingen die bij verwerking alle records gebruiken.Voordeel: kan gemakkelijk opgeslagen worden op tapes en schijvenNadeel:- Slechte prestaties bij afzonderlijke records- Toevoegingen aan het bestand leiden tot problemen

4.2.3.Index-sequentieel bestand- Behoudt de hoofdkenmerken van het sequentiële bestand- Records zijn ingedeeld in volgorde op basis van het sleutelveld- Een index naar het bestand voor het ondersteunen van willekeurige toegang- Een overloopbestand (record kan worden gevonden door het volgen van een verwijzing in de

voorafgaande record)

Meerdere niveaus van indexering kunnen worden gebruikt.Het index-sequentiêle bestand vermindert de tijd die nodig is voor de toegang tot een record sterk, zonder dat dit ten koste gaat van het sequentiële karakter van het bestand.

4.2.4.Geïndexeerd bestand- Gebruikt meerdere indexen voor verschillende velden:

Volledige index bevat één ingang voor elke record in het hoofdbestand Gedeeltelijke index bevat ingangen voor records waarin het gewenste veld voorkomt

- Wordt een nieuwe record toegevoegd aan het hoofdbestand, dan moeten alle indexbestanden worden bijgewerkt

Geïndexeerde bestanden worden vooral gebruikt in toepassingen waarbij snelle verwerking van informatie cruciaal is en waarbij zelden alle gegevens worden verwerkt.Vb.: reserveringssystemen voor luchtvaartmaatschappijen, systemen voor voorraadbeheer

De index zelf is voor het zoekgemak ingedeeld als sequentieel bestand.Nadeel: records zijn uitsluitend toegankelijk via hun indexen.

4.2.5.Direct of hashed bestand- Wordt gebruikt wanneer snelle toegang vereist is, wanneer records met vaste lengte worden

gebruikt en wanneer de toegang altijd beperkt blijft tot één record tegelijk- Vb.: directory’s, prijstabellen, roosters en naamlijsten- Directe toegang tot elk blok met een bekend adres- Sleutelveld in elk record vereist- Geen sequentiële volgorde

4.3. Bestandsdirectory’s

4.3.1.Inhoud- Bevat informatie over bestanden zoals attributen, locatie en eigendom- Een bestand dat door allerlei bestandsbeheerroutines kan worden benaderd- Voert een vertaalslag uit tussen bestandsnamen en de bestanden zelf

Informatie-elementen van een bestandsdirectory:Basisinformatie

Page 32: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

- Bestandsnaam: naam gekozen door de maker, moet uniek zijn binnen een specifieke directory- Bestandstype: vb. tekst, binair of laadmodule- Bestandsorganisatie: voor systemen die verschillende bestandsorganisaties ondersteunen

Adresinformatie

- Volume: geeft het apparaat aan waarop het bestand is opgeslagen- Beginadres: fysiek beginadres op secundaire opslag (vb. cilinder, spoor en bloknummer op schijf)- Gebruikte grootte: huidige bestandsgrootte in bytes, woorden of blokken- Toegewezen grootte: de maximale grootte van het bestand

Toegangscontrole-informatie

- Eigenaar: kan toegang toestaan of weigeren aan andere gebruikers en hun privileges veranderen- Toegangsinformatie: kan de naam en het wachtwoord van iedere geautoriseerde gebruiker bevatten- Toelaatbare acties: controleert het lezen, schrijven, uitvoeren en verzenden via een netwerk

Gebruiksinformatie

- Datum gecreëerd: datum waarop het bestand voor het eerst in de directory werd geplaatst- Identiteit van de maker: meestal, maar niet noodzakelijk, de huidige eigenaar- Datum laatste leestoegang: datum waarop een record het laatst werd gelezen- Identiteit van laatste lezer: gebruiker die het lezen uitvoerde- Datum laatste wijziging: datum van de laatste bijwerking, invoeging of verwijdering- Identiteit voor laatste wijziging: gebruiker die de wijziging uitvoerde- Datum laatste reservekopie: datum waarop voor het laatst een reservekopie van het bestand werd

gemaakt op een ander medium- Huidig gebruik: informatie over de huidige activiteit voor het bestand, zoals het proces dat het

bestand geopend heeft, of het bestand is vergrendeld door een proces en of het wel is bijgewerkt in het hoofdgeheugen maar nog niet op schijf

4.3.2.Structuur- De manier waarop de informatie wordt opgeslagen, verschilt sterk van systeem tot systeem

De eenvoudigste structuur

- Lijst van ingangen, met 1 ingang voor elk bestand- Sequentieel bestand, waarbij de naam van het bestand dienst doet als sleutel- Biedt geen hulp bij het ordenen van de bestanden- Dwingt de gebruiker erop te letten dat hij niet dezelfde naam gebruikt voor 2 verschillende types

bestanden

Soorten bewerkingen die met de directory kunnen worden uitgevoerd:- Zoeken- Bestand creëren- Bestand verwijderen- Directory weergeven- Directory bijwerkenDe eenvoudige lijst is niet geschikt voor de ondersteuning van al deze bewerkingen.

Schema met 2 niveaus

Page 33: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

- 1 directory voor iedere gebruiker en 1 hoofddirectory (masterdirectory)- Hoofddirectory bevat 1 ingang voor elke gebruikersdirectory- Heeft adres- en toegangscontrole-informatie- Elke gebruikersdirectory is een eenvoudige lijst met

bestanden van die gebruiker- Geen middel om verzamelingen bestanden te structureren- Namen hoeven alleen uniek te zijn binnen de verzameling

bestanden van één gebruiker

Hiërarchische of boomstructuurbenadering

- 1 hoofddirectory met daarin enkele gebruikersdirectory’s- Elke gebruikersdirectory kan op zijn beurt subdirectory’s en

bestanden bevatten. Dit geldt voor elk niveau.

4.3.3.Naamgeving- Gebruikers moeten met een naam naar een bestand kunnen verwijzen- Elk bestand moet een unieke naam hebben- Elk bestand in het systeem kan worden gevonden door een pad te volgen langs verschillende takken

totdat het bestand is bereikt- Verschillende bestanden kunnen dezelfde bestandsnamen hebben, zolang ze maar een unieke

padnaam hebben

Werkdirectory

- De volldige padnaam uitspellen is lastig voor een gebruiker- Een interactieve gebruiker of een proces is verbonden aan een huidige directory

4.4. Gemeenschappelijk gebruik van bestandenEen systeem met meerdere gebruikers vereist bijna altijd dat bestanden gedeeld kunnen worden door een aantal gebruikers. Hierbij spelen 2 kwesties een rol: toegangsrechten en het beheer van gelijktijdige toegang

4.4.1.Toegangsrechten- Geen: de gebruiker weet niet dat het bestand bestaat en krijgt geen toestemming voor het lezen van

de gebruikersdirectory waarin dit bestand voorkomt- Kennis: de gebruiker kan vaststellen dat het bestand bestaat en wie de eigenaar is- Uitvoeren: de gebruiker kan een programma laden en uitvoeren maar 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

De eigenaar heeft alle toegangsrechten en kan rechten verlenen aan anderen:- Specifieke gebruiker- Gebruikersgroepen- Alle

Page 34: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

4.4.2.Gelijktijdige toegang- Gebruiker kan het volledige bestand vergrendelen wanneer dat wordt bijgewerkt- Vergrendelen van afzonderlijke records tijdens het bewerken- Wederzijdse uitsluiting (mutual exclusion) en dodelijke omarming (deadlock) zijn problemen voor

gedeelde toegang

4.5. Blokvorming van records- Records moeten worden ingedeeld als blokken- Records zijn de logische eenheid bij toegang tot een bestand- Blokken zijn de eenheid van I/O met secundaire opslag

3 methoden voor blokvorming (blocking):1. 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

2. Gekoppelde blokvorming met variabele lengte: hierbij worden records met variabele lengte gebruikt en samengepakt in blokken. Alle ruimte wordt gebruikt. Sommige records kunnen daarbij meerdere blokken omspannen, waarbij het vervolg wordt aangegeven door een verwijzing naar het volgende blok

3. 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, ongebruikte ruimte

Blokvorming met vaste lengte is de gebruikelijke vorm voor sequentiële bestanden.

Page 35: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

Gekoppelde blokvorming met variable lengte gebruikt opslagruimte efficiënt en beperkt de grootte van records niet. Dit is echter moeilijk te implementeren.Niet-gekoppelde blokvorming met variabele lengte leidt tot verspilde ruimte.

4.6. Beheer van secundaire opslagHet besturingssysteem is verantwoordelijk voor het toewijzen van blokken aan bestanden.2 aandachtspunten:- Ruimte op secundaire opslag moet worden toegewezen aan bestanden- Noodzakelijk bij te houden welke ruimte beschikbaar is voor toewijzing

4.6.1.BestandstoewijzingBij bestandstoewijzing spelen verschillende kwesties een rol:- Als een nieuw bestand wordt gecreëerd, wordt de maximumruimte in één keer toegewezen?- Ruimte wordt toegewezen aan een bestand als een of meer aaneengesloten porties. Welke

portiegrootte moet worden gebruikt bij de bestandstoewijzing?- Welke gegevensstructuur wordt gebruikt voor het bijhouden van de porties?

Toewijzing vooraf of dynamisch

- De maximale grootte van een bestand wordt gedeclareerd bij de creatie van het bestand- Bij veel toepassingen is het moeilijk de maximale grootte van het bestand te schatten- Programmeurs hebben de neiging te overschatten om te voorkomen dat ze ruimte tekortkomen

Portiegrootte

Twee uitersten:- Een portie wordt toegewezen die groot genoeg is voor het gehele bestand- Ruimte wordt toegewezen op de schijf met één blok tegelijk

Bij het kiezen van de portiegrootte moet een balans worden gevonden tussen de efficiëntie, gezien vanuit één bestand en de algehele systeemefficiëntie

4 aspecten die in overweging moet worden genomen:- Aaneengesloten ruimte verbetert de prestaties- Een groot aantal porties vergroten de tabellen die nodig zijn voor het beheren van de

toewijzingsinformatie- Porties met een vaste grootte vereenvoudigen de toewijzing van ruimte- Porties met variabele grootte minimaliseren de verspilling voor ongebruikte opslagruimeTwee alternatieven:- Variabele, grote, aaneengesloten porties

Betere prestaties Voorkomt verspilling Tabellen voor bestandstoewijzing zijn klein Hergebruiken van ruimte is lastig

- Blokken (kleine, vaste porties) Hogere flexibiliteit Kan grote tabellen vereisen Geen aaneensluiting (blokken worden toegewezen zodra ze nodig zijn)

Methoden van bestandstoewijzing

Page 36: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

Aaneengesloten toewijzing (contiguous allocation):- 1 aaneengesloten verzameling blokken toegewezen aan een bestand op het moment dat het

bestand wordt gecreëerd- De tabel voor bestandstoewijzing hoeft slechts 1 ingang voor elk bestand te bevatten, die het

beginblok en de lengte van het bestand aangeeft- Er kan externe fragmentatie optreden- Nu en dan noodzakelijk een algoritme voor samenpakken (compaction) uit te voeren om

voldoende aanvullende ruimte op schijf vrij te maken

Kettingtoewijzing (chained allocation):- De toewijzing vindt meestal plaats op basis van afzonderlijke blokken- Elk blok bevat een wijzer naar het volgende blok in de ketting- De tabel voor bestandstoewijzing hoeft slechts 1 ingang voor elk bestand te bevatten, die het

beginblok en de lengte van het bestand aanduidt- Geen externe fragmentatie- Meest geschikt voor sequentiële bestanden

- Selecteren van een afzonderlijk blok van een bestand vereist het volgen van de keten naar het gewenste blok

Indextoewijzing (indexed allocation):- Lost veel van de problemen op van aaneengesloten en kettingtoewijzing- De tabel voor bestandstoewijzing bevat een afzonderlijke index van 1 niveau voor elk bestand- De index heeft 1 ingang voor elke portie die aan het bestand is toegewezen- De bestandsindex voor een bestand wordt bijgehouden in een apart blok en de bestandsingang

verwijst in de tabel voor bestandstoewijzing naar dat blok

Page 37: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

BootprocesHet 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.

PartitiesDeel 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 getalBij het booten start het besturingssysteem in de actieve partitie

PartitietabelDe 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 partities4 primaire partities is soms te weinig. Een primaire partitie kan onderverdeeld worden in logische partities (= extended)

Page 38: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

Medium Verdeeld in Info staat in Max aantal partitiesSchijf Primaire partities MBR 4Extended partitie Logische partities EMBR 24

EMBR= Extended Master Boot RecordEMBR voor de extended partitiesEMBR 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

PBRPartitie 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 verplaatsingFFFF0 (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

Page 39: Overzicht van computersystemen - · Web viewJobbesturingstaal (job control language, JCL) is een speciaal soort programmeertaal die wordt gebruikt voor het opgeven van instructies

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 is6. MBR kopiëren naar werkgeheugen (bevat IPL)7. Sprong naar 1e bevel in IPL8. 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-startprogramma10.PBR-startprogramma : ntldr inladen

- Indien niet gevonden : “ntldr missing” op het scherm zetten

11.Ntldr : processor naar protected mode en Windows starten