Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdMelissa Aerts Laatst gewijzigd meer dan 9 jaar geleden
1
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems) L.V.de.Zeeuw@HRO.NL
2
HOGESCHOOL ROTTERDAM / CMI 3 Input en output
3
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 33 Input / output (1/2) Een van de hoofdtaken van een besturingssysteem is de besturing van alle randapparatuur van een computer.
4
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 34 Input / output (2/2) Principes Structuur I/O software (lagen) Deadlocks –Analyse –Algoritmen te voorkoming van
5
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 35 3.1 Principes van I/O hardware (1/1) Mensen kijken op verschillende manieren naar de i/o hardware. Fysieke componenten De interface in termen van software: –Opdrachten –Functies –Foutmeldingen Het programmeren van i/o hardware is nauw verbonden met de interne werking.
6
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 36 3.1.1 I/O apparaten (1/1) I/O apparaten worden in twee groepen verdeeld. Blok georiënteerde apparaten –Ieder blok kan geschreven of geschreven worden onafhankelijk van de andere blokken Karakter georiënteerde apparaten Sommige apparaten laten zich niet indelen. Bijvoorbeeld een klok. Het model dient om de i/o-software van het besturingssysteem onafhankelijk te maken van een specifiek apparaat. Het apparaat afhankelijke deel wordt overgelaten aan device drivers.
7
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 37 3.1.2 Device controllers (1/5) De meeste eenheden bestaan uit een mechanische en elektronische component. De elektronische component wordt device controller of adapter genoemd. Het besturingssysteem heeft alleen te maken met de controller.
8
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 38 3.1.2 Device controllers (2/5)
9
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 39 3.1.2 Device controllers (3/5) Memory mapped Het besturingssysteem kan in en uitvoer opdrachten geven door te lezen en schrijven naar deze geheugenadressen.
10
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 310 3.1.2 Device controllers (4/5) Direct Memory Access (DMA)
11
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 311 3.1.2 Device controllers (5/5) Het overslaan van blokken om de controller voldoende tijd te geven de data naar het geheugen te sturen wordt interleaving genoemd.
12
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 312 3.2 Principes van I/P software (1/1) I/O software wordt in lagen gebouwd: de onderste lagen houden zich bezig met de hardware de bovenste laag houden zich bezig met de gebruiker.
13
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 313 3.2.1 Wat tracht I/O-software te bereiken (1/2) Device independence Het moet niet nodig zijn programma’s aan te passen aan ieder type randapparaat. Uniforme naamgeving Op geen enkele wijze mag de naam afhankelijk zijn van een apparaat. Afhandelen van fouten Fouten dienen zo dicht mogelijk bij de hardware te worden afgehandeld. Afschermen van interrupts voor gebruikers programma’s. Veel fysieke I/O is asynchroon. Gebruikersprogramma’s zijn echter eenvoudiger te schrijven wanneer die i/o bewerkingen synchroon verlopen. Sharable device/dedicated devices Het gebruik van dedicated devices leidt vaak tot deadlocks. Het besturingssysteem moet met beiden overweg kunnen.
14
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 314 3.2.1 Wat tracht I/O-software te bereiken (2/2) Lagen I/O software: 1.Interrupt afhandeling 2.Device drivers 3.Apparaat onafhankelijke software van het besturingssysteem 4.Software voor de gebruiker.
15
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 315 3.2.2 Interrupt-afhandeling (1/1) In alle gevallen is het netto effect van een interrupt dat een geblokkeerd proces weer kan worden uitgevoerd.
16
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 316 3.2.3 Device drivers (1/1) De device driver bevat de apparaat afhankelijke code. De device driver accepteert abstracte aanvragen van apparatuur onafhankelijke software uit de laag erboven. De device driver moet erop toezien dat deze aanvraag wordt uitgevoerd.
17
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 317 3.2.4 Apparaat onafhankelijke I/O (1/2) Een deel van de I/O software is apparaat afhankelijk een ander deel is apparaat onafhankelijk. De exacte grens tussen de driver en de apparaat onafhankelijke software verschilt per systeem.
18
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 318 3.2.4 Apparaat onafhankelijke I/O (2/2)
19
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 319 3.2.5 I/O-Software voor gebruikers (1/3) Complete programma’s Bibliotheek routines Bytes_read = read(file_descriptor, buffer, bytes_wanted)
20
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 320 3.2.5 I/O-Software voor gebruikers (2/3) Spooling is in een multi-programmering omgeving een oplossing voor het omgaan met apparaten die hoogstens door één gebruiker tegelijkertijd kunnen worden gebruikt. Om te voorkomen dat één gebruiker het apparaat niet meer prijsgeeft wordt de in/uitvoer meestal overgelaten aan een apart proces: een deamon (bv printer-deamon,network deamon) De uitvoer wordt door een programma als file in een aparte spooling-directory geplaatst. De deamon behandeld de aangeboden files één voor één.
21
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 321 3.2.5 I/O-Software voor gebruikers (3/3)
22
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 322 3.3 Deadlock (1/2) Database systeem: Proces A lockt record R1 Proces B lockt record R2 Proces A heeft record R2 nodig Proces B heeft record R1 nodig
23
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 323 3.3 Deadlock (2/2) In bijna iedere situatie waarbij processen exclusief toegang krijgen tot apparaten, files, records of andere objecten bestaat het gevaar van
24
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 324 3.3.1 Resources (1/2) Voorbeelden resources (hulpbron): Printer, Plotter Tape drive, Locked- record van database Een resource is een object dat hoogstens door één proces tegelijkertijd kan worden gebruikt.
25
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 325 3.3.1 Resources (2/2) Om een resources te kunnen gebruiken moet men de volgende stappen doorlopen: 1.Resource aanvragen 2.Resource gebruiken 3.Resource vrijgegeven Wanneer resource op het moment van aanvraag niet beschikbaar is moet het proces wachten.
26
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 326 3.3.2 Een model voor deadlock (1/5) Definitie: een verzameling processen bevindt zich in een deadlock situatie, wanneer ieder proces uit de verzameling wacht op een gebeurtenis die alleen kan worden veroorzaakt door een ander proces uit de verzameling.
27
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 327 3.3.2 Een model voor deadlock (2/5) Aan vier voor voorwaarden moet zijn voldaan om een deadlock te laten onstaaan (Coffman, et al): Mutual exclusion: Iedere resource is aan één proces toegekend of is beschikbaar. Hold and wait: Processen, die al eerder een aantal resources toegewezen hebben gekregen, kunnen later nog andere resources aanvragen. Preemption: Resources die aan een proces zijn toegekend kunnen niet van een ander proces worden afgenomen. Ze moeten expliciet worden vrijgegeven door het proces zelf. Circular wait: Er moet een cirkelvormige lijst te construeren zijn van twee of meer processen, waarbij ieder proces wacht op een resource die bezet wordt gehouden door het volgende proces uit de ketting.
28
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 328 3.3.2 Een model voor deadlock (3/5) Cirkel: Proces Vierkant: Resource Pijl: Resource aangevraagd, toegewezen en in gebruik Pijl: Proces B vraagt resource S aan.
29
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 329 3.3.2 Een model voor deadlock (4/5) Deadlock Het besturingssysteem is niet verplicht om processen in een specifieke volgorde uit te voeren …
30
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 330 3.3.2 Een model voor deadlock (5/5)
31
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 331 3.3.3 De struisvogeltactiek (1/3) De eenvoudigste aanpak van deadlock is doen als of er helemaal geen probleem is. Hoe vaak komt het probleem voor? Is het wel de moeite er iets aan te doen?
32
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 332 3.3.3 De struisvogeltactiek (2/3) Eindige resources: Process table Aantal files openstaande files Swap ruimte op disk … Eindige resources kunnen aanleiding geven tot deadlocks.
33
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 333 3.3.3 De struisvogeltactiek (3/3) De aanpak van Unix is dat het probleem simpelweg wordt ontkend. Als deadlock zonder veel moeite kan worden voorkomen was de keus niet erg moeilijk …
34
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 334 3.3.4 Opsporing van en herstel na deadlock (1/1) Het systeem kijkt naar het aanvragen en vrijgegeven van resources. De resource graaf wordt aangepast... Er wordt gecontroleerd of er cirkels zijn ontstaan. Als dat het geval is wordt een proces beëindigd. Als dat niet genoeg is een volgend proces, etc …
35
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 335 3.3.5 Het voorkomen van deadlock (1/12) Met opleggen van beperkingen aan processen wordt het onmogelijk dat een deadlock optreedt. Als aan minstens één van deze voorwaarden niet is voldaan zullen deadlocks niet optreden: –Mutual exclusion –Hold and wait –Preemption –Circular wait
36
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 336 3.3.5 Het voorkomen van deadlock (2/12) Mutual exclusion: Voorbeeld Spooling: Meer processen kunnen tegelijk output genereren. Dit zou een oplossing kunnen zijn… Echter ook de spooling directory kan vol raken … Twee processen zijn nog niet klaar met hun uitvoer … Als een printer al begint met printen voordat de uitvoer klaar is kan het gebeuren dat een printer uren lang niets doet … Als de printer pas begint als de uitvoer helemaal klaar is hebben we in bovenstaande situatie te maken met deadlock …
37
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 337 3.3.5 Het voorkomen van deadlock (3/12) Hold and wait: Als we kunnen voorkomen dat processen die al een aantal resources vasthouden, moeten wachten op nog meer resources, dan kunnen we de deadlock voorkomen. We kunnen dit bereiken door het eisen dat alle processen eerst alle benodigde resources moeten aanvragen, voordat ze mogen beginnen.
38
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 338 3.3.5 Het voorkomen van deadlock (4/12) Hold and wait:.. eerst alle benodigde resources moeten aanvragen … Een probleem hierbij is dat veel processen niet weten hoeveel resources ze nodig hebben … Een ander probleem is dat resources niet optimaal worden gebruikt …
39
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 339 3.3.5 Het voorkomen van deadlock (5/12) Hold and wait: Andere aanpak: Eis van een proces, dat wanneer het over een nieuwe resource wil beschikken, het eerst de resources vrijgeeft waarover het beschikt. Pas als de aanvraag succesvol is verlopen, kan het proces de eerder verkregen resources terugkrijgen.
40
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 340 3.3.5 Het voorkomen van deadlock (6/12) Preemption Niet zo handig: als aan een proces de printer is toegewezen en deze bezig is met afdrukken, kan men niet plotseling de printer van dit proces afnemen omdat een benodigde plotter niet beschikbaar is …
41
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 341 3.3.5 Het voorkomen van deadlock (7/12) Circular wait Eisen dat het proces tegelijkertijd nooit over meer dan één resource mag beschikken … Wat als een proces een grote file van tape naar printer moet kopiëren?
42
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 342 3.3.5 Het voorkomen van deadlock (8/12) Circular wait aanvragen moeten in opklimmende volgorde worden gedaan … De resource-graaf kan zo nooit cirkels bevatten.
43
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 343 3.3.5 Het voorkomen van deadlock (9/12) Circular wait Geef alle resources een rangnummer. Processen kunnen te allen tijde resources aanvragen, maar alle aanvragen moeten in op- klimmende volgorde worden gedaan. Een proces mag ik eerst wel en printer aanvragen en vervolgens een tapedrive maar het mag niet eerst een plotter aanvragen en dan pas een printer Als i>j mag A niet resource j aanvragen. Als i<j mag B niet resource i aanvragen.
44
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 344 3.3.5 Het voorkomen van deadlock (10/12) Circular wait Een kleine variatie op dit algoritme is het laten vallen van de eis dat resources worden aangevraagd in een strikt stijgende volgorde. Eis dat een proces nooit een resource mag aanvragen met een rangnummer dat lager is dan het rangnummer van een resource waarover dat proces al beschikt.
45
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 345 3.3.5 Het voorkomen van deadlock (11/12) Circular wait … Geef alle resources en rangnummer… Het deadlock probleem wordt zo opgelost maar het is erg moeilijk resources zo te nummeren dat iedereen tevreden is…
46
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 346 3.3.5 Het voorkomen van deadlock (12/12)
47
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 347 3.3.6 Het vermijden van deadlock (1/13) Deadlock’s kunnen worden vermeden door zorgvuldig te werk te gaan bij de toewijzing van resources. Het bankiersalgoritme met één resource Resource trajecten Het bankiersalgoritme met meer resources
48
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 348 3.3.6 Het vermijden van deadlock (2/13) Het bankiersalgoritme met één resource Dijkstra: een bankier geeft krediet in bepaalde eenheden bijvoorbeeld een eenheid is € 1000. De bankier weet dat niet alle cliënten tegelijkertijd hun maximale krediet nodig hebben, Dus heeft hij bijvoorbeeld slechts 10 eenheden gereserveerd in plaats van de 22 die in het slechtste geval nodig zijn.
49
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 349 3.3.6 Het vermijden van deadlock (3/13) Het bankiersalgoritme met één resource Michel kan zijn maximale krediet aanvragen. Alle andere aanvragen kunnen worden uitgesteld tot Michel klaar is.
50
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 350 3.3.6 Het vermijden van deadlock (4/13) Het bankiersalgoritme met één resource Als alle cliënten nu hun maximale credite aanvragen kan niemand meer wat doen.
51
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 351 3.3.6 Het vermijden van deadlock (5/13) Het bankiersalgoritme met één resource Het bankiers algoritme moet dus ieder verzoek afzonderlijk bekijken en nagaan of het toekennen ervan naar een veilige toestand leidt.
52
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 352 3.3.6 Het vermijden van deadlock (6/13) Resource trajecten Hier onstaat een deadlock
53
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 353 3.3.6 Het vermijden van deadlock (7/13) Het bankiersalgoritme met meer resources. Processen moeten van tevoren bekendmaken hoeveel resources ze nodig hebben. Het systeem kan deze rechter matrix op ieder moment berekenen.
54
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 354 3.3.6 Het vermijden van deadlock (8/13) Het bankiersalgoritme met meer resources. E= de bestaande resources. P= der resources waarover een proces beschikt A= de resources die nog kunnen worden aangevraagd.
55
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 355 3.3.6 Het vermijden van deadlock (9/13) Het bankiersalgoritme met meer resources. E = 6 tape drives, 3 plotters, 4 printers, 2 ponskaart machines totaal beschikbaar. P= 5 tape drives, 3 plotters, 2 printers, 2 ponskaart machines toegewezen. A= 1 tape drive, 0 plotters, 2 printers, 0 ponskaart machines nog over.
56
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 356 3.3.6 Het vermijden van deadlock (10/13) Het bankiersalgoritme met meer resources. 1.Zoek een rij R in de rechter matrix waarvoor geldt dat ieder element van die rij kleiner dan of gelijk aan het overeenkomstige element van A is. Als er niet zo’n rij bestaat, kan deadlock ontstaan, omdat niet kan worden gegarandeerd dat ieder proces voltooid kan worden.
57
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 357 3.3.6 Het vermijden van deadlock (11/13) Het bankiersalgoritme met meer resources. 2.Veronderstel dat het proces van de gekozen rij R alle benodigde resources aanvraagt (stap 1) en wordt voltooid. Markeer dit proces als beëindigd en tel alle resources waarover het beschikt (de overeen- komstige rij R van de linkermatrix) op bij de vector A.
58
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 358 3.3.6 Het vermijden van deadlock (12/13) Het bankiersalgoritme met meer resources. 3.Herhaal stappen 1 en 2 tot alle processen als beëindigd zijn gemarkeerd. In dit geval is de oorspronkelijke situatie veilig. Als dit niet mogelijk is, kan deadlock optreden en is de oorspronkelijke situatie onveilig.
59
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 359 3.3.6 Het vermijden van deadlock (13/13) Het bankiersalgoritme met meer resources. In de praktijk kan het algoritme nauwelijks worden toegepast. Bezwaren: Het proces weet zelden van tevoren of wil resources het maximaal nodig heeft. Het aantal processen ligt niet vast maar varieert dynamisch. Resources kunnen in principe uitvallen …
60
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 360 3.5 RAM-disks (1/1) RAM-disk is een blokgeorienteerd apparaat Een deel van het RAM geheugen Voordeel directe toegang (geen vertraging) Root op RAM-disk plaatsen geeft mogelijkheid verwijderbare media te mounten
61
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 361 3.6.1 Diskhardware (1/1) Disks bevatten cylinders Cylinders bevatten tracks Tracks bevatten sectoren Floppy disk cylinder Sector 2 tracks onder/boven
62
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 362 3.6.2 Disksoftware (1/2) Leestijd van een diskblok wordt bepaald door: 1.De zoektijd (seektime) 2.Rotatievertraging (rotational delay) 3.Overdrachtstijd (transfer time)
63
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 363 3.6.2 Disksoftware (2/2) Disk Arm Scheduling Algoritmen 1.First-Come, First Served (FCFS). De aanvragen worden in volgorde uitgevoerd waarin ze binnen komen. 2.Shortest Seek First (SSF). De sector die het dichtst bij is wordt afgehandeld. 3.Elevator principe ( liftenprincipe). De kop beweegt zich van of naar het middelpunt van de schijf.
64
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 364 3.x.x X (1/)
65
HOGESCHOOL ROTTERDAM / CMI L.V. de ZeeuwComputersystemen 365 Dit was het … Huiswerk: Lees hoofdstuk 3 Maak de opgaven
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.