Operativsystem ID2206 7.5hp, ID2200 6hp



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

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

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

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

Introduktion till hårdvara, mjukvara och operativsystem

Operativsystem Introduktion

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

Lösningsförslag till tentamen i IS1350 Operativsystem

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

Datorteknik ERIK LARSSON

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

Trådar och Multiprocessorer. Föreläsning 6

DVA315 Operativsystem

Operativsystem - Processer I

Operativsystem - input/output, skydd, virtualisering

Föreläsning 2. Operativsystem och programmering

Program & programmering

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

Operativsystem (ID2200/06) XX XX:00-XX:00

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

Design och trender. Föreläsning 12

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Översikt. Datorarkitekturer med operativsystem. Inledning. Inledning

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

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

DIG IN TO Dator och nätverksteknik

Operativsystem (IS1350) :00-12:00

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

Datorsystemteknik DAV A14 Föreläsning 1

TDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl

Vad händer när man kör ett program? Program och processer. Funktionsanrop. Avsluta programmet

Introduktion till programmering, hösten 2011

SMD 134 Objektorienterad programmering

Operativsystem ID1200/06 Tentamen :00-18:00

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

Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys

Operativsystem ID2200/06 omtentamen :00-18:00

Operativsystem ID1200/06 och ID2200/06 Tentamen TENA 6 hp :00-18:00

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

Operativsystem - Processkedulering

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Synkronisering. Föreläsning 8

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00

Boken?!?! Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Variabler printf

Datorsystem och programmering

Realtidsstöd i Minix. En laborationrapport. Oktober 2012

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

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

Olika OS. Unix, Linux och Windows. Unix. Unix. En översikt av ett par OS. Titt på hur de gör. Många varianter. Mycket gemensamt. En del som skiljer

Datorteknik ERIK LARSSON

F5: Högnivåprogrammering

F5: Högnivåprogrammering

TDDC77 Objektorienterad Programmering

Grundkurs i programmering - intro

Reservföreläsningen inställd

OOP Objekt-orienterad programmering

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

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

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

Fallstudier. Föreläsning 11

Minneshantering segmentering och virtuellminne. Föreläsning 3

Datorsystemteknik DAV A14 Föreläsning 1

Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation.

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

Datorer och datoranvändning Föreläsningar 2014/15. Föreläsning 1 Unix. Operativsystem. Unix

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

Operativsystem ID1200/06 Tentamen :00-18:00

Tentamen Datorteknik och realtidssystem, TSEA81 Datum Lokal

Datorsystem. Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3. Student: Underskrift: Underskrift: Datum:

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

Lärare och handledare. Systemnära programmering. I dag. Föreläsningar & Gruppövningar & Handledning. Marcus Karlsson

... Funktionsanrop. Vad händer när man kör ett program?

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

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

Operativsystem ID2200/06 omtentamen :00-18:00

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

Program. Datorteknik. Semantiskt gap. C - Inledning. Abstraktionsnivå: Högnivåspråk. Assemblyspråk. Maskinspråk

Datorteknik ERIK LARSSON

Objektorienterad Programmering (TDDC77)

Operativsystem ID1200/06 och ID2200/06 Tentamen TENA 6 hp :00-18:00

Operativsystem och användargränssnitt

Deluppgift 17 Processhantering: exec, sleep, exit, plist

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

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

Möte 7: Uppföljning av föreläsningen med Peer Instruction - (PI)

Minnesisolering för virtuella maskiner en hypervisorstudie

Datorsystem Laboration 2: Minnesmappade bussar

Processer och trådar. Rasmus Cronstrand Per Jonsson Ante Wall Fabian Åberg

Introduktion till processer

Introduktion till Unix och Linux

Operativsystem ID2200/06 tentamen och omtentamen :00-12:00

Operativsystem ID2200/06 omtentamen :00-12:00

Arkitekturer i operativsystem

Datakom II (MNP) ht 1998 Bengt Ahlgren 1. Vad är speciellt med implementering av kommunikationsprotokoll?

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

