Slide dal Dipartimento di Scienze Matematiche, Informatiche e Fisiche su CPU Scheduling. Il Pdf esplora lo scheduling della CPU in Informatica a livello universitario, trattando argomenti come CPU-burst, I/O-burst e le differenze tra scheduling preemptive e non-preemptive, con un caso di studio sull'algoritmo First Come First Served (FCFS).
Mostra di più26 pagine


Visualizza gratis il Pdf completo
Registrati per accedere all’intero documento e trasformarlo con l’AI.
A. Formisano Dipartimento di Scienze Matematiche, Informatiche e Fisiche Anno Accademico 2024-25 Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 1
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 2
Problema di scheduling In generale, risolvere un problema di scheduling consiste nel mappare un certo numero di compiti su un (diverso) numero di esecutori, in modo da realizzare gli obiettivi globali del sistema rispettando un prefissato insieme di vincoli Lo scheduling è un aspetto cruciale nei moderni sistemi di calcolo e, in forme più o meno sofisticate, viene applicato a tutte le risorse del sistema (CPU, device, dischi, ... ) In quanto segue ci occuperemo inizialmente dello scheduling della CPU (o short-term scheduling) in sistemi con una sola CPU Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 4
I principali eventi che possono causare uno switch di contesto (e che quindi fanno entrare in gioco lo scheduler):
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 5
Lo scheduler sceglie quale processo eseguire. Successivamente il dispatcher:
Il tempo impiegato per fare ciò è detto latenza di dispatch Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 6
Molti parametri possono essere rilevanti nel progetto di uno scheduler:
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 7
Diversi, spesso antitetici, sono gli obiettivi che si potrebbe voler ottimizzare:
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 8
Dal punto di vista dell'utente:
Dal punto di vista del sistema:
Si noti che sia lo scheduler che il dispatcher rappresentano dei bottleneck del S.O. Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 9
Il comportamento tipico di un processo consiste nell'alternare sequenze di operazioni d'elaborazione (CPU-burst) a sequenze di operazioni di I/O (I/O-burst), terminando con un CPU-burst Sistemi Operativi e Lab. 24/25 . . . 1 load store add store read from file CPU burst wait for I/O I/O burst store increment index write to file CPU burst wait for I/O I/O burst load store add store read from file CPU burst wait for I/O I/O burst . . . A. Formisano, DMIF 10
Processi CPU-bound avranno pochi CPU-burst lunghi (P1), mentre processi I/O-bound avranno molti CPU-burst brevi (P2): P1 1 Attesa completamento I/O CPU-burst lungo CPU-burst breve P2 tempo Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 11
Many short CPU bursts frequency 160 140 120 100 80 60 40 20 burst duration (ms) 8 16 24 32 40 Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 12
Lo schema di scheduling può essere con o senza diritto di prelazione
Il nonpreemptive scheduling è tipico dei sistemi batch. Il preemptive scheduling evita che i processi "meno" importanti ostacolino quelli critici, ma comporta un overhead di gestione. Un problema da affrontare riguarda la preemption attuata in modalità kernel: potrebbe portare a uno stato inconsistente del kernel Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 13
Nel descrivere le diverse politiche di scheduling faremo uso di un esempio. Supponiamo di schedulare i seguenti processi. Per semplicità consideriamo un singolo CPU-burst per processo e supponiamo siano note le durate e gli istanti di inizio:
Processo (1 CPU-burst) Tempo di arrivo del burst Durata del burst A 0 3 B 2 6 C 4 4 D 6 5 E 8 2 Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 15
Selezione: Si seleziona il processo che è in nella ready-queue da più tempo. Ovvero: i processi vengono serviti nell'ordine in cui sono entrati nella ready-queue Decisione: nonpreemptive
0 5 10 15 20 P T D A 0 3 A B 2 6 B C 4 4 D 6 5 E 8 2 E Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 16 C D
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 17
Questa politica privilegia i processi CPU-bound
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 18
Questo algoritmo (come il successivo) cerca di ovviare ai difetti di FCFS Selezione: Si seleziona il processo che avrà il prossimo CPU-burst più breve. Decisione: nonpreemptive (È anche detto SPN o scheduling per brevità)
0 5 10 15 20 P T D A 0 3 A B 2 6 B C 4 4 C D 6 5 D E 8 2 E Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 19
Selezione: È la variante con preemption di SJF:
Decisione: preemptive
0 5 10 15 20 P T D A 0 3 B 2 6 C 4 4 B D 6 5 C E 8 2 D E - - Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 20 1 1 A
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 21
La previsione/stima della durata del prossimo CPU-burst di un processo può essere compiuta basandosi sui suoi CPU-burst del passato. Si utilizza la media esponenziale: Tn+1 = atn + (1 - a)Tn dove tn è la durata dell'n-esimo CPU-burst cioè la storia recente, mentre Tn rappresenta il contributo della storia remota Sviluppando il termine n-esimo si ottiene: Tn+1= atn + (1 - a)atn-1+ (1 - a)2atn-2+ ... + (1 - a)"+ T0 con To e 0 < a ≤ 1 costanti predefinite. In particolare & permette di modulare il peso della storia recente/remota. Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 22
Selezione: si seleziona il processo che ha il Response Ratio R maggiore, dove R = ta +ts ts con ta il tempo che il processo ha speso in attesa di ottenere la CPU, e ts la durata prevista del CPU-burst del processo Decisione: nonpreemptive
0 5 10 15 20 P T D A 0 3 A B 2 6 B C 4 4 D 6 5 C E 8 2 D E - - Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 23
Alcune considerazioni:
Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 24