Presentation laddar. Vänta.

Presentation laddar. Vänta.

Operativsystem - Processkedulering Mats Björkman 2015-02-02.

Liknande presentationer


En presentation över ämnet: "Operativsystem - Processkedulering Mats Björkman 2015-02-02."— Presentationens avskrift:

1 Operativsystem - Processkedulering Mats Björkman 2015-02-02

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

3 Operativsystem, © Mats Björkman, MDH 3 Lärandemål Mål för en skedulerare Preemptive, Icke-preemptive Skeduleringsalgoritmer – för- och nackdelar Beräkning av medelomloppstid

4 Operativsystem, © Mats Björkman, MDH 4 Skedulering och kontextbyte 1. Spara den exekverande processens tillstånd i processens PCB 2. Låt skeduleraren välja en ny process för exekvering 3. Ladda den nya processens tillstånd i processorn 4. Starta processorn med den nya processen

5 Operativsystem, © Mats Björkman, MDH 5 Kontextbyten är kostsamma! Den stora kostnaden för ett kontextbyte är inte själva exekveringen av kontextbytet (spara register etc.) Den stora kostnaden kommer av att det blir en massa cachemissar i systemet

6 Operativsystem, © Mats Björkman, MDH 6 Lokalitet (Locality of Reference) Programexekvering uppvisar ofta stor lokalitet i användandet av både kod och data Sannolikheten är stor att kod som just exekverats kommer att exekveras igen Likaså är sannolikheten stor att data som just accessats kommer att accessas igen

7 Operativsystem, © Mats Björkman, MDH 7 Cachning är effektivt På grund av lokalitet är det effektivt med cachning, att spara kod och data som vi använder i ett snabbare minne närmare CPU:n Cachning sker i flera nivåer: den mest intensivt använda datan ligger i register Därefter i en liten snabb cache Sedan i allt större och långsammare…

8 Operativsystem, © Mats Björkman, MDH 8 Kontextbyten bryter lokaliteten Vid ett kontextbyte tar man bort den process som precis har fyllt cacharna med kod och data som just den processen använde, och ersätter den processen med en annan process

9 Operativsystem, © Mats Björkman, MDH 9 Kontextbyten bryter lokaliteten Den nya processen vill (troligen) använda helt annan kod och andra data Den nya processen kommer att råka ut för en lång rad cachemissar eftersom den nya processens nyligen använda kod och data inte finns i cacharna

10 Operativsystem, © Mats Björkman, MDH 10 Kontextbyten bryter lokaliteten Samma sak händer med minneshanteringen, den gamla processens använda sidor finns tillgängliga i primärminnet, men troligen inte den nya processens sidor Detsamma drabbar cachar för sidtabeller

11 Operativsystem, © Mats Björkman, MDH 11 Kontextbyten bryter lokaliteten Ett kontextbyte innebär alltså att cachar för kod och data och minnessidor och cachar för sidtabeller och annat behöver fyllas på med innehåll från långsammare minnen Detta gör att den nya processen exekverar långsammare till dess allt är inläst

12 Operativsystem, © Mats Björkman, MDH 12 Kontextbyten och thrashing Kontextbyten är även en viktig orsak till thrashing Thrasing är ett oönskat tillstånd i operativsystemet när en process inte hinner få effektivt arbete gjort för att alltför stor del av tidskvantat går åt till att läsa in saker som ramlat ut ur cachar och primärminne

13 Operativsystem, © Mats Björkman, MDH 13 Kontextbyten och thrashing Problemet bakom thrashing är ett för litet tidskvantum och/eller för små minnesresurser i förhållande till processens working set, d.v.s. den uppsättning av kod och data som processen för närvarande behöver för att kunna arbeta

14 Operativsystem, © Mats Björkman, MDH 14 Kontextbyten och thrashing För lite minnesresurser gör att processens kod och data inte finns kvar i cachar och/eller primärminnet när det är dags för processen att exekvera igen För kort tidskvantum gör att processen får ägna en stor del av tidskvantat till att läsa in till primärminne och cachar

15 Operativsystem, © Mats Björkman, MDH 15 Kontextbyten och thrashing En lösning på thrashing är att öka tidskvantat, det försämrar dock responstiden En annan lösning är att minska graden av multiprogrammering, d.v.s. antalet processer som är aktiva samtidigt

