340 likes | 601 Views
ICT Infrastructuren 26 november 2007. David N. Jansen. Hoofdstukken 2–4. Hoofddoelen en -functies van besturingssystemen Processen Threads Procesalgebra. Doelen van Besturingssystemen. het OS bemiddelt tussen gewone programma’s en de hardware gebruiksgemak effici ëntie
E N D
ICT Infrastructuren26 november 2007 David N. Jansen
Hoofdstukken 2–4 • Hoofddoelen en -functies van besturingssystemen • Processen • Threads • Procesalgebra
Doelen van Besturingssystemen • het OS bemiddelt tussengewone programma’s en de hardware • gebruiksgemak • efficiëntie • ontwikkeling faciliteren
Bemiddeling • processor: OS = een soort programma • kernel = deel van OS dat altijd in RAM blijft • gebruiker/andere programma’s:OS = (bijna) deel van hardware • OS beheert de hardware
Diensten voorgewone programma’s • programma’s ontwikkelen • programma’s starten • abstractie van hardware • toegang tot in- en uitvoer • toegang tot bestanden • foutafhandeling • gebruikersbeheer • toegangsrechten • boekhouding
Beheer van bronnen • de computer bestaat uit bronnen • processor • hoofdgeheugen (RAM) • secundair geheugen • in- en uitvoer van gegevens • het OS bepaaltwie die bronnen mag gebruiken
Evolutie van Besturingssystemen • handbediening / geen OS • batch processing • single • multiprogrammed • interactief timesharing
Single batch processing • gebruiker levert een stapel ponskaarten in • beheerders voegen wat extra kaarten toe (Job Control Language) • markeren begin en einde van de stapel • geven de soort van programma aan • „besturingssysteem” leest JCL-kaartenen beslist wat te doen • OS bewaakt correctheid en voortgang
Multiprogrammed batch processing • in- en uitvoer is langzaam = veel wachttijd • als een job wacht, kan een andere draaien • betere afscherming tussen jobs vereist • ingewikkelder geheugenbeheer • verdeling van processortijd • gelijktijdig gebruik van in- en uitvoer • elk proces denkt dat het alleen is
Interactief timesharing • één interactieve centrale computermet meerdere terminals
Interactief en één gebruiker • achteruitgang of vooruitgang? • iedere gebruiker zijn eigen computer • MS-DOS: uitgekleed OS • geen multiprogramming/multitasking • geen gebruikersbeheer
Proces • belangrijkste thema vandaag • hoofdstukken 3+4 in Stallings’ boek
Wat is een proces? • een programma dat wordt uitgevoerdonder beheer van het besturingssysteem • een samenstel van • activiteiten • status van die activiteiten • bronnen • Het OS laat het proces denken dat het alleen is
Toestand van een proces • besturingssysteem houdt toestand bij • één proces is actief (running),de andere processen wachten
Completer toestandenmodel • Proces ontstaat en eindigt • Proces wacht om specifieke reden • Veel processen... te veel voor het RAM
Proces ontstaat en eindigt • Proces ontstaat • login • OS biedt dienst in de vorm van proces aan • proces start een nieuw proces • Proces eindigt • normaal einde • niet voldoende bronnen • proces doet iets illegaals • in- of uitvoer kan niet • buitenstaander verzoekt om einde
Redenen voor wachten • proces is niet aan de beurt • in- of uitvoer duurt langer • buitenstaander onderbreekt het proces • niet voldoende RAM:proces wordt op harde schijf opgeslagen
Informatie over het proces • Het besturingssysteem houdt bij: • identiteit van het proces • processor-registers en geheugen • toestand van het proces (actief / blocked / ...) • bronnen die het proces gebruikt • details in tabellen 3.4 en 3.5 • Process Control Blockbevat deze informatie
Process Control / Procesaansturing • hoofdstuk 3.4 in het boek: zelfstudie • belangrijk verschil: • process switch = één proces onderbreken, een ander activeren • mode switch = de processor springt van een modus in een andere (kernel / user mode)
Threads • een lichte variant van processen • processen gebruiken twee soorten bron: • processortoegang • geheugen, bestanden etc. • threads gebruiken slechts één bron: • processortoegang • eenvoudiger dan proces • beheer is sneller
Proces vs. thread • Procesinformatie • geheugen • bronnen (bestanden, in- en uitvoer) • Threadinformatie • toestand van de thread (running / blocked / ...) • programmateller • stack
Waarvoor? • verschillende taken in één programma • reageren op gebruiker • commando’s uitvoeren • achtergrondtaken • sommige taken kunnen doorgaanterwijl het programma op OS wacht • multicore
OS-ondersteuning • Sommige OSen bieden geen threads aan • dan zijn toch “user level threads” mogelijk • wel ondersteuning: “kernel level threads” • langzamer, maar flexibeler
Procesalgebra • wiskundig model van processen • proces = mogelijkheid tot acties • wiskundige notatie: • stop geen actie • a P eerst a, dan P • P + Qóf P óf Q
Voorbeelden van PA-termen • Lamp: L = aan uit L • ((kopiëren uit FMSE))
Parallele processen in PA • extra operator P || Q • voert P en Q parallel uit • interleaving van aparte acties • synchronisatie van gemeenschappelijke acties • voorbeelden • a stop || b stop • a c stop || b c stop • a b stop || b a stop Deadlock
Gebruik van PA • zijn twee programma’s equivalent? • interleavings van parallele processen? • ... komt overeen met parallelisme in een OS!
Voorbeeld van PA • Sender = in send getack Sender • Receiver = recv ack out Receiver • Sendbuf = send recv Sendbuf • Ackbuf = ack getack Ackbuf • Sender || Receiver || Sendbuf || Ackbuf
Traces • Een trace is een reeks van acties • mogelijk gedrag van een proces • P en Q zijn trace-equivalentals ze dezelfde traces hebben
Beperkingen van trace-equivalentie • P = b (k + t) • Q = (b k) + (b t) • zijn trace-equivalent • maar er is wel verschil: • P maakt keuze in samenwerking met omgeving • Q trekt zich niets van de omgeving aan
Bisimulatie • een betere definitie van equivalentie • volgende week gaan we verdermet procesalgebra...