De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Computersystemen 2 (TIRCCMS02 - Operating systems)

Verwante presentaties


Presentatie over: "Computersystemen 2 (TIRCCMS02 - Operating systems)"— Transcript van de presentatie:

1 Computersystemen 2 (TIRCCMS02 - Operating systems) L.V.de.Zeeuw@HRO.NL

2 3 Input en output

3 Input / output (1/2) Een van de hoofdtaken van een besturingssysteem is de besturing van alle randapparatuur van een computer. L.V. de Zeeuw Computersystemen 3

4 Input / output (2/2) Principes Structuur I/O software (lagen)
Deadlocks Analyse Algoritmen te voorkoming van L.V. de Zeeuw Computersystemen 3

5 3.1Principes 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. L.V. de Zeeuw Computersystemen 3

6 3.1.1I/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. L.V. de Zeeuw Computersystemen 3

7 3.1.2Device 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. L.V. de Zeeuw Computersystemen 3

8 3.1.2Device controllers (2/5)
L.V. de Zeeuw Computersystemen 3

9 3.1.2Device controllers (3/5)
Memory mapped Het besturingssysteem kan in en uitvoer opdrachten geven door te lezen en schrijven naar deze geheugenadressen. L.V. de Zeeuw Computersystemen 3

10 3.1.2Device controllers (4/5)
Direct Memory Access (DMA) L.V. de Zeeuw Computersystemen 3

11 3.1.2Device controllers (5/5)
Het overslaan van blokken om de controller voldoende tijd te geven de data naar het geheugen te sturen wordt interleaving genoemd. L.V. de Zeeuw Computersystemen 3

12 3.2Principes 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. L.V. de Zeeuw Computersystemen 3

13 3.2.1Wat 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. L.V. de Zeeuw Computersystemen 3

14 3.2.1Wat tracht I/O-software te bereiken (2/2)
Lagen I/O software: Interrupt afhandeling Device drivers Apparaat onafhankelijke software van het besturingssysteem Software voor de gebruiker. L.V. de Zeeuw Computersystemen 3

15 3.2.2Interrupt-afhandeling (1/1)
In alle gevallen is het netto effect van een interrupt dat een geblokkeerd proces weer kan worden uitgevoerd. L.V. de Zeeuw Computersystemen 3

16 3.2.3Device 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. L.V. de Zeeuw Computersystemen 3

17 3.2.4Apparaat 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. L.V. de Zeeuw Computersystemen 3

18 3.2.4Apparaat onafhankelijke I/O (2/2)
L.V. de Zeeuw Computersystemen 3

19 3.2.5I/O-Software voor gebruikers (1/3)
Complete programma’s Bibliotheek routines Bytes_read = read(file_descriptor, buffer, bytes_wanted) L.V. de Zeeuw Computersystemen 3

20 3.2.5I/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. L.V. de Zeeuw Computersystemen 3

21 3.2.5I/O-Software voor gebruikers (3/3)
L.V. de Zeeuw Computersystemen 3

22 3.3Deadlock (1/2) Deadlock Database systeem: Proces A lockt record R1
Proces B lockt record R2 Proces A heeft record R2 nodig Proces B heeft record R1 nodig Deadlock L.V. de Zeeuw Computersystemen 3

23 3.3Deadlock (2/2) In bijna iedere situatie waarbij processen exclusief toegang krijgen tot apparaten, files, records of andere objecten bestaat het gevaar van Deadlock L.V. de Zeeuw Computersystemen 3

