Lærebog Datalogi 1F Forår 2003 Operativsystemer og multiprogrammering Jørgen Sværke Hansen Silberschatz, Galvin, Gagne: Operating System Concepts, 6. udgave (med Windows XP opdatering) Har I 6. udgave uden Windows XP opdateringen er det også fint! Datalogi 1F: Operativsystemer [1] 2 Kursusbøger Kursusbog 3: Opgaver Kursusbog 4: Multiprogrammering Kursusbog 5: Programmering af Digital Alpha-arkitekturen Datalogi 1F: Operativsystemer [1] 3 Hvad sker hvornår? 3. feb: Operativsystemer [1]: Introduktion til operativsystemer 7. feb: Operativsystemer [2]: Processer og schedulering 10. feb: Multiprogrammering [1]: Ydre enheder, multiprogrammer 14. feb: Multiprogrammering [2]: Synkronisering, grænseflader 17. feb: Multiprogrammering [3]: Kerner uden afbrydelser 19. feb: Multiprogrammering [4]: Kerner med afbrydelser 19. feb: G1 stilles: Intro til kerneprogrammering 26. feb: G1 afleveres 5. mar: Multiprogrammering [5]: Kerner og processer 12. mar: Operativsystemer [3]: Synkronisering, baglåse 19. mar: Operativsystemer [4]: Arbejdslageret 19. mar: K1 stilles: Kerneopgaven 11. apr: K1 afleveres 14. apr: Operativsystemer [5]: Filsystemer 23. apr: K2 stilles: Datanetopgaven 15. maj: K2 afleveres 19. maj: Operativsystemer [6]: Virtuelt lager Datalogi 1F: Operativsystemer [1] 4 Planen for idag Introduktion til operativsystemer: Forskellige typer af computersystemer: Fra 2 tons metal til 120 gram Samspillet mellem hardware og operativsystem: Skal du hele tiden afbryde mig? Strukturering af operativsystemer Spaghetti eller lagkage Hvad er et operativsystem Operativsystemet er bindeled mellem brugerprogrammer og hardware Operativsystemer har to mål: Lette udviklingen og brugen af brugerprogrammer Udnytte den tilgængelige hardware så effektivt som muligt Disse to mål kan være i modstrid med hinanden Datalogi 1F: Operativsystemer [1] 5 Datalogi 1F: Operativsystemer [1] 6 1
Computersystem: skematisk oversigt Forskellige systemtyper Operativsystemets funktion afhænger af systemet: Batchsystemer Multiprogrammerede batchsystemer Flerbrugersystemer Desktop systemer (PC ere) Parallelle systemer: Multiprocessorsystemer (tæt koblede parallelsystem) Løst koblede systemer Sandtidssystemer Håndholdte systemer Datalogi 1F: Operativsystemer [1] 7 Datalogi 1F: Operativsystemer [1] 8 Batchsystemer Jobs grupperes efter type for at mindske opsætningstid Operativsystemet afvikler en gruppe af jobs med et job ad gangen Operativsystemets primære opgave er at skifte fra afviklingen af et job til et andet: Operativsystemet har kontrollen fra start af Operativsystemet indlæser et brugerprogram og overgiver kontrollen til dette Når et job afsluttes overgives kontrollen igen til operativsystemet Datalogi 1F: Operativsystemer [1] 9 Multiprogrammerede batchsystemer Målet er at forbedre udnyttelsen af de tilgængelige ressourcer: I/O Processor Når et job venter på resultat af I/O får et andet job adgang til processoren Operativsystemet: Udvælger afviklingsrække-følgen af jobbene holder styr på flere jobs i hukommelsen samtidig: Beskytter programmer mod hinanden Allokerer ydre enheder til programmer Datalogi 1F: Operativsystemer [1] 10 Flerbrugersystemer Flere samtidige brugere af systemet (ingen operatør) Afviklingen af et brugerprogram sker i en process Skift mellem processer sker så ofte at den enkelte bruger oplever at have en dedikeret maskine til rådighed Operativsystemets opgaver: Hukommelsesadministration: Swapping når hukommelsen ikke er stor nok til alle virtuel hukommelse kontinuert lager Håndtering af I/O fra flere brugere samtidig: Terminalhåndtering Filsystem Desktop systemer En enkelt bruger Fokuseret på interaktivt brug Der er sket en udvikling fra interaktive batchsystemer (MS-DOS) til flerbrugersystemer (e.g., Linux, Windows XP) Udbredelsen af Internettet har øget fokus på deling af resourcer via netværk Datalogi 1F: Operativsystemer [1] 11 Datalogi 1F: Operativsystemer [1] 12 2
Multiprocessorsystemer Symmetrisk multiprocessorer (SMP): Flere processorer deles om hukommelse, diske, mv.: Lavere pris per udført operation Flaskehalsproblemer kan opstå ved kamp om de delte ressourcer Asymmetrisk multiprocessorer: En processor bestemmer (masterprocessor): Ekstra processorer dedikeres til bestemte opgaver, f.eks., behandling af netværkstrafik Ekstra processorer modtager arbejdsopgaver fra masterprocessor Operativsystem skal: Tillade afvikling af samtidige processer, f.eks. skal konsistens af operativsystemets datastrukturer sikres Håndterer CPU schedulering med flere samtidige Løstkoblede systemer Et samarbejde mellem selvstændige computer, der har uafhængige operativsystemer (og ikke nødvendigvis det samme) Eksempler Klient server systemer: Deling af filer (NFS, Samba) Simple beregninger (SETI@home) Peer to peer netværk: Deling af filer (Gnutella) Klynger: Forbedret fejltolerance i forhold til en enkelt computer Typisk homogene og placeret tæt på hinanden Fattigmands supercomputere processer Datalogi 1F: Operativsystemer [1] 13 Datalogi 1F: Operativsystemer [1] 14 Sandtidssystemer Operativsystemet stiller garantier for hvornår en proces afvikles Typisk afbrydes afviklingen af en sandtidsproces ikke Hård sandtid: Operativsystemet skal garantere at en given proces afvikles inden et bestemt tidspunkt Typisk for indlejrede systemer, e.g., robotstyring, biler, etc. Blød sandtid: Sandtidsprocesser har højeste prioritet Lav forsinkelse ved udførelse af sandtidsprocesser Typisk i desktop operativsystemer, der ønsker at understøtte multimediaapplikationer Datalogi 1F: Operativsystemer [1] 15 Håndholdte systemer Operativsystemet skal rettes mod systemer med meget begrænsede resourcer: Strømforbrug er en kritisk ressource: Processorhastighed reguleres i takt med arbejdsbelasting Enheder der ikke er i brug slukkes: Kan brugsmønstre forudsiges? Brugerinterface skal tilpasses lille skærm/intet tastatur Ingen disk, men måske persistent RAM Datalogi 1F: Operativsystemer [1] 16 Samspillet mellem OS og hardware Computersystems opbygning Computersystemets opbygning Afbrydelsesorienterede OS er Lagerhierarkier Sikkerhedsbarrierer Datalogi 1F: Operativsystemer [1] 17 Datalogi 1F: Operativsystemer [1] 18 3
Kommunikation mellem OS og ydre enheder De ydre enheder kan arbejde sideløbende med processoren (à la asymmetrisk multiprocessor) Operativsystemets kontrollerer ydre enheder via registre på styreenheder. Disse tilgås ved I/O instruktioner I/O hukommelsesområde (memory-mapped I/O) Ydre enheder fanger operativsystems opmærksomhed via: Statusregistre, der undersøges af operativsystem (polling eller programmed I/O (PIO)) Afbrydelser (eng.: interrupt) evt. + statusregistre Datalogi 1F: Operativsystemer [1] 19 Afbrydelser Ved en afbrydelse fra en ydre enhed: standses afviklingen af den aktive proces og processens tilstand gemmes hver afbrydelse er tilknyttet en afbrydelsesprocedure, der findes via en afbrydelsestabel afbrydelsesprocedure udføres afviklingen af processer genoptages: Enten den gamle proces eller en ny Datalogi 1F: Operativsystemer [1] 20 Kommunikation mellem brugerprogram og operativsystem Brugerprogrammer aktiverer funktioner i operativsystemet via systemkald Systemkald foretages vha. en softwaregenereret afbrydelse (trap): Systemkald og parametre specificeres via registre og stakoverførsel Operativsystemet bruger en systemskaldstabel til at finde den rigtige operativsystemroutine Brugerprogrammer kan også forårsage afbrydelser (exceptions) pga. ulovlige handlinger, f.eks. division med nul. Exceptions håndteres også af operativsystemet Datalogi 1F: Operativsystemer [1] 21 Computersystems opbygning Datalogi 1F: Operativsystemer [1] 22 Lagerhierarki Forskellige former for lager varierer meget med hensyn til: Pris Hastighed Overlevelse af strømafbrydelse Caching søger at placere data, der snart skal anvendes, højt i lagerhierarkiet: Temporal lokalitet: data genbruges hurtigt Rumlig lokalitet: data i samme område tilgås samtidig Disk caching vigtig opgave for operativsystemer Kopier af data skal holdes konsistente Lagerhierarki (2) Datalogi 1F: Operativsystemer [1] 23 Datalogi 1F: Operativsystemer [1] 24 4
Sikkerhedsbarrierer mellem OS og brugerprogrammer Instruktioner grupperes i forskellige sikkerhedsniveauer typisk to: Brugertilstand, e.g., læs, skriv, adder, trap Kernetilstand, e.g., I/O instruktioner Et brugerprogram forhindres i at tilgå operativsystems og andre brugerprogrammers lager: Nedre og øvre grænse Virtuelt lager Tvungent processkift forhindre monopolisering af processor: timerafbrydelser Datalogi 1F: Operativsystemer [1] 25 Brug af to sikkerhedsniveauer Hardware indeholder en eller flere bits, der viser sikkerhedsniveau, f.eks. (0) brugertilstand og (1) kernetilstand Ved afbrydelser skiftes til kernetilstand, f.eks. ved en trap operation Specielle privilegerede instruktioner kan kun udføres i kernetilstand, typisk instruktioner der har med ressourcedeling at gøre trap/ exception kernetilstand skift til brugerniveau brugertilstand Datalogi 1F: Operativsystemer [1] 26 Øvre og nedre grænse for lageradgang Hardwareunderstøttelse af begrænset lageradgang Datalogi 1F: Operativsystemer [1] 27 Datalogi 1F: Operativsystemer [1] 28 Opbygning af operativsystemer Hvilke typer af services skal et OS tilbyde Hvordan opdeles OS ets funktionalitet en balancegang mellem: Vedligeholdelsesvenligheden af OS koden Hastighed Udvidelsesmuligheder Designprincip: Mekanisme versus politik Datalogi 1F: Operativsystemer [1] 29 Operativsystemets services Proceshåndtering: starte og afslutte programmer hvem og hvornår Primært lager (RAM): allokere og deallokere lager I/O: adgang til skærm, tastatur og andre ydre enheder tillades kun via operativsystemet Filsystem: manipulering af filer opret, slet, læs, Sekundært lager: finde frie blokke, frigøre blokke Kommunikation: forskellige programmer skal kunne udveksle data både på samme maskine og mellem maskiner Fejlhåndtering: detektion af fejl i hardware eller software komponenter Brugergrænseflade: kommandofortolker Datalogi 1F: Operativsystemer [1] 30 5
Interne systemservices Services, der ikke stilles til rådighed for brugerprogammer men bruges internt i operativsystemet: Ressourceallokering: håndtering af uddeling og tilbagekaldelse af begrænsede ressourcer Overvågning og registrering: registrering af hvilke operationer og hvilke ressourcer, der benyttes af forskellige brugere Beskyttelse: beskyttelse af systemressourcer UNIX Den oprindelige UNIX implementation bestod af to dele: Systemprogrammer, der øger brugervenlighed, eks.: Elektronisk post Udskrivning Oversættere, debuggere En monolitisk kerne: procesafvikling, filsystemer, lageradministration, mm. i et lag uden skarpt adskilte grænser Datalogi 1F: Operativsystemer [1] 31 Datalogi 1F: Operativsystemer [1] 32 Opbygning af UNIX Lagdelt operativsystem Opdelt i flere lag, f.eks THE systemet: Brugerprogrammer Buffering af I/O Drivprogram for konsol Lageradministration Procesafvikling hardware Problem: omkostninger ved at skifte lag: Skift af sikkerhedsniveau Abstraktion forhindrer optimeringer, f.eks.: netkort med TCP checksum Datalogi 1F: Operativsystemer [1] 33 Datalogi 1F: Operativsystemer [1] 34 Mikrokerner Udfør mest muligt i brugertilstand: Systemservices implementeres vha. serverprocesser i brugertilstand Brugerprogrammer og systemservices kommunikerer via beskedudveksling formidlet af kernen Fordele: Nemmere at udvide/ændre funktionalitet Nemmere at flytte kerne til nye maskinarkitekturer Kernens komponenter beskyttes mod hinanden Ulemper: Hastighed: op til 4 sikkerhedsniveauskift ved hvert systemkald Datalogi 1F: Operativsystemer [1] 35 Windows NT struktur Datalogi 1F: Operativsystemer [1] 36 6
Virtuelle maskiner Datalogi 1F: Operativsystemer [1] 37 Mekanismer og politikker En mekanisme beskriver hvordan noget gøres En politik beskriver hvad der skal gøres hvornår Adskillelsen giver større fleksibilitet, idet forskellige politikker typisk kan implementeres vha. den samme mekanisme Mekanismer kan kræve hardwareunderstøttelse, mens politikker typisk ikke gør det (direkte) Datalogi 1F: Operativsystemer [1] 38 Opsummering Forskellige typer af systemer og hvilke krav de stiller til OSet Samspil mellem hardware og OS: afbrydelser, beskyttelse, lagerhierarki Strukturering af operativsystemer: services, lagdeling, mikrokerner, virtuelle maskiner Kilder Disse slides er baseret på SG03 samt de af forfatterne udviklede slides Datalogi 1F: Operativsystemer [1] 39 Datalogi 1F: Operativsystemer [1] 40 7