16 Operativsystem, © Mats Björkman, MDH 16 Swapping Minska graden av multiprogrammering görs genom att swappa ut ett antal processer, lägga dem åt sidan en stund (görs av ”medeltidsskeduleraren”) Detta ökar förstås responstiden för de processer som blir utswappade

17 Operativsystem, © Mats Björkman, MDH 17 Swapping vs swapping För att förvirra används begreppet swapping både om att tillfälligt flytta undan processer ur readykön, och om det som borde kallas paging, att flytta minnessidor mellan primärminne och disklagring

18 Operativsystem, © Mats Björkman, MDH 18 Skedulerare Skeduleraren bestämmer vilken process som skall få exekvera, när och hur länge Flyttar aktiva processer mellan READY och RUNNING (och ev. andra tillstånd) Skeduleringen kan antingen vara Preemptive Icke-preemptive Tidskvantum/timeslice

19 Operativsystem, © Mats Björkman, MDH 19 Vad gör idle-processen? De flesta OS håller sig med en idle-process Idle-processen gör ingenting Idle-processen har lägst prioritet och exekveras endast om det inte finns någon annan process i ready-kön

20 Operativsystem, © Mats Björkman, MDH 20 Varför idle-process? Det finns flera anledningar till att vilja ha en idle-process: Förenklar implementationen av skeduleraren; det finns alltid en process att skedulera Idle-processens förbrukade CPU-tid är ett mått på hur mycket underutnyttjad CPU:n är

21 Operativsystem, © Mats Björkman, MDH 21 När skall det skeduleras? När en ny process skapas När en process avslutas/termineras När den exekverande processen blockerar exv. p.g.a. I/O eller väntan på en semafor Ett I/O-interrupt inträffar Vid preemption: när tidskvantat tagit slut

22 Operativsystem, © Mats Björkman, MDH 22 En ny process skapas Någon (en process) har bett OS:et att skapa en ny process När detta sker måste skeduleraren ta ställning till om den nya processen skall få exekvera direkt, eller om den skapande processen skall fortsätta exekvera (eller om en tredje process skall exekvera)

23 Operativsystem, © Mats Björkman, MDH 23 En process avslutas/termineras När den exekverande processen avslutas, antingen frivilligt genom att den är klar, eller genom att den termineras av en eller annan anledning, då måste en ny process väljas att exekvera

24 Operativsystem, © Mats Björkman, MDH 24 En process blockeras När den exekverande processen blockerar exv. p.g.a. I/O eller väntan på en semafor måste skeduleraren välja en annan process som skall exekvera

25 Operativsystem, © Mats Björkman, MDH 25 Ett I/O-interrupt inträffar När ett I/O-interrupt inträffar kan det betyda att en väntande process borde få exekvera Exempel: fil-I/O klar, inläsnng p.g.a. sidfel i minnet klar, nätverks-I/O (exv. inkommande paket) När något sådant inträffar finns det troligen en process i ett väntetillstånd som skall flyttas till ready-kön och som kan vara aktuell att få exekvera

26 Operativsystem, © Mats Björkman, MDH 26 När skall det skeduleras? Sammanfattningsvis, skedulera: När det blir färre processer att välja mellan (den exekverande processen är inte längre aktuell att exekvera) När det blir fler processer att välja mellan (nytillkomna i ready-kön) Vid preemption: När tidskvantat tagit slut

27 Operativsystem, © Mats Björkman, MDH 27 Tidskvantat Tidskvantats storlek är viktigt vid skedulering med preemption Varje processbyte p.g.a. att tidskvantat tar slut innebär ett kontextbyte Kontextbyten är kostsamma Alltså borde tidskvantat vara stort …men… då blir responstiden lidande

28 Operativsystem, © Mats Björkman, MDH 28 Tidskvantat Vissa system (exv. Windows) har olika eller variabelt tidskvantum för olika processer Syftet är att ge bättre responstid åt interaktiva processer utan att ha alltför små (genomsnittliga) tidskvanta

29 Operativsystem, © Mats Björkman, MDH 29 Tidskvantat - implementation Tidskvantat implementeras som ett regelbundet klockavbrott till processorn Variabla tidskvanta implementeras som att processer får exekvera en viss multipel av klockavbrott Exempel Windows: interaktiva trådar får tredubbelt tidskvantum, tråden får då exekvera till det tredje klockavbrottet innan den byts ut