Realtidsprogrammering Ordinarie tentamen

Programmering av inbyggda system. Kodningskonventioner. Viktor Kämpe

Mål. Datorteknik. Repetition av avbrott. Innehåll. Mätning och styrning. Datorer för mätning och styrning. timer. Datorsystem A/D. Analog insignal D/A

7,5 högskolepoäng. Operativsystem och Systemarkitektur. IT-Tekniker och Systemarkitekt-programmet

Transkript:

Operativsystem ID2206 7.5hp, ID2200 6hp Robert Rönngren

Innehåll Om kursen www.it.kth.se/courses/id2206 ID2200 Vad är ett operativsystem och varför ser de ut som de gör? kap. 1.1-1.3, 1.6-1.7 Processer kap. 1.5, 2.1, 2.5 historia och processer 2

Om kursen -varför Varför läsa OS? De flesta datorsystem behöver ett OS för att fungera OS:et påverkar vad man kan göra med ett datorsystem, hur det programmeras, prestanda hos applikationerna OS är märkvärdigt långlivade!!! - bra abstraktioner och API - krav på bakåtkompatibilitet historia och processer 3

Om kursen mål och krav Mål god förståelse för hur OS - är uppbyggda och fungerar - hur de påverkar applikationer, prestanda etc - kunna dra egna slutsatser utgående från kunskaperna i kursen på egen hand kunna programmera med systemanrop (dvs klara av C-programmering med systemanrop) Krav aktuell laborationskurs Tentamen historia och processer 4

Exempeloperativsystem UNIX -> SunOS, Mac OS, Linux, (Windows) LINUX -> Android, Chrome Windows historia och processer 5

Om kursen det praktiska www.imit.kth.se/courses/id2206 (ID2200) Anmälan till kursen på föreläsning 3&4 Maillistor Datorkonton Kursbunt/LabPM? Mail till kursteamet os@it.kth.se Handledningstider? C-programmering OBLIGATORISK TENTAANMÄLAN VIA DAISY historia och processer 6

Hur klarar man kursen? SKAFFA OCH LÄS BOKEN! Tips från tidigare års studenter Börja med labbarna i tid! Labbarna är realistiska programmeringsuppgifter Inte tillrättalagda Realistiska felmöjligheter Inte toy-examples/proof-of-concept Ska lyfta er till en nivå: Lösa enklare civilingenjörsmässiga uppgifter historia och processer 7

Professionalism Ni ska ut och jobba om 1-1.5 år! Hur mycket är en kurs om 7.5hp värd? Hur ska ni värdera 3 labbrapporter och program? (2 personer * 80 h) Ställ frågor!!!!!!! historia och processer 8

Vilka krav ska man ställa på en prestandautvärdering? (jfr lab 3) Mät rätt saker Alldeles för ofta mäter man inte det man tror att man mäter Mätnogrannhet felmarginaler Bör normalt kunna anges Reproducerbarhet Experimenten måste vara sådan och så väl beskrivna att de kan upprepas av någon annan (ett separat PM om utvärderingar är på gång) historia och processer 9

Vad är ett operativsystem och varför ser de ut som de gör?

Vad är ett operativsystem? (Det program som startas när datorn slås på) Det program som implementerar alla systemanrop Det/de program som exekverar i kernelmode Operativsystemet skall göra datorsystemet användbart för dess ändamål! historia och processer 11

Varför ser operativsystem ut som de gör? En liten historisk överblick av dator- och operativsystemens utveckling från 1940-talet och framåt

Historia-första generationen 45-55 Datorer som fyller hela rum (kvarter) Mekaniska reläer och vakumtuber I/O kontrollpanel med switchar/kopplingspanel senare hålkortsläsare Inget OS! Ex: ENIAC, BARK, BESK Bara en användare i taget - otympligt historia och processer 13

