Presentation laddar. Vänta.

Presentation laddar. Vänta.

Mats Björkman Mälardalens högskola

Liknande presentationer


En presentation över ämnet: "Mats Björkman Mälardalens högskola"— Presentationens avskrift:

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

2 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

3 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

4 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

5 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 examination 4.0 Kurslitteraturen gav stöd 3.2 Studiehandledning 3.8 Annat Fick du vid början av kursen information om tidigare kursutvärderingar: 69% ja DVA315 - Operativsystem

6 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 examination 4.0 Kurslitteraturen gav stöd 3.2 Studiehandledning 3.8 Annat Fick du vid början av kursen information om tidigare kursutvärderingar: 69% ja DVA315 - Operativsystem

7 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 examination 4.0 Kurslitteraturen gav stöd 3.2 Studiehandledning 3.8 Annat Fick du vid början av kursen information om tidigare kursutvärderingar: 69% ja DVA315 - Operativsystem

8 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 examination 4.0 Kurslitteraturen gav stöd 3.2 Studiehandledning 3.8 Annat Fick du vid början av kursen information om tidigare kursutvärderingar: 69% ja DVA315 - Operativsystem

9 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

10 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

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

12 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) DVA315 - Operativsystem

13 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. DVA315 - Operativsystem

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

15 Kompilatorteknik på 1 bild
Runtime-bibliotek Källkod Kompilator Bibliotek Runtime-system Process Objektkod DVA315 - Operativsystem

16 Datorarkitektur – bild 1
DVA315 - Operativsystem

17 Datorarkitektur – bild 2
DVA315 - Operativsystem

18 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 DVA315 - Operativsystem

19 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) DVA315 - Operativsystem

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

21 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

22 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

23 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

24 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

25 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

26 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

27 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

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

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

30 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

31 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

32 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

33 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

34 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

35 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

36 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

37 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

38 DVA315 - Operativsystem

39 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

40 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

41 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

42 Generation 1: ENIAC DVA315 - Operativsystem

43 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

44 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

45 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

46 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

47 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

48 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

49 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

50 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

51 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

52 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

53 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

54 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

55 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

56 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

57 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

58 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

59 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

60 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

61 Bokens generation 4-5 I boken presenteras generation 4 som persondatorgenerationen och (i 4:e upplagan) generation 5 som mobiltelefongenerationen DVA315 - Operativsystem

62 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

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

64 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

65 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

66 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

67 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

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

69 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

70 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


Ladda ner ppt "Mats Björkman Mälardalens högskola"

Liknande presentationer


Google-annonser