30 Operativsystem, © Mats Björkman, MDH 30 Tidskvantat - implementation Klockavbrott utan omskedulering är inte alls lika kostsamma, därför funkar det att ge en process en multipel av klockavbrott som tidskvantum

31 Operativsystem, © Mats Björkman, MDH 31 Typer av system Olika typer av system kräver olika typer av skedulerare Boken ger följande tre kategorier: Batchsystem (utan interaktion med användare) Interaktiva system (med interaktion med användare) Realtidssystem (förutsägbarhet viktigt)

32 Operativsystem, © Mats Björkman, MDH 32 Typer av jobb Olika typer av jobb finns också, beroende på vilka resurser de använder mest CPU-bundna jobb utför många tunga beräkningar, exv. bildbehandling, simulering I/O-bundna jobb utför mycket I/O, exv. databassökningar, filkopieringar Dessa olika typer av jobb är inte hårt kopplade till föregående olika typer av system

33 Operativsystem, © Mats Björkman, MDH 33 Batchsystem Inte riktigt som gamla tiders batchsystem, men: Liten eller ingen interaktion med användare Ofta stora jobb (mycket data att processa) med lång körtid Tidskvantat kan vara stort, responstiden är mindre viktig än att inte slösa systemresurser på ideliga kontextbyten

34 Operativsystem, © Mats Björkman, MDH 34 Batchsystem Exempel I/O-bundna: lönekörning, bankränta, “data mining” Exempel CPU-bundna: väderprognoser, rendrering av animeringar, simuleringar

35 Operativsystem, © Mats Björkman, MDH 35 Interaktiva system System där en eller flera processer interagerar med en eller flera användare Kort responstid viktigt för att användaren skall vara glad och nöjd Tidskvantats storlek blir ett avvägande mellan kort responstid och overheadkostnad

36 Operativsystem, © Mats Björkman, MDH 36 Interaktiva system I vanliga system (Windows, UNIX, …) ligger tidskvantat typiskt mellan 10ms och 100 ms Vissa system anpassar tidskvantat efter processen. Exempelvis Windows håller reda på vilka processer/trådar som är interaktiva och ger dessa ett längre tidskvantum

37 Operativsystem, © Mats Björkman, MDH 37 Interaktiva system Interaktionen innebär i sig mycket I/O, därför är många interaktiva processer I/O-bundna Spel etc. kan vara CPU-bundna

38 Operativsystem, © Mats Björkman, MDH 38 Realtidssystem System som utför uppgifter där tidsåtgången måste vara förutsägbar Exempel: Styrsystem för bromsar och airbag i bilar, reglersystem för kärnkraftverk Ovanstående är exempel på hårda realtidssystem, system där tidskraven bara måste hållas

39 Operativsystem, © Mats Björkman, MDH 39 Realtidssystem Det finns även en klass som kallas mjuka realtidssystem Mjuka realtidssystem har fortfarande strikta tidskrav, men konsekvenserna av att inte hålla tiden är mindre Exempel på detta är uppspelning av video och audio

40 Operativsystem, © Mats Björkman, MDH 40 Realtidssystem Det är svårt för ett operativsystem att ge hårda realtidsgarantier om inte väldigt många förutsättningar är kända Exempel är att i ett hårt realtidssystem måste ofta alla processer vara kända från början och inget dynamiskt skapande av processer tillåts Ofta finns också krav på att det finns kända gränser för utnyttjande av resurser, exv. känd exekveringstid för alla processer

41 Operativsystem, © Mats Björkman, MDH 41 Realtidssystem Realtidssystem är I/O-bundna närmast som regel, de flesta styr- och reglertillämpningar har relativt enkla algoritmer och spenderar en stor del av tiden med att få in sensordata från omgivningen och skicka ut styrdata Realtidssystem som hanterar video kan använda mycket processorkraft, ofta dock på separata grafikprocessorer (GPU:er)

42 Operativsystem, © Mats Björkman, MDH 42 Vart är vi på väg? Notera gärna Tanenbaums notering att eftersom CPU-er blir snabbare snabbare än I/O blir snabbare, så blir fler och fler jobb I/O-bundna Den gamla principen att optimera för att hålla CPU:n maximalt sysselsatt kan därför diskuteras

