Operativsystem - Processer I



Relevanta dokument
Operativsystem - Processkedulering

Datorteknik ERIK LARSSON

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

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

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

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

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

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

Översikt. Datorarkitekturer med operativsystem. Inledning. Inledning

Operativsystem ID hp, ID2200 6hp

F8: Undantagshantering

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

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

Institutionen för elektro- och informationsteknologi, LTH

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

Operativsystem - input/output, skydd, virtualisering

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

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Datorteknik ERIK LARSSON

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

Operativsystem - Processkommunikation

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

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

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

Reservföreläsningen inställd

Operativsystem - Minneshantering I

Digital- och datorteknik

Lösningsförslag till tentamen i IS1350 Operativsystem

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

Maskinorienterad programmering

Tentamen den 18 mars svar Datorteknik, EIT070

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

Datorarkitekturer med operativsystem ERIK LARSSON

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

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

Maskinorienterad programmering

Lösningsförslag till Tenta i Mikrodator

Operativsystem Introduktion

Digital- och datorteknik

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

F4: Assemblerprogrammering

Introduktion till hårdvara, mjukvara och operativsystem

DIG IN TO Dator och nätverksteknik

Datorteknik ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

Lösningar till tentamen i EIT070 Datorteknik

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

F5: Högnivåprogrammering

TSEA28 Datorteknik Y (och U)

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

F5: Högnivåprogrammering

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

Datorteknik ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

TSEA28 Datorteknik Y (och U)

Assemblerprogrammering del 3

Deluppgift 17 Processhantering: exec, sleep, exit, plist

Minneshantering segmentering och virtuellminne. Föreläsning 3

Concurrency Saker händer samtidigt. Process En instans av ett program

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

Program Datorteknik. Kontrollenhet. Exekvering av en instruktion. Abstraktionsnivå: Högnivåspråk. Assemblyspråk. Maskinspråk.

Datorsystemteknik Föreläsning 7DAVA14

Schemaläggningsmetodik för multi-core inom Windows 7 OS Vad är scheduling och hur schemalägger Windows OS sina processer?

TSEA28 Datorteknik Y (och U)

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

TSEA28 Datorteknik Y (och U)

Realtidsstöd i Minix. En laborationrapport. Oktober 2012

TSEA28 Datorteknik Y (och U)

DVA315 Operativsystem

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

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.

Datorarkitekturer med operativsystem ERIK LARSSON

Hur delas CPU? Processormodell. Vårt produk9onsbolag igen. Produkt 2. Produkt Vinster med aa göra saker sam9digt.

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

Programmering av inbyggda system. Kodningskonventioner. Viktor Kämpe

Lösningsförslag till Tenta i Mikrodator

Digital- och datorteknik

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

Föreläsning 2. Operativsystem och programmering

Synkronisering. Föreläsning 8

Pipelining i Intel Pentium II

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

Systembeskrivning. Systemskiss. Moduler.

Operativsystem ID2200/06 omtentamen :00-18:00

Lösningar till tentamen i EIT070 Datorteknik

Fö 5+6 TSEA81. Reflektion av Lab 2. clock.c (module) Real-time kernel + Real-time OS

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

Polling (cyklisk avfrågning) Avbrott

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte

Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram?

TSEA28 Datorteknik Y (och U)

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

Objektorienterad Programkonstruktion. Föreläsning 11 6 dec 2016

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

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin.

Tentamen Datorteknik och realtidssystem, TSEA81 Datum Lokal

Realtidssystem. - Dödläge - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 5

Närliggande allokering Datorteknik

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

Transkript:

Operativsystem - Processer I Mats Björkman 2015-01-21

Innehåll n Processer (föreläsning 2, den här) n n n Processmodell Processtillstånd Trådar n Processkommunikation (föreläsning 3) n n n Semaforer Monitorer Meddelandesystem n Skedulering/schemaläggning (föreläsning 4) n n Kriterier för en skedulerare Skeduleringsalgoritmer Operativsystem, Mats Björkman, MDH 2

