DVA315 Operativsystem

Relevanta dokument
DVA315 Operativsystem. Mats Björkman Mälardalens högskola

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Introduktion till hårdvara, mjukvara och operativsystem

Föreläsning 2. Operativsystem och programmering

Operativsystem - input/output, skydd, virtualisering

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Datorsystem 5. På denna föreläsning skall vi prata om Operativsystem Exempel på tenta (typ fjolårets)

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Reservföreläsningen inställd

Inledande programmering med C# (1DV402) Introduktion till programmering

Definition DVG A06. Varför operativsystem? Operativsystem. Översikt. - Vad är ett operativsystem?

Introduktion till programmering

Operativsystem ID hp, ID2200 6hp

TDDC77 Objektorienterad Programmering

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

Operativsystem. IS hp. Jim Dowling Docent, PhD [Bilder av Robert Rönngren]

DIG IN TO Dator och nätverksteknik

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

Operativsystem Introduktion

Operativsystem. Hierarkin för hårdvara läses nerifrån

Datorteknik ERIK LARSSON

Minnesisolering för virtuella maskiner en hypervisorstudie

Datorsystemteknik DAVA14 Föreläsning 10

Introduktion till programmering. Undervisning. Litteratur och examination. Lärare. Föreläsning 1

Processprogrammering och operativsystem Introduktion. Kursinformation. Varför operativsystem?

Lärare. Operativsystem. Handledning. Kurssajt. Schema. Lektioner. Jan Erik Moström

Tentamen den 18 mars svar Datorteknik, EIT070

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

Allmänt om programvaror och filer i Windows.

Författare: Juha Söderqvist IT-GUI. Version 1.0. Datum

HF0010. Introduktionskurs i datateknik 1,5 hp

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Grundkurs i programmering - intro

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

Datorsystemteknik DAV A14 Föreläsning 1

Design och trender. Föreläsning 12

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Projekt Fake för Virtutech

Föreläsning 1: Intro till kursen och programmering

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Introduktionsmöte Innehåll

SMD 134 Objektorienterad programmering

Program & programmering

Design och konstruktion av grafiska gränssnitt

Föreläsning 1: Intro till kursen och programmering

Design och konstruktion av grafiska gränssnitt

GRUNDKURS I C-PROGRAMMERING

LABORATIONSUPPGIFTER WINDOWS OPERATIVSYSTEM

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

OOP Objekt-orienterad programmering

Operativsystem och användargränssnitt

Imperativ programmering

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

TDIU01 (725G67) - Programmering i C++, grundkurs

Datorsystem och programmering

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

Distribuerade affärssystem

Föreläsning 1: Introduktion till kursen

Schemaläggning Unix. Minneshantering etc. Linux. Schemaläggning av trådar (kernel threads) Detaljer. Operativsystem - Lektion 7

! Introduktion till kursen! En dators delar! Vad är ett program? " Hur fungerar ett program när det körs

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

Har du läst kursen på Campus eller distans Campus 8 53% Distans 7 47%

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Översikt. Datorarkitekturer med operativsystem. Inledning. Inledning

Innehålls förteckning

Introduktion till programmering, hösten 2011

Objektorienterad Programmering (TDDC77)

Evaluation Summary - CDT104 Grundläggande Webbdesign HT07 Dan Levin

Introduktion till programmering. Programspråk och paradigmer

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel

Föreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

Operativsystem - Processer I

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

32 Bitar Blir 64 Sammanfattning

EDAA01 Programmeringsteknik - fördjupningskurs

Systembeskrivning. Systemskiss. Moduler.

Innehåll. Programmeringsteknisk översiktskurs för yrkeshögskoleprogram. Operativsystem. Vad är/gör en processor? Klockhastighet

Föreläsning 1: Introduktion till kursen

Tentamen i Informationsteknologi 5p Fredagen den 13 augusti 2004

KURSMÅL WINDOWS STARTA KURSEN

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Operativsystem IS1350

Välkommen till. Datastrukturer, algoritmer och programkonstruktion. eller DOA

Inledande programmering med C# (1DV402) Introduktion till C#

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

SKOLFS. beslutade den XXX 2017.

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

Föreläsning Dokumentation och Felanmälan. Processer. Ta bort processer. (forts.) Förlorade slides på förra föreläsningen

CDC en jämförelse mellan superskalära processorer. EDT621 Campus Helsingborg av: Marcus Karlsson IDA

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Transkript:

