Mats Björkman Mälardalens högskola

Slides:



Advertisements
Liknande presentationer
EDA 480 – Maskinorienterad Programmering
Advertisements

Välkomna till Företagets Logistik
Systemprogrammering för ingenjörer TDBB15 – HT03  Lärare och handledare  Thomas Johansson  Samuel Carlsson
IT/Datautbildningar Gymnasieskolan Kalmar län
Frågor Allmän IT-kunskap avsnitt 1 kapitel 1 Repetition 4
Mjukvara och nätverk Vad är det?.
Översikt av operativsystem (kap 1 & 2)
Programmeringsteknik Föreläsning 13 Skolan för Datavetenskap och kommunikation.
1DT066 (5c) Distribuerade Informationssystem
Uppsala centrum för hållbar utveckling (CSD UPPSALA) Hållbar utveckling B Centrum för miljö- och utvecklingsstudier (CEMUS) Vårterminen 2011 Välkommen.
Alumnienkät, Bakgrund Lärarkonventets initiativ Gjort en gång tidigare 25 lärosäten deltog denna gång Frågorna något justerade till denna.
Elektromagnetism och vågrörelselära 2B1350
Elektromagnetism och vågrörelselära 2B1350
Välkommna! till kursen HI1024 Programmering, grundkurs 8,0 hp
Introduktion Logikprogrammering HT-02 Staffan Larsson.
Välkommen till Hållbar utveckling A! Introduktion.
Coach.
Examensarbete - Information inför kursen 722A35 VT 2011
Välkomna till Allmän kemi 9hp
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kap 3 & 4: Processer & trådar.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
Introduktion till IT vid ÅA/ÖH Jens Granlund. Omfattning 2 sv – 80h 2 sv – 80h –20% föreläsningar –20% övningar –20% läsa boken Lättpocket om IT –20%
Hur datatekniken har revolutionerat samhället
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Välkomna till kursen TFKE52 Grundläggande kemi
ÖREBRO LÄNS LANDSTING KULTURTINGET 2012 Webbenkät till deltagare som inte arrangerade eller föreläste  72 procent svarsfrekvens (115 svar)  Nio av tio.
Mats Blomberg Mauritza Jadefrid Joakim Lennartsson Biblioteksundervisning i informationskompetens med fokus på hållbar utveckling.
Projekt och Arkitektur
Kursutvärdering Studiebyrån Alla kurser utvärderas Du ska utvärdera alla kurser som du deltar i Genom kursutvärderingen ger du läraren respons på.
Valinformation 8 mars 2013 Ekonomisk styrning HT 2013.
OOPJ I, 5p Objektorienterad Programmering i Java.
Vision och organisation Högskolebiblioteket MDH Lisa Petersen Presentation för Biblioteksrådet
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord “Det verkar alltid omöjligt tills dess att det är gjort” Nelson Mandela.
Experimentella metoder i fysik 2010 Inledning Kerstin Jon-And.
Företagsfinansiering och värdering
En grupp universitetslärares syn på studenters informationskompetens vid Linköpings universitet Ann-Katrin Perselli Kajsa Gustafsson Åman Linköpings Universitetsbibliotek.
Forsknings- och utbildningsmiljön Innovation och produktrealisering (IPR) och satsningen på Mats Jackson, MDH,
Samhällsvetenskapligt arbetssätt
För utbildningsprogrammet Mobila applikationer och nätverkstjänster för Android Föreläsning 1: Kursintroduktion, smartphones. Välkommen till.
KEMMA02/ © Sofi Elmroth 2011 KEM A02 Allmän- och oorganisk kemi INTRODUKTION.
Mälardalens högskola som kompetensförsörjare Åsa Lundkvist 28/9 1.
Ingenjörsmetodik IT & ME 2008
Olika sätt att presentera sina aktiviteter på hemsidan Aktiviteter > Inställningar & Shop Grundinställningar:
Ett konkret kursupplägg presenteras Erfarenheter från systemvetenskap Hela programmet kan läsas på distans eller på campus Nytt – start hösten 2004 Två.
Välkommna! till kursen HI1024 Programmering, grundkurs 8,0 hp
IS1200 Datorteknik Föreläsning CE F2 Vi bygger en processor Kursboken, delar av kapitel 7 31 March IS1200 Datorteknik föreläsning CE – F2.
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ” Oavsett om du tror att du kan, eller om du tror att du inte kan, har du helt rätt. ” -
Kognitionsvetenskaplig introduktionskurs 72G01 Laborationsdel 1 hp.
Experimentella metoder i fysik 2009 Inledning Kerstin Jon-And.
Introduktion. Administration Jag, B448, , Kursböcker enligt webben Schema enligt webbenwebben Laborationer 23, 29/10 + 7/11 kl
Experimentella metoder 2006 Inledning Kerstin Jon-And.
Operating Systems (Operativsystem) Choosing The Operating Systems (Val av operativsystem)
Välkommen till kursen objektorienterad programmering med Java Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes.
Experimentella metoder 2007 Inledning Kerstin Jon-And.
Föreläsning 1 i programmeringsteknik och Matlab 2D1312/ 2D1305 Kursinformation Introduktion till UNIX Introduktion till Emacs Introduktion till Matlab.
22 April 2015IS1200 Datorteknik, föreläsning 11 IS1200 Datorteknik Föreläsning 1 Introduktion.
II1300 Ingenjörsmetodik 7,5 hp HT2010
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Repetition.
Hur går det till att rapportera in betyg idag? Varje lärare fyller i ett Excel- dokument där varje delmoment i kursen fylls i. När betyget är satt skickas.
Revision & Redovisningsval Pernilla Broberg/Torbjörn Tagesson Balans nr 1/2015 s 8Civilekonomen nr 2/2015 s 30.
Lab Contact 1  Lab Assistants:  Meng Liu, Group B  Sara Abbaspour, Group A
Undervisning och lärande för en hållbar framtid via aktionsforskning Inger Björneloo Inst. för didaktik och pedagogisk profession.
Personlighet och hälsa PC1205/PC1245 Ht 2011 Kursansvar: Cecilia Jakobsson Bergstad Anneli Goulding.
Aktivitetstillfällen
Automatisering och robotteknik (1TE621) 10 hp VT11
Kommunikationskurs parallellt med ex-jobbet på Byggingenjörsprogrammet
Design, strategi, management
Varför män till förskolan? & Vilka män till förskolan?
Start VT2019 Konsten att handleda i vårdande under verksamhetsförlagd utbildning Anmälningskod: MDH Kurskod:VAE074 Kursen vänder sig till dig.
Ekonomisk styrning (722A14) 2019 Kursansvarig Henrik Nehler
Presentationens avskrift:

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

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

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

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: http://www.idt.mdh.se/kurser/dva315/ DVA315 - Operativsystem

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

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

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

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

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

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

Vad är ett operativsystem? Ett stödsystem till hjälp när man vill köra ett program på en dator DVA315 - 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) DVA315 - 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. DVA315 - 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, …) DVA315 - Operativsystem

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

Datorarkitektur – bild 1 DVA315 - Operativsystem

Datorarkitektur – bild 2 DVA315 - 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 DVA315 - 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) DVA315 - Operativsystem

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DVA315 - Operativsystem

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/1 2015 kl 13-15 i Beta) DVA315 - Operativsystem

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

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

Generation 1: ENIAC DVA315 - Operativsystem

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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