BESTURINGS SYSTEMEN Vincent Naessens.

Slides:



Advertisements
Verwante presentaties
Vertaling van Miriam Zweverink Project No Presentatie 2009 Tool 3 WORX voor aannemers.
Advertisements

CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005.
Hoofdstuk 5 Sociale verbanden.
™.
Installatie & beheer Jonathan Mohnen Martijn Wolfs.
Componenten voor een werkende computer
Examens landbouw 2009, 2010,… Gerard de Gier
Workshop harde schijf indelen
11 januari januari “Van elke drie pc’s heeft er een geen goede beveiliging.
Beheer(s) je milieutaken Milieuzorgsysteem als tool! 19 november 2012.
11 januari januari “Van elke drie pc’s heeft er een geen goede beveiliging tegen virussen en spionnen”
ICT Infrastructuren 26 november 2007 David N. Jansen.
Gary Kildall ?. Pc met randapparatuur Computerprogramma’s.
Par. 3.3 Het geheugen.
Het werkgeheugen stored program concept (John von Neumann) Het achtergrondgeheugen Geheugen.
Gestructureerd programmeren in C
DEEL V: INVOER/UITVOER EN BESTAND Hoofdstuk 11: I/O beheer en schijfscheduling Hoofdstuk 12: Bestandsbeheer.
Hoofdstuk 8: Virtueel geheugen
Klassieke AO Leseenheid1
In de juiste volgorde Initiatief Bijstellen Analyse Evaluatie
Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Geavanceerde pipelining en parallellisme op het niveau van instructies (ILP:
Destillatie.
Het gegevensverwerkend proces
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(1): Instructietypen (1)
Geheugenbeheer ICT Infrastructuren hoofdstukken 7 en 8.1.
Het gegevensverwerkend proces
Opleiding ICT © J.W. Jonker Dia 1/20 Systemen Besturingssoftware Windows XP Mark van Heck.
Opleiding ICT © J.W. Jonker Dia 1/16 Systemen Besturingssoftware Windows XP Mark van Heck.
Opleiding ICT © J.W. Jonker Dia 1/19 Systemen Besturingssoftware Windows XP Mark van Heck.
Systeemsoftware Hfdst 2
Besturings- systeem A Computer A Besturings- systeem B Computer B Netwerk Handmatige taak I Applicatie 2Applicatie 1 Handmatige taak II Applicatie 3 Gebruiker.
Hoofdstuk 2 Beginselen van de EG. Taken EG: Het instellen van een gemeenschappelijke markt (= interne markt), dat wil zeggen één enkele binnenmarkt. Het.
Real-Time Systems (RTSYST) Week 2. Process/Thread states Scheduler = deel van OS dat de toestanden van processen/threads bepaald. OS gebruikt timerinterrupt.
Real-Time Systems (RTSYST) Week Priority inheritance voorbeeld taakprioexecutionrelease time d4EEQVE4 c3EVVE2 b2EE2 a1EQQQQE0.
Elektriciteit 1 Basisteksten
Informatica op het Kalsbeek College. Informatica op het Kalsbeek College.
Motivatie: van begrip naar toepassingen
Hoe werkt een rekenmachine?
Hoofdstuk 1 Begripsbepaling AO/BIV
Linux Workshop 2 Installatie en partities. Linux in VMware  VMware Workstation  Versie >= (voor volledige ondersteuning Ubuntu 10.10, en ook Windows.
P. 1 Vakgroep Informatietechnologie Scanf voorbeeld #include int main(void) { int i=-1,j=-1,k=-1,l=-1; int b; b=scanf("%d %d %d %d",&i,&j,&k,&l); printf("res=%d.
1 ICT Infrastructuren 19 november 2007 David N. Jansen.
Operating Systems Informatica.
Informatica Blok 2 Hoofdstuk 4
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)
Concurrency en Deadlock ICT Infrastructuren David N. Jansen Stallings hoofdstukken 5 en 6.
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 9(1): Virtual.
De rommel van de programmeur Pieter van Ede. Handmatig geheugenbeheer Programmeur gooit zelf objecten weg Veel fouten mee gemaakt Geheugenlekken ‘Dangling.
Windows Verkenner Tips en Trucs woensdag 14 januari 2015
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Basisfuncties Operating System.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Module 3 – Hoofdstuk 2 Systeemsoftware.
Besturingssysteem Vaak wordt de Engelse term gebruikt: Operating System ( OS ) Plaats van het OS in een computersysteem: Hardware Applicatie Operating.
Les 5: Geheugenbeheer “If we wish to count lines of code, we should not regard them as ‘lines produced’ but as ‘lines spent.’” – Edsger Dijkstra.
Code compressie in Embedded Systems Onno Kievit ET4074 Kwantitatieve aspecten van computer architectuur.
3. Taakgericht én procesgericht leveren van ICT voorzieningen.
EMSE 20 oktober 2015 Verlichting, het Internet of Things en ARM mbed 3.0 Klaas de Waal.
1 VMWare. 2 Introductie VMware Fysieke server ESX-server Virtuele machines Ongewijzigde toepassing Ongewijzigd besturingssysteem Virtuele hardware.
Module code: Scheduling Het verdelen van processortijd onder processen en threads 1.
Digitale gegevens Drs. Ing. Rainier Kock 1. Vorige les 2 Computers werken met elektrische schakelingen Schakelaar aan = 1, uit = 0 Tekst, geluid en beeld.
Operating Systems Informatica.
Programmeren.
HERZIENING INFORMATICA DEEL 1.
3 Hardware 3.1 De processor en intern geheugen
Learning Content Management Systeem
Besturingssystemen Prof. K. De Bosschere Vakgroep ELIS
Besturingssystemen Ga verder met een muisklik..
Besturingssysteem.
Netwerken & Internet 1.
Transcript van de presentatie:

BESTURINGS SYSTEMEN Vincent Naessens

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

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

Overzicht van de cursus deel 1: achtergrond Hoofdstuk 1: Overzicht van computersystemen (L. De Strycker) Hoofdstuk 2: Overzicht van besturingssystemen deel 2: processen 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 deel 3: geheugen Hoofdstuk 7: Geheugenbeheer Hoofdstuk 8: Virtueel geheugen (besturingssystemen I)

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

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

Hoofdstuk 7: Geheugenbeheer

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

7.1. Vereisten voor geheugenbeheer 1. Relocatie (~programma kunnen verplaatsen naar ander deel van geh.) vaststellingen: 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: sprong opdrachten: JMP 1057 verwijzing naar gegevens: GET R1,2743 oplossing: OS adressering in programmacode fysieke adressering

7.1. Vereisten voor geheugenbeheer 2. Bescherming t.o.v. andere processen vaststellingen: onmogelijk om fysieke adressen te controleren tijdens compile time (~relocatie) 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? processen die zelfde programmacode uitvoeren processen die gemeenschappelijke gegevensstructuur delen

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

7.1. Vereisten voor geheugenbeheer 4. Fysieke indeling bestaat uit verschillende niveaus hoofdgeheugen secundair 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

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

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

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

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

7.2. Partitioneren van geheugen dynamische partitionering (~variabel aantal partities van variabele grootte) plaatsingsalgoritmes: 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

7.2. Partitioneren van geheugen buddysysteem (combinatie statisch en dynamisch) elk toegewezen blok: 2K met L≤K≤U 2L : kleinste blok dat wordt toegewezen 2U : grootste blok dat wordt toegewezen (meestal: grootte van geh.) 1MB plaatsingsalgoritme bij blok van grootte 2i-1<k≤2i: req(100) void get_hole(int i){ if(i==(U+1)) <failure> if(<i_list empty>){ get_hole(i+1); <split hole into buddy> <put buddies on i_list> } <take first hole on i_list> req(240) req(64) req(256) rel(240) rel(100) req(75) rel(64) rel(128) rel(256)

7.2. Partitioneren van geheugen buddysysteem (combinatie statisch en dynamisch) plaatsingsalgoritme bij blok van grootte 2i-1<k≤2i: 1MB 1MB req(100) 512KB req(240) req(64) 256KB req(256) 128KB rel(240) rel(100) 64KB req(75) rel(64) rel(128) rel(256)

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!) relatief adres PCB base register code opteller absoluut adres comparator data bounds register interrupt nr OS stack

7.3. Pagineren groote van 1 page = grootte van 1 (page) frame 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

7.3. Pagineren - 4 processen: A, B, C, D 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A.0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A.0 A.0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A.0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A.0 A.1 A.1 A.1 A.1 A.1 A.2 A.2 A.2 A.2 A.2 A.3 A.3 A.3 A.3 A.3 B.0 B.0 D.0 B.1 B.1 D.1 B.2 B.2 D.2 C.0 C.0 C.0 C.1 C.1 C.1 C.2 C.2 C.2 C.3 C.3 C.3 D.3 D.4 - 4 processen: A, B, C, D - voorstelling van process pages in page frames

7.3. Pagineren OS houdt paginatietabel bij per proces proces A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A.0 OS houdt paginatietabel bij per proces A.1 A.2 A.3 proces A proces B proces C proces D D.0 D.1 1 2 3 1 2 1 2 3 4 - 1 2 3 7 4 D.2 1 - 8 5 C.0 2 - 9 6 C.1 3 10 11 C.2 12 C.3 D.3 lijst van vrije frames D.4 13 14 voordelen: geen externe fragmentatie beperkte interne fragmentatie

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

7.4. Segmenteren segmenteren: wat? - programma opdelen in segementen - segmenten hoeven niet allemaal zelfde grootte te hebben segmenteren: voordelen geen interne fragmentatie beperktere externe fragmentatie stel: 16 bit adressen 4 bit segment voor gegeven adres dan: 0001001011110000 1 001011101110 0000010000000000 011110011110 0010000000100000 + length base 0010001100010000

7.5. Samenvatting relatief adres = 1502 logisch adres = pagNr=1;pos=478 logisch adres = segNr=1;pos=752 0000010111011110 (000001)(0111011110) (0001)(001011110000) seg_0 pag_0 gebruikersproces pag_1 seg_1 pag_2 partitionering paginering segmentering