DVA315 Operativsystem Mats Björkman Mälardalens högskola 2017-01-16 1

Kursen i korthet n Föreläsningar: OS-begrepp och teori n Ser på OS från OS-utvecklarens synvinkel n Inlämningsuppgifter: Programmering med OS-stöd n Ser på OS ur 6llämpningsutvecklarens synvinkel n Systemanrop, Mul6programmering, Händelsestyrd programmering n Skriftlig tentamen: Betyg 3,4 & 5 n Seminarium: Välj ett ämne ur en lista 2

Inlämningsuppgifter (tidigare kallade labbar) n 3 uppgifter (som kommer att ta tid!) n Lab 1: Windows API-programmering, trådar, synkronisering och kommunika6on. n Lab 2: Planetlab Klient/Server-arkitektur, processkommunika6on, kri6ska avsnim. n Lab 3: Grafisk klient Fönsterhantering, händelse- och callback-hantering, alterna6vt utökning av Lab 2, alterna6vt eget projekt 3

Personal n n Föreläsare och kursansvarig: Mats Björkman Labassistenter: Sara Abbaspour, Jakob Danielsson 4

Resurser n Litteratur: Modern Operating Systems 4th ed., A. Tanenbaum, H. Bos (OBS! Global edition billigare). 3:e upplagan fungerar också. n Kurshemsida: http://www.idt.mdh.se/kurser/dva315/ 5

Förkunskapskrav n n Programmering Datastrukturer och algoritmer n Ev dispenser: Ingen dispens för programmering, för DoA: ett moment möjligt att få dispens för, en gång 6

Det är fel att fuska! n Självklart! 7

Förra årets kursutvärdering Svarsfrekvens: 15 svarande av 57 studenter Egen arbetsinsats (53%) <25h/vecka Några betyg (skala 1-5) Övergripande betyg 4,4 Kursens undervisning 4,1 Tydlighet i examination 4,4 Kurslitteraturen gav stöd 4,0 Studiehandledning 4,4 Annat Fick du under kursen information om tidigare kursutvärderingar: 100% ja 8

Förra årets kursutvärdering Svarsfrekvens: 15 svarande av 57 studenter Egen arbetsinsats (53%) <25h/vecka Några betyg (skala 1-5) Övergripande betyg 4,4 Kursens undervisning 4,1 Tydlighet i examination 4,4 Kurslitteraturen gav stöd 4,0 Studiehandledning 4,4 Annat Fick du under kursen information om tidigare kursutvärderingar: 100% ja 9

Förra årets kursutvärdering Svarsfrekvens: 15 svarande av 57 studenter Egen arbetsinsats (53%) <25h/vecka Några betyg (skala 1-5) Övergripande betyg 4,4 Kursens undervisning 4,1 Tydlighet i examination 4,4 Kurslitteraturen gav stöd 4,0 Studiehandledning 4,4 Annat Fick du under kursen information om tidigare kursutvärderingar: 100% ja 10

Förra årets kursutvärdering Svarsfrekvens: 15 svarande av 57 studenter Egen arbetsinsats (53%) <25h/vecka Några betyg (skala 1-5) Övergripande betyg 4,4 Kursens undervisning 4,1 Tydlighet i examination 4,4 Kurslitteraturen gav stöd 4,0 Studiehandledning 4,4 Annat Fick du under kursen information om tidigare kursutvärderingar: 100% ja 11

Förändringar till i år n Ny poängfördelning labbar/seminarium: labbar 3 hp, seminarium 1 hp n Kursen går inte parallellt med kursen Datakommunikation DVA218 i år! n Möjlighet att göra labbarna under Linux (betaversion) 12

Föreläsningsserien n Introduktion - vad är ett OS och varför OS? n Processer och processhantering n Baklås n Minneshantering n Filsystem n Input och output I/O n Skydd, Virtualisering 13

Innehållet n Operativsystem är ett stort område n Föreläsningarna hinner bara ta upp de mest grundläggande koncepten n Labbarna ger erfarenhet av ett (1) API n Boken + era egna seminarier kompletterar detta med exempel från andra verkliga system och med detaljer som föreläsningarna inte hinner med att ta upp 14

15

Vad är ett operativsystem? n Ett stödsystem till hjälp när man vill köra ett program på en dator 16