43 Operativsystem, © Mats Björkman, MDH 43 Vart är vi på väg? En annan intressant notering (som inte är Tanenbaums utan min) är att tidskvantat inte blivit kortare i takt med att CPU:er har blivit snabbare Om processorerna blivit typ 1000 gånger snabbare på 15 år, varför är inte tidskvantat 1000 gånger kortare idag?

44 Operativsystem, © Mats Björkman, MDH 44 Vart är vi på väg? Varför? Min gissning: människor har inte blivit 1000 gånger snabbare på 15 år Den stora anledningen till korta tidskvanta är responstid för interaktiva processer För oss människor räcker en responstid i området 10-100 ms för att vi skall uppleva “samtidighet”

45 Operativsystem, © Mats Björkman, MDH 45 Olika skeduleringsalgoritmer Eftersom olika typer av system har olika krav, så är det inte säkert att den skeduleringsalgoritm som är bra för en typ av system även passar till en annan typ av system

46 Operativsystem, © Mats Björkman, MDH 46 Mål för skeduleringsalgoritmer Alla system: Rättvisa – alla processer med samma prioritet skall ges lika möjligheter att utnyttja systemets resurser Policy Enforcement (exv. safety, security) Balans i systemet – alla delar skall vara så väl utnyttjade som möjligt

47 Operativsystem, © Mats Björkman, MDH 47 Mål för skeduleringsalgoritmer Batchsystem Minimera omloppstiden (turnaround time), dvs tiden för ett jobb att utföras Maximera genomströmningen (throughput), dvs antalet jobb per tidsenhet Maximera CPU-utnyttjandet (CPU utilization)

48 Operativsystem, © Mats Björkman, MDH 48 Mål för skeduleringsalgoritmer Interaktiva system Minimera svarstiden (Response Time), användaren skall inte behöva vänta i onödan Proportionalitet, väntetiden skall stå i rimlig proportion till vad man väntar på

49 Operativsystem, © Mats Björkman, MDH 49 Mål för skeduleringsalgoritmer Realtidssystem Möta deadlines – övergripande mål för realtidsskedulering Förutsägbarhet – ett mål för de flesta realtidssystem

50 50 Skeduleringsalgoritmer

51 Operativsystem, © Mats Björkman, MDH 51 Skeduleringsalgoritmer First come first served (FCFS) Interactive programs Starvation free Efficiency Pre- emptive P1P2P3 CPU P4

52 Operativsystem, © Mats Björkman, MDH 52 Skeduleringsalgoritmer Round robin (Cirkulär kö) Interactive programs Starvation free Efficiency Pre- emptive P1 P2 P3 CPU P4 Quantum Setting the Quantum?

53 Operativsystem, © Mats Björkman, MDH 53 Skeduleringsalgoritmer Prioritetsbaserad Interactive programs Starvation free Efficiency Pre- emptive P1 Medium P2 Low P3 Low CPU P4 High

54 Operativsystem, © Mats Björkman, MDH 54 Skeduleringsalgoritmer Multipla köer Interactive programs Starvation free Efficiency Pre- emptive P1 P2 P3 CPU P4 High Medium Low Quantum = 1 unit Quantum = 2 units Quantum = 4 units P4 P1

55 Operativsystem, © Mats Björkman, MDH 55 Skeduleringsalgoritmer Shortest job first (sjf) Interactive programs Starvation free Efficiency Pre- emptive P1P2P3 CPU P4

56 Operativsystem, © Mats Björkman, MDH 56 Skeduleringsalgoritmer Lotteriskedulering Interactive programs Starvation free Efficiency Pre- emptive P1 P2 P3 P4 ? ? CPU

57 Operativsystem, © Mats Björkman, MDH 57 Skedulering i Windows Prioritetsdriven Tråden (som är ready) med högst prioritet kommer alltid att skeduleras Preemptive Trådar kan avbrytas av andra trådar Round robin inom varje prioritetsnivå Använder flera olika tidskvanta Processor affinity I multiprocessorsystem kan trådar bindas till ett subset av tillgängliga processorer

58 Operativsystem, © Mats Björkman, MDH 58 Prioritetsnivåer (interna) 16 ”realtids“-prioriteter (16-31) 15 variabla prioriteter (1-15)

59 Operativsystem, © Mats Björkman, MDH 59 Prioritetsnivåer (Win32 API) Win32 definierar: Fyra prioritetsklasser för processer: real-time, high, normal och idle Sju prioritetsnivåer för trådar: time critical, highest, above normal, normal, below normal, lowest och idle

