Presentation laddar. Vänta.

Presentation laddar. Vänta.

© Mats Björkman 2015 DVA315 Operativsystem Mats Björkman Mälardalens högskola 1.

Liknande presentationer


En presentation över ämnet: "© Mats Björkman 2015 DVA315 Operativsystem Mats Björkman Mälardalens högskola 1."— Presentationens avskrift:

1 © Mats Björkman 2015 DVA315 Operativsystem Mats Björkman Mälardalens högskola 1

2 © Mats Björkman 2015 Kursen i korthet Föreläsningar: OS-koncept och teori Ser på OS från OS-utvecklarens perspektiv Labbar: Programmering med OS-support Ser på OS ur programmerarens synvinkel Systemanrop, Multiprogrammering, Händelsestyrd programmering Tenta: Betyg 3,4 & 5 Seminarium: Välj ett eget ämne 2

3 © Mats Björkman 2015 Laborationerna/uppgifterna 3 uppgifter (som kommer att ta tid!) Lab 1: Win32 API-programmering, trådar, synkronisering och kommunikation. Lab 2: Planetlab – Klient/Server-arkitektur, Interprocesskommunikation, kritiska avsnitt. Lab 3: Grafisk klient – Fönsterhantering, händelse- och callback-hantering DVA315 - Operativsystem 3

4 © Mats Björkman 2015 Resurser Litteratur: Modern Operating Systems 4th ed., A. Tanenbaum, H. Bos (OBS! ”Global edition” billigare). 3:e upplagan fungerar också. Föreläsare och kursansvarig: Mats Björkman Labassistenter: Meng Liu, Sara Abbaspour, Saad Mubeen Kurshemsida: DVA315 - Operativsystem 4

5 © Mats Björkman 2015 Förra årets kursutvärdering ●Svarsfrekvens: 13 svarande av 45 studenter ●Egen arbetsinsats (54%)<25h/vecka ●Några betyg (skala 1-5) ●Övergripande betyg 3.8 ●Kursens undervisning 4.3 ●Tydlighet i examination4.0 ●Kurslitteraturen gav stöd3.2 ●Studiehandledning3.8 ●Annat ●Fick du vid början av kursen information om tidigare kursutvärderingar: 69% ja DVA315 - Operativsystem 5

6 © Mats Björkman 2015 Förra årets kursutvärdering ●Svarsfrekvens: 13 svarande av 45 studenter ●Egen arbetsinsats (54%)<25h/vecka ●Några betyg (skala 1-5) ●Övergripande betyg 3.8 ●Kursens undervisning 4.3 ●Tydlighet i examination4.0 ●Kurslitteraturen gav stöd3.2 ●Studiehandledning3.8 ●Annat ●Fick du vid början av kursen information om tidigare kursutvärderingar: 69% ja DVA315 - Operativsystem 6

7 © Mats Björkman 2015 Förra årets kursutvärdering ●Svarsfrekvens: 13 svarande av 45 studenter ●Egen arbetsinsats (54%)<25h/vecka ●Några betyg (skala 1-5) ●Övergripande betyg 3.8 ●Kursens undervisning 4.3 ●Tydlighet i examination4.0 ●Kurslitteraturen gav stöd3.2 ●Studiehandledning3.8 ●Annat ●Fick du vid början av kursen information om tidigare kursutvärderingar: 69% ja DVA315 - Operativsystem 7

8 © Mats Björkman 2015 Förra årets kursutvärdering ●Svarsfrekvens: 13 svarande av 45 studenter ●Egen arbetsinsats (54%)<25h/vecka ●Några betyg (skala 1-5) ●Övergripande betyg 3.8 ●Kursens undervisning 4.3 ●Tydlighet i examination4.0 ●Kurslitteraturen gav stöd3.2 ●Studiehandledning3.8 ●Annat ●Fick du vid början av kursen information om tidigare kursutvärderingar: 69% ja DVA315 - Operativsystem 8

9 © Mats Björkman 2015 Föreläsningsserien Introduktion - vad är ett OS och varför OS? Processer och processhantering Baklås Minneshantering Filsystem Input och output – I/O Skydd, Virtualisering DVA315 - Operativsystem 9