Vad är ett program? n Kod (instruktioner) och data n Koden finns typiskt i form av en körbar (exekverbar) fil på datorn (minfil.exe) n Koden körs på datorn, använder indata och levererar utdata (även detta ofta från/ till filer) 17

Vad är en process? n Ett exekverande program kallar vi en process n Processer använder datorns resurser i form av processorkraft (CPU-kraft) och minne (lagring av kod, minne för data, permanent lagring för filer, m.m.), m.m. 18

Vad är ett operativsystem? n Operativsystemet (OS:et) är en resurshanterare som hjälper processer n Operativsystemet ger stöd i form av enhetliga gränssnitt mot gemensamma resurser (exv. hårdvara) 19

Närliggande områden n Området operativsystem gränsar till (eller överlappar) flera andra områden: n Kompilatorteknik (program/processer etc.) n Datorarkitektur (CPU, minne, filsystem, ) 20

Kompilatorteknik på 1 bild Källkod Bibliotek Kompilator Runtimesystem Runtimebibliotek Objektkod Process 21

Datorarkitektur bild 1 22

Datorarkitektur bild 2 23

Vad gör OS:et? n Operativsystemet behöver alltså kunna hantera processer, och fördela resurser som CPU-tid och minnesutrymme till processerna på ett effektivt och rättvist sätt n Dessutom behöver OS:et tillhandahålla möjligheter för kommunikation mellan processer och med I/O-enheter 24

Vad gör OS:et? n Förutom detta behöver OS:et ha säkerhet för att skydda processer mot varandra och för att skydda OS:et mot användarprocesser n och även hålla reda på hur mycket resurser processerna förbrukar (för rättvisa eller debitering) 25

Vad är ett operativsystem? n Ett stödsystem för: n Programmerare av tillämpningar n Användare av tillämpningar 26

Två huvudsyften med OS n 1: Förenkla programmering av tillämpningar genom att tillhandahålla avancerat stöd för ofta efterfrågade funktioner och för att ge enhetliga gränssnitt mot hårdvara 27

Förenkla programmering n Exempel: Filsystem. OS:et tillhandahåller rutiner för vanliga filoperationer (skapa, skriv, läs, etc.) n Rutinerna ser likadana ut för tillämpningsprogrammeraren oavsett vilket fysiskt lagringsmedium som används 28

Förenkla programmering n Stödet definieras som ett gränssnitt för programmering (Application Programming Interface, API) n Exempel: Windows API för att få stöd från Windows 29

Förenkla programmering n För att förenkla för dem som programmerar OS:et finns gränssnitt mellan OS och hårdvara. n För att översätta mellan generella OSkommandon och de specifika instruktioner en viss hårdvara kräver, används drivrutiner n Drivrutiner skrivs typiskt av hårdvarutillverkaren, olika OS kräver olika drivrutiner 30

Två huvudsyften med OS n 2: Förenkla användning av tillämpningar genom att tillhandahålla avancerat stöd för resurshantering och för att möjliggöra flera tillämpningar att vara aktiva samtidigt 31

Förenkla användning n Exempel: Processhantering. Flera tillämpningar kan vara igång samtidigt och dela på gemensamma resurser (CPU, minne, I/O) 32

Förenkla användning n Användaren samverkar med OS:et genom ett användargränssnitt (User Interface, UI), ofta grafiskt (Graphical User Interface, GUI) 33

Operativsystem på 1 bild Processer API Användare UI/ GUI OS Drivrutiner 34 Hårdvara

Typiska OS-funktioner n Tillhandahålla högnivåabstraktioner för: n Processhantering n Minneshantering n I/O n Filsystem n Säkerhet och skydd 35

Inga baksidor? n Jodå, det kostar! n Operativsystemet kostar resurser i form av processorkraft och minne (just de viktiga resurser som ett OS skall vara effektivt på att hantera) 36

Inga baksidor? n Eftersom OS:et är byggt för standardprocesser så är det mesta inte perfekt för en given process n Om vi skräddarsydde alla funktioner för en given speciell process, så skulle det kunna bli effektivare än med ett OS som skall kunna hantera olika typer av processer 37

Ett matexempel n Det sägs att det finns inte något sådant som en gratis lunch, så ett matexempel vore kanske på sin plats för att förklara vad OS:et gör och varför det kostar men ändå är värt det 38

Pizza till lunch? n Antag att du vill äta pizza till lunch n Två (av flera) alternativ: n Göra pizzan själv, eller n Gå till en pizzeria och äta där 39