Återanvändning av kod Måste varje användare skriva all kod från början? Återanvänd kod i form av biblioteksrutiner Kräver Relokerbarhet Länkare Laddare historia och processer 14

Historia andra generationen 55-65 Transistorer tillförlitliga Kommersiella datorer, sk mainframes Hålkort - band Exekvering Band - printer Front-end Mainframe Back-end Batch flera job samlas på band Off-line utskrift av resultat historia och processer 15

Historia tredje generationen 65-80 Integrerade kretsar billigare Mainframes minidatorer (PDP) Operativsystemen viktiga OS/360, MULTICS, UNIX Multiprogrammering Flera jobb samtidigt överlappa I/O med beräkningar Spooling läsa in jobb till kö samtidigt som andra jobb igång Timesharing flera interaktiva användare delar CPU:n historia och processer 16

UNIX MULTICS UNIX System V BSD POSIX MINIX LINUX historia och processer 17

Historia fjärde generationen 80-nu Ökande integration (kretsar) Superdatorer mikrodatorer (persondatorer) inbyggda datorer Nätverk Persondatorer Användarvänlighet GUI grafiska användargränssnitt CP/M, MS-DOS, WINDOWS historia och processer 18

En närmare titt på vad OS gör och hur de organiseras

Operativsystem för olika ändamål Olika tillämpningar/plattformar kan ställa speciella krav på operativsystem Speciella OS eller anpassade versioner av mer generella OS för: Stordatorer Servrar Multi-processorer Persondatorer Inbyggda system Realtidssystem Smart-cards historia och processer 20

Vad gör ett operativsystem Filsystem (persistent lagring av information) I/O enheter (hantering utan alla detaljer) Processer (virtuella maskiner) Kommunikation Säkerhet, accesskontroll historia och processer 21

Ett operativsystem levereras med Kärna Kör i kernel (supervisor) mode Kan ej bytas av enskilda användare Gemensam för alla användare Systemprogram (tcsh, ls, wc,...) Kör i user mode (användarläge) Kan bytas av enskilda användare Ej gemensamma olika användare kör normalt olika instanser av systemprogramvaran historia och processer 22

Ett operativsystem kan levereras med Servers (mail, telnet,...) Kör i user mode Kan ej bytas av enskilda användare Gemensamma för alla historia och processer 23

Datorsystem Applikationer ex. Webb, spel, administrativa system Editorer Kommandotolk/shell Kompilatorer Operativsystem Systemanrop Säkerhet CPU/Processer Minneshantering Filsystem Kommunikation I/O User space Kernel space Maskininstruktioner Mikroarkitektur Fysiska komponenter historia och processer 24

Två vyer av operativsystem? Virtuell (utökad/extended) maskin Isolera program från hårdvaran Bättre programmeringsmodell Portabilitet Resurshanterare Filsystem Minne CPU tid I/O enheter historia och processer 25

Operativsystemet som virtuell maskin Kompilator Pascal, C, OZ, ML, Lisp... Assembly Assembler Binärkod med systemanrop Operativsystem Mikroprogram Binärkod utan systemanrop Mikrokod Digital logik historia och processer 26

Olika synvinklar på ett operativsystem Användarens bild Kommandon (ls, wc,...) Fönstersystem Programmerarens bild Systemanrop (fork(), exec(),...) Minnesmodell (text, data, stack,...) Implementatörens bild Struktur (monolitiskt, lagrat,...) historia och processer 27

Operativsystemsstruktur Monolitisk (vanlig) Lagrad, jfr OSI-modellen, MULTICS, WINDOWS NT Virtuella maskiner, VM-370, Pentium emulerar 8086, JAVA Virtual Machine Mikrokärnor Client-Server modeller MACH, WINDOWS-98-2000 historia och processer 28

Systemanrop Hur får vi kontrollen att övergå från user-mode (användarprogram) till kernel-mode (OS)? Systemanrop startas med någon form av TRAP instruktion Koden finns i kärnan Anropande process byter normalt stack tilll en kärnstack och fortsätter exekvera systemanropet i kärnan Exekverar i kernel (supervisor) mode Cirka 100 stycken i Unix (många fler i Windows NT) historia och processer 29