10 © Mats Björkman 2015 Innehållet Operativsystem är ett stort område Föreläsningarna hinner bara ta upp de mest grundläggande koncepten Labbarna ger erfarenhet av ett (1) API 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 DVA315 - Operativsystem 10

11 © Mats Björkman 2015DVA315 - Operativsystem Vad är ett operativsystem? Ett stödsystem till hjälp när man vill köra ett program på en dator 11

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

13 © Mats Björkman 2015DVA315 - Operativsystem Vad är en process? Ett exekverande program kallar vi en process Processer använder resurser i form av processorkraft (CPU-kraft) och minne (tillfälligt minne för variabler etc. och permanent lagring för filer), m.m. 13

14 © Mats Björkman 2015DVA315 - Operativsystem Närliggande områden Området operativsystem gränsar till (eller överlappar) flera andra områden: Kompilatorteknik (program/processer etc.) Datorarkitektur (CPU, minne, filsystem, …) 14

15 © Mats Björkman 2015DVA315 - Operativsystem Kompilatorteknik på 1 bild 15 Process Källkod Bibliotek Kompilator Runtime- system Objektkod Runtime- bibliotek

16 © Mats Björkman 2015DVA315 - Operativsystem Datorarkitektur – bild 1 16

17 © Mats Björkman 2015DVA315 - Operativsystem Datorarkitektur – bild 2 17

18 © Mats Björkman 2015DVA315 - Operativsystem Vad gör OS:et? 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 Dessutom behöver OS:et tillhandahålla möjligheter för kommunikation mellan processer och med I/O-enheter 18

19 © Mats Björkman 2015DVA315 - Operativsystem Vad gör OS:et? 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 …och även hålla reda på hur mycket resurser processerna förbrukar (för rättvisa eller debitering) 19

20 © Mats Björkman 2015DVA315 - Operativsystem Vad är ett operativsystem? Ett stödsystem för: Programmerare av tillämpningar Användare av tillämpningar 20

21 © Mats Björkman 2015 Två huvudsyften med OS 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 DVA315 - Operativsystem 21

22 © Mats Björkman 2015 Förenkla programmering Exempel: Filsystem. OS:et tillhandahåller rutiner för vanliga filoperationer (skapa, skriv, läs, etc.) Rutinerna ser likadana ut för tillämpningsprogrammeraren oavsett vilket fysiskt lagringsmedium som används DVA315 - Operativsystem 22

23 © Mats Björkman 2015 Förenkla programmering Stödet definieras som ett gränssnitt för programmering (Application Programming Interface, API) Exempel: Win32 API för att få stöd från Windows DVA315 - Operativsystem 23

24 © Mats Björkman 2015 Förenkla programmering För att förenkla för dem som programmerar OS:et finns gränssnitt mellan OS och hårdvara. För att översätta mellan generella OS- kommandon och de specifika instruktioner en viss hårdvara kräver, används drivrutiner Drivrutiner skrivs typiskt av hårdvarutillverkaren, olika OS kräver olika drivrutiner DVA315 - Operativsystem 24

25 © Mats Björkman 2015 Två huvudsyften med OS 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 DVA315 - Operativsystem 25

26 © Mats Björkman 2015 Förenkla användning Exempel: Processhantering. Flera tillämpningar kan vara igång samtidigt och dela på gemensamma resurser (CPU, minne, I/O) DVA315 - Operativsystem 26

27 © Mats Björkman 2015 Förenkla användning Användaren samverkar med OS:et genom ett användargränssnitt (User Interface, UI), ofta grafiskt (Graphical User Interface, GUI) DVA315 - Operativsystem 27

28 © Mats Björkman 2015 Operativsystem på 1 bild DVA315 - Operativsystem 28 Processer OS API Hårdvara Drivrutiner AnvändareUI/ GUI

29 © Mats Björkman 2015 Typiska OS-funktioner Tillhandahålla högnivåabstraktioner för: Processhantering Minneshantering I/O Filsystem Säkerhet och skydd DVA315 - Operativsystem 29

30 © Mats Björkman 2015 Inga baksidor? Jodå, det kostar! Operativsystemet kostar resurser i form av processorkraft och minne (just de viktiga resurser som ett OS skall vara duktigt på att hantera) DVA315 - Operativsystem 30

