Corso di Sistemi Operativi
|
|
|
- Rosalinda Pasini
- 10 anni fa
- Просмотров:
Транскрипт
1 Corso di Sistemi Operativi Scheduling dei processi a.a. 2012/2013 Francesco Fontanella
2 Classificazione 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 CPU burst I/O burst CPU burst I/O burst load store add multiply read... attesa di I/O load store add multiply read... attesa di I/O a.a. 2012/2013 2
3 Classificazione alternativa dei processi Processi interattivi Interagiscono continuamente con l'utente, spendendo la maggior parte del tempo in attesa di eventi di I/O (mouse e tastiera). Quando viene ricevuto un input devono essere ripresi rapidamente (il ritardo accettabile deve essere tra 50 e 150 ms, e deve avere bassa varianza) Esempi: Shell Editor, sia testuali che grafici a.a. 2012/2013 3
4 Processi Batch Non interagiscono con l'utente, spesso sono eseguiti in background Non necessitano di bassi tempi di risposta. Esempi: Compilatori, Database search engines, Calcoli scientifici Processi real-time Vincoli temporali stringenti: deve essere garantito loro un tempo minimo di risposta (con minima varianza) Esempi: applicazioni video e audio, robot controllers, misure da sensori (campionamento) a.a. 2012/2013 4
5 Durata delle raffiche di CPU a.a. 2012/2013 5
6 Quando effettuare lo scheduler L'intervento dello scheduler è richiesto ad ogni context switch. Eventi che possono causare il context switch di un processo: 1. Creazione di un nuovo processo (fork): chi eseguire per primo? Padre o figlio? 2. Terminazione del processo in esecuzione (exit) 3. passaggio dallo stato running allo stato waiting (Es: operazione di I/O) 4. passaggio dallo stato running allo stato ready 5. Passaggio dallo stato waiting allo stato ready (I/O interrupt) a.a. 2012/2013 6
7 Tipi di scheduler Uno scheduler si dice senza diritto di prelazione (non-preemptive) o cooperativo se il processo viene eseguito finchè: Si blocca in attesa di I/O Termina Effettua una chiamata di sistema Lo scheduling della CPU è gestito direttamente dai processi (Windows 3.1, Mac OS 1,2, 7) Uno scheduler si dice preemptive se: i context switch possono avvenire in ogni condizione in questo caso è il SO a gestire il controllo della CPU tutti gli scheduler moderni a.a. 2012/2013 7
8 Scheduling: cooperativo vs preemptive Vantaggi dello scheduling cooperativo non richiede ulteriori meccanismi hardware come, ad esempio, timer programmabili Vantaggi dello scheduling preemptive permette di utilizzare al meglio le risorse a.a. 2012/2013 8
9 Categorie di algoritmi di scheduling Batch Elaborazione paghe, calcolo tariffe, calcolo scientifico Interattivo Editor, browser, ecc Real time Sistemi industriali, apparecchiature mediche, ecc. a.a. 2012/2013 9
10 Criteri di scelta di uno scheduler Utilizzo della CPU percentuale di tempo in cui la CPU è occupata ad eseguire processi Produttività (Throughput) numero di processi completati per unità di tempo (dipende dalla lunghezza dei processi) Tempo di completamento (turnaround) tempo che intercorre dalla sottomissione di un processo alla sua terminazione a.a. 2012/
11 Criteri di scelta di uno scheduler Tempo di attesa il tempo trascorso da un processo nella coda ready Tempo di risposta tempo che intercorre fra la sottomissione di un processo e il tempo di prima risposta particolarmente significativo nei programmi interattivi a.a. 2012/
12 Scheduling Algoritmi: First Come, First Served Shortest-Job First Shortest-Next-CPU-Burst First Shortest-Remaining-Time-First Round-Robin a.a. 2012/
13 Rappresentazione degli schedule Diagramma di Gantt per rappresentare uno schedule si usano i diagrammi di Gantt: P 1 P 2 P 3 t 1 t 2 t 3 in questo esempio, la risorsa (es. CPU) viene utilizzata dal processo P 1 dal tempo 0 a t 1, viene quindi assegnata a P 2 fino al tempo t 2 e quindi a P 3 fino al tempo t 3 a.a. 2012/
14 First Come, First Served (FCFS) Algoritmo il processo che arriva per primo, viene servito per primo È senza prelazione Implementazione semplice, tramite una coda (politica FIFO) Problemi elevati tempi medi di attesa e di turnaround processi CPU bound ritardano i processi I/O bound a.a. 2012/
15 First Come, First Served (FCFS) Esempio: ordine di arrivo: P 1, P 2, P 3 lunghezza dei CPU-burst in ms: 32, 2, 2 Tempo medio di turnaround ( )/3 = 34 ms Tempo medio di attesa: ( )/3 = 22 ms P 1 P 2 P a.a. 2012/
16 First Come, First Served (FCFS) Supponiamo di avere un processo CPU bound un certo numero di processi I/O bound i processi I/O bound si "mettono in coda" dietro al processo CPU bound, e in alcuni casi la ready queue si puo svuotare: effetto convoglio (Convoy effect) IO IO IO IRQ IRQ IRQ IO IO P 1 P 2 P 3 ready queue vuota P 1 P 2 a.a. 2012/
17 Shortest Job First (SJF) Algoritmo (Shortest Next CPU Burst First) la CPU viene assegnata al processo ready che ha la minima durata del CPU burst successivo politica senza preemption Esempio Tempo medio di turnaround: ( )/3 = 7 ms Tempo medio di attesa: (0+2+4)/3 = 2 ms P 2 P 3 P a.a. 2012/
18 Shortest Job First (SJF) L'algoritmo SJF è ottimale rispetto al tempo di attesa. Non è implementabile in pratica! è realizzabile in maniera approssimata Negli scheduler long-term possiamo chiedere a chi sottomette un job di predire la durata del job Negli scheduler short-term Non si conosce la lunghezza del prossimo CPU burst... ma sono note le lunghezze di tutti quelli precedenti. a.a. 2012/
19 Shortest Job First (SJF) Calcolo approssimato Si basa su media esponenziale dei CPU burst precedenti sia t n il tempo dell'n-esimo CPU burst e т n la corrispondente previsione; т n+1 può essere calcolato come segue: т n+1 = αt n + (1-α)т n Media esponenziale svolgendo la formula di ricorrenza, si ottiene т n+1 = Σ j=0..n (1-α) j t n-j + (1-α) n+1 т o da cui il nome media esponenziale a.a. 2012/
20 Shortest Job First (SJF) Spiegazione t n rappresenta la storia recente т n rappresenta la storia passata α rappresenta il peso relativo di storia passata e recente cosa succede con α = 0, 1 oppure 0.5? Nota importante: SJF può essere soggetto a starvation! a.a. 2012/
21 Shortest Job First (SJF) Shortest Job First "approssimato" esiste in due versioni: non preemptive il processo corrente esegue fino al completamento del suo CPU burst preemptive il processo corrente può essere messo nella coda ready, se arriva un processo con un CPU burst più breve di quanto rimane da eseguire al processo corrente "Shortest-Remaining-Time First" a.a. 2012/
22 Scheduling a priorità Descrizione ogni processo è associato ad una specifica priorità lo scheduler sceglie il processo pronto con priorità più alta Le priorità possono essere: definite dal sistema operativo utilizzando una o più quantità misurabili per calcolare la priorità di un processo SJF è un esempio di scheduling basato su priorità definite esternamente le priorità vengono impostate dagli utenti a.a. 2012/
23 Scheduling a priorità Priorità statica la priorità non cambia durante la vita di un processo problema: processi a bassa priorità possono essere posti in starvation da processi ad alta priorità Leggenda metropolitana: IBM 7094 al MIT (1973) Priorità dinamica la priorità può variare durante la vita di un processo è possibile utilizzare metodologie di priorità dinamica per evitare starvation a.a. 2012/
24 Scheduling a priorità Priorità basata su aging si incrementa gradualmente la priorità dei processi in attesa. nessun processo rimarrà in attesa per un tempo indefinito perché prima o poi raggiungerà la priorità massima a.a. 2012/
25 Scheduling Round-Robin Ogni processo è in esecuzione per un quanto di tempo (time slice) Al termine del quanto il processo è sottoposto a prelazione e aggiunto alla coda dei processi pronti Può anche succedere che il processo richieda un'operazione di I/O prima che il quanto sia terminato. Se ci sono n processi pronti è il quanto dura q, il tempo massimo di attesa è (n-1)q a.a. 2012/
26 Scheduling Round robin: prestazioni 5La durata del quanto di tempo è un parametro critico del sistema. Se il quanto di tempo è breve: Overhead elevato a causa dei cambi di contesto troppo frequenti se il quanto è lungo: Tende a diventare FIFO Al crescere di N ci sono lunghi periodi di inattività per ogni processo Soluzione... empirica! a.a. 2012/
27 Durata del quanto e cambio di contesto a.a. 2012/
28 Durata del quanto e cambio di contesto a.a. 2012/
29 Scheduling Round-Robin Process Burst Time P 1 24 P 2 3 P 3 3 Diagramma di Gantt P 1 P 2 P 3 P 1 P 1 P 1 P 1 P Mediamente il tempo di completamento è superiore al SJF, ma il tempo di risposta è migliore a.a. 2012/
30 Scheduling a classi di priorità I processi possono essere distinti in base alle loro necessità di scheduling. Esempio foreground e background La coda dei processi pronti viene suddivisa in più code, ogni coda ha il suo algoritmo: Foreground: RR Background: FCFS uno scheduler a classi di priorità seleziona il processo da eseguire fra quelli pronti della classe a priorità massima che contiene processi a.a. 2012/
31 Scheduling a classi di priorità È necessario uno sceduling tra le code. Ci sono diverse possibilita di scheduling: Priorità fissa: si svuotano prima le code a priorità più alta. Problema: rischio di starvation Suddivisione del tempo (time slice): si assegna ad ogni coda una percentuale di CPU che dipende dalla priorità Es: 80% alla coda foreground e 20% alla coda background a.a. 2012/
32 Scheduling a classi di priorità Priorità maggiore Processi di sistema Processi di interattivi Processi di editing Processi background Priorità minore NOTA Adatto quando i processi possono essere facilmente classificati in gruppi diversi a.a. 2012/
33 Scheduling a code multiple con retroazione a.a. 2012/
34 Scheduling a code multiple con retroazione È possibile spostare i processi tra le varie code È caratterizzato da diversi parametri: Numero di code; Algoritmo per ogni coda; Come muovere i processsi tra le code In quale coda inserire i processi in ingresso? a.a. 2012/
35 Thread Scheduling Nei sistemi molti-a-uno e molti-a-molti è la libreria a livello utente a pianificare l'esecuzione dei thread appartenenti ad un certo processo (process-contention scope, PCS). La gestione dei thread a livello kernel deve tenere conto invece di tutti i thread in esecuzione (system-contention scope, SCS) a.a. 2012/
36 Scheduling Multiprocessore Esistono due approcci: Multielaborazione asimmetrica, le attività di scheduling, di I/O e di sistema sono svolte su un processore dedicato. Multielaborazione simmetrica (symmetric multiprocessor, SMP), ogni processore provvede al proprio scheduling (con una coda comune oppure una coda per ogni processore) a.a. 2012/
37 Predilezione per il processore Nella progettazione dello scheduling di sistemi multiprocessore bisogna considerare il ruolo della memoria cache Si tende a eseguire un processo sempre sullo stesso processore (predilezione del processore, processor affinity) Si tende a eseguire un processo sempre sullo stesso processore (predilezione del processore, processor affinity). La predilezione può essere: Debole: la predilezione non è garantita (Solaris). Forte: predilezione garantita (Linux, Solaris) a.a. 2012/
38 Scheduling su NUMA a.a. 2012/
39 Bilanciamento del carico Necessario nei sistemi che hanno una coda per ogni processore (praticamente tutti i sistemi moderni) Due approcci: Migrazione guidata (push migration): processo dedicato periodicamente controlla e gestisce il bilanciamento. Migrazione spontanea: un processore inattivo esegue un processo nella coda dei processi pronti dell'altro processore Linux: Ogni 200 ms un processo controlla il bilanciamento Ogni volta che si svuota una coda. a.a. 2012/
40 Scheduling multicore Sono ormai comuni le architetture con CPU multicore Sistemi multiprocessore in cui sullo stesso chip sono presenti più CPU che possono o meno condividere la memoria cache, e vedono la stessa memoria principale. Permettono un notevole aumento delle prestazioni, posto che il SO sia in grado di sfruttare a pieno ciascun core. I moderni SO usano tutti SMP: c'è uno scheduler per ogni processore a.a. 2012/
41 Situazioni di Stallo Possibili cause di stallo: Miss cache branch misprediction data dependency a.a. 2012/
42 HyperThreading (INTEL) Vengono duplicate solo le parti del processore relative ai registri (Architectural state), ma non le risorse di calcolo. È un hyperthreading fine grained a.a. 2012/
43 Algoritmi di Scheduling Di seguito analizzeremo 3 diversi algoritmi di scheduling: Solaris Windows Linux a.a. 2012/
44 Algoritmi di Scheduling: Solaris Coda multipla con retroazione Ogni classe può adottare un diverso algoritmo di scheduling Più processi con la stessa con la stessa priorità: Round-Robin (RR) In Solaris un processo viene eseguito finchè: Si blocca Esaurisce il quanto di tempo assegnato Soggetto a prelazione da un processo a priorità più elevata a.a. 2012/
45 Algoritmi di Scheduling: Solaris In Solaris un processo viene eseguito finchè: Si blocca Esaurisce il quanto di tempo assegnato Soggetto a prelazione da un processo a priorità più elevata a.a. 2012/
46 Algoritmi di Scheduling: Solaris Time share (TS): è la classe di default e ha priorità dinamiche. Interactive (IA): priorità dinamiche, versione migliorata della precedente, usata per windows manager. Fixed-priority (FX): thread con priorità fissata. fair-share scheduler (FSS): la suddivisione è basata su quote prestabilite invece che su priorità. System (SYS): kernel threads. Riamangono in esecuzione finchè non terminano o si bloccano. Real Time (RT): priorità fissata con quanto di tempo fissato. a.a. 2012/
47 Tabella delle priorità a.a. 2012/
48 Dispatcher table Per classi TS e IA le priorità sono calcolate da questa tabella: a.a. 2012/
49 Dispatcher table Quanto esaurito: nuova priorità assegnata al processo se ha esaurito tutto il quanto di tempo assegnatogli. Nota: la nuova priorità è più bassa (riceverà un quanto di tempo più grande) Quanto non esaurito: nuova priorità di un processo che si è fermato prima di consumare tutto il suo quanto di tempo. Nota: la nuova priorità è più alta, (riceverà un quanto di tempo più breve) a.a. 2012/
50 Algoritmi di Scheduling: Windows Basato su priorità con retroazione e prelazione. Un processo utente esegue fin quando : a) termina; b) va in wait, c) ha esaurito il quanto di tempo d) è soggetto a prelazione. Schema a 32 livelli di priorità: i processi real-time hanno una priorità da 16 a 31, tutti gli altri da 1 a 15 (0 è un valore riservato). Quando un processo nasce gli viene assegnata la priorità 1. a.a. 2012/
51 Algoritmi di Scheduling: Windows Si assegna la CPU al processo con priorità più alta. Più processi con la stessa priorità: si usa RR. Se il processo running va in wait prima di esaurire il suo quanto, la sua priorità viene alzata (max: 15) L entità dell incremento dipende dal tipo di evento che il processo attende: se è un dato dalla tastiera (processo interattivo) l'incremento è maggiore Se è un dato dal disco, l incremento è minore. a.a. 2012/
52 Strategia per i processi interattivi Se il processo che ha la CPU esaurisce il proprio quanto, la sua priorità viene abbassata (mai < 1). Sono favoriti i processi che interattivi (mouse e tastiera) che richiedono tempi di risposta molto bassi. Windows XP distingue tra i processi in background e quello in foreground (finestra attiva). Quando un processo passa in foreground il suo quanto viene moltiplicato per 3, a.a. 2012/
53 Linux scheduling: breve storia I primi scheduler Linux erano minimali: Linux 1.2, semplice e veloce: Coda circolare con round robin Molto efficiente nell'aggiungere o rimuovere processi Linux 2.2, introduce le classi di priorità: real-time scheduling Supporto per Symmetric Multiprocessing (SMP) a.a. 2012/
54 Linux scheduling Tre classi di scheduling Real-time FIFO (SCHED_FIFO) priorità più alta; preemptable solo da thread a priorità più alta Real-time Round-Robin (SCHED_RR) priorità media; preemptable da thread a priorità più alta e dallo scadere del quanto di tempo Timesharing (SCHED_OTHER) priorità più bassa; processi normali a.a. 2012/
55 Linux scheduling Priorità dinamica vs priorità statica i processi real-time hanno priorità statica i processi timesharing hanno priorità dinamica Full-preemption: lo scheduler entra in azione quando il time quantum riservato ad un processo scade oppure un nuovo processo entra nella coda dei processi pronti e la sua priorità è più alta della priorità dell'attuale processo in esecuzione a.a. 2012/
56 Linux scheduling 2.4 Il tempo della CPU è suddiviso in epoche (epochs): In ogni epoca All'inizio: viene calcolato un quanto di tempo diverso per ogni processo quantità massima di CPU utilizzabile dal processo nell'epoca Durante: un processo può ricevere la CPU diverse volte durante un'epoca, fino a quando il suo quanto non è concluso Conclusione: quando tutti i processi runnable hanno utilizzato completamente il loro quanto inizia una nuova epoca a.a. 2012/
57 Linux scheduling 2.4: problemi non è perfettamente scalabile O(n) con la crescita del numero dei processi, è necessario ricalcolare le priorità dinamiche di tutti i processi per questo motivo, questo viene fatto per "epoche", non ad ogni context switch un gran numero di processi runnable può rallentare il tempo di risposta il quanto predefinito è troppo lungo per carichi elevati il "boosting" dei processi I/O bound non è ottimale alcuni processi I/O bound non sono interattivi (Es. database) supporto debole per i processi real-time a.a. 2012/
58 Linux Scheduling 2.6 Complessità O(1) Quanto di tempo maggiore ai processi a maggiore priorità Una coda separata per ogni processore ( o core) Bilanciamento periodico delle code Processor affinity: Il PCB contiene una bitmask delle CPU utilizzabili a.a. 2012/
59 Linux Scheduling 2.6 I processi vengono raggruppati in due code separate: coda attiva: i processi che sono stati soggetti prelazione prima di terminare il quanto loro assegnato; coda scaduta: i processi che hanno esaurito il proprio quanto di tempo. a.a. 2012/
60 Linux Scheduling 2.6 Una bitmap indica quali code hanno almeno un processo Come trovare il processo 140 code 5 integer Al più 5 confronti per trovare il primo non nullo Ci sono istruzioni hardware che restituiscono il primo bit non nullo Complessità COSTANTE: dipende solo dal numero di priorità! a.a. 2012/
61 Linux Scheduling 2.6 Si sceglie il processo a priorità più alta nella coda attiva e gli assegna la CPU per un tempo pari a: un intero quanto di tempo (dipende dalla priorità) se il processo aveva consumato il precedente quanto assegnatogli la porzione di quanto di tempo non ancora utilizzata dal processo quando era andato in wait la volta precedente Quando un processo ha esaurito il proprio quanto di tempo, viene spostato nella coda scaduta. a.a. 2012/
62 Linux Scheduling 2.6 Inizialmente, la coda scaduta è vuota: nessun processo è ancora riuscito ad utilizzare completamente il quanto tempo assegnatogli. Se la coda attiva è vuota: tutti i processi hanno ricevuto ed esaurito completamente un quanto di tempo (è una forma di Round Robin) A questo punto le due code si cambiano di ruolo: quella scaduta diviene la coda attiva, e viceversa, Lo scheduler ricomincia assegnando un quanto di tempo al processo a priorità più alta nella coda attiva. a.a. 2012/
63 Scheduling dei processi normali NOTA SP è la priorità statica a.a. 2012/
64 Valori tipici di priorità a.a. 2012/
65 Processi normali: Priorità dinamica La priorità dinamica è calcolata considerando due fattori: Priorità statica Average sleep time (AST): tempo medio trascorso in attesa Il valore AST: Aumenta fino ad un massimo se processo è in attesa Viene decrementato ad ogni tick quando è in esecuzione Ad ogni processo viene assegnato un bonus (tra 0 e 10) che misura appunto l'average sleep time 5 è un valore neutrale 10 aumenta la priorità di 5 0 diminuisce la priorità di 5 DP = max(100, min(sp- bonus+5, 139)) a.a. 2012/
66 Gestione del tempo Allo scadere del quanto di un processo Se non è interattivo viene messo nella lista dei processi scaduti Se è interattivo viene messo alla fine della sua attuale coda di priorità (se la coda non contiene altri processi allora riavrà la CPU subito) NOTA: più resto in esecuzione più si abbassa AST a.a. 2012/
67 Code di priorità: strutture dati struct runqueue { struct prioarray *active; struct prioarray *expired; struct prioarray arrays[2]; }; struct prioarray { int nr_active; /* # Runnable */ unsigned long bitmap[5]; struct list_head queue[140]; }; a.a. 2012/
68 Array swapping struct prioarray *array = rq >active; if (array >nr_active == 0) { rq >active = rq >expired; rq >expired = array; } a.a. 2012/
69 Alcune considerazioni Perchè si usano due arrays: Evita l'uso di tecniche di aging (complessità O(N)) L'aging deve essere calcolato ad ogni epoca Efficienza: Priorità, bonus e quanto vengono calcolati solo il processo è in esecuzione Nessuna necessità di loop su tutti i processi in esecuzione a.a. 2012/
70 Scheduling di Linux: priorità dinamica La priorità corrente (detta nice) di un processo è ricalcolata sommandogli o sottraendogli il valore 5, a seconda del suo grado di interattività. I processi interattivi hanno normalmente lunghi tempi di attesa per le operazioni di I/O (il suo nice verrà decrementato di 5) Viceversa, ai processi che hanno speso poco tempo in attesa di I/O il nice viene aumentato Vengono favoriti i processi interattivi, che nella nuova coda attiva avranno una priorità migliore (nice più basso) dei processi non interattivi. a.a. 2012/
71 Scheduler 2.6: problemi Lo switching rate dipende dalla priorità dei processi: Se ho due processi con priorità 120 lo switch avviene ogni 100 ms Due processi con priorità 139: lo switch avviene ogni 5 ms Il quanto di tempo assegnato ad ogni processo dipende dal valore assoluto di priorità: Due processi con priorità 120 e 119 avranno 95 e 100 ms rispettivamente Due processi con priorità 139 e 138 avranno 10 e 15 ms rispettivamente! I processi ritornati attivi possono andare nella coda di quelli attivi: È posibile creare processi che ritardano indefinitamente gli altri! a.a. 2012/
72 Completely Fair Scheduler A partire da fine 2007 (versione ) il kernel di Linux, adotta un nuovo algoritmo di scheduling, il Completely Fair Scheduler (CFS). Il CFS cerca di distribuire equamente il tempo di CPU tra tutti i processi ready to run, Policy adottata: se ci sono N processi ready to run, allora ad ogni processo dovrebbe spettare esattamente 1/N del tempo di CPU Lo scheduler memorizza la quantità di tempo assegnata ad ogni processo Tiene conto anche dei tempi di attesa di I/O a.a. 2012/
73 Completely Fair Scheduler: implementazione I processi in esecuzione vengono mantenuti in un albero di ricerca binario di tipo rosso-nero (red-black tree): Tutte le operazioni (ricerca, cancellazione, inserimento) in quest'albero hanno complessità O(N); Ciascun nodo dell'albero (processo) è caratterizzato dal tempo di CPU assegnatogli a.a. 2012/
74 Completely Fair Scheduler: implementazione a.a. 2012/
75 CFS e priorità CFS non usa le priorità in maniera diretta Le priorità vengono usate per modificare il tempo di CPU effettivamente usato da un processo Le priorità sono rappresentate da un fattore di decadimento (decay factor) per il tempo di esecuzione: Questo fattore sarà tanto più basso quanto maggiore è la priorità del processo a.a. 2012/
76 Linux scheduling system calls nice() Change the static priority of a conventional process getpriority() Get the maximum static priority of a group of conventional processes setpriority() Set the static priority of a group of conventional processes sched_getscheduler() Get the scheduling policy of a process a.a. 2012/
77 sched_setscheduler() Set the scheduling policy and the real-time priority of a process sched_getparam() Get the real-time priority of a process sched_setparam() Set the real-time priority of a process sched_yield() Relinquish the processor voluntarily without blocking sched_get_ priority_min() Get the minimum real-time priority value for a policy a.a. 2012/
78 sched_get_ priority_max() Get the maximum real-time priority value for a policy sched_rr_get_interal() Get the time quantum value for the Round Robin policy sched_setaffinity() Set the CPU affinity mask of a process sched_getaffinity() Get the CPU affinity mask of a process NOTA Per ulteriori informazioni potete utulizzare il comando man: $ man function_name a.a. 2012/
79 Scheduling: Esempio I cinque processi A,B,C,D,E si presentano in quest'ordine. Le loro richieste di CPU sono: A: 10, B: 2, C: 8, D: 1, E: 3 Calcolare il tempo di risposta di ciascun processo, e il tempo medio di risposta con i seguenti algoritmi di scheduling: a) FIFO b) Shortest Job First c) Round Robin con quantum q=2 d) Round Robin con quantum q=5 e) Priorità, essendo le priorità (A: 3, B: 5, C: 1, D: 2, E: 4) a.a. 2012/
80 FIFO Richieste di CPU: A: 10, B: 2, C: 8, D: 1, E: 3 Tempi di risposta T A = 0 T B = T A + 10 = 10 T C = T B + 2 = 12 T D = T C + 8 = 20 T E = T D + 1 = 21 Tempo minimo = T A = 0 Tempo medio di risposta T m = (T A +T B +T C +T D +T E )/5 T m = ( )/5 T m = 63/5 = 12.6 Tempo massimo = T A = 21 Diagramma di Gantt a.a. 2012/
81 Shortest Job First Richieste di CPU: A: 10, B: 2, C: 8, D: 1, E: 3 Ordine di esecuzione: D, B, E, C, A Tempi di risposta T D = 0 T B = T D + 1 = 1 T E = T B + 2 = 3 T C = T E + 3 = 6 T A = T C + 8 = 14 Tempo medio di risposta T m = (T A +T B +T C +T D +T E )/5 T m = ( )/5 T m = 63/5 = 12.6 Diagramma di Gantt a.a. 2012/
82 Round Robin (q=2) Richieste di CPU: A: 10, B: 2, C: 8, D: 1, E: 3 Tempi di risposta T A = 0 T B = T A + 2 = 2 T C = T B + 2 = 4 T D = T C + 2 = 6 T E = T D + 1 = 7 Tempo medio di risposta T m = (T A +T B +T C +T D +T E ) / 5 T m = ( ) / 5 T m = 19/5 = 3.8 Diagramma di Gantt a.a. 2012/
83 Round Robin (q=4) Richieste di CPU: A: 10, B: 2, C: 8, D: 1, E: 3 Tempi di risposta T A = 0 T B = T A + 4 = 4 T C = T B + 2 = 6 T D = T C + 4 = 10 T E = T D + 1 = 11 Tempo medio di risposta T m = (T A +T B +T C +T D +T E ) / 5 T m = ( ) / 5 T m = 31 / 5 = 6.2 Diagramma di Gantt a.a. 2012/
84 Priorità Richieste di CPU: A: 10, B: 2, C: 8, D: 1, E: 3 Priorità: B: 5, E: 4, A: 3, D: 3, C: 1 Tempi di risposta T B = 0 T E = T B + 2 = 2 T A = T E + 3 = 5 T D = T A + 10 = 15 T C = T D + 1 = 16 Tempo medio di risposta T m = (T B +T E +T A +T D +T C ) / 5 T m = ( ) / 5 T m = 38 / 5 = 7.6 a.a. 2012/
85 Scheduling: Osservazioni Quello dello scheduling è un interessante caso di problema multiobbiettivo La maggior parte dei moderni SO sono multipiattaforma: Sistemi desktop Servers Sistemi embedded (possono essere real time) Supercomputers Questi sistemi presentano diversi carichi di lavoro Gli obiettivi sono diversi: Equità tra i processi Interattività Massimo throughput a.a. 2012/
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
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
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
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. 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:
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
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
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
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
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
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
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
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
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 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
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
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ù
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. [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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 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. 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
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
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
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
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
Scheduling della CPU. Concetti base. Criteri di Scheduling. Algoritmi di Scheduling
Scheduling della CPU Concetti base Criteri di Scheduling Algoritmi di Scheduling 1 Scheduling di processi Obbiettivo della multiprogrammazione: esecuzione contemporanea di alcuni processi in modo da massimizzare
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
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
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)?
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
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
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
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,
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
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,
Lo Scheduling Real Time in Linux. Universita degli studi di Roma La Sapienza Ivan Gualandri Matricola 693512 Relatore: Giorgio Richelli
Lo Scheduling Real Time in Linux Universita degli studi di Roma La Sapienza Ivan Gualandri Matricola 693512 Relatore: Giorgio Richelli Scopo Motivazione Obiettivi 1) Lo scopo di questo progetto è presentare
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
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
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
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 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 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
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
SCHEDULING DEI PROCESSI
SCHEDULING DEI PROCESSI FIFO o FCFS (First-In-First-Out) Primo arrivato primo servito. Si utilizza nei processi non-preemptive. RR (Round-Robin) I processi sono attivati in modalità FIFO ma viene loro
Il software. la parte contro cui si può solo imprecare. Il software
Il software la parte contro cui si può solo imprecare Il software L hardware da solo non è sufficiente per il funzionamento dell elaboratore ma è necessario introdurre il software ovvero un insieme di
Sebbene le durate varino secondo il processo e secondo il calcolatore, la curva di frequenza è simile a quella qui riportata.
C3. SCHEDULING DELLA CPU Lo scheduling della CPU è alla base dei sistemi operativi multiprogrammati e consente di passare il controllo della CPU ai vari processi, in modo da rendere più produttivo il calcolatore.
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
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
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
I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.
I processi Cos è un processo? Un processo è una attività, controllata da un programma, che si svolge su un processore. Il programma è una entità statica che descrive la sequenza di istruzioni che devono
SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09
SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli
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
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
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
Il memory manager. Gestione della memoria centrale
Il memory manager Gestione della memoria centrale La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda
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
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
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
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.
Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU
Il sistema operativo Sistema operativo Gestione della CPU Primi elaboratori: Monoprogrammati: un solo programma in memoria centrale Privi di sistema operativo Gestione dell hardware da parte degli utenti
Introduzione ai Sistemi Operativi
Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di
Approccio stratificato
Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia
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. Modulo 4: Scheduling
Sistemi Operativi Modulo 4: Scheduling Renzo Davoli Alberto Montresor Copyright Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,
Sistema operativo: Gestione dei processi
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica - ICA Prof. Pierluigi Plebani A.A. 2011/2012 Sistema operativo: Gestione dei processi La presente dispensa e da utilizzarsi
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
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. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)
Sistema Operativo (Software di base) Il Sistema Operativo Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei dati attraverso
Java Virtual Machine
Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina
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
Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
MECCANISMI E POLITICHE DI PROTEZIONE 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
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
