Principper for Samtidighed og Styresystemer kursusintroduktion og Introduktion til Styresystemer René Rydhof Hansen Februar 2008 PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 1 / 24
Kursusmål (studieordning) Den studerende skal ved den afsluttende prøve kunne: dokumentere kendskab til og overblik over de berørte temaer og begreber inden for samtidighed og operativsystemer benytte korrekt fagterminologi og notation i såvel skrift som tale dokumentere forståelse for opbygning, strukturering, funktionalitet og virkemåde af operativsystemer anvende berørte emner til udvikling af systemnære simple programmer, der benytter sig af samtidighed og synkronisering PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 2 / 24
Hvorfor? Iflg. studieordningen: Alle interessante systemer anvender i en eller anden udstrækning parallelitet og samtidige processer. Systemnær programmering ofte en forudsætning for indlejrede systemer Fundamentale begreber... sjovt! PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 3 / 24
Undervisning Forelæsningsformat: 3x30min. med 10min. pauser Pensum [English], forelæsninger, slides, opgaver samt mini-projekt. Opgaveregning Mestendels grupperum; af og til samlet Minimér spildtid: brug hjælpelærer! Undervisere René Rydhof Hansen. Email: rrh@cs.aau.dk Kontor: 1.2.36 Morten Kühnrich (hjælpelærer). Email: mokyhn@cs.aau.dk Kontor: 1.2.59 PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 4 / 24
Litteratur [English] John English Introduction to Operating Systems Behind the Desktop. Primær litteratur (obligatorisk). [Love] Robert Love Linux Kernel Development. Sekundær litteratur (valgfri). Samt eventuelle relevante artikler og lign. PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 5 / 24
Miniprojekt Individuel besvarelse To emner (foreløbige) Hukommelsesallokering Disk-schedulering Udvikles i C eller Java Aflevering af kort rapport Tre forelæsningsgange reserveres til miniprojektet Udgangspunkt for eksamen PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 6 / 24
Eksamen Mundtlig eksamen med forberedelse Ekstern censur 7-trinsskalaen Hovedspørgsmål (kendt) og sidespørgsmål (ukendt(e)) Udgangspunkt i miniprojekt PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 7 / 24
Resten af kurset (foreløbig plan) Filsystemer Processer og tråde Samtidighed, deadlocks og synkronisering Virtuelt og udvidet lager Kernen Device drivere og I/O Virtualisering Schedulering i Linux kernen (gæsteforelæsning) PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 8 / 24
Hvad er samtidighed?... systemer karakteriseret ved flere samarbejdende processer Sekventiel process Samtidige processer Samtidige processer Tid PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 9 / 24
Hvad er samtidighed?... problematisk Samtidige processer Samtidige processer Den præcise rækkefølge og timing for processernes samlede udførsel er uforudsigelig Potentielt problem: hvis de enkelte processers resultat (utilsigtet) er afhængigt af andre processers udførsel: race condition Eksempel: filsystem Eksempel: TOCTTOU PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 10 / 24
Race conditions og synkronisering Race conditions opstår som følge af ukontrolleret samtidig tilgang til delte resourcer. Samtidige processer Samtidige processer Løsning: synkronisering PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 11 / 24
Synkronisering Synkronisering kræver kontrol over ressourcer: P A B Q Kontrol PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 12 / 24
Synkronisering Synkronisering kræver kontrol over ressourcer: P Request Kontrol opnås gennem requests A B Q Kontrol PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 12 / 24
Synkronisering Synkronisering kræver kontrol over ressourcer: P Request Kontrol opnås gennem requests A B Q Kontrol Cykliske requests fører til deadlock PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 12 / 24
Samtidighed vs. parallelitet Samtidige processer Parallelle processer Samtidig Parallel MVP Parallel udførsel kræver hardware-understøttelse, e.g., multi-core processorer PSS Samtidig udførsel kan implementeres i software, e.g., virtualiseringssoftware, styresystem PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 13 / 24
Eksempler på samtidighed Parallel beregning Parallel I/O Kontrolsystemer i f.eks. biler og fly En CPU (multi-core) En computer (CPU vs. GPU) Computernetværk Kommunikationsnetværk Multitasking Virkeligheden PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 14 / 24
Multitasking Et styresystemdesign der tillader flere processer at blive udført på en (eller flere) delte processorer En process kan opfattes som en virtuel maskine der udfører et program Styresystemet skifter mellem aktive processer (Multiprogramming; vent på I/O) Cooperative Preemptive PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 15 / 24
Hvorfor multitasking? Batch-systemer Ressource-maksimering Throughput-maksimering Skift udløses af I/O Time-sharing Interaktiv brug Illusion af parallelle processer Skift udløses af timer Real-time Reagere på eksterne hændelser Real-time krav (maksimal absolut ventetid) PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 16 / 24
Hvad er et styresystem? Hvad styres? Hvad er en computer? Hvad er en virtuel computer? Er styresystemet hardware eller software? Er det et program? Er en shell en del af styresystemet? Er en GUI en del af styresystemet? Design Monolitisk vs. mini-kerne Torvalds vs. Tanenbaum PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 17 / 24
Hvad er et styresystem? En abstraktion Administration af resourcer Processor Hukommelse Navne... Koordinering Hændelser Aktiviteter Shell Std. lib. OS (process and memory mgmt.) Hardware (CPU,memory,disks) PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 18 / 24
Ressourcemanager System service interface File manager Network manager Memory manager I/O manager Process manager Disk driver Terminal driver Network driver Hardware interface PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 19 / 24
Ressource: Filsystemer Allokering Navnerum Pålidelighed Sikkerhed Hastighed PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 20 / 24
Ressource: Programmer og processer Programmer Instruktionssekvens Oftest en fil Statisk Process Et kørende program En sekvens af tilstande Dynamisk Virtuel maskine Isoleret Processer består af Programteksten: maskinkode Data: stak og heap Kontekst: cpu-registre etc. PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 21 / 24
Virtuelt Lager (paging) Styresystemet virtualiserer det fysiske lager virtuelt lager fysisk lager PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 22 / 24
Virtuelt Lager (demand paging) virtuelt lager fysisk lager disk disk PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 23 / 24
Opsummering og næste gang Introduktion til samtidighed Introduktion til styresystemer Næste gang: Filsystemer PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 24 / 24