Schedulering dopsys 1
Re: Schedulering af processer.. administration af CPU-resursen. Ready List (RL) processer i ready_a, ready_s, eller running tilstand. dopsys 2
Re: Schedulering af processer.. administration af CPU-resursen. #ready_a >> #CPU => behov for scheduler Ready List (RL) processer i ready_a, ready_s, eller running tilstand. dopsys 2
Indlejret vs. autonom scheduler Indlejret (embedded): en del af hver proces, kaldes via systemkald el.lign. Autonom: selvstændig proces, evt. på egen CPU dopsys 4
Schedulering.. typisk baseret på prioriteter (statiske eller dynamiske): dopsys 5
Basal algoritmestruktur Scheduler() { do { Find highest priority ready_a process p; Find a free CPU cpu; if (cpu!= NULL) Allocate_CPU(p,cpu); } while (cpu!= NULL); do { Find highest priority ready_a process p; Find lowest priority running process q; if (Prio(p) > Prio(q)) Preempt(p,q); } while (Prio(p)> Prio(q)); if (self->status.type!= running ) Preempt(p,self); } Pointer: brug alle CPUer + lad de vigtigste processer køre NB: særlige forhold omkring self ikke vist! dopsys 6
Designvalg i schedulering Beslutningsform (Decision mode): hvornår sker aktivering? Nonpreemptive: running proces kan ikke fratages CPU en. Proces terminerer. Proces blokerer. Proces skabes, og der er en ledig CPU. Preemptive: running proces kan blive frataget CPU en (typisk timer). Proces start. Proces af-blokering. Tidskvantum for running proces er opbrugt. En ready proces med højere prioritet end en running proces. Prioritetsfunktion: tildeler prioritet til hver proces. Arbitreringsregel: valg mellem processer med samme prioritet. dopsys 7
Kvalitetsparametre A.S. Tanenbaum Modern Operating Systems, Prentice-Hall, 2nd Edition, 2001. dopsys 8
Oversigt over algoritmer dopsys 9
Oversigt over algoritmer Batch dopsys 9
Oversigt over algoritmer Batch Interaktive dopsys 9
Oversigt over algoritmer Batch Interaktive Real-tids dopsys 9
Oversigt over algoritmer Batch Interaktive Real time in system Attained service time Total service time Real-tids dopsys 9
Batch algoritmer Process arrival service p1 p2 p3 t t t+3 4 2 1 SJF Rækkefølgen er ikke ligegyldig: forskellige process turnaround tider dopsys 11
Oversigt over algoritmer Batch Interaktive Real-tids dopsys 9
Oversigt over algoritmer Batch Interaktive Real-tids External priority No. of priority levels Max time at top level dopsys 9
Round-Robin (RR).. baseret på et quantum q (tidsenheder): q tidsenheder Decision mode: preemption efter q tidsenheder. Prioritets funktion: P = 0 (alle har samme prioritet). Arbitration regel: typisk baseret på kø-struktur. Afvejning mellem responstid og context-switch overhead. Men hvordan behandles I/O bundne processer? dopsys 13
[Click] Hvordan behandles en I/O-bundet proces under RR? q tidsenheder A. Den bliver behandlet godt: kører en stor del af tiden B. Den bliver behandlet ligesom alle andre C. Den bliver behandlet skidt: kører kun lidt D. Det afhænger helt af I/O-enhedens opførsel E. Ved ikke dopsys 13
Multilevel Priority (ML)..prioritetsklasser 0..n-1: Nonpreemptive: Preemptive: FIFO indenfor hver prioritetsklasse. RR indenfor hvor prioritetsklasse. dopsys 14
[Q/A]..prioritetsklasser 0..n-1: Nonpreemptive: Preemptive: FIFO indenfor hver prioritetsklasse. RR indenfor hvor prioritetsklasse. dopsys 14
[Q/A]..prioritetsklasser 0..n-1: Nonpreemptive: Preemptive: Med statiske prioriteter - Hvordan kommer FIFO indenfor hver prioritetsklasse. disse her til at køre? RR indenfor hvor prioritetsklasse. dopsys 14
Multi-level Feedback (MLF).. ML med dynamiske prioriteter: Priority Max time New arrivals (and unblocked) Error Processes exceeding maximum time Nonpreemptive: Preemptive: FIFO indenfor hver prioritetsklasse. RR indenfor hvor prioritetsklasse. dopsys 16
Oversigt over algoritmer Batch Interaktive Real-tids dopsys 9
Oversigt over algoritmer Batch Interaktive Real-tids Period alle processer kører periodisk! dopsys 9
Real-time algoritmer: RM vs. EDF dopsys 18
Real-time algoritmer: RM vs. EDF Er RM og EDF så ikke bare lige gode? dopsys 18
Real-time algoritmer: RM vs. EDF CPU utilization: 1.5/4+3/5 = 0.975 < 1 dopsys 19
Real-time algoritmer: RM vs. EDF CPU utilization: 1.5/4+3/5 = 0.975 < 1 Nej, de er ikke lige gode: RM er ikke optimal, men det er EDF dopsys 19
[Click] CPU utilization: 1.5/4+3/5 = 0.975 < 1 A. CPU util. > 1: der kan sommetider scheduleres B. CPU util. < 1: der kan altid scheduleres C. CPU util. < 1: der kan sommetider scheduleres D. CPU util. > 1: der kan altid scheduleres E. Ved ikke dopsys 19
Schedulering i Linux 2.2.. baseret på dynamisk prioritet (goodness): Goodness New arrivals To prioritetsklasser: 1. Real-time: Statiske prioriteter, FIFO og RR processer 2. Regular: Dynamisk prioritet Realtime Regular 1000 + real-time priority (static: FIFO or RR) Goodness (if rem. quantum >0) Remaining quantum Base quantum Goodness (if rem. quantum=0) dopsys 20
spørgsmål om scheduleringsalgoritmer? dopsys 21
Prioritets-invertering.. lavprioritetsproces forhindrer proces med høj prioritet i at køre: p1: P(mutex); CS_1; V(mutex); p2: program 2 p3: P(mutex); CS_3; V(mutex); dopsys 22
Prioritets-invertering Kritiske regioner gøres nonpreemptible: Processer i kritisk region kan ikke afbrydes. Kan implementeres ved at inhibit/enable interrupts i kritisk region. Højprioritetsproces kan ikke få CPU-adgang når kritisk region udføres. Kritiske region udføres med højeste anvender-prioritet: Reducerer effekt af manglende CPU adgang for højprioritetsprocesser. Dynamic priority inheritance: Hvis proces q med lav prioritet blokerer proces p med højere prioritet sættes P(q) = P(p). Kan implementeres som en del af semafor-primitiverne. dopsys 23
Mars Pathfinder.. landede på Mars 4. juli, 1997. vxworks - real-time embedded systems OS kernel Preemptive priority scheduling. Informationsbus (delt lager) beskyttet af mutexes. System reset ifm. indsamling af meteorologisk data. dopsys 24
Processer: Mars Pathfinder Bus management task (høj prioritet / lille periode). Kommunikations task (medium priority). Data opsamlings task (lav prioritet / stor periode). Bus management task Kommunikations task Data opsamlings task Mutex ikke sat til dynamic priority inheritance! dopsys 25
Processer: Mars Pathfinder Bus management task (høj prioritet / lille periode). Kommunikations task (medium priority). Data opsamlings task (lav prioritet / stor periode). Bus management task Kommunikations task interrupt Data opsamlings task Mutex ikke sat til dynamic priority inheritance! dopsys 25
Processer: Mars Pathfinder Bus management task (høj prioritet / lille periode). Kommunikations task (medium priority). Data opsamlings task (lav prioritet / stor periode). deadline! Bus management task Kommunikations task interrupt Data opsamlings task Mutex ikke sat til dynamic priority inheritance! dopsys 25
Opsummering Scheduleringsalgoritmer: Embedded/autonomous & generel algoritmeskitse Batch: FIFO, SJF, SRT (avg. turnaround) Interactive: RR, ML, MLF Real-time: RM, EDF (CPU util., feasible/optimal) Priority Inversion: Begreb, løsninger Eksempel: Mars Pathfinder dopsys 26