31 © Mats Björkman 2015 Inga baksidor? Eftersom OS:et är byggt för “standardprocesser” så är det mesta inte perfekt för en given process Om vi skräddarsydde alla funktioner för den givna speciella processen, så skulle det kunna bli effektivare än med ett OS DVA315 - Operativsystem 31

32 © Mats Björkman 2015 Ett matexempel 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 DVA315 - Operativsystem 32

33 © Mats Björkman 2015 Pizza till lunch? Antag att du vill äta pizza till lunch Två (av flera) alternativ: Göra pizzan själv, eller Gå till en pizzeria och äta där DVA315 - Operativsystem 33

34 © Mats Björkman 2015 Pizza till lunch? Om du köper alla råvaror och går hem och fixar pizzan själv så blir det billigare 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! Ofta är vi beredda att betala för bekvämligheten DVA315 - Operativsystem 34

35 © Mats Björkman 2015 OS till lunch? Samma med ett OS: vi skulle kunna skriva all kod för all hårdvaruhantering själva och köra direkt på hårdvaran Vi skulle slippa overheaden som OS:et tar (CPU och minne), men… …det skulle vara ett hästarbete! DVA315 - Operativsystem 35

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

37 © Mats Björkman 2015 Multitasking i datorn 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 DVA315 - Operativsystem 37

38 © Mats Björkman 2015DVA315 - Operativsystem 38

39 © Mats Björkman 2015 OS:ets historia OS:ets historia är naturligt nog intimt kopplat till datorernas historia I parallellkursen Datakommunikation (DVA218) ges en översikt över datorernas historia i introduktionsföreläsningen (tisdag 20/ kl i Beta) DVA315 - Operativsystem 39

40 © Mats Björkman 2015 OS:ets historia 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 Generationsnumren här används för att matcha bokens numrering DVA315 - Operativsystem 40

41 © Mats Björkman 2015 Generation 1: Inget OS 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 Datorerna programmerades att lösa en (1) uppgift (köra ett (1) program) DVA315 - Operativsystem 41

42 © Mats Björkman 2015 Generation 1: ENIAC DVA315 - Operativsystem 42

43 © Mats Björkman 2015 Generation 2: Kompilatorer, bibliotek och batchsystem Under 1950-talet kom kompilatorer för att man skulle slippa skriva alla program i maskinkod En styrka med kompilatorer är att man kan använda sig av biblioteksrutiner, så att man slipper skriva all kod själv DVA315 - Operativsystem 43

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

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

46 © Mats Björkman 2015 Generation 2: Kompilatorer, bibliotek och batchsystem 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 Datorn körde programmen, ett i taget, och producerade output DVA315 - Operativsystem 46

47 © Mats Björkman 2015 Generation 2: Kompilatorer, bibliotek och batchsystem Datorn behövde då ett program (resident monitor, Master Control Program) som styrde start och avslut av de olika programmen Detta var en tidig form av processhantering, fast med bara en process åt gången DVA315 - Operativsystem 47

48 © Mats Björkman 2015 Generation 2: Kompilatorer, bibliotek och batchsystem I tidiga system var interaktion begränsad, oftast hade programmet sina inputdata på en fil och producerade en fil med outputdata Idag används ibland fortfarande uttrycket “batchorienterat” om ett program som inte interagerar med användaren DVA315 - Operativsystem 48

49 © Mats Björkman 2015 Generation 2: Bokhållning 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 Eftersom en process var ensam om datorn var det främst tiden för hela körningen som var viktig DVA315 - Operativsystem 49

50 © Mats Björkman 2015 Generation 2: Säkerhet/skydd Att skydda användare/kunder från andras processer som beter sig dåligt eller felaktigt, har varit viktigt sedan tidigt Redan före batchtiden var korta väntetider viktiga DVA315 - Operativsystem 50

51 © Mats Björkman 2015 Generation 2: Skydd Redan under batchtiden infördes skydd mellan användarprocess och operativsystem Detta för att kunderna inte skulle kunna fuska med resursåtgången och därmed debiteringen DVA315 - Operativsystem 51

52 © Mats Björkman 2015 Generation 2: Skydd 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) 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 DVA315 - Operativsystem 52