24 3.3.1Resources (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. L.V. de Zeeuw Computersystemen 3

25 3.3.1Resources (2/2) Om een resources te kunnen gebruiken moet men de volgende stappen doorlopen: Resource aanvragen Resource gebruiken Resource vrijgegeven Wanneer resource op het moment van aanvraag niet beschikbaar is moet het proces wachten. L.V. de Zeeuw Computersystemen 3

26 3.3.2Een 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. L.V. de Zeeuw Computersystemen 3

27 3.3.2Een 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. L.V. de Zeeuw Computersystemen 3

28 3.3.2Een model voor deadlock (3/5)
Cirkel: Proces Pijl: Proces B vraagt resource S aan. Pijl: Resource aangevraagd, toegewezen en in gebruik Vierkant: Resource L.V. de Zeeuw Computersystemen 3

29 3.3.2Een model voor deadlock (4/5)
Het besturingssysteem is niet verplicht om processen in een specifieke volgorde uit te voeren … L.V. de Zeeuw Computersystemen 3

30 3.3.2Een model voor deadlock (5/5)
L.V. de Zeeuw Computersystemen 3

31 3.3.3De 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? L.V. de Zeeuw Computersystemen 3

32 3.3.3De struisvogeltactiek (2/3)
Eindige resources: Process table Aantal files openstaande files Swap ruimte op disk Eindige resources kunnen aanleiding geven tot deadlocks. L.V. de Zeeuw Computersystemen 3

33 3.3.3De 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 … L.V. de Zeeuw Computersystemen 3

34 3.3.4Opsporing 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 … L.V. de Zeeuw Computersystemen 3

35 3.3.5Het 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 L.V. de Zeeuw Computersystemen 3

36 3.3.5Het 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 … L.V. de Zeeuw Computersystemen 3

37 3.3.5Het 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. L.V. de Zeeuw Computersystemen 3

38 3.3.5Het 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 … L.V. de Zeeuw Computersystemen 3

39 3.3.5Het 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. L.V. de Zeeuw Computersystemen 3

40 3.3.5Het 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 … L.V. de Zeeuw Computersystemen 3

41 3.3.5Het 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? L.V. de Zeeuw Computersystemen 3

42 3.3.5Het voorkomen van deadlock (8/12)
Circular wait aanvragen moeten in opklimmende volgorde worden gedaan … De resource-graaf kan zo nooit cirkels bevatten. L.V. de Zeeuw Computersystemen 3

43 3.3.5Het 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. L.V. de Zeeuw Computersystemen 3

44 3.3.5Het 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. L.V. de Zeeuw Computersystemen 3

45 3.3.5Het 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… L.V. de Zeeuw Computersystemen 3

46 3.3.5Het voorkomen van deadlock (12/12)
L.V. de Zeeuw Computersystemen 3

47 3.3.6Het 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 L.V. de Zeeuw Computersystemen 3

48 3.3.6Het vermijden van deadlock (2/13)
Het bankiersalgoritme met één resource Dijkstra: een bankier geeft krediet in bepaalde eenheden bijvoorbeeld een eenheid is € 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. L.V. de Zeeuw Computersystemen 3

49 3.3.6Het 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. L.V. de Zeeuw Computersystemen 3

50 3.3.6Het vermijden van deadlock (4/13)
Het bankiersalgoritme met één resource Als alle cliënten nu hun maximale credite aanvragen kan niemand meer wat doen. L.V. de Zeeuw Computersystemen 3

51 3.3.6Het 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. L.V. de Zeeuw Computersystemen 3

52 3.3.6Het vermijden van deadlock (6/13)
Resource trajecten Hier onstaat een deadlock L.V. de Zeeuw Computersystemen 3

53 3.3.6Het 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. L.V. de Zeeuw Computersystemen 3

54 3.3.6Het 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. L.V. de Zeeuw Computersystemen 3

55 3.3.6Het 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. L.V. de Zeeuw Computersystemen 3

56 3.3.6Het vermijden van deadlock (10/13)
Het bankiersalgoritme met meer resources. 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. L.V. de Zeeuw Computersystemen 3

57 3.3.6Het vermijden van deadlock (11/13)
Het bankiersalgoritme met meer resources. 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. L.V. de Zeeuw Computersystemen 3

58 3.3.6Het vermijden van deadlock (12/13)
Het bankiersalgoritme met meer resources. 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. L.V. de Zeeuw Computersystemen 3

59 3.3.6Het 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 … L.V. de Zeeuw Computersystemen 3

60 3.5RAM-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 L.V. de Zeeuw Computersystemen 3

61 3.6.1Diskhardware (1/1) Disks bevatten cylinders
Cylinders bevatten tracks Tracks bevatten sectoren Floppy disk cylinder Sector 2 tracks onder/boven L.V. de Zeeuw Computersystemen 3

62 3.6.2Disksoftware (1/2) Leestijd van een diskblok wordt bepaald door:
De zoektijd (seektime) Rotatievertraging (rotational delay) Overdrachtstijd (transfer time) L.V. de Zeeuw Computersystemen 3

63 3.6.2Disksoftware (2/2) Disk Arm Scheduling Algoritmen
First-Come, First Served (FCFS). De aanvragen worden in volgorde uitgevoerd waarin ze binnen komen. Shortest Seek First (SSF). De sector die het dichtst bij is wordt afgehandeld. Elevator principe ( liftenprincipe). De kop beweegt zich van of naar het middelpunt van de schijf. L.V. de Zeeuw Computersystemen 3

64 3.x.xX (1/) L.V. de Zeeuw Computersystemen 3

65 Dit was het … Huiswerk: Lees hoofdstuk 3 Maak de opgaven L.V. de Zeeuw
Computersystemen 3


Download ppt "Computersystemen 2 (TIRCCMS02 - Operating systems)"

Verwante presentaties


Ads door Google