De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

BESTURINGS SYSTEMEN Vincent Naessens. Besturingssystemen OPERATING SYSTEMS Theorie, ontwerp en praktijk VIJFDE EDITIE William Stallings, PhD.

Verwante presentaties


Presentatie over: "BESTURINGS SYSTEMEN Vincent Naessens. Besturingssystemen OPERATING SYSTEMS Theorie, ontwerp en praktijk VIJFDE EDITIE William Stallings, PhD."— Transcript van de presentatie:

1 BESTURINGS SYSTEMEN Vincent Naessens

2 Besturingssystemen OPERATING SYSTEMS Theorie, ontwerp en praktijk VIJFDE EDITIE William Stallings, PhD.

3 Overzicht van het boek deel 1: achtergrond deel 2: processen deel 3: geheugen deel 4: scheduling deel 5: invoer/uitvoer en bestand deel 6: gedistribueerde systemen computersystemen besturingssystemen I besturingssystemen II

4 Overzicht van de cursus deel 1: achtergrond deel 2: processen deel 3: geheugen Hoofdstuk 1: Overzicht van computersystemen (L. De Strycker) Hoofdstuk 2: Overzicht van besturingssystemen Hoofdstuk 3: Beschrijving en besturing van processen Hoofdstuk 4: Threads, SMP en microkernels Hoofdstuk 5: Gelijktijdigheid: wederzijdse uitsluiting en synchronisatie Hoofdstuk 6: Gelijktijdigheid: deadlock en starvation Hoofdstuk 7: Geheugenbeheer Hoofdstuk 8: Virtueel geheugen (besturingssystemen I)

5 Overzicht van de cursus deel 4: scheduling deel 5: Invoer/Uitvoer en bestand deel 6: Gedistribueerde systemen Hoofdstuk 9: Scheduling bij een processor Hoofdstuk 10: Scheduling bij multiprocessing en realtime Hoofdstuk 11: I/O beheer en schijfscheduling Hoofdstuk 12: Bestandsbeheer Hoofdstuk 13: Netwerken Hoofdstuk 14: Gedistribueerde verwerking, client/server architectuur en clusters Hoofdstuk 15: Gedistribueerd procesbeheer Hoofdstuk 16: Beveiliging

6 DEEL III: GEHEUGEN Hoofdstuk 7: Geheugenbeheer Hoofdstuk 8: Virtueel geheugen

7 Hoofdstuk 7: Geheugenbeheer

8 Geheugenbeheer uniprogrammering multiprogrammering residente monitor en kernel gebruikersdeel residente monitor en kernel proces_1 proces_2 proces_3 geheugenbeheer (~dynamisch)

9 7.1. Vereisten voor geheugenbeheer 1. Relocatie (~programma kunnen verplaatsen naar ander deel van geh.) vaststellingen: a)processen kunnen reeds in hoofdgeheugen aanwezig zijn indien een ander proces geladen wordt b) bij swap_out komt geheugen vrij c) bij swap_in kan geheugen bezet zijn problemen: a)sprong opdrachten: JMP 1057 b)verwijzing naar gegevens: GET R1,2743 oplossing: adressering in programmacode fysieke adressering OS

10 7.1. Vereisten voor geheugenbeheer 2. Bescherming t.o.v. andere processen vaststellingen: a)onmogelijk om fysieke adressen te controleren tijdens compile time (~relocatie) b)bij vele programmeertalen worden adressen at runtime berekend int x = readInt(); a[x]=15; taak HW: afbreken van instructies die andere processen benaderen 3. Mogelijkheid tot delen van geheugen tussen verschillende processen Wanneer? a)processen die zelfde programmacode uitvoeren b)processen die gemeenschappelijke gegevensstructuur delen

11 7.1. Vereisten voor geheugenbeheer 4. Logische indeling kunnen mappen op fysische indeling vaststellingen: 0 n-2 n-1 … fysisch geheugen eendimensioneel opbouw programma’s modulair OS en HW moeten kunnen omgaan met modulariteit van programma’s  techniek = segmentatie

12 7.1. Vereisten voor geheugenbeheer 4. Fysieke indeling bestaat uit verschillende niveaus hoofdgeheugensecundair geheugen + snel - hoge kost - volatile + langzaam - lagere kost - non-volatile probleem: informatiestroom organiseren oplossing_1: programmeur heeft verantwoordelijkheid overlays: programmeur kent verschillende modules in prog. aan zelfde geh. gebied toe probleem_1: verspilling van tijd van programmeur probleem_2: niet voldoende voor multiprogrammering oplossing_2: verantwoordelijkheid bij OS

13 7.2. Partitioneren van geheugen virtueel geheugen = systeem om programma binnen te halen in hoofdgeheugen technieken segmenteren pagineren partitioneren: gebruikt geen virtueel geheugen