Pizza till lunch? n Om du köper alla råvaror och går hem och bakar pizzan själv så blir det billigare n Om du går på pizzerian så slipper du jäsa en deg och koka tomatsås och riva ost och en massa annat kletigt och så slipper du diska! n Ofta är vi beredda att betala för bekvämligheten (och tiden vi sparar) 40

OS till lunch? n Samma med ett OS: vi skulle kunna skriva all kod för all hårdvaruhantering själva och köra direkt på hårdvaran n Vi skulle slippa overheaden som OS:et tar (CPU och minne), men n det skulle vara ett hästarbete! 41

Multitasking i restaurangen n En restaurang kan dessutom utnyttja sin dyra mästerkock och sitt stora kök genom att ha flera gäster samtidigt n Med lite bra timing behöver inte gästerna vänta väldigt mycket längre än om de hade varit ensamma i restaurangen 42

Multitasking i datorn n OS:et gör precis samma sak, det hanterar flera processer samtidigt men försöker få det att se ut som om varje process var ensam på datorn och hade alla resurser för sig själv n Illusionen av att ha alla resurser själv är typisk för ett OS med multitasking 43

Vad är virtuell maskin? n Med virtuell maskin menas att processen får illusionen av en maskin som inte är den fysiska maskinen n Ursprungligen användes termen om att OS:et gav processen illusionen av att den hade hela maskinen för sig själv, när det i själva verket var flera processer som var aktiva samtidigt 44

Utökad virtuell maskin? n Benämningen utökad virtuell maskin används för att ange att OS:et ger processen illusionen av att datorn har mer avancerad funktionalitet än vad hårdvaran egentligen erbjuder 45

Virtualisering av OS? n Begreppet virtualisering används idag ofta för att ange att man kan köra flera olika OS, antingen parallellt, eller det ena ovanpå det andra n Mer om detta i föreläsning 9 46

47

OS:ets historia n OS:ets historia är naturligt nog intimt kopplat till datorernas historia n Ni som är datavetare har fått en översikt av datorns historia i introduktionskursen till DVP n I kursen Datakommunikation (DVA218) tas datorns historia upp i samband med Internets historia 48

OS:ets historia n Kortversionen av datorernas historia är att de har gått från att vara stora och inte särskilt kraftfulla till att vara små och kraftfulla 49

Datorgenerationer, 1: n 1940-1950-tal: Elektronrör n En dator fyller ett helt rum (eller fler) n ENIAC 50

Datorgenerationer, 2: n 1950-1970-tal: Transistorer n En dator är stor som en folkvagnsbuss IBM 704 n 51

Datorgenerationer, 3: n 1960-1980-tal: Integrerade kretsar n En dator är stor som ett kylskåp n DEC PDP-11 52

Datorgenerationer, 4: n 1970-1990-tal: Mikroprocessorer n En dator är stor som en dator J IBM PC n 53

Datorgenerationer, 5: n 1990-2000-tal: Miniatyrisering n En dator är stor som en mobiltelefon Nokia 9500 n 54

OS:ets historia n Jag använder här samma generationsnummer som boken, notera dock att jag har avvikande åsikter ibland 55

Generation 1: Inget OS n De första datorerna hade inget alls som liknar ett operativsystem, utan all kodning gjordes från grunden för varje program som skulle köras n Datorerna programmerades att lösa en (1) uppgift (köra ett (1) program) 56

Generation 1.0: ENIAC 57

Generation 1.5: Stored-program n Ganska snart insåg man att det fanns en stor fördel i att ha programmets instruktioner lagrade i datorns minne n Instruktionerna kunde då läsas in från exv. hålkort och lagras i datorn n Mycket snabbare att göra datorn redo att köra ett program som körts tidigare 58

Generation 2: Kompilatorer, bibliotek och batchsystem n Under 1950-talet kom kompilatorer för att man skulle slippa skriva alla program i maskinkod n En styrka med kompilatorer är också att man kan använda sig av biblioteksrutiner, så att man slipper skriva all kod själv 59

Generation 2: Kompilatorer, bibliotek och batchsystem n Biblioteksrutiner fanns redan tidigare, men lite knöligare att använda, typ en färdig lista med maskininstruktioner (exv. en trave hålkort) som programmeraren kunde återanvända eller kopiera n Kompilatorerna gjorde återanvändning av kod enklare 60