count = read (fd, buffer, nbytes) FFFF nbytes buffer 1 stack SP fd R0 read 3 HELLO WORLD data - heap count = read (fd, buffer, nbytes) text - programkod read() 2 read - biblioteksfunktion TRAP 4 OS 5 0 HELLO WORLD historia och processer 30

LÄS kap 1.6 bra för labbarna! historia och processer 31

Varför har vi valt UNIX som exempelsystem? Ett fleranvändar OS med många användningsområden Öppen källkod Först eller bland de första med många viktiga koncept Har influerat många andra OS (MS-DOS) Enkelt och rent API (systemanrop) Tillgång till vettiga labbmaskiner Används i många industriella applikationer där systemnära eller utveckling av kärnan krävs historia och processer 32

Processer En av grundpelarna i operativsystem

Program och processer Ett program är en följd av instruktioner En process är ett program under exekvering kod data (stack, heap,...) registerinnehåll fildeskriptorer ytterligare administrativ info historia och processer 34

Ett funktionsanrop int main(int argc, char *argv[]) { int tal = 4; printtal(4); } void printtal(int param) { int alokalvariable; printf( tal %d\n, param); } Aktiverings post 1 (stack frame) för main Aktiverings post 2 för PrintTal() Lokala variabler: tal Adress till aktiveringspost 0 Returadress efter main() Parametrar till main(): argv argc Lokala variabler: alokalvariable Adress tilll aktiveringspost 1 Returadress efter printtal: Parametrar till printtal(): param OXFF Hur hittar man returadress och adress till föregående aktiveringspost om man tilllåter ett variabelt antal parametrar som man gör i C? DATA + HEAP TEXT historia och processer 35 OXO

Varför processer? Bättre programmeringsmodell många problem hanteras naturligt av processer Bättre feltolerans om en process går ned så behöver inte hela programmet/os:et krascha Möjlighet till bättre resursutnyttjande genom överlappning av CPU-användning och perifera enheter (I/O-enheter) historia och processer 36

Att skapa och terminera processer Processer i UNIX skapas med systemanropet fork() Processer fås att exekvera ett nytt program med ett systemanrop ur familjen exec() Processer kan terminera på fyra sätt: Normalt programslut (frivilligt) Med fel som programmet upptäckt (frivilligt) Fatalt fel (ofrivilligt) Dödas av annan process historia och processer 37

Process hierarkier Två alternativ: Den process som skapar (föräldraprocessen) associeras med den skapade processen (barnprocessen) på något sätt, ex. UNIX Godtycklig eller ingen association mellan processer (ex. Windows) historia och processer 38

Multitasking Multitasking innebär att flera processer exekverar samtidigt En process startar innan föregående avslutar De behöver inte bägge exekvera i samma ögonblick Processerna kan vara Program körda av olika användare vid timesharing Program för samma användare på en arbetsstation eller PC (t.ex. emacs och en kompilator) Systemprocesser historia och processer 39

Förgrunds och bakgrundsprocesser i UNIX En process i UNIX kan antingen exekvera i förgrunden vara den som man interaktivt arbetar mot bakgrunden (background) processen exekverar men är inte den man interaktivt arbetar mot Bakgrundsprocesser används för att implementera delar av OS:et, serverprocesser för mail etc. Serverprocesser som exekverar i bakgrunden kallas ofta demoner (daemons) historia och processer 40

Processtillstånd RUNNING blockerande systemanrop schemaläggaren beslutar att köra processen BLOCKED preemption något händer, t.ex. I/O klar READY Varför finns inte alla tänkbara tillståndsövergångar med i bilden? historia och processer 41