53 © Mats Björkman 2015 Generation 3: Multiprogrammering Ett typiskt datorprogram är en blandning av beräkningar och I/O, exempelvis läsningar och skrivningar av filer För att förhindra att CPU:n stod sysslolös medan man väntade på I/O, introducerades multiprogrammering (multitasking), möjligheten att köra flera processer samtidigt DVA315 - Operativsystem 53

54 © Mats Björkman 2015 Generation 3: Multiprogrammering Först med multiprogrammering var den brittiska LEO III år 1961 Tanken var följande: Datorn har redan en monitor som håller koll på när processer skall startas eller avslutas 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 DVA315 - Operativsystem 54

55 © Mats Björkman 2015 Generation 3: Multiprogrammering Det som krävs extra är att kunna spara processens tillstånd, så att den kan återupptas senare precis där den var Processtillståndet är dynamiskt och innehåller förutom 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 DVA315 - Operativsystem 55

56 © Mats Björkman 2015 Generation 3: Timesharing I tidiga multitaskingsystem bytte man process bara för att maximera CPU- utnyttjandet I lite senare system kom en rättviseaspekt in, de olika processerna skulle få en rättvis del av tiden, timesharing-systemen uppfanns DVA315 - Operativsystem 56

57 © Mats Björkman 2015 Generation 3: Timesharing Med timesharing blev mer interaktiva program möjliga på multitasking-datorer Tidigare hade interaktiva program (grafiska användargränssnitt, spel!) bara varit möjliga på icke-multitasking-datorer, och då förstås för en användare i taget DVA315 - Operativsystem 57

58 © Mats Björkman 2015 Generation 3: Timesharing MULTICS är ett klassiskt tidigt timesharing-system som givit influenser till mycket inom OS, bl.a. är UNIX en ordlek på MULTICS DVA315 - Operativsystem 58

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

60 © Mats Björkman 2015 Generation 3: Bokhållning När multitasking infördes blev det viktigt att hålla rätt på vilken process som förbrukade vilka resurser 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 DVA315 - Operativsystem 60

61 © Mats Björkman 2015 Bokens generation 4-5 I boken presenteras generation 4 som persondatorgenerationen och (i 4:e upplagan) generation 5 som mobiltelefongenerationen DVA315 - Operativsystem 61

62 © Mats Björkman 2015 Bokens generation 4-5 Såväl generation 4 som 5 är dock inte “nya” generationer i betydelsen “nya mekanismer”, utan snarare nya tillämpningsområden 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 DVA315 - Operativsystem 62

63 © Mats Björkman 2015 Några viktiga mekanismer En “kortversion” av vad som kommer att tas upp i de olika föreläsningarna DVA315 - Operativsystem 63

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

65 © Mats Björkman 2015 Processhantering Om nu processer är skyddade från varandra, hur kommunicerar processer? Om nu OS:et är skyddat från processen, hur utnyttjar processen OS:ets resurser? DVA315 - Operativsystem 65

66 © Mats Björkman 2015 Minneshantering Hur skyddas OS:ets minne från processerna? Hur skyddas processernas minne från varandra? Kan processer trots allt dela minne? Hur allokeras minne till processer? Vad gör vi när minnet inte räcker för alla processer? DVA315 - Operativsystem 66

67 © Mats Björkman 2015 I/O Hur kommer en process åt enheter för I/O? Hur gör OS:et när input från en enhet skall till en process? Hur delar processer på access till I/O- enheter? DVA315 - Operativsystem 67

68 © Mats Björkman 2015 Filsystem Hur hanterar man data på lagringsminne? Hur sker allokering av minne till filer? Hur skyddas filer från andra processer? DVA315 - Operativsystem 68

69 © Mats Björkman 2015 Skydd och säkerhet Hur ser OS:et till att endast behöriga processer får göra behöriga operationer? Hur skyddar OS:et processer från varandra? Hur skyddar OS:et systemet från hackers och andra mikroorganismer (virus etc.)? DVA315 - Operativsystem 69

70 © Mats Björkman 2015 Föreläsningsserien Introduktion - vad är ett OS och varför OS? Processer och processhantering Baklås Minneshantering Filsystem Input och output – I/O Skydd, Virtualisering DVA315 - Operativsystem 70


Ladda ner ppt "© Mats Björkman 2015 DVA315 Operativsystem Mats Björkman Mälardalens högskola 1."

Liknande presentationer


Google-annonser