Generation 2: Kompilatorer, bibliotek och batchsystem n Vissa biblioteksrutiner länkas in i objektfilen, andra anropas först när programmet körs n För att hantera rutiner som anropas när programmet körs krävs ett runtimesystem n Tidiga kompilatorers runtimesystem innehöll funktioner som finns i OS idag, exv. rutiner för I/O 61

Kompilatorteknik på 1 bild Källkod Bibliotek Kompilator Runtimesystem Runtimebibliotek Objektkod Process 62

Generation 2: Kompilatorer, bibliotek och batchsystem n Det var fortfarande 1 program (1 process) som körde på datorn, så den enda processen hade full access till alla datorns resurser n OS:en som utvecklades på 1950-talet liknade runtimesystem och hade som huvudfunktioner att sköta gemensamma lågnivåfunktioner: I/O, filsystem etc. 63

Generation 2: Kompilatorer, bibliotek och batchsystem n Här har vi redan början till en av dagens operativsystems huvudfunktioner, att hjälpa programmeraren med kod för ofta använda rutiner och kod för att komma åt hårdvaran 64

Generation 2B: Kompilatorer, bibliotek och batchsystem n Boken nämner batchsystem: Ett tidigt sätt att köra flera program på en gång var att ge datorn en samling (en batch ) program som skulle köras, istället för att mata datorn med ett program i taget n Datorn körde sedan programmen, ett i taget, och producerade output 65

Generation 2B: Kompilatorer, bibliotek och batchsystem n Datorn behövde då ett program (resident monitor, Master Control Program) som styrde start och avslut av de olika programmen n Detta var en tidig form av processhantering, fast med bara en process åt gången 66

Generation 2B: Kompilatorer, bibliotek och batchsystem n Batchsystemen markerade övergången till mer moderna operativsystem eftersom den resident monitor (kontrollprogrammet) som hanterade användarnas program behövde ha full kontroll över datorn, medan användarprogrammen som kördes inte alltid hade det 67

Generation 2B: Kompilatorer, bibliotek och batchsystem n I batchsystem var interaktion begränsad, oftast hade programmet sina inputdata på en fil och producerade en fil med outputdata n Ibland används fortfarande uttrycket batchorienterat om ett program som inte interagerar med användaren 68

Generation 2: Bokhållning n Det var vanligt med datacenter där kunder lämnade in program för körning, då var det viktigt för debiteringen att veta hur mycket resurser som ett visst program förbrukat n Eftersom en process var ensam om datorn var det främst tiden för hela körningen som var viktig 69

Generation 2: Kompilatorer, bibliotek och batchsystem n Här har vi början till ytterligare en av dagens operativsystems huvudfunktioner, att hantera resurser som processer använder 70

Generation 2B: Säkerhet/skydd n Att skydda användare/kunder från andras processer som beter sig dåligt eller felaktigt, har varit viktigt sedan tidigt n Redan före batchtiden var korta väntetider viktiga 71

Generation 2B: Skydd n Redan under batchtiden infördes skydd mellan användarprocess och operativsystem n Detta för att kunderna inte skulle kunna fuska med resursåtgången och därmed debiteringen 72

Generation 2B: Skydd n Detta gav upphov till att skilja på vad en användarprocess fick göra (user mode), och vad OS:et fick göra (system mode, kernel mode eller supervisor mode) n I user mode får processen bara komma åt sin egen del av minnet och förbjuds använda vissa instruktioner som OS:et använder för kontroll av datorn 73

Generation 2B: Kompilatorer, bibliotek och batchsystem n Här har vi början till ytterligare en av dagens operativsystems huvudfunktioner, att skydda datorsystemet och andra processer från elaka eller felfungerande processer 74

Generation 3: Multiprogrammering n Ett typiskt datorprogram är en blandning av beräkningar i CPU:n och I/O, exempelvis läsningar och skrivningar av filer n För att förhindra att CPU:n stod sysslolös medan man väntade på I/O, introducerades multiprogrammering, möjligheten att köra flera processer samtidigt 75

Generation 3: Multiprogrammering n Först med multiprogrammering var den brittiska LEO III år 1961 n Tanken var följande: Datorn har redan en monitor som håller koll på när processer skall startas eller avslutas n Om monitorn kan hålla koll på när en process skall göra I/O, kan en annan process få använda CPU:n samtidigt 76