60 Operativsystem, © Mats Björkman, MDH 60 Mappning av Win32 API-prioriteter till interna prioriteter Time critical Highest Above normal Normal Below normal Lowest Real- time 312625242322 High 15 14131211 Normal 15109876 Idle 1565432 T H R E A D P R O C E S S Idle 16 1 1 1

61 Operativsystem, © Mats Björkman, MDH 61 Justeringar i Windows av prioriteter och tidskvanta Varför gör de på detta viset? Bättre responstider Bättre throughput Exempel på justeringar Öka tidskvantat för just nu interaktiva trådar Öka prioriteten för nyss väckta trådar Öka prioritet och tidskvanta för trådar som fått vänta ett tag på CPU:n

62 62 Beräkningar av egenskaper för skeduleringsalgoritmer

63 Operativsystem, © Mats Björkman, MDH 63 Medelomloppstid (Average turnaround time) Ett mått på genomströmning Var är den genomsnittliga omloppstiden för alla processer?

64 Operativsystem, © Mats Björkman, MDH 64 Övning Beräkna medelomloppstiden för 5 batchjobb som alla vill starta vid tid=0 (i ordningen A, B, C, D, E), och som har exekveringstiderna A=10, B=6, C=2, D=4 respektive E=8. Beräkna medelomloppstiden för var och en av följande skeduleringsalgoritmer: 1. FCFS 2. SJF 3. Round Robin, kvanta = 1 enhet

65 Operativsystem, © Mats Björkman, MDH 65 Lösning - FCFS Exekveringstider A=10, B=6, C=2, D=4 och E=8 0 A 10 C 18 B 16 D 2230 E

66 Operativsystem, © Mats Björkman, MDH 66 Lösning - SJF Exekveringstider A=10, B=6, C=2, D=4 och E=8 A 300 C 2 B 12 D 620 E

67 Operativsystem, © Mats Björkman, MDH 67 Lösning - Round robin Execution times A=10, B=6, C=2, D=4 and E=8 1 6 11 15 19 22 25 27 29 30 2 7 12 16 20 23 3 8 4 9 13 17 5 10 14 18 21 24 26 28 ABCDE

68 Operativsystem, © Mats Björkman, MDH 68 Lärandemål, igen Mål för en skedulerare Preemptive, Icke-preemptive Skeduleringsalgoritmer – för- och nackdelar Beräkning av medelomloppstid

69 Operativsystem, © Mats Björkman, MDH 69 Processer, summering 00008abe : 8abe: 79 00 00 05 79 00 00 05 mov.w#0x5 8ac2:55 02 55 02 bsr.+2 (8ac6) 00008ac4 : 8ac4:54 70 54 70 rts 00008ac6 : 8ac6:19 11 19 11 sub.wr1,r1 8ac8:1d 01 1d 01 cmp.wr0,r1 8aca:4e 20 4e 20 bgt.+32 (8aec) 00008acc : 8acc:0d 13 0d 13 mov.wr1,r3 8ace:09 33 09 33 add.wr3,r3 8ad0:6b 02 a8 d4 6b 02 a8 d4 mov.w@0xa8d4:16,r2 8ad4:09 32 09 32 add.wr3,r2 8ad6:6b 82 a8 d4 6b 82 a8 d4 mov.wr2,@0xa8d4:16 8ada:09 13 09 13 add.wr1,r3 8adc:6b 02 a8 d6 6b 02 a8 d6 mov.w@0xa8d6:16,r2 8ae0:09 32 09 32 add.wr3,r2 8ae2:6b 82 a8 d6 6b 82 a8 d6 mov.wr2,@0xa8d6:16 8ae6:0b 01 0b 01 adds#0x1,er1 8ae8:1d 01 1d 01 cmp.wr0,r1 8aea:4f e0 4f e0 ble.-32 (8acc) 00008aec : 8aec:54 70 54 70 rts PC SP REGS P R I O R I T Y T I M E A B y=0 t0t0 t1t1 t2t2 t3t3 t4t4 y++ I KONTEXTBYTE PSEUDOPARALLELL MULTITASKING CPU SKEDULERARE EGENSKAPER KRAV SYNKRONISERING SEMAFORER MEDDELADESYSTEMN


Ladda ner ppt "Operativsystem - Processkedulering Mats Björkman 2015-02-02."

Liknande presentationer


Google-annonser