Ladda ner presentationen
Presentation laddar. Vänta.
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
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.