Lärandemål n Program, process, tråd, task n Programräknare, stackpekare, processorregister n Kontextbyte n Skedulerare Operativsystem, Mats Björkman, MDH 3

Förenklingar för stunden n Vi antar ett enprocessorsystem med en processorkärna i processorn n Vi antar att processorn är sekventiell och utför en instruktion i taget n Vi antar att kompilatorer skapar objektkod där saker händer i samma ordning som i källkoden Operativsystem, Mats Björkman, MDH 4

Vad menas med exekvering? n När processorn kör ett program, stegar den sig igenom objektkoden och utför en instruktion i taget Operativsystem, Mats Björkman, MDH 5

Kraschkurs i assembler: 00008abe <_E>: 8abe: 79 00 00 05 79 00 00 05 mov.w #0x5 8ac2: 55 02 55 02 bsr.+2 (8ac6) 00008ac4 <.ef>: 8ac4: 54 70 54 70 rts PC 00008ac6 <_E_sub>: 8ac6: 19 11 19 11 sub.w r1,r1 8ac8: 1d 01 1d 01 cmp.w r0,r1 8aca: 4e 20 4e 20 bgt.+32 (8aec) 00008acc <.L6>: 8acc: 0d 13 0d 13 mov.w r1,r3 8ace: 09 33 09 33 add.w r3,r3 8ad0: 6b 02 a8 d4 6b 02 a8 d4 mov.w @0xa8d4:16,r2 8ad4: 09 32 09 32 add.w r3,r2 8ad6: 6b 82 a8 d4 6b 82 a8 d4 mov.w r2,@0xa8d4:16 8ada: 09 13 09 13 add.w r1,r3 8adc: 6b 02 a8 d6 6b 02 a8 d6 mov.w @0xa8d6:16,r2 8ae0: 09 32 09 32 add.w r3,r2 8ae2: 6b 82 a8 d6 6b 82 a8 d6 mov.w r2,@0xa8d6:16 8ae6: 0b 01 0b 01 adds #0x1,er1 8ae8: 1d 01 1d 01 cmp.w r0,r1 8aea: 4f e0 4f e0 ble.-32 (8acc) 00008aec <.L5>: 8aec: 54 70 54 70 rts Operativsystem, Mats Björkman, MDH 6

Programräknare n Programräknaren (PC) pekar ut den aktuella instruktionen som skall utföras n Programräknaren sparas ibland för att man skall kunna hitta tillbaka om man ger sig ut på tillfälligt besök i en annan del av koden Operativsystem, Mats Björkman, MDH 7

Subrutiner 00008abe <_E>: 8abe: 79 00 00 05 79 00 00 05 mov.w #0x5 8ac2: 55 02 55 02 bsr.+2 (8ac6) 00008ac4 <.ef>: 8ac4: 54 70 54 70 rts 00008ac6 <_E_sub>: 8ac6: 19 11 19 11 sub.w r1,r1 8ac8: 1d 01 1d 01 cmp.w r0,r1 8aca: 4e 20 4e 20 bgt.+32 (8aec) 00008acc <.L6>: 8acc: 0d 13 0d 13 mov.w r1,r3 8ace: 09 33 09 33 add.w r3,r3 8ad0: 6b 02 a8 d4 6b 02 a8 d4 mov.w @0xa8d4:16,r2 8ad4: 09 32 09 32 add.w r3,r2 8ad6: 6b 82 a8 d4 6b 82 a8 d4 mov.w r2,@0xa8d4:16 8ada: 09 13 09 13 add.w r1,r3 8adc: 6b 02 a8 d6 6b 02 a8 d6 mov.w @0xa8d6:16,r2 8ae0: 09 32 09 32 add.w r3,r2 8ae2: 6b 82 a8 d6 6b 82 a8 d6 mov.w r2,@0xa8d6:16 8ae6: 0b 01 0b 01 adds #0x1,er1 8ae8: 1d 01 1d 01 cmp.w r0,r1 8aea: 4f e0 4f e0 ble.-32 (8acc) 00008aec <.L5>: 8aec: 54 70 54 70 rts Operativsystem, Mats Björkman, MDH 8

Subrutinanrop n Subrutinanrop stöds av processorn: n Programräknaren sparas när man hoppar iväg (BSR Branch to Subroutine) Operativsystem, Mats Björkman, MDH 9

Subrutinanrop n När man vill hoppa tillbaka (RTS Return from Subroutine) plockas den sparade programräknaren (kallas då ofta återhoppsadressen) fram och man hoppar tillbaka till där man var n Exekveringen fortsätter med instruktionen efter BSR Operativsystem, Mats Björkman, MDH 10

Subrutinanrop BSR RTS Operativsystem, Mats Björkman, MDH 11

BSR Subrutinanrop PC sparas PC återhämtas RTS Operativsystem, Mats Björkman, MDH 12

Subrutiner på hög nivå n I språk på högre nivåer motsvaras subrutinen av proceduranrop och funktionsanrop Operativsystem, Mats Björkman, MDH 13

Var sparas programräknaren? n För att möjliggöra nästade subrutiner, d.v.s. ett subrutinanrop inuti en subrutin, behöver vi mer än en fix plats att lagra programräknaren n I tidiga arkitekturer fanns fasta register som användes, vilket begränsade möjligheten till nästade anrop till ett fix antal (exv. 7 i 8008) Operativsystem, Mats Björkman, MDH 14

Var sparas programräknaren? n Reentrant kod (att kunna anropa en procedur medan proceduren själv redan exekveras) är ett måste i de flesta moderna programspråk, exv. för att möjliggöra rekursion. n Då måste vi potentiellt kunna spara ett stort antal återhoppsadresser Operativsystem, Mats Björkman, MDH 15

Stacken n För att kunna spara undan programräknare och även andra data som kan behöva sparas vid reentranta proceduranrop, har moderna processorer en eller flera stackar n Stacken är ett minnesutrymme där man lagrar dessa data Operativsystem, Mats Björkman, MDH 16

Stackpekaren n Processorn har en stackpekare (SP), ett register som pekar ut aktuell position i stackminnet n Vid subrutinanrop läggs återhoppsadressen överst på stacken (push) n Vid återhopp plockas återhoppsadressen av från stacken (pop) Operativsystem, Mats Björkman, MDH 17

Stackpekaren n Stackminnet (och stackpekaren) är unikt för den pågående exekveringen, varje process behöver sitt eget stackminne, och har man flera trådar i en process (mer om detta strax), så behöver man en egen stack för varje tråd Operativsystem, Mats Björkman, MDH 18

Varför: Multiprogrammering n Fördelar: n Flera aktiviteter samtidigt n Förbättrar utnyttjandet av hårdvaran n Möjliggör fleranvändarsystem Operativsystem, Mats Björkman, MDH 19

Varför: Multiprogrammering n Nackdelar: n Ökad overhead för kontextbyten mellan processer n Konflikter (baklåsproblem m.m.) n Komplexitet!! Operativsystem, Mats Björkman, MDH 20

Processmodell n Definition: Concurrency (Pseudoparallellism) Program counter 4 Program Counters Context Switch A B C D D C B A A B C D Time Operativsystem, Mats Björkman, MDH 21

Lite terminologi n En process kallas även: n Jobb från batchtiden n Task från realtidsvärlden n Inuti en process kan det finnas flera trådar (threads) som exekverar (mer om detta senare) n Lite förvirrande kallas även trådar ibland för tasks Operativsystem, Mats Björkman, MDH 22

Lite terminologi n Multiprogrammering och multitasking är samma sak n Timesharing är multitasking++! n och: multi i multiprogrammering och multitasking har inget att göra med hur mycket hårdvara man har! Operativsystem, Mats Björkman, MDH 23

Uniprogrammering n Processorn måste vänta på att I/Ooperationen blir klar innan exekveringen kan fortsätta Operativsystem, Mats Björkman, MDH 24

Multiprogrammering n När ett jobb (en process) måste vänta på I/O, kan processorn byta till ett annat jobb (process) Operativsystem, Mats Björkman, MDH 25

Multiprogrammering Operativsystem, Mats Björkman, MDH 26

Olika modeller för multitasking n Cooperative multitasking processerna talar själva om när de vill att någon annan skall få exekvera n Preemptive multitasking OS:et avbryter processen när det är dags för en annan process att få exekvera Operativsystem, Mats Björkman, MDH 27

Cooperative multitasking n Vanligast i små system (typ inbyggda system) när man har full koll på vilka processer som exekverar n Enkelt, processen säger själv till när den vill lämna ifrån sig processorn n Mycket felkänsligt och säkerhetskänsligt! Operativsystem, Mats Björkman, MDH 28

Preemptive multitasking n Det allra vanligaste i större system och i system där man inte kan lita på alla processer n Operativsystemet sätter upp en maximal tid som en process får exekvera i ett svep (tidskvanta eller timeslice) Operativsystem, Mats Björkman, MDH 29

Preemptive multitasking n Om en process exekverar maxtiden i ett svep så genererar operativsystemet ett avbrott (interrupt) och byter process Operativsystem, Mats Björkman, MDH 30

Vad gör egentligen ett OS? Loop forever { Run the process for a while } Stop the process and save its state Load state of another process Operativsystem, Mats Björkman, MDH 31

Vad är en process? n n n n n n n n n Wikipedia: En process är en instans av ett program som exekveras sekventiellt av en processor Resurshanterare: Håller reda på alla resurser ett program behöver Minne för programkod och data Processtillstånd Öppna filer Håller också reda på tillståndet för varje resurs Operativsystem, Mats Björkman, MDH 32

Processtillstånd vs processtillstånd n En process har ett tillstånd, det är en ögonblicksbild med all den specifika information som behövs om vi vill återskapa processen precis som den är just nu n I ett OS befinner sig också processen i ett tillstånd, exempelvis körklar, väntande, exekverande, suspenderad Operativsystem, Mats Björkman, MDH 33

Processtillstånd n I ögonblickbilden (tillståndet) ingår bland annat ett antal hårdvaruregister som finns i processorn Operativsystem, Mats Björkman, MDH 34

Hårdvarutillstånd, exempel n PC (programräknare), som pekar ut var i programkoden processen befinner sig n Register, som håller variabler som processen just arbetar med n Stackpekare (SP), arbetsstacken är ett måste för en process (proceduranrop, interrupts) Operativsystem, Mats Björkman, MDH 35

Hårdvarutillstånd, exempel forts. n Statusregister för processen (privilegienivå exv.) n Minnespekare, processens minnesareor måste pekas ut (mer om detta i avsnittet om virtuellt minne) Operativsystem, Mats Björkman, MDH 36

Processer i OS n Operativsystemet hanterar processer genom att: n n n n n n n Skapa processer Kontrollera processer Byta mellan processer Avbryta processer Avsluta processer Kommunicera med processer och mellan processer Hålla rätt på processtillstånd Operativsystem, Mats Björkman, MDH 37

Processmodell med 2 tillstånd n Varje process befinner sig i endera av två tillstånd: n Körande n Icke körande Operativsystem, Mats Björkman, MDH 38

Ködiagram 2 tillstånd Operativsystem, Mats Björkman, MDH 39

Processmodell med 3 tillstånd Tillstånd n Running n Ready n Waiting Tillståndsövergångar Ready 1. En ny process väljs att exekvera Running Waiting 2. Processen avbryts för att en annan process skall exekvera 3. Processen blockeras (exv. i väntan på I/O) 4. Processen är inte längre blockerad Operativsystem, Mats Björkman, MDH 40 1 2 4 3

Ködiagram tre tillstånd Operativsystem, Mats Björkman, MDH 41

Processmodell från UNIX Operativsystem, Mats Björkman, MDH 42

Processmodell från Windows Operativsystem, Mats Björkman, MDH 43

Implementering av processmodellerna n OS:et behöver en processtabell, varje process behöver ett: n Process Control Block (PCB) n Processtillstånd n PC, SP, registerinnehåll, n Pekare till dataarea n Pekare till kod n Fildeskriptorer med filtillstånd n Skeduleringsinformation (ägare, prio etc.) Operativsystem, Mats Björkman, MDH 44

Implementering forts. n I OS-kärnan: n Mekanism för processbyten (dispatcher) n Skedulerare n Semaforhanterare n Kommunikationshanterare n Minneshanterare Operativsystem, Mats Björkman, MDH 45

PCB Code Data Stack R0 Rn PC SP STATE Exempel på implementation PCB Code Data Stack R0 Rn PC SP STATE Process Table PCB Code Data Stack R0 Rn PC SP STATE Synchronization Manager Inter Process Communication Manager OS Kernel Context Switch Scheduler Memory Manager File Manager CPU Memory HD Operativsystem, Mats Björkman, MDH 46

När skall OS:et byta process? n Klockavbrott n Processen har exekverat sitt tillåtna tidskvanta (quantum, time slice) n I/O-interrupt n Sidfel (sidan fanns inte i primärminnet) n Trap (något slags fel har uppstått, eller ) n Systemanrop (exv. open file, wait for user input)) Operativsystem, Mats Björkman, MDH 47

Skedulering och kontextbyte n En process kan frivilligt ge upp CPU:n genom: n att utföra I/O (exv. getchar()) n att gå till ett väntetillstånd (exv. sleep) n Alternativt kan OS:et välja att byta process på grund av: n Processen har exekverat tillräckligt länge n Processen råkar ut för något som tar tid (exv. sidfel, en minnessida måste hämtas från disk) Operativsystem, Mats Björkman, MDH 48

Skedulering och kontextbyte n När en process skall bytas ut, gör OS:et: n Växla ut den gamla processen n Välj en annan process att köra n Växla in den nya processen Operativsystem, Mats Björkman, MDH 49

Policies och mekanismer n Skedulering och kontextbyte är bra exempel på hur OS:ets arbete kan separeras i policies och mekanismer (boken 2.4.5) n Policies är vad som skall göras och varför n Mekanismer är hur något skall göras n Mekanismerna kan och bör implementeras fristående från policies Operativsystem, Mats Björkman, MDH 50

Skedulering och kontextbyte n I exemplet skedulering och kontextbyte: n Policies är till exempel: n Hur länge skall en process få exekvera innan den blir avbruten? n Vilken ny process skall väljas av flera möjliga? n Mekanismer är till exempel: n n Hur avbryts en pågående process? Hur sparas processtillståndet? Operativsystem, Mats Björkman, MDH 51

Skeduleraren n Beslutar vilken process som skall exekvera n Flyttar processerna mellan tillstånd Processes 0 1 n-2 n-1 Scheduler Operativsystem, Mats Björkman, MDH 52

Kontextbyte Görs av hårdvaran n Ett interrupt inträffar processormode sätts till kernel mode hårdvaran lägger PC+SP+REG på stacken Interruptrutinen lokaliseras Interruptrutinen sparar REG+PC+ i PCB:n + hanterar interruptet Skeduleraren väljer en process (PCB) att köra härnäst Informationen som finns i den nya PCB:n läggs in på sina rätta ställen Återgång till processen förbereds, processormode sätts till user mode, återhopp sker från interruptrutinen Timer PCB1 PCB2 PCB3 Interrupt Service Procedure (ISP) Scheduler CPU IRQ Vector Stack 53

Skeduleringsexempel: Earliest deadline first Time Running Ready Waiting Hur ser exekveringen ut? Notation: Pn(m) = Process n har m enheter exekvering kvar Pn[m] = Process n har en starttid (release time) m. Process Execution Time Release Time Deadline P1 2 0 3 P2 3 8 16 P3 5 0 12 P4 1 2 5 P5 3 6 10 S 0 1 2 3 4 5 6 7 8 9 10 11 12 13 - P1(2), P3(5) P4[2], P5[6], P2[8] P1(2) P3(5) P1(1) P4(1) P3(5) P5[6], P2[8] P3(5) - P3(4) P3(3) P5(3) P3(2) P2[8] P5(2) P5(1) P3(2), P2(3) - P3(2) P2(3) P3(1) P2(3) - P2(2) P2(1) 54

Flera nivåer av skedulerare n Skeduleraren vi har talat om hittills kallas ibland korttidsskedulerare n Om man har väldigt många processer som vill köra kommer resurserna att bli för snuttifierade (facktermen är för hög grad av multiprogrammering, d.v.s. för många processer igång samtidigt) Operativsystem, Mats Björkman, MDH 55

Flera nivåer av skedulerare n För att begränsa antalet körande processer kan OS:et välja att låta vissa processer (typiskt sådana med låg prioritet) vänta helt och hållet n Dessa processer läggs ut på disk (swapping, processerna swappas ut), och plockas vid ett senare tillfälle in i gen (swappas in) Operativsystem, Mats Björkman, MDH 56

Flera nivåer av skedulerare n Skeduleraren som avgör vad som swappas ut och in jobbar över större tidsrymder än korttidsskeduleraren n Kallas ibland medium-time scheduler (medeltidsskedulerare?) Operativsystem, Mats Björkman, MDH 57

Systemanrop n n Systemanropet är processernas sätt att be OS:et om att få något utfört Anropet är omgivet av begränsningar och skydd eftersom: n n OS:et är priviligierat (kör i kernel mode) och kan göra vad som helst Användarprogram kan vara illasinnade Operativsystem, Mats Björkman, MDH 58

Systemanrop i UNIX och Win32 Några exempel på systemanrop Operativsystem, Mats Björkman, MDH 59

Flera exekveringsmoder n Många OS har någon variant på ringar för skydd n Ringkonceptet kommer från MULTICS n En process som exekverar i en inre ring har alla privilegier från alla yttre ringar + några till n MULTICS hade 8 nivåer Operativsystem, Mats Björkman, MDH 60

Flera exekveringsmoder n Intels x86-processorer har (sedan 80286) en ringmodell med fyra nivåer n I praktiken används dock bara två Operativsystem, Mats Björkman, MDH 61

Olika exekveringsmoder n User Mode n Mode med få/inga/låga privilegier n De flesta användarprocesser exekverar i user mode n Supervisory Mode/Kernel Mode n Höga (alla) privilegier; kan exekvera alla instruktioner n OS-kärnan exekverar i kernel mode(!) Operativsystem, Mats Björkman, MDH 62

Olika exekveringsmoder n Byte från user mode till kernel mode: n Exekvera TRAP-instruktionen (systemanropsexemplet) n För att komma tillbaka till user mode? n Sätt om moden (peta i processorns statusregister), i kernel mode kan man göra det! Operativsystem, Mats Björkman, MDH 63

Flera stackar n Det är vanligt att en process har flera stackar n En stack för vanlig exekvering i User mode n En stack för exekvering i Kernel mode n (eventuellt flera) Operativsystem, Mats Björkman, MDH 64

Varför flera stackar? n OS:et kan använda processens stack från User mode, men n eftersom användarprocessen kan hantera den stacken, så kan den också missbruka den, och då ställa till problem för OS:et Operativsystem, Mats Björkman, MDH 65

Varför flera stackar? n Exempel: Antag att användarstacken har precis nått upp till toppen på en minnessida n Om man försöker lägga något på stacken så utlöses ett sidfel för att en ny minnessida behöver allokeras Operativsystem, Mats Björkman, MDH 66

Varför flera stackar? n Nu gör användaren ett systemanrop med sin stack fylld till toppen på sidan n TRAP-rutinen försöker pusha PC m.m. på stacken, men utlöser då ett sidfelsinterrupt n Interruptrutinen försöker pusha PC m.m. på stacken, men utlöser då ett sidfelsinterrupt Operativsystem, Mats Björkman, MDH 67

Varför flera stackar? n För att undvika dessa saker har man oftast en separat kernel stack för varje process n Denna stack är oåtkomlig från User mode och användarprocessen kan därför inte göra något dumt med den Operativsystem, Mats Björkman, MDH 68

Varför flera stackar? n Så fort man kommit in i kernel mode (via TRAP, interrupt etc.) byts stackpekaren från användarstacken till kernel stack n Vid återgång från kernel mode sker byte till användarstacken innan återhopp sker Operativsystem, Mats Björkman, MDH 69

Trådar (threads) n Traditionella processer har bara en exekveringstråd n Ett sätt att åstadkomma mer lättviktiga alternativ till processer är att tillåta mer än en pågående exekvering i samma process n Tänk det som att vi låter flera processer dela minne Operativsystem, Mats Björkman, MDH 70

Trådar (threads) n Trådtabell n PC, Register, - Unikt för tråden n Tillstånd - Unikt för tråden n Adressrymd - Delas inom hela processen n Stackpekare - Unikt för tråden n Stackminne - Delas oftast inom processen Thread Process Single threaded OS Multi threaded OS Operativsystem, Mats Björkman, MDH 71

Processer och trådar n Resursägande (process) n Öppnade filer, minnessidor, etc. n Skedulering/exekvering (tråd) n Programräknare, stackpekare(!!!), register etc. n Varje process har minst en exekveringstråd n Multitrådning n OS:et stöder flera samtidiga exekveringstrådar inom en och samma process Operativsystem, Mats Björkman, MDH 72

Processer kontra trådar n Process n n n Tråd En adressrymd där processen exekverar Skyddas av OS:et mot andra processer vad gäller minne, filer, I/O etc. n Ett exekveringstillstånd (running, ready, waiting,...) n n En exekveringsstack (parametrar, lokala variabler) Kommer åt processens minne och övriga resurser Operativsystem, Mats Björkman, MDH 73

Processer kontra trådar Operativsystem, Mats Björkman, MDH 74

Varför trådar? n Tar mindre tid att skapa och terminera än en process (slipper allokera/lämna tillbaka minne) n Går snabbare med kontextbyte, minneskontexten är densamma n Trådar kan kommunicera med varandra utan att behöva gå via OS:et Operativsystem, Mats Björkman, MDH 75

Varför trådar? n Trådar används ofta när ett program har flera saker den vill göra samtidigt n Exempel: Rättstavning i Word n Exempel: Webläsare laddar bilder parallellt n Varför inte egna processer? n De jobbar på delat data (Wordfil respektive websida) n Mindre kostsamt än att ha flera processer Operativsystem, Mats Björkman, MDH 76

Windows - trådtillstånd Operativsystem, Mats Björkman, MDH 77

Tasks n Används ibland i realtidssystem som ett alternativt namn på processer n I vissa språk (Ada exv.) är tasks benämningen på trådar n I Linux är tasks enheten som OS:et skedulerar Operativsystem, Mats Björkman, MDH 78

Lärandemålen igen n Program, process, tråd, task n Programräknare, stackpekare, processorregister n Kontextbyte n Skedulerare Operativsystem, Mats Björkman, MDH 79