ICT Infrastructuren: Processen en Threads 18 november 2013 David N. Jansen Datum en Ajd van werkcollege • na overleg met de aanwezigen: donderdag 8:45–10:30 Stal hoo lings fdst 2– 4 Leerdoel voor vandaag . • Hoofddoelen en -­‐funcAes van besturingssystemen • Processen • Threads • Lees het boek voor de details! In-­‐ en uitvoer • CommunicaAe met de buitenwereld • Maakt gebruik van de bus • Drie manieren om te communiceren – Programma-­‐gestuurd – Interrupt-­‐gestuurd – DMA, direct memory access 5 Direct Memory Access • Als er invoer is, wacht de processor even • invoerapparaat mag de bus gebruiken om gegevens direct naar RAM te schrijven 6 Stal hoo lings fdst 2– 4 Leerdoel voor vandaag . • Hoofddoelen en -­‐funcAes van besturingssystemen • Processen • Threads • Lees het boek voor de details! Doelen van Besturingssystemen • het OS bemiddelt tussen gewone programma’s en de hardware • gebruiksgemak (voor de programmeur) • efficiënAe • ontwikkeling (van nieuwe hardware e.d.) faciliteren Bemiddeling • processor beschouwt OS als een soort programma – kernel = centraal deel van OS (alAjd in RAM) • gebruiker/andere programma’s beschouwen OS (bijna) als deel van hardware – OS beheert de hardware Diensten voor gewone programma’s • programma’s ontwikkelen • programma’s starten • abstracAe van hardware (bronnen) – toegang tot in-­‐ en uitvoer – toegang tot bestanden – fouta_andeling • gebruikersbeheer – toegangsrechten – boekhouding Beheer van bronnen (resources) • de computer bestaat uit bronnen – processor – hoofdgeheugen (RAM) – secundair geheugen – in-­‐ en uitvoer van gegevens • het OS bepaalt wie die bronnen mag gebruiken EvoluAe van Besturingssystemen Laat de computer niet wachten. RekenAjd is duur. Laat de gebruiker niet wachten. WerkAjd is duur. EvoluAe van Besturingssystemen ① handbediening / geen OS ② batch processing – single – mulAprogrammed ③ interacAef Amesharing (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-­‐kaarten en beslist wat te doen • OS bewaakt correctheid en voortgang MulAprogrammed batch processing • in-­‐ en uitvoer is langzaam = veel wachhjd • als een job wacht, kan een andere draaien • betere afscherming tussen jobs vereist – ingewikkelder geheugenbeheer – verdeling van processorAjd – gelijkAjdig gebruik van in-­‐ en uitvoer – elke job denkt dat hij alleen is op een single-­‐batch-­‐processing-­‐systeem MulAprogrammed batch processing Program A Run Wait Run Wait Time (a) Uniprogramming Program A Run Program B Wait Run Wait Run Wait Combined Run Run A B Wait Run Run A B Wait Wait Run Wait Time (b) Multiprogramming with two programs Program A Run Wait Run Wait Interrupts Stal hoo lings fdst 1.4 • doel: bepaalde taken uitvoeren op een gunsAg moment • de processor onderbreekt het lopende programma • hij voert tussendoor de “interrupt handler” uit (= een ander programma) 17 Soorten interrupts • • • • fout in programma (b.v. deling door 0) Amer in-­‐ of uitvoer hardwareprobleem 18 Voordelen van interrupts • minder lang wachten op resultaten van in-­‐/ uitvoer ! CPU wordt beter benut • exactere Aming 19 Meerdere interrupts? • Wat moet er gebeuren? – tweede interrupt negeren – weede interrupt uitstellen – weede interrupt onmiddellijk a_andelen • interrupt mask/prioriteiten bepalen de keuze • elke processor lost het probleem een beetje anders op 20 InteracAef Amesharing • één interacAeve centrale computer met meerdere terminals InteracAef en één gebruiker • achteruitgang of vooruitgang? • iedere gebruiker zijn eigen computer • MS-­‐DOS: uitgekleed OS – geen mulAprogramming/mulAtasking – geen gebruikersbeheer netwerk van computers • typische doorontwikkeling: file-­‐ en printserver (voor gemeenschappelijke bronnen) • mulAtasking en toegangsrechten weer toegevoegd • internet: netwerk van netwerken Proces • belangrijkste thema vandaag • hoofdstukken 3+4 in Stallings’ boek • relevant voor mulAprogramming en nieuwere OS-­‐types Wat is een proces? • een programma dat wordt uitgevoerd onder beheer van het besturingssysteem • een samenstel van – acAviteiten – status van die acAviteiten • maakt onderbreken/mulAprogramming mogelijk – bronnen • Het OS laat het proces denken dat het alleen is Toestand van een proces • besturingssysteem houdt toestand bij • één proces is acAef (running), de andere processen wachten Dispatch Enter Not Running Running Pause (a) State transition diagram Exit Op weg naar een 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 Suspend Suspend Blocked Completer toestandenmodel (a) With One Suspend State New Ad mi t t mi Ad Activate nd Dispatch Ready Suspend Running Timeout Blocked/ Suspend ai tW en Ev Event Occurs Event Occurs t Ready/ Suspend Suspe Activate Blocked Suspend (b) With Two Suspend States Release Exit InformaAe over het proces • Het besturingssysteem houdt bij: – idenAteit van het proces – processor-­‐registers en geheugen – toestand van het proces (acAef / blocked / ...) – bronnen die het proces gebruikt – details in tabellen 3.4 en 3.5 (p. 148vv.) • Process Control Block bevat deze informaAe Hardware-­‐ondersteuning voor OS • instrucAes met privileges • user mode: voor gewoon programma sommige instrucAes verboden • kernel mode: voor OS alle instrucAes toegestaan Mode switch • direct omschakelen user ! kernel mode is verboden – omschakelen alleen tegelijk met • interrupt of trap • system call = programma roept funcAe van OS aan • direct omschakelen kernel ! user mode is toegestaan – automaAsch aan het einde van een interrupt Process switch = Omschakelen tussen processen • taak van het OS 1 oude context opslaan – context = toestand van CPU (registers) en RAM 2 3 4 5 kiezen welk proces aan de beurt is procestoestanden veranderen nieuwe context laden naar juiste instrucAe in nieuw proces springen Threads • een lichte variant van processen • processen gebruiken twee soorten bron: – processortoegang – geheugen, bestanden etc. • threads gebruiken slechts één bron: – processortoegang • eenvoudiger dan proces ⇒ omschakelen is sneller Proces vs. thread • ProcesinformaAe – geheugen – bronnen (bestanden, in-­‐ en uitvoer) • ThreadinformaAe – toestand van de thread (running / blocked / ...) – programmateller – lokale variabelen (“stack”) Proces vs. thread Single-Threaded Process Model Process Control Block User Stack User Address Space Kernel Stack Multithreaded Process Model Thread Thread Thread Thread Control Block Thread Control Block Thread Control Block Process Control Block User Stack User Stack User Stack User Address Space Kernel Stack Kernel Stack Kernel Stack Figure 4.2 Single Threaded and Multithreaded Process Models Waartoe dienen threads? • verschillende taken in één programma – reageren op gebruiker – commando’s uitvoeren – achtergrondtaken • sommige taken kunnen doorgaan terwijl het programma op OS wacht • mulAcore OS-­‐ondersteuning • Sommige OSen bieden geen threads aan – dan zijn toch “user level threads” mogelijk • wel ondersteuning: “kernel level threads” – langzamer, maar flexibeler Symmetric MulAprocessing • vroeger: 1 processor per applicaAe • nu:mulAcore • processoren zijn symmetrisch = kunnen dezelfde instrucAes etc. aan Opbouw van een SMP-­‐systeem Processor Processor L1 Cache Processor L1 Cache L2 Cache L1 Cache L2 Cache L2 Cache System Bus Main Memory I/O Subsystem I/O Adapter I/O Adapter I/O Adapter Figure 4.9 Symmetric Multiprocessor Organization Problemen van SMP • meerdere processoren executeren zelfde code ! code moet daarmee rekening houden • vaak is serialisaAe gewenst (het lijkt alsof er alleen 1 processor was) • meerdere system calls tegelijk mogelijk ! mutual exclusion is ingewikkelder • wie verdeelt de processen? Samenvahng • Doelen van besturingssysteem • FuncAe, service van besturingssysteem • Proces – een programma dat draait onder beheer van een besturingssysteem • Thread – lichtgewicht-­‐proces – met gemeenschappelijk geheugen en bronnen