Generation 3: Multiprogrammering n Det som krävs extra är att kunna spara processens tillstånd, så att den kan återupptas senare precis där den var n Processtillståndet är dynamiskt och innehåller förutom koden för programmet som körs även exv. innehållet i allt minne som processen skapat, innehållet i CPU:ns register och var i programmet processen är 77

Generation 3: Multitasking n Ibland skiljer man på multiprogrammering och multitasking n Multitasking innebär då att processer delar på processorn även om ingen av dem behöver göra I/O 78

Generation 3: Timesharing n Med multitasking är flera processer aktiva samtidigt, men varje process har illusionen att vara ensam på datorn n Då väcktes snabbt tanken att göra dessa processer interaktiva, så att flera användare kan vara online samtidigt men att var och en har illusionen av att de är ensamma online på en stordator 79

Generation 3: Timesharing n I tidiga multiprogrammeringssystem bytte man process bara för att maximera CPUutnyttjandet n För att timesharingsystem skall fungera bra måste processutnyttjandet fördelas rättvist över de interaktiva processerna för att alla användare skall få en bra upplevelse av systemet 80

Generation 3: Timesharing n Med timesharing blev mer interaktiva program möjliga på multitasking-datorer n Tidigare hade interaktiva program (grafiska användargränssnitt, spel!) bara varit möjliga på ickemultiprogrammerings-datorer, och då förstås för en användare i taget 81

Generation 3: Timesharing n MULTICS (1964 - ) är ett klassiskt tidigt timesharing-system som givit influenser till mycket inom OS, bl.a. är UNIX (ursprungligen skrivet UNICS ) en ordlek på MULTICS 82

Generation 3: Säkerhet n Att skydda användare/kunder från andras processer som beter sig dåligt eller felaktigt, blev ännu viktigare i multiprogrammeringssystem n Minneshantering används för att begränsa en process till dess egna del av minnet, access till andra processers minne omöjliggörs 83

Generation 3: Bokhållning n När multiprogrammering infördes blev det viktigt att hålla rätt på vilken process som förbrukade vilka resurser n Att bara hålla reda på klocktiden räckte inte, nu behövde förbrukad CPU-tid, minnesutrymme som togs upp, plats som togs upp i filsystemet, etc, bokföras 84

Generation 3: Moderna OS n Multitasking/timesharingsystemen (1960- tal) är de första moderna operativsystemen som innehåller allt det ett modernt operativsystem behöver innehålla 85

Bokens generation 4-5 n I boken presenteras generation 4 som persondatorgenerationen och (i 4:e upplagan) generation 5 som mobiltelefongenerationen 86

Bokens generation 4-5 n Såväl generation 4 som 5 är dock inte nya generationer i betydelsen nya mekanismer, utan snarare nya tillämpningsområden n Tvärtom innebar persondator-os:en ursprungligen liksom mobiltelefon-os:en en återgång till enanvändarsystem, i tidiga persondatorer utan skydd mellan användare och OS 87

88

Några viktiga mekanismer n En kortversion av vad som kommer att tas upp i de olika föreläsningarna 89

Processhantering n Hur startas en process? n Hur prioriterar OS:et när flera processer vill köra? n Vad behövs hållas reda på för att kunna byta mellan flera processer? n Är OS-kärnan själv en process? När kör den? 90

Processhantering n Om nu processer är skyddade från varandra, hur kommunicerar processer? n Om nu OS:et är skyddat från processen, hur utnyttjar processen OS:ets resurser? 91

Minneshantering n Hur skyddas OS:ets minne från processerna? n Hur skyddas processernas minne från varandra? n Kan processer trots allt dela minne? n Hur allokeras minne till processer? n Vad gör vi när minnet inte räcker för alla processer? 92

I/O n Hur kommer en process åt enheter för I/O? n Hur gör OS:et när input från en enhet skall till en process? n Hur delar processer på access till I/Oenheter? 93

Filsystem n Hur hanterar man data på lagringsminne? n Hur sker allokering av minne till filer? n Hur skyddas filer från andra processer? 94

Skydd och säkerhet n Hur ser OS:et till att endast behöriga processer får göra behöriga operationer? n Hur skyddar OS:et processer från varandra? n Hur skyddar OS:et systemet från hackers och andra mikroorganismer (virus etc.)? 95

Föreläsningsserien n Introduktion - vad är ett OS och varför OS? n Processer och processhantering n Baklås n Minneshantering n Filsystem n Input och output I/O n Skydd, Virtualisering 96