Processtabell Operativsystemet behöver hålla information om processerna i systemet Implementeras i en processtabell Ett entry i processtabellen kallas ofta ProcessControl Block (PCB) Processhantering register programräknare stackpekare register prioritet process id föräldraprocessens PID signaler statistik Minneshantering text data/heap stack Filhantering root directory fildescriptorer User ID Group ID historia och processer 42

Frågor Varför går det bra/vill man ofta ha, flera processer igång samtidigt? 100% CPU utnyttjande grad 20% I/O wait 50% I/O wait 80% I/O wait 0 Vilken process skall få exekvera? #processer historia och processer 43

Schemaläggning Fördela exekveringstid mellan processer på ett rättvist och effektivt sätt Offline: alla processer är givna i förväg (batch jobb) Online: processer tillkommer kontinuerligt (ex. interaktivt fleranvändarsystem) historia och processer 44

Mål för schemaläggning Allmänt Rättvis (fair) Implementera policy Balans alla delar av systemet skall utnyttjas Batchsystem Maximera throughput Minimera turnaroundtid Maximera CPU-utnyttjandegraden Interaktiva system Minimera responstid Proportionalitet möt användarens förväntningar Realtidssystem Klara deadlines Förutsägbarhet historia och processer 45

Offline schemaläggning Shortest Job First (SJF) kan användas om man vet processernas exekveringstid i förväg Man tar processerna i ordning från processer med kort exekveringstid till processer med lång tid Om man vill ha en algoritm som ger den kortaste medelsluttiden för processerna är SJF bevisbart optimal historia och processer 46

SJF och medelsluttid M Medelsluttid = (3+9)/2=6 Medelsluttid = (6+9)/2=7,5 0 3 6 9 historia och processer 47

Avbrytande schemaläggning (preemptive scheduling) Exekverande process kan avbrytas utan att ha bett om det (RUNNING READY) Bra om vissa processer är interaktiva men inte nödvändigtvis alla En process avbryts om den kört länge/förbrukat sitt tidskvanta en process med högre prioritet blir körbar (BLOCKED READY) historia och processer 48

Schemaläggning med tidsdelning (time-slicing) Alla processer som är READY ligger på readykön När en process har kört en stund, t.ex. 100ms, läggs den sist i ready-kön och den som ligger först får köra i stället Tiden som en process får köra kallas för time slice För bra prestanda krävs rimlig relation mellan time-slice och context-switch (processbytes) tid historia och processer 49

Prioriteter Varje process har en prioritet 0-159 i Unix System V release 4-20 20 i original UNIX Processen med högst prioritet får köra (om ej BLOCKED) En process prioritet kan ändras under exekvering Prioriteter anger hur bråttom en process har Ta emot paket från nätet: Bråttom! Kompilera ett program: Inte så bråttom. historia och processer 50

Prioriteter och tidsskivning En ready-kö för varje prioritet Processer som använder hela sin time slice utan att bli BLOCKED får lägre prioritet En process som ligger länge i ready-kön får så småningom ökad prioritet för att undvika svältning Kan ge bättre utnyttjande, ökad parallellitet, mellan CPUn och I/O-enheterna historia och processer 51

Några ytterligare exempel på schemaläggningsstrategier Round-robin Shortest process next Uppskatta processens längd med längden av nästa CPU-burst (T n+1 ) T n+1 = at n + (1-a)T n-1, 0<= a <= 1 Probabilistisk schemaläggning, lotterischemaläggning historia och processer 52

Policy och mekanism Ofta vill man skilja på policy och mekanism Ex: mekanismen är prioritetsschemaläggning policy är hur prioriteter väljs/bestäms historia och processer 53

Sammanfattning Applikationer ex. Webb, spel, administrativa system Kommandotolk/shell Editorer Kompilatorer Operativsystem Systemanrop CPU/Processer Minneshantering Maskininstruktioner Mikroarkitektur Fysiska komponenter historia och processer 54

Kommande föreläsningar Tors 13-15 D2: Minneshantering: del 1 Mån 15-17 D3: Minneshantering: del 2 historia och processer 55