Scheduling della CPU. Concetti base. Criteri di Scheduling. Algoritmi di Scheduling
|
|
|
- Carmela Pinto
- 10 anni fa
- Visualizzazioni
Transcript
1 Scheduling della CPU Concetti base Criteri di Scheduling Algoritmi di Scheduling 1
2 Scheduling di processi Obbiettivo della multiprogrammazione: esecuzione contemporanea di alcuni processi in modo da massimizzare l uso della CPU Obbiettivo del time-sharing: commutare l uso della CPU tra diversi processi in modo da far interagire gli utenti con ciascun programma in esecuzione Lo scheduler gestisce l avvicendamento dei processi in CPU Decide quale processo deve essere in esecuzione ogni istante interviene quando viene richiesta un operazione di I/O e quando un operazione di I/O termina, ma anche periodicamente per assicurare il buon funzionamento del sistema 2
3 Tipi di Scheduler Lo scheduler di lungo termine seleziona quali processi creare (e quindi aggiungere alla coda ready) fra quelli che non hanno ancora iniziato la loro esecuzione. Viene usato nei sistemi batch. Nei sistemi interattivi tipo Unix, appena lanciato il programma viene creato il relativo processo Lo scheduler di breve termine seleziona quali processi ready devono essere eseguiti, e quindi assegna la CPU. Lo scheduler di medio termine gestisce i procesi bloccati per lunghe attese. L immagine di tali processi può venire copiata in memoria secondaria (disco) al fine di ottimizzare l uso della memoria centrale (swap-out) 3
4 Dispatcher Il dispatcher è il modulo che dà il controllo della CPU al processo selezionato dallo scheduler di breve termine. Questo comporta switch di contesto passaggio della CPU da modo supervisore a modo user salto alla locazione del programma utente per riprendere il processo È essenziale che sia veloce La latenza di dispatch è il tempo necessario per fermare un processo e riprenderne un altro 4
5 Quando interviene lo scheduler a breve termine? Eventi che possono causare l intervento dello scheduler (e un possibile context switch) 1. quando un processo passa da running a waiting (system call bloccante, operazione I/O) 2. quando un processo passa da running a ready (a causa di un interrupt) 3. quando un processo passa da waiting a ready 4. termina nelle condizioni 1 e 4 l unica scelta è selezionare un altro processo (occorre quindi effettuare un context switch) nelle condizioni 2 e 3 è possibile continuare ad eseguire lo stesso processo 5
6 Tipi di scheduler Scheduler non-preemptive o cooperativo Se i context switch avvengono solo nelle condizioni 1 e 4 Cioè: il controllo della risorsa viene trasferito solo se l assegnatario attuale lo cede volontariamente Es. Windows 3.1, Mac OS versione < 8 Scheduler preemptive Se i context switch possono avvenire in ogni condizione Cioè: è possibile che il controllo della risorsa venga tolto all assegnatario attuale a causa di un evento Es. tutti gli scheduler moderni 6
7 Tipi di scheduler Vantaggi dello scheduling cooperativo non richiede meccanismi hardware come ad esempio timer programmabili Vantaggi dello scheduling preemptive permette di utilizzare al meglio le risorse 7
8 Criteri di scelta di uno scheduler Utilizzo della CPU: percentuale di tempo in cui la CPU viene utilizzata per eseguire processi deve essere massimizzato Throughput (produttività): numero di processi completati nell unità di tempo dipende dalla lunghezza dei processi deve essere massimizzato 8
9 Tempo di turnaround (completamento): tempo che intercorre dalla creazione di un processo alla sua terminazione (include tempi di attesa) deve essere minimizzato Tempo di attesa: il tempo trascorso da un processo nella coda ready deve essere minimizzato Tempo di risposta: tempo he intercorre fra la creazione e il tempo della prima risposta (è pensato per sistemi time-sharing) deve essere minimizzato
10 Caratteristiche dei processi Durante l esecuzione di un processo si alternano periodi di attività svolte dalla CPU (CPU burst) e periodi di attività di I/O (I/O burst) I processi caratterizzati da CPU burst molto lunghi si dicono CPU bound caratterizzati da I/O burst molto lunghi si dicono I/O bound 9
11 Diagrammi di Gantt Per rappresentare uno schedule si usani i diagrammi di Gantt Ad esempio nel diagramma P 1 P 2 P la risorsa (CPU) viene utilizzata dal processo P 1 dal tempo 0 al tempo 24 dal processo P 2 dal tempo 24 al tempo 27 dal processo P 3 dal tempo 27 al tempo 30 10
12 Algoritmi di Scheduling First-Come First-Served (FCFS) Shortest Job First Scheduling con priorità Round Robin Scheduling con code multiple (e feedback) Schedulazione garantita Schedulazione a lotteria Scheduling multi-processore Scheduling real-time Esempi: Scheduling Unix e Windows
13 Scheduling First-Come, First-Served (FCFS) Algoritmo Il processo che arriva per primo viene servito per primo politica senza preemption Implementazione tramite una coda (politica FIFO) Problemi elevati tempi medi di attesa e turnaround (tempo che intercorre tra creazione a terminazione) i processi CPU bound possono ritardare i processi I/O bound 12
14 FCFS - Esempio Consideriamo i seguenti processi e tempi di esecuzione in CPU: Processo Burst Time P 1 24 P 2 3 P 3 3 Il diagramma di Gantt con l ordine di arrivo P 1, P 2, P 3 è come segue: P 1 P 2 P Tempi di attesa: P 1 = 0; P 2 = 24; P 3 = 27 Tempo di attesa medio: ( )/3 = 17 13
15 FCFS - Esempio Supponiamo che i processi arrivino invece nell ordine P 2, P 3, P 1. Diagramma di Gantt: P 2 P 3 P Tempi di attesa: P 1 = 6; P 2 = 0; P 3 = 3 Tempo di attesa medio: ( )/3 = 3 14
16 FCFS - Esempio Supponiamo di avere un processo CPU bound P 1 un certo numero di processi I/O bound P 2 P 3... i processi I/O bound si mettono in coda dietro al processo CPU bound, ed in alcuni casi la ready queue si può svuotare 15
17 Effetto convoglio: P1, P2, P3,...entrano in coda in sequenza P1 esegue in CPU per un lungo periodo (CPU bound!) P1 esegue una operazione di I/O (lascia la CPU) P2 va in CPU, esegue subito un operazione di I/O (I/O bound!) e quindi lascia la CPU P3 va in CPU, esegue subito un operazione di I/O, lascia la CPU... la coda ready è vuota e quindi la CPU rimane inutilizzata P1 ha terminato l operazione ed esegue di nuovo in CPU...
18 Scheduling Shortest-Job-First (SJF) Algoritmo Si associa ad ogni processo la lunghezza del suo prossimo burst di CPU. I processi vengono ordinati e schedulati per tempi crescenti. SJF è ottimale: fornisce il minimo tempo di attesa per un dato insieme di processi. È impossibile da implementare in pratica (non si può predire il tempo di CPU necessario ad un programma!) Si possono fornire solo delle approssimazioni Si può verificare starvation 16
19 Esempio di SJF Processo Arrival Time Burst Time P P P P P 1 P 3 P 2 P Tempo di attesa medio = ( )/4 = 4 17
20 Come determinare la lunghezza del prossimo ciclo di burst? Si può solo dare una stima Nei sistemi batch, il tempo viene stimato dagli utenti Nei sistemi time sharing, possono essere usati i valori dei burst precedenti, con una media pesata esponenziale 1. t n = tempo dell n-esimo burst di CPU 2. τ n+1 = valore previsto per il prossimo burst di CPU 3. α parametro, 0 α 1 4. Calcolo: τ n+1 := αt n + (1 α)τ n 18
21 Esempi di media esponenziale Espandendo la formula: τ n+1 = αt n + (1 α)αt n (1 α) j αt n j (1 α) n+1 τ 0 Se α = 0: τ n+1 = τ 0 la storia recente non conta Se α = 1: τ n+1 = t n Solo l ultimo burst conta Valore tipico per α: 0.5; in tal caso la formula diventa τ n+1 = t n + τ n 2 19
22 Predizione con media esponenziale 12 τ i 10 8 t i time CPU burst (t i ) "guess" (τ i )
23 Approssimazioni di SJF Esistono due versioni per le approssimazioni di SJF (basate ad esempio sulla predizione del CPU burst) Non preemptive: Il processo corrente esegue fino al completamento del suo CPU burst Preemptive o Shortest-Remaining-Time First (SRTF) Il processo corrente può essere messo nella coda ready, se arriva un processo con un CPU burst più breve di quanto rimane da eseguite al processo corrente 21
24 Esempio di SRTF Processo Arrival Time Burst Time P P P P P 1 P 2 P 3 P 2 P 4 P Tempo di attesa medio = ( )/4 = 3 22
25 Scheduling a priorità Un numero (intero) di priorità è associato ad ogni processo La CPU viene allocata al processo con la priorità più alta (intero più piccolo priorità più grande) Le priorità possono essere definite internamente: in base a parametri misurati dal sistema sul processo (tempo di CPU impiegato, file aperti, memoria, interattività, uso di I/O...) esternamente: importanza del processo, dell utente proprietario, dei soldi pagati,... Gli scheduling con priorità possono essere preemptive o nonpreemptive SJF è uno scheduling a priorità, dove la priorità è il prossimo burst di CPU previsto 23
26 Scheduling con priorità (cont.) Problema: starvation i processi a bassa priorità possono venire bloccati da un flusso continuo di processi a priorità maggiore vengono eseguiti quando la macchina è molto scarica oppure possono non venire mai eseguiti Soluzione: invecchiamento (aging) con il passare del tempo, i processi non eseguiti aumentano la loro priorità 24
27 Round Robin (RR) Algoritmo È basato sul concetto di quanto di tempo (time-slice) Un processo non può rimanere in esecuzione per un tempo superiore alla durata del quanto di tempo (tipicamente millisecondi) 25
28 RR - Implementazione L insieme dei processi ready è organizzato come una coda Vi sono due possibilità: un processo rilascia volontariamente la CPU (ad esempio operazione I/O) un processo esaurisce il suo quanto di tempo sena completare il suo CPU burst, nel qual caso viene aggiunto in fondo alla coda dei processi ready In entrambi i casi il prossimo processo da eseguire è il primo della coda ready Se ci sono n processi in ready, e il quanto è q, allora ogni processo riceve 1/n del tempo di CPU in periodi di durata massima q. Nessun processo attende più di (n 1)q 26
29 Esempio: RR con quanto = 20 Processo Burst Time P 1 53 P 2 17 P 3 68 P 4 24 Diagramma di Gantt P P 1 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P Tipicamente, si ha un tempo di turnaround medio maggiore, ma minore tempo di risposta 27
30 Prestazioni dello scheduling Round-Robin q grande degenera nell FCFS q piccolo q deve comunque essere grande rispetto al tempo di context switch, altrimenti l overhead è elevato process time = quantum context switches L 80% dei CPU burst dovrebbero essere inferiori a q 28
31 Prestazioni dello scheduling Round-Robin (Cont.) average turnaround time process P 1 P 2 P 3 P 4 time time quantum 29
32 Scheduling con code multiple La coda di ready è partizionata in più code separate: ad esempio, processi foreground (interattivi), processi background (batch) highest priority system processes interactive processes interactive editing processes batch processes student processes lowest priority 30
33 Scheduling con code multiple (Cont.) Ogni coda ha un suo algoritmo di scheduling; ad esempio, RR per i foreground, FCFS o SJF per i background Lo scheduling deve avvenire tra tutte le code: alternative Scheduling a priorità fissa: eseguire i processi di una coda solo se le code di priorità superiore sono vuote. possibilità di starvation. Quanti di tempo per code: ogni coda riceve un certo ammontare di tempo di CPU per i suoi processi; ad es., 80% ai foreground in RR, 20% ai background in FCFS 31
34 Scheduling a code multiple con feedback I processi vengono spostati da una coda all altra, dinamicamente. Aging: se un processo ha usato recentemente molta CPU, viene spostato in una coda a minore priorità poca CPU, viene spostato in una coda a maggiore priorità Uno scheduler a code multiple con feedback viene definito dai seguenti parametri: numero di code algoritmo di scheduling per ogni coda come determinare quando promuovere un processo come determinare quando degradare un processo come determinare la coda in cui mettere un processo che entra nello stato di ready 32
35 Esempio di code multiple con feedback quantum = 8 Tre code: Q 0 quanto di 8 msec Q 1 quanto di 16 msec Q 2 FCFS Scheduling: quantum = 16 FCFS Un nuovo job entra in Q 0, dove viene servito FCFS con prelazione. Se non termina nei suoi 8 millisecondi, viene spostato in Q 1. Nella coda Q 1, ogni job è servito FCFS con prelazione, quando Q 0 è vuota. Se non termina in 16 millisecondi, viene spostato in Q 2. Nella coda Q 2, ogni job è servito FCFS senza prelazione, quando Q 0 e Q 1 sono vuote. 33
36 Schedulazione garantita Si promette all utente un certo quality of service (che poi deve essere mantenuto) Esempio: se ci sono n utenti, ad ogni utente si promette 1/n della CPU. Implementazione: per ogni processo T p si tiene un contatore del tempo di CPU utilizzato da quando è stato lanciato. il tempo di cui avrebbe diritto è t p = T/n, dove T = tempo trascorso dall inizio del processo. priorità di P = T p /t p più è bassa, maggiore è la priorità 34
37 Schedulazione a lotteria Semplice implementazione di una schedulazione garantita Esistono un certo numero di biglietti per ogni risorsa Ogni utente (processo) acquisisce un sottoinsieme di tali biglietti Viene estratto casualmente un biglietto, e la risorsa viene assegnata al vincitore Per la legge dei grandi numeri, alla lunga l accesso alla risorsa è proporzionale al numero di biglietti I biglietti possono essere passati da un processo all altro per cambiare la priorità (esempio: client/server) 35
38 Scheduling multi-processore (cenni) Lo scheduling diventa più compesso quando più CPU sono disponibili Sistemi omogenei: è indiff. su quale processore esegue il prossimo task Può comunque essere richiesto che un certo task venga eseguito su un preciso processore (pinning) Bilanciare il carico (load sharing) tutti i processori selezionano i processi dalla stessa ready queue problema di accesso condiviso alle strutture del kernel Asymmetric multiprocessing (AMP): solo un processore per volta può accedere alle strutture dati del kernel semplifica il problema, ma diminuisce le prestazioni (carico non bilanciato) Symmetric multiprocessing (SMP): condivisione delle strutture dati. Serve hardware particolare e di controlli di sincronizzazione in kernel 36
39 Scheduling Real-Time Hard real-time: si richiede che un task critico venga completato entro un tempo ben preciso e garantito. prenotazione delle risorse determinazione di tutti i tempi di risposta: non si possono usare memorie virtuali, connessioni di rete,... solitamente ristretti ad hardware dedicati Soft real-time: i processi critici sono prioritari rispetto agli altri possono coesistere con i normali processi time-sharing lo scheduler deve mantenere i processi real-time prioritari la latenza di dispatch deve essere la più bassa possibile adatto per piattaforme general-purpose, per trattamento di audio-video, interfacce real-time,... 37
40 Minimizzare il tempo di latenza Un kernel non prelazionabile è inadatto per sistemi real-time: un processo non può essere prelazionato durante una system call Punti di prelazionabilità (preemption points): in punti sicuri delle system call di durata lunga, si salta allo scheduler per verificare se ci sono processi a priorità maggiore Kernel prelazionabile: tutte le strutture dati del kernel vengono protette con metodologie di sincronizzazione (semafori). In tal caso un processo può essere sempre interrotto. Inversione delle priorità: un processo ad alta priorità deve accedere a risorse attualmente allocate da un processo a priorità inferiore. protocollo di ereditarietà delle priorità: il processo meno prioritario eredita la priorità superiore finché non rilascia le risorse. 38
41 Scheduling di breve termine in Unix tradizionale (fino a 4.3BSD e SVR3) a code multiple, round-robin ogni processo ha una priorità di scheduling; numeri più grandi indicano priorità minore Feedback negativo sul tempo di CPU impiegato Invecchiamento dei processi per prevenire la starvation Quando un processo rilascia la CPU, va in sleep in attesa di un event Quando l evento occorre, il kernel esegue un wakeup con l indirizzo dell evento e il processo asleep in testa alla coda sull evento viene messo nella coda di ready (*) I processi che erano in attesa di un evento in modo kernel rientrano con priorità negativa e non soggetta a invecchiamento 39
42 (*) Nota: In Unix tradizionale gli eventi sono mappati in indirizzi del kernel Eventi diversi possono essere mappati nello stesso indirizzo kernel (ad es. attesa su un buffer e attesa di completamento di I/O vengono mappati sull indirizzo del buffer) Più processi possono essere asleep sullo stesso indirizzo kernel Il kernel non tiene traccia di quanti processi sono in attesa A seguito di una wakeup tutti i processi in attesa su un evento vengono risvegliati e spostati nello stato Ready Tuttavia molti di essi torneranno subito asleep
43 Scheduling in Unix tradizionale (Cont.) 1 quanto = 5 o 6 tick = 100 msec alla fine di un quanto, il processo viene prelazionato quando il processo j rilascia la CPU viene incrementato il suo contatore CPU j di uso CPU viene messo in fondo alla stessa coda di priorità riparte lo scheduler su tutte le code 1 volta al secondo, vengono ricalcolate tutte le priorità dei processi in user mode (dove nice j è un parametro fornito dall utente): CPU j = CPU j /2 (fading esponenziale) P j = CPU j + nice j I processi in kernel mode non cambiano priorità. 40
44 Scheduling in Unix tradizionale (Cont.) In questo esempio, 1 secondo = 4 quanti = 20 tick Tempo Processo A Processo B Processo C Pr A CPU A Pr B CPU B Pr C CPU C
45 Scheduling in Unix tradizionale (Cont.) Considerazioni Adatto per time sharing generale Privilegiati i processi I/O bound - tra cui i processi interattivi Garantisce assenza di starvation per CPU-bound e batch Quanto di tempo indipendente dalla priorità dei processi Non adatto per real time Non modulare, estendibile Inoltre il kernel 4.3BSD e SVR3 non era prelazionabile e poco adatto ad architetture parallele. 42
46 Scheduling in Unix moderno (4.4BSD, SVR4 e successivi) Applicazione del principio di separazione tra il meccanismo e le politiche Meccanismo generale 160 livelli di priorità (numero maggiore priorità maggiore) ogni livello è gestito separatamente, event. con politiche differenti classi di scheduling: per ognuna si può definire una politica diversa intervallo delle priorità che definisce la classe algoritmo per il calcolo delle priorità assegnazione dei quanti di tempo ai varî livelli migrazione dei processi da un livello ad un altro Limitazione dei tempi di latenza per il supporto real-time inserimento di punti di prelazionabilità del kernel con check del flag kprunrun, settato dalle routine di gestione eventi 43
47 Scheduling in Unix moderno (4.4BSD, SVR4 e successivi) Assegnazione di default: 3 classi Real time: possono prelazionare il kernel. Hanno priorità e quanto di tempo fisso. Kernel: prioritari su processi time shared. Hanno priorità e quanto di tempo fisso. Ogni coda è gestita FCFS. Time shared: per i processi normali. Ogni coda è gestita round-robin, con quanto minore per priorità maggiore. Priorità variabile secondo una tabella fissa: se un processo termina il suo quanto, scende di priorità. Priority Class Real-time Kernel Time-shared Global Value Scheduling Sequence first last 44
48 Considerazioni sullo scheduling SVR4 Flessibile: configurabile per situazioni particolari Modulare: si possono aggiungere altre politiche (p.e., batch) Le politiche di default sono adatte ad un sistema time-sharing generale manca(va) uno scheduling real-time FIFO (aggiunto in Solaris, Linux,...) 45
49 Scheduling di Windows 2000 Un thread esegue lo scheduler quando esegue una chiamata bloccante comunica con un oggetto (per vedere se si sono liberati thread a priorità maggiore) alla scadenza del quanto di thread Inoltre si esegue lo scheduler in modo asincrono: Al completamento di un I/O allo scadere di un timer (per chiamate bloccanti con timeout) 46
50 Scheduling di Windows 2000 I processi possono settare la classe priorità di processo (SetPriorityClass) I singoli thread possono settare la priorità di thread (SetThreadPriority) Queste determinano la priorità di base dei thread come segue: Win32 process class priorities Above Below Realtime High Normal Normal Normal Idle Time critical Highest Win32 Above normal thread Normal priorities Below normal Lowest Idle
51 Scheduling di Windows 2000 I thread (NON i processi) vengono raccolti in code ordinate per priorità, ognuna gestita round robin. Quattro classi: system ( real time, ma non è vero), utente, zero, idle. Priority 31 Next thread to run System priorities User priorities 8 Zero page thread 1 0 Idle thread 48
52 Solo lo zero page thread assume priorità zero (è un thread del kernel che si occupa di ripulire le pagine di memoria quando sono rilasciate da altri thread) Lo scheduler sceglie sempre dalla coda a priorità maggiore La priorità di un thread utente può essere temporaneamente maggiore di quella base (spinte) per thread che attendevano dati di I/O (spinte fino a +8) per dare maggiore reattività a processi interattivi (+2) per risolvere inversioni di priorità
Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling
SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time
Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1
SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time
Sistemi Operativi SCHEDULING DELLA CPU
Sistemi Operativi SCHEDULING DELLA CPU Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling
Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base
Scheduling Sistemi Operativi e Distribuiti A.A. 2-25 Bellettini - Maggiorini Concetti di base Il massimo utilizzo della CPU si ottiene mediante la multiprogrammazione Ogni processo si alterna su due fasi
Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst
Impossibile visualizzare l'immagine. Scheduling della CPU Concetti di base La multiprogrammazione cerca di ottenere la massima utilizzazione della CPU. L esecuzione di un processo consiste in cicli d esecuzione
Scheduling della CPU:
Coda dei processi pronti (ready( queue): Scheduling della CPU primo ultimo PCB i PCB j PCB k contiene i descrittori ( process control block, PCB) dei processi pronti. la strategia di gestione della ready
Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU
Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling Concetti fondamentali L obiettivo della multiprogrammazione è di avere processi sempre in esecuzione al fine di
Scheduling della CPU
Scheduling della CPU Scheduling della CPU Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: attivita` di allocazione della risorsa CPU ai processi. Scheduler
Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore
Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore 5.2 Silberschatz, Galvin and Gagne 2005 1 Massimizzare lʼutilizzo della
Capitolo 5: Scheduling della CPU! Scheduling della CPU! Concetti di Base! Alternanza di Sequenze di CPU- e I/O-Burst!
Capitolo 5: Scheduling della CPU Criteri di Scheduling Algoritmi di Scheduling Cenni Scheduling per sistemi multprocessore Modelli Asimmetrico e Simmetrico Scheduling della CPU 5.2 Concetti di Base Alternanza
Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi.
Concetti fondamentali Scheduling della CU Introduzione allo scheduling Uno degli obbiettivi della multiprogrammazione è quello di massimizzare l utilizzo delle risorse e in particolare della CU er raggiungere
Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux
Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola
La schedulazione. E.Mumolo [email protected]
La schedulazione E.Mumolo [email protected] Concetti fondamentali Multiprogrammazione: esecuzione simultanea di più sequenze di esecuzione Pseudo-parallelismo su una sola CPU Esecuzione parallela su più
Scheduling. Dipartimento di Informatica Università di Verona, Italy. Sommario
Scheduling Dipartimento di Informatica Università di Verona, Italy Sommario Concetto di scheduling Tipi di scheduling Lungo termine Breve termine (scheduling della CPU) Medio termine Scheduling della CPU
Obiettivo della multiprogrammazione: massimizzazione dell utilizzo CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi
Scheduling della CPU Scheduling della CPU Obiettivo della multiprogrammazione: massimizzazione dell utilizzo CPU Scheduling della CPU: commuta l uso della CPU tra i vari processi Scheduler della CPU (a
Sistemi Operativi. Scheduling dei processi
Sistemi Operativi Scheduling dei processi Scheduling dei processi Se più processi sono eseguibili in un certo istante il sistema deve decidere quale eseguire per primo La parte del sistema operativo che
Sistemi Operativi. [email protected] 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08
Sistemi Operativi Docente: Ugo Erra [email protected] 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione Introduzione
Scheduling. Lo scheduler è la parte del SO che si occupa di
Scheduling Lo scheduler è la parte del SO che si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L algoritmo di scheduling (la politica utilizzata dallo scheduler) ha impatto
Lo scheduling. Tipici schedulatori
Lo scheduling Un processo durante la sua evoluzione è o running o in attesa di un evento. Nel secondo caso trattasi della disponibilità di una risorsa (CPU, I/O, struttura dati, ecc.) di cui il processo
6 CPU Scheduling. 6.1 Concetti Fondamentali dello Scheduling della CPU. 6.1 Concetti Fondamentali
1 6 CPU Scheduling La gestione della CPU (soltanto) può rendere la multi-programmazione più efficiente della mono-programmazione Infatti, la multiprogrammazione permette di ottenere l utilizzazione massima
Un sistema operativo è un insieme di programmi che consentono ad un utente di
INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli
Lez. 4 Lo scheduling dei processi. Corso: Sistemi Operativi Danilo Bruschi
Sistemi Operativi Lez. 4 Lo scheduling dei processi 1 Cicli d'elaborazione In ogni processo i burst di CPU si alternano con i tempi di I/O 2 Uso tipico di un calcolatore 3 CPU-bound e I/O-bound Processi
Lo scheduler di UNIX (1)
Lo scheduler di UNIX (1) Lo scheduling a basso livello è basato su una coda a più livelli di priorità 1 Lo scheduler di UNIX (2) Si esegue il primo processo della prima coda non vuota per massimo 1 quanto
Diagramma delle durate dei CPU burst. Lo scheduler della CPU. Criteri di scheduling. Dispatcher
Schedulazione della CPU Scheduling della CPU Introduzione allo scheduling della CPU Descrizione di vari algorimi di scheduling della CPU Analisi dei criteri di valutazione nella scelta di un algoritmo
Processi e Thread. Scheduling (Schedulazione)
Processi e Thread Scheduling (Schedulazione) 1 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L
Sistemi Operativi. Schedulazione della CPU
Sistemi Operativi (modulo di Informatica II) Schedulazione della CPU Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Concetti di base Come si realizza il multi-tasking Come si
Corso di Informatica
Corso di Informatica Modulo T3 3-Schedulazione 1 Prerequisiti Concetto di media Concetto di varianza 2 1 Introduzione Come sappiamo, l assegnazione della CPU ai processi viene gestita dal nucleo, attraverso
Capitolo 6: CPU scheduling
Capitolo 6: CPU scheduling Concetti di base. Criteri di schedulazione. Gli algoritmi di schedulazione. Schedulazione per sistemi multiprocessore. Schedulazione per sistemi in tempo reale. Schedulazione
Algoritmi di scheduling
Capitolo 3 Algoritmi di scheduling Come caso particolare di studio, di seguito è discussa in dettaglio la politica di scheduling del sistema operativo LINUX (kernel precedente alla versione 2.6). Sono
Scheduling. Scheduling 14/12/2003 1/7
Scheduling In un computer multiprogrammato più processi competono per l'uso della CPU. La parte di sistema operativo che decide quale processo mandare in esecuzione è lo scheduler. Batch OS: scheduling
Scheduling. Livelli Algoritmi
Scheduling Livelli Algoritmi Introduzione Lo scheduling Ha lo scopo di decidere quale processo eseguire in un dato istante Si realizza mediante un componente specifico del sistema operativo Lo scheduler
Lezione 6. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.
Lezione 6 Sistemi operativi 31 marzo 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 6.1 Di cosa parliamo in questa lezione? La schedulazione 1 e caratteristiche
Lo schedulatore del kernel
Lo schedulatore del kernel Lo schedulatore Lo schedulatore è un programma del kernel che si occupa di scegliere un processo/lavoro che ha richiesto una risorsa. Lo schedulatore a lungo termine LTS è quello
5. Scheduling della CPU. 5.1 Concetti Fondamentali. 5.1.2. Lo scheduler della CPU
5. Scheduling della CPU 1 Il multitasking e il time sharing (quando è usato) cercano di massimizzare l utilizzo della CPU. Per questo, il progettista del SO deve stabilire delle regole per decidere, quando
5. Scheduling della CPU
1 5. Scheduling della CPU Il multitasking e il time sharing (quando è usato) cercano di massimizzare l utilizzo della CPU. Per questo, il progettista del SO deve stabilire delle regole per decidere, quando
1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?
1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. La nozione di multiprogrammazione prevede la possibilità di
Sistemi Operativi Kernel
Approfondimento Sistemi Operativi Kernel Kernel del Sistema Operativo Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni
Scheduling della CPU
Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux 6.1 Sistemi multiprocessori simmetrici Fin qui si sono trattati i problemi di scheduling
Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.
I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse
SCHEDULATORI DI PROCESSO
Indice 5 SCHEDULATORI DI PROCESSO...1 5.1 Schedulatore Round Robin...1 5.2 Schedulatore a priorità...2 5.2.1 Schedulatore a code multiple...3 5.3 Schedulatore Shortest Job First...3 i 5 SCHEDULATORI DI
Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione
SISTEMI OPERATIVI (parte prima - gestione dei processi) Tra i compiti di un sistema operativo sicuramente troviamo i seguenti: Gestione dei processi Gestione della memoria Gestione del file-system Ci occuperemo
Scheduling della CPU
Scheduling della CPU Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling Scheduling dei thread Scheduling multiprocessore Scheduling real time Scheduling in Linux Valutazione
Scheduling della CPU Simulazione in linguaggio Java
Scheduling della CPU Simulazione in linguaggio Java Realizzato da: Amelio Francesco 556/001699 Di Matteo Antonio 556/000067 Viola Antonio 556/000387 Progetto di Sistemi Operativi Docente Giancarlo Nota
Scheduling della CPU (2) CPU bursts (2)
Scheduling della CPU (1) - La gestione delle risorse impone al SO di prendere decisioni sulla loro assegnazione in base a criteri di efficienza e funzionalità. - Le risorse più importanti, a questo riguardo,
Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti
GESTIONE DEI PROCESSI 4.1 Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in diversi S.O. 4.2 Concetto di
Scheduling della CPU. I/O e CPU burst. Scheduler a breve termine. Dispatcher. Concetti base
I/O e CPU burst Concetti base Scheduling della CPU. load store add store read from file CPU burst Massimizzazione dell uso della CPU attraverso multiprogrammazione wait for I/O I/O burst 160 140 Ciclo
Il Sistema Operativo
Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema
Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo
Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al
La Gestione delle risorse Renato Agati
Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File
Secondo biennio Articolazione Informatica TPSIT Prova Quarta
Sistema operativo: gestione memoria centrale La Memoria Virtuale consente di superare i limiti della Memoria Centrale : A. no B. a volte C. si, ma non sempre e' adeguata D. si, attraverso tecniche di gestione
Gli stati di un processo
Roberta Gerboni 1 Gli stati di un processo Gli stati possibili nei quali si può trovare un processo sono: Hold (parcheggio): il programma (chiamato job) è stato proposto al sistema e attende di essere
Pronto Esecuzione Attesa Terminazione
Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma
Modello dei processi. Riedizione delle slide della Prof. Di Stefano
Modello dei processi Riedizione delle slide della Prof. Di Stefano 1 Processi Modello di Processi asincroni comunicanti Process Scheduling Operazioni sui Processi Cooperazione tra Processi Interprocess
GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)
GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio) #include void main (int argc, char *argv[]) { pid = fork(); /* genera nuovo processo */ if (pid < 0) { /* errore */ fprintf(stderr,
J. Assfalg Appunti di Sistemi Operativi
Lo scheduler di Linux (kernel 2.4) La politica di scheduling di Linux si propone il raggiungimento dei seguenti obiettivi (molti dei quali sono in contrasto): timesharing gestione di priorità dinamiche
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell
ESERCIZI SULLO SCHEDULING DEI PROCESSI
ESERCIZI SULLO SCHEDULING DEI PROCESSI Esercizio 1 Esercizio 2 una priorità maggiore) e 4) RR (quanto=1). Esercizio 3 1 una priorità maggiore) e 4) RR (quanto=1). Esercizio 4 Esercizio 5 2 Esercizio 6
Processo - generalità
I processi Processo - generalità Astrazione di un attività; Entità attiva che ha un suo percorso evolutivo; Attività = azione dedicata al raggiungimento di uno scopo Il processo esegue istruzioni per svolgere
INFORMATICA. Il Sistema Operativo. di Roberta Molinari
INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:
Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino
Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.
GESTIONE DEI PROCESSI
Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto
Il Sistema Operativo (1)
E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale
Architettura degli Elaboratori 2. tipi di scheduling. scheduling. scheduling della CPU (1) Esercitazione 1. politiche di ordinamento dei processi
Architettura degli Elaboratori 2 long term tipi di scheduling CREATED TERMINATED Esercitazione 1 politiche di ordinamento dei processi middle term short term READY SUSPENDED RUNNING A. Memo - 2005 by event
Architettura di un sistema operativo
Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi
I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo
I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?
Architettura degli Elaboratori 2
Architettura degli Elaboratori 2 Esercitazioni 1 Scheduling della CPU A. Memo - 2004 tipi di scheduling long term CREATED TERMINATED middle term SUSPENDED short term READY RUNNING by event WAITING 1 scheduling
Scheduling Introduzione Tipi di scheduler Scheduler di lungo termine (SLT) Scheduler di medio termine (SMT) Scheduler di breve termine (SBT)
Scheduling Introduzione Con scheduling si intende un insieme di tecniche e di meccanismi interni del sistema operativo che amministrano l ordine in cui il lavoro viene svolto. Lo Scheduler è il modulo
ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX
Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata
SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007
2007 SISTEMI OPERATIVI Gestione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 13/05/2007 Gestione dei processi 1. Qual è la differenza tra un programma e un processo? Un programma
Sistemi operativi e reti A.A. 2013-14. Lezione 2
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 2 Giovedì 10-10-2013 1 Sistemi a partizione di tempo (time-sharing) I
ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.
ESERCIZIO 1 Si consideri un hard disk formattato la cui memoria è suddivisa in 16 blocchi (numerati da 0 a 15). Si supponga che sull hard disk sia memorizzato un unico file, contenuto, nell ordine, nei
1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi
1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi Il processo E' un programma in esecuzione Tipi di processo Stati di un processo 1 indipendenti
Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1
GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria
Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco
GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria
La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)
La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema
Lezione 4 La Struttura dei Sistemi Operativi. Introduzione
Lezione 4 La Struttura dei Sistemi Operativi Introduzione Funzionamento di un SO La Struttura di un SO Sistemi Operativi con Struttura Monolitica Progettazione a Livelli di un SO 4.2 1 Introduzione (cont.)
Esercitazione E1 Scheduling, deadlock, monitor
Esercitazione E1 Scheduling, deadlock, monitor Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 E1-1 Scheduling I cinque processi A,B,C,D,E richieste di CPU si presentano nell ordine. Le loro richieste
Scheduling della CPU
Scheduling della CPU Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling Scheduling dei thread Scheduling multiprocessore Scheduling real time Scheduling in Linux Valutazione
Sistemi Operativi (modulo di Informatica II) I processi
Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto
Tecniche Automatiche di Acquisizione Dati
Tecniche Automatiche di Acquisizione Dati Sistemi operativi Fabio Garufi - TAADF 2005-2006 1 Cosa sono i sistemi operativi I sistemi operativi sono dei programmi software che svolgono le funzioni di interfaccia
Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni
Sistemi operativi real time basati su Linux: gestione delle risorse e dei processi. Tesina per l esame di Sistemi Operativi a cura di. Prof. Aldo Franco Dragoni Corso di laurea in Ingegneria Informatica
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi
Sistemi operativi. Esempi di sistemi operativi
Sistemi operativi Un sistema operativo è un programma che facilita la gestione di un computer Si occupa della gestione di tutto il sistema permettendo l interazione con l utente In particolare un sistema
Gestione della memoria centrale
Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti
1.5: Gestione dei Processi e della CPU
1.5: Gestione dei Processi e della CPU Concetto di Processo Multitasking Operazioni sui processi Stati di un processo Eventi e risorse Context switch Scheduling dei processi A breve termine A medio/lungo
Gestione del processore e dei processi
Il processore è la componente più importante di un sistema di elaborazione e pertanto la sua corretta ed efficiente gestione è uno dei compiti principali di un sistema operativo Il ruolo del processore
Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta
Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria
Sistemi Operativi II Corso di Laurea in Ingegneria Informatica
www.dis.uniroma1.it/~midlab Sistemi Operativi II Corso di Laurea in Ingegneria Informatica Prof. Roberto Baldoni Complementi: Buffer I/O Gestione dei buffer e I/O scheduling: 1. Richiami sulle tecniche
STRUTTURE DEI SISTEMI DI CALCOLO
STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema
Il Concetto di Processo
Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono
