Operativsystem - Processer I

Slides:



Advertisements
Liknande presentationer
Målvakter Detta talar för Tre Kronor Detta talar för Tre Kronor Detta talar emot Tre Kronor Detta talar emot Tre Kronor Performance-analyserIndividuella.
Advertisements

PTS Bredbandskartläggning
Folkhälsan i Sverige: Årsrapport 2012
Kap 1 - Algebra och linjära modeller
Restauranger och service Våren 2005 T SHR: Leif Holmström Temo: Arne Modig, David Ahlin Datum:
Innehåll, huvudpresentation 4. Rangordning av ordningsstörningar (fråga 1) 5. Problem med nedskräpning (fråga 1a) 6. Problem med skadegörelse (fråga 1b)
Joomla © 2009 Stefan Andersson 1. Kontaktformulär  På varje seriös webbplats bör det finnas ett kontaktformulär.  Använd ej maillänkar, risk för spam!
Konstföreningen Dragning På sista sidan finns konstnärerna för respektive tavla.
BENÄMNA lätta ord SPRÅKTRÄNING VID AFASIKg VIII
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 5: CPU-schemaläggning.
Översikt av operativsystem (kap 1 & 2)
Hela Sverige ska leva Totalrapport. Regeringens bidrag har medverkat till kunskapsförmedling?
Leif Håkansson’s Square Dancer Rotation
Projektföljeforskning
Eddie Arnold - Make The World Go Away Images colorées de par le monde Déroulement automatique ou manuel à votre choix 1 för dig.
Kundundersökning mars 2010 Operatör: Västtrafik Trafikslag: Tåg Sträcka: Göteborg - Nässjö.
PC-teknik Repetition enligt önskemål som inkommit via mail. (täcker alltså inte alla moment i kursen)
23 August 2014 IS1200 Datorteknik vt09, föreläsning 10, (E och I mfl)1 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory.
Karolinska Institutet, studentundersökning Studentundersökning på Karolinska Institutet HT 2013.
Punktprevalensmätning av trycksår 2011, v.40 Resultat från landstingen
Bastugatan 2. Box S Stockholm. Blad 1 Läsarundersökning Maskinentreprenören 2007.
| Trycksår Kommun/Områdes-skillnader (inklusive könsdimensionen) Dennis Nordvall Statistiker/Datamanager,
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
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 7: Deadlocks.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 9: Virtuellt minne.
Fastighetsbyrån Konjunkturundersökning Oktober 2012.
INFÖR NATIONELLA PROVET
SWEPOS Kundnöjdhetsundersökning Undersökningen Webenkät under 3 veckor i september 2012 Bruttourval ca huvudutskick och 2 påminnelser Triss-lott.
Enkätresultat för Grundskolan Elever 2014 Skola:Hällby skola.
Information statistik Ej med i statistik: Konradsbergs lokaler (utgår VT13) Nya lokalerna i Frescati backe (ej med i gamla systemet) Övrigt: Mätningen.
Finländarnas uppfattningar om äldrevården Kirsi Markkanen Utvecklingschef Tehy rf.
1 Vänsterskolan Debattartiklar. 2 Aktuell krok 3 Aktuella krokar 1. Direkt krok.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Konsumenter om Svanen och EU Ecolabel Om undersökningen Utförd av: Response Analys, Oslo i dec 2010 Cirka personer från respektive land Totalt.
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
Kostnader för läkemedelsförmån Utveckling t.o.m. september 2014 Materialet: avser kostnader inklusive moms är ej åldersstandardiserat Lennart Tingvall:
Hittarps IK Kartläggningspresentation år 3.
1 Individ Kompetens 60%66%67% Motivation 59%64%60% Ansvar & Initiativ 77%74%68% Befogenheter 82%69%61% Organisation Samarbete 52%66%68% Organisatorisk.
Från Gotland på kvällen (tågtider enligt 2007) 18:28 19:03 19:41 19:32 20:32 20:53 21:19 18:30 20:32 19:06 19:54 19:58 20:22 19:01 21:40 20:44 23:37 20:11.
Arbetspensionssystemet i bilder Bildserie med centrala uppgifter om arbetspensionssystemet och dess funktion
Brukarundersökning socialpsykiatri Kön 1. Man16 (44%) 2. Kvinna20 (56%)
TÄNK PÅ ETT HELTAL MELLAN 1-50
Greppa Näringen Medlemsundersökning, kvartal 1. 1.
Helhet Händelse Agerande Kunskap om vardagsverksamheten Förståelse av vardagsverksamheten.
Kouzlo starých časů… Letadla Pár foteček pro vzpomínku na dávné doby, tak hezké snění… M.K. 1 I Norrköping får man inte.
Operativsystem Vad är det för något ? Varför har man operativsystem ?
Student Ekonomi Erik Nygårds Hang-Jin Lee Vina Balaghi Projektarbete 2 732G22 Grunder i statistisk metodik Ht-08.
Novus Unga om vården Vårdförbundet Lina Lidell 1718.
Varumärket Luleå kommun
Resultat sammanhållen vård och omsorg om de mest sjuka äldre i Örebro län Västra länsdelen mätperiod 2014.
Arbetspensionssystemet i bilder Bildserie med centrala uppgifter om arbetspensionssystemet och dess funktion
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Enkätresultat för Grundskolan Föräldrar 2014 Skola - Gillberga skola.
Regional handlingsplan ”Det goda livet för sjuka äldre” RESULTAT i VG+Skaraborg.
OpCon/xps - A case study. Club2200Page 1 OpCon/xps – A case study Club2200 Magnus Nyman & Hans Forslind.
Smittspårarutbildning
31 March 2015IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
Schemaläggning Mål –Att förstå den roll som schemaläggning och schemaläggnings-analys spelar för att förutsäga hur realtids-tillämpningar uppfyller sina.
Pipelining Föreläsning 4. T exe — CPU-exekveringstid I — Antalet exekverade instruktioner CPI — Genomsnittligt antal klockcykler per instruktion T c —
Projekt 5.3 Gilpins och Ayalas θ-logistiska modell A Course in Mathematical Modeling - Mooney & Swift.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
Operativsystem - Processkedulering Mats Björkman
Förskoleenkät Föräldrar 2012 Förskoleenkät – Föräldrar Enhet:Hattmakarns förskola.
Grundskola Elever 2013 Grundskoleenkät - Elever Enhet: Gillberga skola.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 9: Implementering av underprogram Aktiveringsposter Exekveringsstacken Implementera dynamisk räckvidd.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden.
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Repetition.
IT och medier1 Utgående från boken Computer Science av: J. Glenn Brookshear Grundläggande datavetenskap, 4p Kapitel 3 Operativsystem.
Presentationens avskrift:

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

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

Lärandemål Program, process, tråd, task Programräknare, stackpekare, processorregister Kontextbyte Skedulerare Vad vet de om dessa nu?

Förenklingar för stunden Vi antar ett enprocessorsystem med en processorkärna i processorn Vi antar att processorn är sekventiell och utför en instruktion i taget Vi antar att kompilatorer skapar objektkod där saker händer i samma ordning som i källkoden Vad vet de om dessa nu?

Vad menas med “exekvering”? När processorn kör ett program, stegar den sig igenom objektkoden och utför en instruktion i taget Vad vet de om dessa nu?

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 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 PC Vad vet de om dessa nu?

Programräknare Programräknaren (PC) pekar ut den aktuella instruktionen som skall utföras 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 TIMING IMPLICATIONS!!! TERMINOLOGY Process – en abstraktion av ett exekverande sekventiellt program Concurrency - samtidighet Preemption - avbrytbarhet Multiprogramming – pseudoparallelism (upplevd samtidighet genom snabba byten av processorn) What does this imply??!!?? Multiprogramming implies that no timing estimations can be done. Consider the following: A tape backup is initiated. It takes a predefined time to start up the reels and begin the recording. If a process would initiate the tape streamer, go into a loop for 10 000 times ( which exactly takes this time) and then start recording, it would work fine as long as the process was not preempted during this time.

Subrutiner Vad vet de om dessa nu? 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 Vad vet de om dessa nu?

Subrutinanrop Subrutinanrop stöds av processorn: Programräknaren sparas när man hoppar iväg (BSR – Branch to Subroutine) TIMING IMPLICATIONS!!! TERMINOLOGY Process – en abstraktion av ett exekverande sekventiellt program Concurrency - samtidighet Preemption - avbrytbarhet Multiprogramming – pseudoparallelism (upplevd samtidighet genom snabba byten av processorn) What does this imply??!!?? Multiprogramming implies that no timing estimations can be done. Consider the following: A tape backup is initiated. It takes a predefined time to start up the reels and begin the recording. If a process would initiate the tape streamer, go into a loop for 10 000 times ( which exactly takes this time) and then start recording, it would work fine as long as the process was not preempted during this time.

Subrutinanrop 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 Exekveringen fortsätter med instruktionen efter BSR TIMING IMPLICATIONS!!! TERMINOLOGY Process – en abstraktion av ett exekverande sekventiellt program Concurrency - samtidighet Preemption - avbrytbarhet Multiprogramming – pseudoparallelism (upplevd samtidighet genom snabba byten av processorn) What does this imply??!!?? Multiprogramming implies that no timing estimations can be done. Consider the following: A tape backup is initiated. It takes a predefined time to start up the reels and begin the recording. If a process would initiate the tape streamer, go into a loop for 10 000 times ( which exactly takes this time) and then start recording, it would work fine as long as the process was not preempted during this time.

Subrutinanrop … … BSR RTS TIMING IMPLICATIONS!!! TERMINOLOGY Process – en abstraktion av ett exekverande sekventiellt program Concurrency - samtidighet Preemption - avbrytbarhet Multiprogramming – pseudoparallelism (upplevd samtidighet genom snabba byten av processorn) What does this imply??!!?? Multiprogramming implies that no timing estimations can be done. Consider the following: A tape backup is initiated. It takes a predefined time to start up the reels and begin the recording. If a process would initiate the tape streamer, go into a loop for 10 000 times ( which exactly takes this time) and then start recording, it would work fine as long as the process was not preempted during this time.

Subrutinanrop … … BSR RTS PC sparas PC återhämtas TIMING IMPLICATIONS!!! TERMINOLOGY Process – en abstraktion av ett exekverande sekventiellt program Concurrency - samtidighet Preemption - avbrytbarhet Multiprogramming – pseudoparallelism (upplevd samtidighet genom snabba byten av processorn) What does this imply??!!?? Multiprogramming implies that no timing estimations can be done. Consider the following: A tape backup is initiated. It takes a predefined time to start up the reels and begin the recording. If a process would initiate the tape streamer, go into a loop for 10 000 times ( which exactly takes this time) and then start recording, it would work fine as long as the process was not preempted during this time. PC återhämtas

Subrutiner på hög nivå I språk på högre nivåer motsvaras subrutinen av proceduranrop och funktionsanrop TIMING IMPLICATIONS!!! TERMINOLOGY Process – en abstraktion av ett exekverande sekventiellt program Concurrency - samtidighet Preemption - avbrytbarhet Multiprogramming – pseudoparallelism (upplevd samtidighet genom snabba byten av processorn) What does this imply??!!?? Multiprogramming implies that no timing estimations can be done. Consider the following: A tape backup is initiated. It takes a predefined time to start up the reels and begin the recording. If a process would initiate the tape streamer, go into a loop for 10 000 times ( which exactly takes this time) and then start recording, it would work fine as long as the process was not preempted during this time.

Var sparas programräknaren? 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 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) TIMING IMPLICATIONS!!! TERMINOLOGY Process – en abstraktion av ett exekverande sekventiellt program Concurrency - samtidighet Preemption - avbrytbarhet Multiprogramming – pseudoparallelism (upplevd samtidighet genom snabba byten av processorn) What does this imply??!!?? Multiprogramming implies that no timing estimations can be done. Consider the following: A tape backup is initiated. It takes a predefined time to start up the reels and begin the recording. If a process would initiate the tape streamer, go into a loop for 10 000 times ( which exactly takes this time) and then start recording, it would work fine as long as the process was not preempted during this time.

Var sparas programräknaren? 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. Då måste vi potentiellt kunna spara ett stort antal återhoppsadresser TIMING IMPLICATIONS!!! TERMINOLOGY Process – en abstraktion av ett exekverande sekventiellt program Concurrency - samtidighet Preemption - avbrytbarhet Multiprogramming – pseudoparallelism (upplevd samtidighet genom snabba byten av processorn) What does this imply??!!?? Multiprogramming implies that no timing estimations can be done. Consider the following: A tape backup is initiated. It takes a predefined time to start up the reels and begin the recording. If a process would initiate the tape streamer, go into a loop for 10 000 times ( which exactly takes this time) and then start recording, it would work fine as long as the process was not preempted during this time.

Stacken 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 Stacken är ett minnesutrymme där man lagrar dessa data TIMING IMPLICATIONS!!! TERMINOLOGY Process – en abstraktion av ett exekverande sekventiellt program Concurrency - samtidighet Preemption - avbrytbarhet Multiprogramming – pseudoparallelism (upplevd samtidighet genom snabba byten av processorn) What does this imply??!!?? Multiprogramming implies that no timing estimations can be done. Consider the following: A tape backup is initiated. It takes a predefined time to start up the reels and begin the recording. If a process would initiate the tape streamer, go into a loop for 10 000 times ( which exactly takes this time) and then start recording, it would work fine as long as the process was not preempted during this time.

Stackpekaren Processorn har en stackpekare (SP), ett register som pekar ut aktuell position i stackminnet Vid subrutinanrop läggs återhoppsadressen överst på stacken (push) Vid återhopp plockas återhoppsadressen av från stacken (pop) TIMING IMPLICATIONS!!! TERMINOLOGY Process – en abstraktion av ett exekverande sekventiellt program Concurrency - samtidighet Preemption - avbrytbarhet Multiprogramming – pseudoparallelism (upplevd samtidighet genom snabba byten av processorn) What does this imply??!!?? Multiprogramming implies that no timing estimations can be done. Consider the following: A tape backup is initiated. It takes a predefined time to start up the reels and begin the recording. If a process would initiate the tape streamer, go into a loop for 10 000 times ( which exactly takes this time) and then start recording, it would work fine as long as the process was not preempted during this time.

Stackpekaren 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 TIMING IMPLICATIONS!!! TERMINOLOGY Process – en abstraktion av ett exekverande sekventiellt program Concurrency - samtidighet Preemption - avbrytbarhet Multiprogramming – pseudoparallelism (upplevd samtidighet genom snabba byten av processorn) What does this imply??!!?? Multiprogramming implies that no timing estimations can be done. Consider the following: A tape backup is initiated. It takes a predefined time to start up the reels and begin the recording. If a process would initiate the tape streamer, go into a loop for 10 000 times ( which exactly takes this time) and then start recording, it would work fine as long as the process was not preempted during this time.

Varför: Multiprogrammering Fördelar: Flera aktiviteter samtidigt Förbättrar utnyttjandet av hårdvaran Möjliggör fleranvändarsystem Give an example with idle processes 90% idle…waiting for user interaction. Winamp example with read chunk, sending it to the soundcard, sleeping Idle process – process with low priority, typically 0 to 1 % utilization with normal work.

Varför: Multiprogrammering Nackdelar: Ökad overhead för kontextbyten mellan processer Konflikter (baklåsproblem m.m.) Komplexitet!! Give an example with idle processes 90% idle…waiting for user interaction. Winamp example with read chunk, sending it to the soundcard, sleeping Idle process – process with low priority, typically 0 to 1 % utilization with normal work.

Processmodell Definition: Concurrency (Pseudoparallellism) Program counter 4 Program Counters A A B C D Context Switch B TIMING IMPLICATIONS!!! TERMINOLOGY Process – en abstraktion av ett exekverande sekventiellt program Concurrency - samtidighet Preemption - avbrytbarhet Multiprogramming – pseudoparallelism (upplevd samtidighet genom snabba byten av processorn) What does this imply??!!?? Multiprogramming implies that no timing estimations can be done. Consider the following: A tape backup is initiated. It takes a predefined time to start up the reels and begin the recording. If a process would initiate the tape streamer, go into a loop for 10 000 times ( which exactly takes this time) and then start recording, it would work fine as long as the process was not preempted during this time. C D C B A D Time

Lite terminologi En process kallas även: Jobb – från batchtiden Task – från realtidsvärlden Inuti en process kan det finnas flera trådar (threads) som exekverar (mer om detta senare) Lite förvirrande kallas även trådar ibland för tasks Vad vet de om dessa nu?

Lite terminologi Multiprogrammering och multitasking är samma sak Timesharing är multitasking++ ! …och: “multi” i multiprogrammering och multitasking har inget att göra med hur mycket hårdvara man har! Vad vet de om dessa nu?

Uniprogrammering Processorn måste vänta på att I/O-operationen blir klar innan exekveringen kan fortsätta In a single application system, uniprogramming, the processor spends a certain amount of time executing, until it reaches an I/O instruction. It must then wait until that I/O instruction concludes before proceeding. This inefficiency is not necessary.

Multiprogrammering När ett jobb (en process) måste vänta på I/O, kan processorn byta till ett annat jobb (process) We know that there must be enough memory to hold the OS (resident monitor) and one user program. Suppose that there is room for the OS and two user programs. When one job needs to wait for I/O, the processor can switch to the other job, which is likely not waiting for I/O (Figure 2.5b).

Multiprogrammering Further-more, we might expand memory to hold three, four, or more programs and switch among all of them (Figure 2.5c). The approach is known as multiprogramming, or multitasking. It is the central theme of modern operating systems.

Olika modeller för multitasking Cooperative multitasking – processerna talar själva om när de vill att någon annan skall få exekvera Preemptive multitasking – OS:et avbryter processen när det är dags för en annan process att få exekvera Vad vet de om dessa nu?

Cooperative multitasking Vanligast i små system (typ inbyggda system) när man har full koll på vilka processer som exekverar Enkelt, processen säger själv till när den vill lämna ifrån sig processorn Mycket felkänsligt och säkerhetskänsligt! Vad vet de om dessa nu?

Preemptive multitasking Det allra vanligaste i större system och i system där man inte kan lita på alla processer Operativsystemet sätter upp en maximal tid som en process får exekvera i ett svep (tidskvanta eller timeslice) Vad vet de om dessa nu?

Preemptive multitasking Om en process exekverar maxtiden i ett svep så genererar operativsystemet ett avbrott (interrupt) och byter process Vad vet de om dessa nu?

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 } Ur CPUns perspektiv är ju OS ett program som vilket annat, men som har som jobb att läsa in exekverbar kod och köra den (Processer)

Vad är en process? 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

Processtillstånd vs processtillstånd 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 I ett OS befinner sig också processen i ett tillstånd, exempelvis körklar, väntande, exekverande, suspenderad Vad vet de om dessa nu?

Processtillstånd I ögonblickbilden (tillståndet) ingår bland annat ett antal hårdvaruregister som finns i processorn Vad vet de om dessa nu?

Hårdvarutillstånd, exempel PC (programräknare), som pekar ut var i programkoden processen befinner sig Register, som håller variabler som processen just arbetar med Stackpekare (SP), arbetsstacken är ett måste för en process (proceduranrop, interrupts) Vad vet de om dessa nu?

Hårdvarutillstånd, exempel forts. Statusregister för processen (privilegienivå exv.) Minnespekare, processens minnesareor måste pekas ut (mer om detta i avsnittet om virtuellt minne) Vad vet de om dessa nu?

Processer i OS Operativsystemet hanterar processer genom att: Skapa processer Kontrollera processer Byta mellan processer Avbryta processer Avsluta processer Kommunicera med processer och mellan processer Hålla rätt på processtillstånd Vad har ett OS att göra med alla dessa proceser

Processmodell med 2 tillstånd Varje process befinner sig i endera av två tillstånd: Körande Icke körande Emphasize that you are introducing a Simple model and that this will be expanded. The operating system’s principal responsibility is controlling the execution of processes; this includes determining the interleaving pattern for execution and allocating resources to processes. The first step in designing an OS to control processes is to describe the behaviour that we would like the processes to exhibit. In the most simple model, a process is either running, or it is not.

Ködiagram – 2 tillstånd Animated slide The animation only shows one process moving. There needs to be some structure so that the OS can keep track of the processes. This could be a simple queue which is managed by the dispatcher routine of the OS. What is the problem with this model (given the characteristics of processes with 99% idle(Blocked) and 1% work)

Processmodell med 3 tillstånd Running Tillstånd Running Ready Waiting Tillståndsövergångar En ny process väljs att exekvera Processen avbryts för att en annan process skall exekvera Processen blockeras (exv. i väntan på I/O) Processen är inte längre blockerad 1 3 2 Ready Waiting 4 Running: Is currently executing Ready: All systems go, ready to execute Waiting: Process is blocked for some reason, waiting for input from user, put in sleep mode, waiting for some I/O to be ready or waiting for some shared resource (memory block) to be available, see process synchronization.

Ködiagram – tre tillstånd In the simplest solution, this model would require an additional queue for the blocked processes. But when an event occurs the dispatcher would have to cycle through the entire queue to see which process is waiting for the event. This can cause huge overhead when their may be 100’s or 1000’s of processes

Processmodell från UNIX Running: Is currently executing Ready: All systems go, ready to execute Waiting: Process is blocked for some reason, waiting for input from user, put in sleep mode, waiting for some I/O to be ready or waiting for some shared resource (memory block) to be available, see process synchronization.

Processmodell från Windows Running: Is currently executing Ready: All systems go, ready to execute Waiting: Process is blocked for some reason, waiting for input from user, put in sleep mode, waiting for some I/O to be ready or waiting for some shared resource (memory block) to be available, see process synchronization.

Implementering av processmodellerna OS:et behöver en processtabell, varje process behöver ett: Process Control Block (PCB) Processtillstånd PC, SP, registerinnehåll, … Pekare till dataarea Pekare till kod Fildeskriptorer med filtillstånd Skeduleringsinformation (ägare, prio etc.) Ritata på tavlan

Implementering forts. I OS-kärnan: Mekanism för processbyten (dispatcher) Skedulerare Semaforhanterare Kommunikationshanterare Minneshanterare RITA BILD!

Exempel på implementation OS Kernel PCB Code Data Stack R0 Rn PC SP … STATE PCB Code Data Stack R0 Rn PC SP … STATE PCB Code Data Stack R0 Rn PC SP … STATE Synchronization Manager … Inter Process Communication Manager Process Table Context Switch Scheduler Memory Manager File Manager CPU HD Memory

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

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

Skedulering och kontextbyte När en process skall bytas ut, gör OS:et: ”Växla ut” den gamla processen Välj en annan process att köra ”Växla in” den nya processen

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

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

· · · Skeduleraren Beslutar vilken process som skall exekvera Flyttar processerna mellan tillstånd Processes 1 · · · n-2 n-1 Scheduler

Kontextbyte IRQ Vector IRQ Vector Stack PCB1 PCB2 PCB3 Görs av hårdvaran Ett interrupt inträffar processormode sätts till kernel mode hårdvaran lägger PC+SP+REG på stacken Interruptrutinen lokaliseras IRQ Vector IRQ Vector Interrupt Service Procedure (ISP) Interruptrutinen sparar REG+PC+… i PCB:n + hanterar interruptet Skeduleraren väljer en process (PCB) att köra härnäst Scheduler We will discuss the scheduler in detail later. How does the timer work, periodic countdown until 0, which triggers an electrical signal to be sent to the CPU Knyter ihop alla delar och konkretiserar processbegreppet... PAUS. FÅ med alla på tåget. Alla ska greppa detta innan man går vidare. Sidan 79-80!! Informationen som finns i den nya PCB:n läggs in på sina rätta ställen Stack CPU Återgång till processen förbereds, processormode sätts till user mode, “återhopp” sker från interruptrutinen Timer

Skeduleringsexempel: Earliest deadline first Time Running Ready Waiting S 1 2 3 4 5 6 7 8 9 10 11 12 13 - P1(2), P3(5) P4[2], P5[6], P2[8] Hur ser exekveringen ut? Notation: Pn(m) = Process n har m enheter exekvering kvar Pn[m] = Process n har en starttid (release time) m. P1(2) P3(5) P1(1) P4(1) P3(5) P5[6], P2[8] P3(5) - P3(4) P3(3) Process Execution Time Release Dead- line P1 2 3 P2 8 16 P3 5 12 P4 1 P5 6 10 P5(3) P3(2) P2[8] P5(2) Explain how EDF works. It keeps the ready queue sorted according to deadline. Algorithm used in Real Time systems, and is optimal…interesting fact, even for real life experiences. P5(1) P3(2), P2(3) - P3(2) P2(3) P3(1) P2(3) - P2(2) P2(1)

Flera nivåer av skedulerare Skeduleraren vi har talat om hittills kallas ibland korttidsskedulerare 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)

Flera nivåer av skedulerare 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 Dessa processer läggs ut på disk (swapping, processerna swappas ut), och plockas vid ett senare tillfälle in i gen (swappas in)

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

Systemanrop 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: OS:et är priviligierat (kör i kernel mode) och kan göra vad som helst Användarprogram kan vara illasinnade Each system call has a procedure that the program uses Standard system call routine: The procedure puts data in a storage space that can be read by the OS (registers or the stack) and then invokes a TRAP instruction in order to hand over the control to the OS When the OS is ready, it places a status code in a readable location and invokes a RETURN FROM TRAP instruction Ge gärna lite exempel på systemanrop också, typ fopen, kill, ….

Systemanrop i UNIX och Win32 Några exempel på systemanrop

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

Flera exekveringsmoder Intels x86-processorer har (sedan 80286) en ringmodell med fyra nivåer I praktiken används dock bara två

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

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

Flera stackar Det är vanligt att en process har flera stackar En stack för vanlig exekvering i User mode En stack för exekvering i Kernel mode … (eventuellt flera)

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

Varför flera stackar? Exempel: Antag att användarstacken har precis nått upp till toppen på en minnessida 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

Varför flera stackar? Nu gör användaren ett systemanrop med sin stack fylld till toppen på sidan TRAP-rutinen försöker pusha PC m.m. på stacken, men utlöser då ett sidfels-interrupt Interruptrutinen försöker pusha PC m.m. på stacken, men utlöser då ett sidfels-interrupt…

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

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