14 7.2. Partitioneren van geheugen statische partitionering (~vaste indeling in partities) 8MB (OS) 8MB partities van gelijke grootte nadelen van partities met gelijke grootte: 1)overlays gebruiken indien programma te groot 2)interne fragmentatie indien programma te klein algoritme: 1. kies willekeurige onbezette partitie 2. indien geen partitie vrij: ev. swapping (sched. dec.)

15 7.2. Partitioneren van geheugen statische partitionering (~vaste indeling in partities) 8MB (OS) 8MB 2MB 12MB 4MB 6MB 2MB partities van ongelijke grootte algoritme 1: 1 wachtrij voor alle processen 1.kies kleinste vrije partitie waar proces in kan 2.indien geen partitie vrij: ev. swapping (~sched. dec.) algoritme 2: 1 wachtrij per type partitie 1.kies vrije partitie van bep. type waar proces in kan 2.indien geen partitie vrij: ev. swapping (~sched. dec.) nadelen: 1)beperkt aantal actieve processen in systeem 2)interne fragmentatie bij zeer kleine processen

16 7.2. Partitioneren van geheugen dynamische partitionering (~variabel aantal partities van variabele grootte) OS p_1 p_4 p_3 OS p_1 p_3 OS p_1 p_2 p_3 OS p_1 p_2 OS p_1 OS p_3 OS p_3 p_2 p_4 nadelen: externe fragmentatie oplossing: compation op geregelde tijdstippen BUT time-consuming

17 7.2. Partitioneren van geheugen dynamische partitionering (~variabel aantal partities van variabele grootte) plaatsingsalgoritmes: a)algoritme 1: best-fit plaats in kleinste blok waar plaats genoeg is b) algoritme 2: first-fit plaats in eerste blok waar plaats genoeg is c) algoritme 3: next-fit plaats in eerste blok na vorige plaatsing waar plaats genoeg is

18 7.2. Partitioneren van geheugen buddysysteem (combinatie statisch en dynamisch) plaatsingsalgoritme bij blok van grootte 2 i-1

19 7.2. Partitioneren van geheugen buddysysteem (combinatie statisch en dynamisch) plaatsingsalgoritme bij blok van grootte 2 i-1

20 7.2. Partitioneren van geheugen relocatie relocating loader: mogelijk indien proces altijd op zelfde plaats komt na swappen dynamic runtime loading: indien proces op verschillende plaatsen kan terechtkomen (HW support nodig!) base register PCB code data stack opteller comparator absoluut adres interrupt nr OS relatief adres bounds register

21 7.3. Pagineren pagineren: waarom? partities met vaste grootte  interne fragmentatie partities met variabele grootte  externe fragmentatie pagineren: strategie? opdelen van proces in pages EN opdelen van geheugen in (page) frames (~relatief kleine partities) groote van 1 page = grootte van 1 (page) frame

22 7.3. Pagineren A.0 A.1 A.2 A A.0 A.1 A.2 A.3 B.0 B.1 B A.0 A.1 A.2 A.3 B.0 B.1 B.2 A.0 A.1 A.2 A.3 C.0 C.1 C.2 C.3 C.0 C.1 C.2 C.3 D.0 D.1 D.2 D.3 D.4 A.0 A.1 A.2 A.3 C.0 C.1 C.2 C processen: A, B, C, D - voorstelling van process pages in page frames

23 7.3. Pagineren D.0 D.1 D.2 D.3 D.4 A.0 A.1 A.2 A.3 C.0 C.1 C.2 C.3 OS houdt paginatietabel bij per proces proces Aproces Bproces Cproces D lijst van vrije frames voordelen: a)geen externe fragmentatie b)beperkte interne fragmentatie

24 7.3. Pagineren pagineren: voorbeeld stel: 16 bit adressen page length = 1kB = 1024 bytes dan: maximale programmalengte = 64 pages stel: relatief adres: 1502 = (000001)( ) dan: page number: 1 = offset (relatieve positie) : 478 = ADRESVERTALING 1.haal 6 linker bits uit logisch adres 2.zoek frame number k dmv page number in page table 3.fysiek adres = k x offset

25 7.4. Segmenteren segmenteren: wat? - programma opdelen in segementen - segmenten hoeven niet allemaal zelfde grootte te hebben segmenteren: voordelen a)geen interne fragmentatie b)beperktere externe fragmentatie stel: 16 bit adressen 4 bit segment voor gegeven adres dan: length base

26 7.5. Samenvatting gebruikersproces (000001)( )(0001)( ) relatief adres = 1502 logisch adres = pagNr=1;pos=478 logisch adres = segNr=1;pos=752 pag_0 pag_1 pag_2 seg_0 seg_1 partitioneringpagineringsegmentering


Download ppt "BESTURINGS SYSTEMEN Vincent Naessens. Besturingssystemen OPERATING SYSTEMS Theorie, ontwerp en praktijk VIJFDE EDITIE William Stallings, PhD."

Verwante presentaties


Ads door Google