Reservföreläsningen inställd n Reservtiden (fredag 10 mars kl 13-15) är en reservtid, ställs nu in eftersom inte något oförutsett hänt Operativsystem, Mats Björkman, MDH 1
Labredovisningar n Labbar som inte kommer in under den nuvarande perioden har nya chanser i samband med omtentaperioderna i juni resp. augusti Operativsystem, Mats Björkman, MDH 2
Gamla tentor n n n Ytterligare en gammal tenta upplagd Inga facit Fråga! Operativsystem, Mats Björkman, MDH 3
Operativsystem - input/output, skydd, virtualisering Mats Björkman 2017-03-08
Innehåll i boken n I/O kapitel 5 (5.1-5.3, 5.4-5.6 översiktligt) n Skydd kapitel 9 (9.1-9.3) n Virtualisering kapitel 7.1-7.4 (4:e), 8.3 (3:e) Operativsystem, Mats Björkman, MDH 5
Lärandemål, I/O n Typer av I/O-enheter n Character, Block & Special n Separat eller minnesmappad I/O n Typer av I/O-programmering n Programmerad, interrupt-driven & I/O genom DMA n I/O-abstraktionsskikt Operativsystem, Mats Björkman, MDH 6
Varför I/O? 7
Kontroll av periferienheter En I/O-enhet består typiskt av: 1. En mjukvarukontrollerad del (styrenhet, device controller) 2. En hårdvarudel (själva enheten) Disk Disk Printer DVD CPU Memory Disk controller Printer controller DVD controller System bus Operativsystem, Mats Björkman, MDH 8
Operativsystem, Mats Björkman, MDH 9
I/O-kontroll n Varje I/O-enhet har ett eller flera register som används för styrning eller in- och utmatning n Processorn interagerar med I/Oenheten genom att läsa och skriva från/ till dessa register Operativsystem, Mats Björkman, MDH 10
Kontrollregister och dataregister n Många I/O-enheter har separata register för kontroll av enheten respektive för att läsa/skriva data från/ till enheten Operativsystem, Mats Björkman, MDH 11
I/O-enheter I/O enheter kan vara av flera olika typer: n n Block devices Character devices Det finns en del enheter (special devices) som är varken eller, exempelvis: n Klocka som genererar timer-avbrott Operativsystem, Mats Björkman, MDH 12
Block devices n Data till och från block devices hanteras i block som kan adresseras n Hårddisk är typexemplet Operativsystem, Mats Björkman, MDH 13
Character devices n Skickar/tar emot en ström av tecken (characters) n Exempel: Tangentbord, mus, nätverkskort, skrivare n Fungerar inte som permanentlagring Operativsystem, Mats Björkman, MDH 14
Special devices n Hanterar något annat än data n Typexemplet: Hårdvarutimer för avbrottsgenerering n Här finns bara kontrollregister: för att sätta tiden för timeravbrott n Det enheten gör är att generera ett avbrott efter angiven tid Operativsystem, Mats Björkman, MDH 15
Separat eller minnesmappad I/O Alla I/O-styrenheter har en uppsättning register som används för kommunikation med CPU:n. Dessa register kan antingen vara separata (I/O-mappade) eller mappade i minnet (minnesmappade) I/O registers Memory space Memory space I/O registers Separat Minnesmappad Operativsystem, Mats Björkman, MDH 16
I/O-mappad I/O n Fördel: Många I/O-enheter är inte minne! n Nackdel: Kräver specialinstruktioner för access (exv. IN och OUT i x86), ofta inte tillgängligt från högnivåspråk Operativsystem, Mats Björkman, MDH 17
Minnesmappad I/O n Fördel: Kan använda vanliga minnesinstruktioner för access n Kan använda virtuellminnesskyddet för att skydda I/O-enheterna n Nackdel: Behöver sätta minnet till ocachebart för att få rätt beteende Operativsystem, Mats Björkman, MDH 18
I/O-programvara Tre principiella sätt att implementera I/O i programvara: n n n Programmerad I/O (pollning, busy waiting) Interrupt-driven I/O I/O via Direct Memory Access (DMA) SYNCHRONOUS ASYNCHRONOUS Exempel: Fest med gäster Exempel: Skriva på skrivare Operativsystem, Mats Björkman, MDH 19
Programmerad I/O copy_from_user(usr_buffer &p, &count); for(i=0;i<count;i++) { while(*printer_status_reg!=ready){} *printer_data_register=p[i]; } return_to_user(); Operativsystem, Mats Björkman, MDH 20
Programmerad I/O forts. Fördelar: n Lätt att programmera och förstå Nackdelar: n Använder CPU:n vid väntan på I/O (busy waiting) Operativsystem, Mats Björkman, MDH 21
Interrupt-driven I/O - 1 copy_from_user(usr_buffer &p, &count); while(*printer_status_reg! =READY){} for(i=0;i<count;i++) { } *printer_data_register=p[i]; block_and_schedule(); return_to_user(); acknowledge_interrupt(); unblock_user(); return_from_interrupt(); Operativsystem, Mats Björkman, MDH 22
Interrupt-driven I/O - 1 forts. Fördelar: n Programmet blockeras i väntan på I/O Nackdelar: n Mer komplext och svårprogrammerat n CPU:n får (alltför) många interrupts n Processen skeduleras för varje skrivning Operativsystem, Mats Björkman, MDH 23
Interrupt-driven I/O - 2 copy_from_user(usr_buffer &p, &count); while(*printer_status_reg!=ready){} *printer_data_reg=p[0]; block_and_schedule(); return_to_user(); acknowledge_interrupt(); if(count==0) unblock_user(); else { *printer_data_reg=p[i]; count--; i++; } return_from_interrupt(); Operativsystem, Mats Björkman, MDH 24
Interrupt-driven I/O - 2 forts. Fördelar: n Programmet blockeras i väntan på I/O n Slipper skedulera processen för varje skrivning Nackdelar: n Komplext och svårprogrammerat n CPU:n får (alltför) många interrupts n Problem om för mycket kod i interruptrutinen Operativsystem, Mats Björkman, MDH 25
I/O genom DMA copy_from_user(usr_buffer &p, &count); setup_dma_controller(p,count, ); block_and_schedule(); return_to_user(); acknowledge_interrupt(); unblock_user(); return_from_interrupt(); Operativsystem, Mats Björkman, MDH 26
Direct Memory Access (DMA) CPU DISK CONTROLLER MEMORY! Registers that! can be read and written by the CPU CPU DISK CONTROLLER DMA CONTROLLER MEMORY SYSTEM BUS! Address: Count: 23 45 43 21 0 SYSTEM BUS Operativsystem, Mats Björkman, MDH 27
Fördelar: I/O genom DMA forts. n Programmet blockeras i väntan på I/O n Endast ett interrupt när allt är klart Nackdelar: n Behöver ha DMA-hårdvara (eller DMA-kapabla periferienheter) n Behöver sätta upp DMA-controllern n Måste hantera cachekonsistens! Operativsystem, Mats Björkman, MDH 28
Direct Memory Access (DMA) CPU DISK CONTROLLER MEMORY Cache! Registers that! can be read and written by the CPU CPU DISK CONTROLLER DMA CONTROLLER MEMORY SYSTEM BUS Cache! Address: Count: 23 45 43 21 0 SYSTEM BUS Operativsystem, Mats Björkman, MDH 29
I/O genom DMA forts. Cachekonsistensproblemet: n Vi måste se till att inte processorn använder cachat gammalt data efter det att DMA:n har genomfört flyttningen av data! Operativsystem, Mats Björkman, MDH 30
I/O - abstraktionsskikt Vanliga användare vill slippa alltför låg nivå på I/Ohanteringen Vi behöver abstraktioner som ger: n n n n Ett oberoende av enheternas fysiska egenheter Uniform namngivning Felhantering så nära hårdvaran som möjligt Ett synkront utseende på asynkrona enheter Operativsystem, Mats Björkman, MDH 31
I/O abstraktionsskikt forts. Dessa krav kan uppfyllas genom fyra abstraktionsskikt: Användarprogram Enhetsoberoende operativsystemsrutiner Drivrutiner Interrupthanterare H Å R D V A R U P L A T T F O R M Operativsystem, Mats Björkman, MDH 32
Användarprogram Användarprogram Enhetsoberoende operativsystemsrutiner Drivrutiner Interrupthanterare Användarprogram kommer åt I/O-operationer genom systemanrop till biblioteksrutiner, som: n n n write(); read(); m.m. I/O på användarnivå innehåller också formatering och buffring: n printf(format string, list of expressions); H Å R D V A R U P L A T T F O R M Operativsystem, Mats Björkman, MDH 33
Användarprogram Enhetsoberoende operativsystemsrutiner Enhetsoberoende n Namngivning n Skydd Drivrutiner Interrupthanterare H Å R D V A R U P L A T T F O R M n Buffring n Allokering / Blockering A program that reads a file as input should be able to read a file on a floppy disk, a hard disk or a DVD without having to modify the program for each different device. - Tanenbaum Operativsystem, Mats Björkman, MDH 34
Drivrutiner Användarprogram Enhetsoberoende operativsystemsrutiner Drivrutiner Interrupthanterare En drivrutin: H Å R D V A R U P L A T T F O R M Den del av den I/O-hanterande programvaran som är beroende av den fysiska enheten separeras ofta från de delar som är enhetsoberoende. Den enhetsberoende delen brukar kallas drivrutin eller device driver. n Tolkar högnivåkommandon från övre skikt n Ser till att dessa utförs genom att ge enhetsspecifika kommandon till enheten via dess kontrollregister Drivrutiner exekverar i kernel mode, så de är mycket känsliga för fel Operativsystem, Mats Björkman, MDH 35
Interrupthanterare Användarprogram Enhetsoberoende operativsystemsrutiner Drivrutiner Interrupthanterare H Å R D V A R U P L A T T F O R M Interrupthanteraren tar hand om det praktiska i hanteringen mellan hårdvaruplattformen och drivrutinerna Operativsystem, Mats Björkman, MDH 36
I/O abstraktionsskikt, summering Användarprogram Enhetsoberoende operativsystemsrutiner Drivrutiner Interrupthanterare Gör I/O-anrop, formaterar I/O, buffring Namngivning, skydd, blockering, allokering Styr enheten via register, kontrollerar status Väcker upp drivrutinen när I/O är klar H Å R D V A R U P L A T T F O R M Utför den egentliga I/O-operationen Operativsystem, Mats Björkman, MDH 37
Lärandemålen I/O igen n Typer av I/O-enheter n Character, Block & Special n Separat eller minnesmappad I/O n Typer av I/O-programmering n Programmerad, interrupt-driven & I/O genom DMA n I/O-abstraktionsskikt Operativsystem, Mats Björkman, MDH 38
Lärandemål skydd n Skydd i ett operativsystem n Accessmatrisen n Accesskontrolllistor n Capabilities Operativsystem, Mats Björkman, MDH 39
Skydd i ett operativsystem n Vi har tidigare talat om: n Skydd mellan process och OS n Skydd mellan processer n Skydd för filer Operativsystem, Mats Björkman, MDH 40
Skydd i ett operativsystem n Mål för skydd: n Konfidentialitet obehöriga skall inte komma åt data n Dataintegritet obehöriga skall inte kunna manipulera data n Autenticering - Är du verkligen du? n Tillgänglighet obehöriga skall inte kunna hindra rättmätiga från att använda systemet Operativsystem, Mats Björkman, MDH 41
Skydd i ett operativsystem n Skyddsmekanismer: n Konfidentialitet kryptering, autenticering n Dataintegritet kryptogr. checksummor n Autenticering - lösenord, certifikat n Tillgänglighet skydd mot DoS (svårt) Operativsystem, Mats Björkman, MDH 42
Modell av OS-skydd Operativsystem, Mats Björkman, MDH 43
Skydd i ett operativsystem n Generellt sett måste OS:et för varje objekt i systemet (exv. process, fil, ) ha en policy för vem som får accessa objektet Operativsystem, Mats Björkman, MDH 44
Accessmatrisen n Accessmatrisen är en abstraktion som innehåller accessrättigheter för alla objekt i systemet Operativsystem, Mats Björkman, MDH 45
Accessmatrisen Operativsystem, Mats Björkman, MDH 46
Accessmatrisen n För domän, tänk bokens exempel från UNIX: n Rättigheter till filer i UNIX sätts utgående från ägarens User-ID och Grupp-ID n Paret User-ID + Grupp-ID utgör en domän, för varje fil finns specat vilka rättigheter en process med en viss User- ID + Grupp-ID har Operativsystem, Mats Björkman, MDH 47
Accessmatrisen n Accessmatrisen blir stor: n alla objekt alla domäner n Väldigt många platser i matrisen blir tomma n Vanligt att spara accessmatrisen på ett mer kompakt sätt Operativsystem, Mats Björkman, MDH 48
Accesskontrolllistor (ACL:er) n Accesskontrollistor (ACL:er) är ett sätt att spara accessmatrisen per objekt Operativsystem, Mats Björkman, MDH 49
Accesskontrolllistor (ACL:er) n Accesskontrollistor (ACL:er) är ett sätt att spara accessmatrisen per objekt Operativsystem, Mats Björkman, MDH 50
Accesskontrolllistor (ACL:er) n En förenklad variant av ACL är precis vad filsystem med accessrättigheter i filattributen har n När ett subjekt (typ en process som har en användare som ägare) vill accessa ett objekt (typ en fil), kontrolleras i objektets accesskontrollista ifall accessen skall tillåtas (vilka rättigheter har processens ägare till filen?) Operativsystem, Mats Björkman, MDH 51
Capabilities n Man kan även skiva matrisen på andra ledden och för varje subjekt ange vilka rättigheter subjektet har n Detta kallas capabilities Operativsystem, Mats Björkman, MDH 52
Capabilities n Man kan även skiva matrisen på andra ledden och för varje subjekt ange vilka rättigheter subjektet har Operativsystem, Mats Björkman, MDH 53
Capabilities n Då hämtas rättighetslistan associerad till subjektet när subjektet vill accessa ett objekt Operativsystem, Mats Björkman, MDH 54
Capabilities n För att inte capabilities skall kunna förfalskas krävs särskild hantering av dessa n Ett sätt är att OS:et hanterar och lagrar listorna över capabilities n Ett annat sätt är att använda kryptografiska signaturer (typ certifikat) Operativsystem, Mats Björkman, MDH 55
Mer om säkerhet? n Boken 9.5 är en kortintroduktion till kryptografi n Ni som kommer att gå datakommunikationskursen kommer att få en introduktion till nätsäkerhet i den kursen Operativsystem, Mats Björkman, MDH 56
Lärandemålen skydd igen n Skydd i ett operativsystem n Skyddsmatrisen n Accesskontrolllistor n Capabilities Operativsystem, Mats Björkman, MDH 57
Lärandemål virtualisering n Vad är virtualisering? n Hur åstadkoms virtualisering? Operativsystem, Mats Björkman, MDH 58
Virtualisering n OS handlar mycket om virtualisering: n Att ge processer en illusion om att de är ensamma på maskinen n Att ge processer illusionen av att hårdvaran är enkel och oproblematisk Operativsystem, Mats Björkman, MDH 59
Virtualisering n Detta kan tas ett steg längre: n Operativsystemet kan vara en del av det system som får illusionen av att vara ensam på hårdvaran n Detta är vad man menar idag med OSvirtualisering Operativsystem, Mats Björkman, MDH 60
Virtualisering - historia n Detta gjordes redan för länge sedan: n IBM gjorde detta för sitt System 370, lanserat som VM/370 år 1972 Operativsystem, Mats Björkman, MDH 61
Virtualisering VM/370 Operativsystem, Mats Björkman, MDH 62
VM/370 n Varje virtuell maskin fick illusionen av att vara ensam på hårdvaran n Ett effektivt sätt att åstadkomma multiprogrammering i något som ursprungligen var ett batchsystem Operativsystem, Mats Björkman, MDH 63
VM/370 n Dessutom kunde olika processer välja olika operativsystem n Populärt var att köra OS/360 för att slippa arbetet med att flytta (portera) gamla program till nya hårdvaruplattformar Operativsystem, Mats Björkman, MDH 64
VM/370 n Modernare varianter (z/vm) är fortfarande i bruk på IBM-system n Används fortfarande för att kunna köra gamla program på ny hårdvara Operativsystem, Mats Björkman, MDH 65
Hypervisors n I modernt språkbruk kallas koden mellan hårdvara och det virtuella operativsystemet ofta hypervisor n Boken delar upp hypervisors i Typ 1 och Typ 2 Operativsystem, Mats Björkman, MDH 66
Hypervisor typ 1 n En hypervisor typ 1 fungerar som IBM:s Virtual Machine Monitor: den ger det virtuella operativsystemet (ofta kallat gästoperativsystemet) tillgång till hårdvaran Operativsystem, Mats Björkman, MDH 67
VM/370 Operativsystem, Mats Björkman, MDH 68
Hypervisor typ 2 n En hypervisor typ 2 använder sig av ett värdoperativsystem i botten n Gästoperativsystemen kör sedan ovanpå värdoperativsystemet Operativsystem, Mats Björkman, MDH 69
x Operativsystem, Mats Björkman, MDH 70
Typ 1 vs Typ 2 n Typ 1 kan innebära mindre overhead, det virtuella operativsystemet kör nästan direkt på den fysiska hårdvaran n Typ 2 innebär enklare delning av hårdvaruresurser såsom I/O-enheter: värdoperativsystemet har drivrutinerna och kan fördela resurserna mellan gästerna Operativsystem, Mats Björkman, MDH 71
Äkta virtualisering vs paravirtualiserng n Äkta virtualisering innebär att gästoperativsystemet är det oförändrade operativsystemet som exekverar n Paravirtualisering innebär att gästoperativsystemet modifierats så att det enklare kan köra på värdsystemet Operativsystem, Mats Björkman, MDH 72
Äkta virtualisering vs paravirtualiserng Operativsystem, Mats Björkman, MDH 73
Problem med virtualisering n Virtualisering är överkomligt så länge man kör ett gästoperativsystem över en typ 1- hypervisor n I detta fall är det mest en fråga om att översätta till och från hårdvara som kanske inte stöds (exv. MacOS på PC) Operativsystem, Mats Björkman, MDH 74
Problem med virtualisering n Problemen uppstår när man antingen har mer än ett gästoperativsystem eller en typ 2-hypervisor som kör på ett värdoperativsystem Operativsystem, Mats Björkman, MDH 75
Problem med virtualisering n Problemexempel: En grundläggande uppgift för ett modernt OS är att tillhandahålla virtuellt minne, d.v.s. en mappning från virtuella adresser till fysiskt minne n Vad händer när två (eller flera) OS på samma hårdvara vill sköta det fysiska minnet? Operativsystem, Mats Björkman, MDH 76
Virtualisering - minne n Lösning: Ytterligare en nivå av virtualisering n Det som gäst-os:et uppfattar som fysiskt minne är fortfarande virtuellt n En ytterligare översättning från virtuellt fysiskt minne till fysiskt fysiskt minne sker i hårdvaran Operativsystem, Mats Björkman, MDH 77
Virtualisering - minne Operativsystem, Mats Björkman, MDH 78
Virtualisering mer problem n Samma problem som med minnet gäller för I/O-enheter n Flera operativsystem tror att de är ensamma om I/O-enheterna: hårddisk, tangentbord, display, etc. Operativsystem, Mats Björkman, MDH 79
Virtualisering I/O-problem n Det finns lite olika sätt att lösa dessa problem: n I typ 2-system kan allt kanaliseras via värd-os:et, värd-os:et får fördela hårdvaruresurserna mellan gästerna på liknande sätt som mellan processer inom ett OS Operativsystem, Mats Björkman, MDH 80
Virtualisering I/O-problem n I typ 1-system krävs någon annan form av virtualisering av I/O-resurserna: n Ett sätt kallas I/O-MMU, då sker översättningar mellan fysiska och virtuella resurser, exv. I/O-adresser n Interrupts: mappning sker mellan de fysiska hårdvarusignalerna och de virtuella signaler gäst-os:en mottar Operativsystem, Mats Björkman, MDH 81
Lärandemålen virtualisering igen n Vad är virtualisering? n Hur åstadkoms virtualisering? Operativsystem, Mats Björkman, MDH 82
OS-kursen, sammanfattning n OS:et som abstraktion och resurshanterare n Processer och processhantering n Baklås n Minne och minneshantering n Filsystem n I/O, skydd, virtualisering Operativsystem, Mats Björkman, MDH 83