Trådar (threads) Traditionella processer har bara en exekveringstråd 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 Tänk det som att vi låter flera “processer” dela minne Processes within a process Less security, since one thread can poke in another threads data

Trådar (threads) Trådtabell PC, Register, … - Unikt för tråden Tillstånd - Unikt för tråden Adressrymd - Delas inom hela processen Stackpekare - Unikt för tråden Stackminne - Delas oftast inom processen Processes within a process Less security, since one thread can poke in another threads data Thread Single threaded OS Multi threaded OS Process

Processer och trådar Resursägande (process) Öppnade filer, minnessidor, etc. Skedulering/exekvering (tråd) Programräknare, stackpekare(!!!), register etc. Varje process har minst en exekveringstråd Multitrådning OS:et stöder flera samtidiga exekveringstrådar inom en och samma process Main thread, what function does that thread execute??? Quiz

Processer kontra trådar En adressrymd där processen exekverar Skyddas av OS:et mot andra processer vad gäller minne, filer, I/O etc. Tråd Ett exekveringstillstånd (running, ready, waiting, ...) En exekveringsstack (parametrar, lokala variabler) Kommer åt processens minne och övriga resurser I windows en tydlig skillnad: Process hänvisar till en EXE-fil Tråd hänvisar till en funktion. (Istället för att anropa en funktion så skapar man den som en tråd)

Processer kontra trådar Distinction between threads and processes from the point of view of process management. In a single-threaded process model, the representation of a process includes its process control block user address space, user and kernel stacks to manage the call/return behaviour of the execution of the process. While the process is running, it controls the processor registers. The contents of these registers are saved when the process is not running. In a multithreaded environment, there is still a single process control block and user address space associated with the process, but separate stacks for each thread, as well as a separate control block for each thread containing register values, priority, and other thread-related state information. Thus, all of the threads of a process share the state and resources of that process. They reside in the same address space and have access to the same data. When one thread alters an item of data in memory, other threads see the results if and when they access that item. If one thread opens a file with read privileges, other threads in the same process can also read from that file.

Varför trådar? Tar mindre tid att skapa och terminera än en process (slipper allokera/lämna tillbaka minne) Går snabbare med kontextbyte, minneskontexten är densamma Trådar kan kommunicera med varandra utan att behöva gå via OS:et If there is an application or function that should be implemented as a set of related units of execution, it is far more efficient to do so as a collection of threads - rather than a collection of separate processes.

Varför trådar? Trådar används ofta när ett program har flera saker den vill göra samtidigt Exempel: Rättstavning i Word Exempel: Webläsare laddar bilder parallellt Varför inte egna processer? De jobbar på delat data (Wordfil respektive websida) Mindre kostsamt än att ha flera processer Spellcheck: While writing a document, suddenly red underlining appears on various words in the document. This is performed by a thread. Internet browser: A HTML page often consists of multiple images. Each image is downloaded using a separate thread. Each thread has the task to download the image and display it on its assigned position on the page. Furthermore while downloading a page, a flashy icon is revolving in the menu bar.

Windows - trådtillstånd Initialized A state that indicates the thread has been initialized, but has not yet started. Ready A state that indicates the thread is waiting to use a processor because no processor is free. The thread is prepared to run on the next available processor. Standby A state that indicates the thread is about to use a processor. Only one thread can be in this state at a time. Wait A state that indicates the thread is not ready to use the processor because it is waiting for a peripheral operation to complete or a resource to become free. When the thread is ready, it will be rescheduled. Transition A state that indicates the thread is waiting for a resource, other than the processor, before it can execute. For example, it might be waiting for its execution stack to be paged in from disk.

Tasks Används ibland i realtidssystem som ett alternativt namn på processer I vissa språk (Ada exv.) är tasks benämningen på trådar I Linux är tasks enheten som OS:et skedulerar

Lärandemålen igen Program, process, tråd, task Programräknare, stackpekare, processorregister Kontextbyte Skedulerare Vad vet de om dessa nu?