Gli stati di un processo

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Gli stati di un processo"

Transcript

1 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 caricato in memoria centrale. Esso è in attesa di esecuzione e si trovainmemoriadimassa. Ready (pronto): il programma è diventato processo e si trova in memoria centrale, pronto per essere eseguito. Esso attende che gli venga assegnata la CPU. Run (esecuzione): il processo è in esecuzione (in ogni istante un solo processo si trovainquestostato)perchéglièstataassegnatalacpu. Wait (attesa): il processo è in attesa (ad esempio deve attendere la fine di un operazione di I/O). Terminate (terminazione): il processo è terminato e può essere recuperato lo spazio della memoria centrale in cui era caricato. 2

2 Unprocessopassalapropriavitaafarelecode. Quando un nuovo processo nasce, è in coda nello stato di HOLD e richiede uno spazio nella memoria RAM dove essere caricato; nel momento in cui gli viene assegnato questo spazio viene messo nella READY queue nella quale attenderà la disponibilità della risorsa processore; appena lo scheduler lo seleziona esso otterrà il possesso del processore con cui procedere alla sua elaborazione(stato dirun). Il processo può perdere l uso del processore fondamentalmente per tre motivi: Il processo emette una richiesta di I/O e quindi viene posto nella coda del dispositivo di cui deve far uso (dischi, nastri, stampante...); Il processo crea un processo figlio e ne deve attendere la terminazione; Il processo subisce una interruzione e forzatamente deve abbandonare la cpu per ripassare nella ready queue. 3 PCB e Tabella dei processi Il PCB (Process Control Blocks) o descrittore di processo è una struttura dati che mantiene in memoria tutte le informazioni su un certo processo. All'insieme dei PCB dei processi attivi nel Sistema Operativo si accede utilizzando la tabella dei processi. Ciascun PCB contiene le seguenti informazioni: PID (identificatore del processo) lo stato del processo il program counter ( PC ) il contenuto dei registri della CPU Le informazioni sulla memoria occupata e puntatore allo stack Limiti di tempo Privilegi per l accesso a servizi e risorse Puntatore al padre Puntatore alla lista dei processi figli Lista dei file aperti dal processo Informazioni per lo schedulatore (priorità, tempo stimato di uso CPU, tempo di CPU residuo,. PCB di un processo 4

3 Tabella dei processi Per gestire l'esecuzione di processi il sistema operativo mantiene informazioni sui processi stessi anche quando non sono in esecuzione (stato dirun)esullerisorse. In particolare la tabella dei processi contiene l identificatore (PID) univoco di ciascun processo e il puntatore all immagine del processo. 5 Immagine di un processo. L immagine di un processo è costituita dalle informazioni che riguardano le aree di memoria e le strutture dati associate al processo che sono necessarie per poter coordinare l esecuzione di più processi. Text table: si tratta di una tabella dei riferimenti per accedere al codice eseguibile del programma di cui il processo risulta essere un istanza. Dati: area di memoria che contiene i dati utilizzati dal programma. Stack e heap: aree di memoria utilizzate dal programma per gestire le chiamate di funzione e le allocazioni dinamiche di memoria. PCB (Process Control Block): costituito da una collezione di attributi necessari al SO per controllare l esecuzione del processo stesso. 6

4 Le code I descrittori dei processi sono organizzati in code, una per ciascuno stato (READY, WAITING, ) e per ogni dispositivo del quale può essere fatta richiesta di utilizzo al SO. 7 Schedulatore a breve termine e context switch La componente del Sistema Operativo che si occupa di scegliere di volta in volta il processo che deve ottenere l uso della CPU è lo scheduler a breve termine che sostanzialmente dice qual è il prossimo processo che deve passare dallo stato di READY allo stato RUNNING, ovvero andare in esecuzione. Lo scheduling avviene seguendo un certo algoritmo (FCFS, RoundRobin, ShortestJobFirst, a priorità statica o dinamica...) e il passaggio da un processo all'altro è detto cambio di contesto(context switch). Il sistema operativo deve: salvare lo stato del processo che abbandona la CPU, ovvero andare ad aggiornare il PCB (Process Control Blocks detto anche descrittore) del processo caricare il nuovo processo ripristinando le aree di memoria da lui utilizzate, ripristinandone lo stato puntuale, ovvero il suo contesto. 8

5 Schedulatore a breve termine e context switch 9 Un processo in esecuzione può richiedere al S.O. operazioni di I/O su file, sul monitor, da tastiera, da mouse, ricezione e trasmissione dati in rete, visualizzazione di testi e immagini I processi che prevedono molte interazioni con gli utenti sono spesso in stato di WAITING e si dicono I/O-bound. P1: RUN WAIT RUN _ WAIT RUN _ WAIT I processi che eseguono molte elaborazioni di dati presenti in memoria non rilasciano quasi mai il processore restando quindi in stato di RUN e si dicono CPU-bound. P2: RUN _ WAIT RUN _ WAIT RUN 10

6 Il S.O. ha il compito di ottimizzare l uso del processore. L insieme dei processi attivi dovrebbe essere composto in modo equilibrato da CPU-bound e I/O-bound. 11 Considerazioni: Se i processi CPU-bound sono molto numerosi i pochi processi I/O-bound vengono rallentati peggiorando il tempo di risposta dei processi interattivi e lasciando inattivi i dispositivi periferici Se i processi I/O-bound sono molto numerosi Questo può portare ad inattività del processore, perché aumenta la probabilità che tutti i processi attivi siano in stato di attesa (WAIT) Durante i periodi di inattività del processore, se non vi sono processi in stato di READY da avviare nello stato di RUN, il gestore dei processi attiva l esecuzione di un paricolare processo di sistema detto IDLE, che pone il computer in uno stato di basso consumo energetico ad esempio diminuendo la velocità del processore oppure vengono eseguiti processi di utilità come ad esempio la scansione antivirus. 12

7 Task manager di Windows 7 13 Task manager di Windows 7 14

8 Task manager di Windows 7 15 Algoritmi di schedulazione del processore Gli algoritmi di rotazione tra i processi in esecuzione utilizzati dallo schedulatore dei processi operano con precisi criteri per scegliere quale processo far avanzare dallo stato di pronto (READY) allo stato di esecuzione (RUN). Questi algoritmi si possono dividere in due categorie: NON PREEMPTIVE (senza prerilascio) : una volta che la CPU è stata assegnata ad un processo, essa non può essergli tolta a meno che il processo non sia terminato oppure non abbia richiesto un operazione di I/O. PREEMPTIVE (con prerilascio) : viene usato nei sistemi operativi multitasking, con il significato che il S.O. che può interrompere un processo in esecuzione contro la volontà di questo in favore di un altro processo che ha una maggiore priorità oppureseilprocessohautilizzatolacpuperilmassimotempoconsentito(fine del quanto di tempo). Mentre Unix è stato sviluppato quasi da subito come sistema di tipo preemptive, nei sistemi Microsoft la preemption è stata introdotta solo con Windows 95. Questo è giustificato dal fatto che i sistemi operativi di questa famiglia, a partire dall MS-Dos, sono nati come sistemi mono utente. 16

9 Senza prerilascio SENZA PRERILASCIO Politiche di scheduling FCFS (First Come First Served): il processore viene assegnato ai processi in stato di pronto a seconda dell ordine di arrivo. Difetti: tempo medio di attesa abbastanza lungo e vengono penalizzati i processi brevi a causa di quelli che richiedono molto tempo di CPU. 17 Senza prerilascio SENZA PRERILASCIO Politiche di scheduling SJF (Shortest Job First): il processore viene assegnato al processo, tra tutti quelli in stato di pronto, che prevede l intervallo di tempo più breve di utilizzo complessivo della CPU o prima di un I/O. In questo caso la coda viene ordinata per valori crescenti di durata. Questa politica consente di avere tempi medi di attesa inferiori rispetto a FCFS. Si può dimostrare che SJF è ottimale. Spostando un processo breve prima di uno lungo (anche se quest ultimo è arrivato prima) si migliora l attesa del processo breve più di quanto si peggiori l attesa del processo lungo il tempo medio di attesa diminuisce! Di conseguenza diminuisce anche il turnaround. 18

10 Senza prerilascio SJF Politiche di scheduling Nessun algoritmo può produrre un tempo di attesa medio e un turnaround medio migliori. Infatti dati: n processi con lo stesso tempo di arrivo e tempo di esecuzione del processo i-esimo t_exe = a i, il processo j-esimo dovrà aspettareuntempo a 1 + a a j-1 Quindi: T_medio di attesa = [0 + a 1+ (a 1+ a 2) + (a 1+ a 2+ a 3) +.+(a 1 +a n-1)] / n = = [(n-1)a 1 + (n-2)a a n-1 ] / n che risulta minimizzato quando a 1 < a 2 < < a n Mac èunproblema cheimpediscediusarequestoalgoritmo Difetti: spesso non si hanno sufficienti informazioni per stabilire quale processo richiederà per primo un operazione di I/O o quanto tempo di utilizzo complessivo della CPU chiede ogni processo, perché normalmente questi dati sono disponibili solo a run time. Inoltre i processi più lunghi rischiano la starvation (morire di fame ), cioè di non essere eseguiti. 19 Senza prerilascio FCFS Coda dei pronti (READY) e unità di tempo di CPU richieste da ciascun processo Tempo di CPU Processi P1 P2 P3 P4 P5 P6 Tempo medio di attesa:? Tempo medio di fine esecuzione:? SJF Coda ORDINATA dei pronti (READY) e unità di tempo di CPU richieste da ciascun processo Tempo di CPU Processi P3 P1 P4 P5 P2 P6 Tempo medio di attesa:? Tempo medio di fine esecuzione:? 20

11 Senza prerilascio FCFS Coda dei pronti (READY) e unità di tempo di CPU richieste da ciascun processo Tempo di CPU Processi P1 P2 P3 P4 P5 P6 Tempo medio di attesa: ( )/6 = 7.6 unità di tempo Tempo medio di fine esecuzione: ( )/6 = 11 unità di tempo SJF Coda ORDINATA dei pronti (READY) e unità di tempo di CPU richieste da ciascun processo Tempo di CPU Processi P3 P1 P4 P5 P2 P6 Tempo medio di attesa: ( )/6 = 6.8 unità di tempo Tempo medio di fine esecuzione: ( )/6 = unità di tempo 21 Senza prerilascio Politiche di scheduling SENZA PRERILASCIO Con priorità: alcuni processi vengono considerati più importanti di altri. La priorità viene assegnata dal S.O. in base a criteri legati al tipo di processo e all utente che lo ha mandato in esecuzione. In questo caso la coda di READY viene ordinata per valori decrescenti di priorità dei processi e ogni volta viene scelto il processo con priorità più alta da mandare in esecuzione. Se due processi hanno la stessa priorità verrà servito il primo arrivato in coda. Se arriva in coda di READY un nuovo processo viene inserito rispettando l ordinamento. Difetti: se continuano ad arrivare processi con alta priorità quelli con priorità bassa rischiano la starvation. 22

12 Senza prerilascio Esercizio: I processi A, B, C, D sono arrivati in stato di READY in questo ordine e quasi contemporaneamente. Il tempo di CPU necessario a ciascun processo per completare la propria esecuzione è rispettivamente di 30, 10, 15, 8 ms. Le rispettive priorità sono: 1, 3, 4, 2 dove a valore maggiore corrisponde priorità più alta. Determinare il Tma (tempo medio di attesa) e il Tms (tempo medio di fine esecuzione) detto anche Turnaround (dalla sottomissione alla fine esecuzione) nel caso di utilizzo dei seguenti 3 algoritmi di schedulazione senza prerilascio: FCFS, SJF e Con priorità e confrontare i risultati. 23 Con prerilascio Politiche di scheduling CON PRERILASCIO Con priorità: gli algoritmi che si basano sulla priorità possono essere anche di tipo preemptive. La coda viene ordinata come nel caso precedente per priorità crescente. La differenza è la seguente: se arriva in coda un processo con priorità maggiore di quello che sta utilizzando la CPU, viene forzato il prerilascio. Il prerilascio può avvenire: Quandoarrivaunnuovoprocesso instatodireadychehaprioritàmaggioredi quelloinstatodirun QuandounprocessopassadallostatodiWAITallostatodiREADY edhapriorità maggiorediquelloinstatodirun Difetti: i processi con bassa priorità rischiano la starvation. Per questo spesso si usa una priorità dinamica che aumenta con l anzianità del processo. 24

13 Con prerilascio CON PRERILASCIO Politiche di scheduling Round Robin: tutti i processi vengono considerati della stessa importanza. A ciascun processo viene concesso l uso del processore per un T di tempo detto quanto di tempo (o time-slice). Il timer allo scadere del quanto di tempo invia un segnale di interruzione che provoca l intervento del S.O. che forza il processo a prerilasciare il processore eatornareinstatodiready. In questo modo si evita la starvation, perché a turno tutti i processi usano lacpuperunostessointervalloditempo. La politica RR è equivalente a FCFS con prerilascio. 25 Con prerilascio Round Robin: Politiche di scheduling Se ci sono N processi in coda READY e il quanto di tempo è Q, allora ogni processo riceve 1/N del tempo della CPU in blocchi di almeno Q unità di tempo per volta. Il RR è l algoritmo di scheduling naturale per implementare il time sharing, ed è quindi particolarmente adatto per i sistemi interattivi. Nel caso peggiore un utente non aspetta mai più di (N-1)*Q unità di tempo prima che il suo processo venga servito. 26

14 Con prerilascio Considerazioni su Round Robin Politiche di scheduling Il comportamento del RR dipende molto dal valore del quanto di tempo scelto. Se il time-slice è molto breve si verificano interruzioni frequenti per passare da un processo all altro (context switch) e l efficienza del sistema diminuisce(overhead). Se il time-slice è molto lungo il sistema diventa come FCFS (time-slice infinito). Si verificano poche interruzioni, ma si perdono i vantaggi del RR in quanto vengono nuovamente penalizzati i processi che richiedono poco tempo di CPU (aumenta il tempo di risposta dei processi interattivi). 27 Con prerilascio Round Robin Processi in ordine di arrivo da P1 a P6 in READY e unità di tempo di CPU richieste da ciascun processo Tempo di CPU Processi T P1 P2 P3 P4 P5 P6 P1 P2 P4 P5 P6 P6 Tempo medio di attesa: ((0+10)+(2+9)+(4)+(6+7)+(8+6)+(10+5))/6 = 11.6 T Tempo medio di fine esecuzione: ( )/6 = 14.5 T 28

15 Con prerilascio Round Robin ProcessidaP1aP8 incodadeipronti (READY)e unità di tempo di CPU richieste da ciascun processo. Tempo di CPU Processi T P1 P2 P3 P4 P5 P6 P7 P8 P1 P2 P4 P5 P6 P7 P6 Tempo medio di attesa: ((0+14)+(2+13)+(4)+(6+11)+(8+10)+(10+9+1)+(12+9)+(14))/8 = T Tempo medio di fine esecuzione: ( )/8 = 18.5 T 29 Con prerilascio Round Robin Il tempo di turnaround dipende dalla durata del quanto, ma non c è una relazione precisa fra di loro. Il turnaround non migliora necessariamente se si aumenta il quanto Q, ma può migliorare se la maggior parte dei processi haunburstminorediq. D altra parte, se Q è troppo grande diventa un FCFS, e non va bene per il time sharing. Unaregolaempiricadicechel 80%deiCPUburstdovrebbeessereminorediQ. 30

16 Con prerilascio CON PRERILASCIO Politiche di scheduling Scheduling a code multiple: si può realizzare quando i processi sono facilmente divisibili in classi differenti. Ad esempio: foreground (interattivi, ad esempio un editor) background (non interagiscono con l utente) Si può partizionare la coda di READY in più code, ciascuna con una diversa priorità: inserendo i processi in una delle code, sulla base delle proprietà di ciascun processo assegnando ad ogni coda lo scheduling appropriato Ad esempio: foreground: RR background: FCFS 31 Con prerilascio Scheduling a code multiple Ad esempio si può fare la scelta di: Politiche di scheduling Scheduling a priorità fissa: servire prima tutti i processi nella coda foreground e poi quelli in background. (Possibilità di starvation) oppure Time slice: ogni coda ha una certa quantità Tdi tempo di CPU, ad esempio: 80% alla coda foreground e 20% alla coda background Esempio di partizionamento dei diversi tipi di processi in più code 32

17 Con prerilascio CON PRERILASCIO Politiche di scheduling Scheduling a code multiple con FeedBack (retroazione) - MFQS L assegnamentodiunprocessoaunacodanonèpiùfisso. IprocessipossonovenirespostatidalSOdaunacodaadun altra. Quando un processo nasce, viene inserito in una coda in base ad una certa priorità assegnata. Quando va in stato di RUN, se il quanto di tempo assegnatogli termina prima che il processo abbia terminato il CPU burst, viene retrocesso alla coda successiva; se, invece, il processo termina il suo CPU burst prima che sia terminato il quanto di tempo assegnatogli, il processo può essere promosso. La politica MFQS è definita dai seguenti parametri: numero delle code algoritmo di scheduling di ogni coda quando declassare un processo quando promuovere un processo in che coda inserire un processo quando arriva (dall esterno o da un I/O burst) MFQS è il tipo di scheduling più generale, che comprende tutti quelli visti. 33 Scheduling per sistemi multi-core SonoormaicomunilearchitettureconCPUa2,4,6e8core. Sono, in sostanza, dei piccoli sistemi multiprocessore in cui sullo stesso chip sono presenti due o più core che vedono la stessa memoria principale(e di solito condividono un livello di cache). La presenza di più unità di esecuzione dei processi, permette naturalmente di aumentare le prestazioni della macchina, posto che il SOsiaingradodisfruttareapienociascuncore. 34

18 Scheduling per sistemi multi-core Tutti i moderni SO prevedono in particolare la cosiddetta multielaborazione simmetrica (symmetric multiprocessing, SMP), in cui uno scheduler gira su ciascun core. I processi READY possono essere inseriti in un unica coda, vista da ciascun scheduler, consentendo quindi di far eseguire un processo su qualunque processore disponibile al momento. In questo caso sono necessari meccanismi di accurata sincronizzazione dei processori nell accesso a strutture dei dati condivise(la coda di READY ); oppure VipuòessereunacodaREADYseparataperciascuncore. Questa soluzione potrebbe portare ad una situazione con un processore in stato idle e un altro sovraccarico di processi. Quandoloschedulerdiuncoresiattiva,sceglieunodeiprocessiREADY elomandainesecuzionesulpropriocore. 35 Scheduling per sistemi multi-core La multielaborazione può essere Asimmetrica o Simmetrica. ASMP (asymmetric multiprocessing) Il SO imposta in genere l uso esclusivo di uno o più processori. Il resto dei processori esegue applicazioni utente. Come risultato, il singolo processore che esegue il sistema operativo deve gestire gli tutti altri processori che eseguono applicazioni utente. Il sovraccarico di lavoro del processore destinato al SO può costringere le applicazioni a delle attese, riducendo così la velocità complessiva del sistema. 36

19 Scheduling per sistemi multi-core SMP (symmetric multiprocessing) È usato per ottenere di prestazioni più elevate. Ogni processore, in questo caso, può eseguire qualsiasi tipo di processo. I processori comunicano tra loro attraverso la memoria condivisa. Sistemi SMP forniscono un migliore bilanciamento del carico e tolleranza di errore. Poiché i thread del sistema operativo possono essere eseguiti su qualsiasi processore, si riduce notevolmente il pericolo di avere un sovraccarico di sistema. I sistemi SMP sono più complessi dei sistemi ASMP proprio per il coordinamento e la sincronizzazione che deve avvenire all'interno del sistema. Per questo motivo, i sistemi SMP sono generalmente progettati e scritti da zero. 37 Un aspetto importante dei sistemi multi-core è il bilanciamento del carico. Nonhainfattisensoavereunsistemacon2o3o4coresepoiivariprocessida eseguire non sono distribuiti più o meno omogeneamente tra i vari core. Codaunica Scheduling per sistemi multi-core Nel caso di un unica coda READY, il bilanciamento del carico è sostanzialmente automatico: quando un core è inattivo, il suo scheduler prenderà un processo dalla coda comune e lo manderà in esecuzione su quel core. Coda separata I SO moderni spesso usano una coda separata per ciascun core. Esiste allora un esplicito meccanismo di bilanciamento del carico che può prendere un processo in attesa sulla coda di un core sovraccarico e spostarlo nellacodadiuncorescarico. Ad esempio, Linux SMP attiva il proprio meccanismo di bilanciamento del caricoogni200millisecondieognivoltaincuisisvuotalacodadiuncore. 38

20 Scheduling per sistemi multi-core Lamigrazionediunprocessodauncoreadunaltropuònonessere conveniente nel caso in cui ciascun core abbia una cache privata. Per questa ragione, alcuni SO, come Linux, mettono a disposizione delle system call per poter specificare che un processo non deve cambiare core, indipendentemente dal carico del core stesso. Nella realtà le cose sono ancora più complicate, in quanto i moderni processori hanno 2 o 3 livelli di cache. Nel caso ad esempio dei Core i7, i vari core condividono la cache di terzo livello (L3) e ciascun core haunacacheprivatadisecondolivellol2ediprimo livellol1(l1èa suavoltadivisainunacacheperidatieinunaperleistruzioni). 39 Lo scheduling in Windows XP Loschedulerusaunoschemaa32livellidipriorità(da0a31): iprocessireal-timehannounaprioritàda16a31, gli altri processi hanno una priorità da 1 a 15 (0 è un valore riservato). Quando un processo nasce gli viene assegnata priorità 1. Nel caso di processi non real-time lo scheduler sceglie il processoaprioritàpiùaltaegliassegnalacpu. Secisonopiùprocessiconlastessapriorità,siusaRR. 40

21 Lo scheduling in Windows XP SeilprocessochestautilizzandolaCPUvainWAITprimadiesaurire ilsuoquantoditempo,lasuaprioritàvienealzata(max15). L entità dell incremento dipende dal tipo di evento che il processo attende: se è un dato dalla tastiera (quindi siamo in presenza di un processo interattivo) si avrà un grosso incremento della priorità. seilprocessoattendeundatodaldisco,l incrementoèminore. Se il processo che sta utilizzando la CPU consuma interamente il quanto di tempo assegnato, la sua priorità viene diminuita(min 1). Questa strategia favorisce ovviamente i processi che interagiscono con il mouse e la tastiera, per i quali è importante un tempo di risposta molto basso. 41 Lo scheduling in Windows XP Windows distingue tra i processi in background e il processo in foreground(finestra attiva). Quando un processo passa in foreground il quanto di tempo assegnatogli viene moltiplicato per 3, cosicché il processo può continuare l esecuzione per un tempo tre volte più lungo, prima di abbandonare la CPU. 42

22 Lo scheduling in LINUX (primo tipo) Linux ha utilizzato diversi tipi di scheduling. Nel primo tipo le priorità alte sono indicate con valori numerici bassi, e viceversa: un eredità dei primi sistemi Unix. periprocessireal-timelaprioritàvada0a99 perglialtriprocessi(nonreal-time)laprioritàvada100a140. I valori nell intervallo sono detti nice. 43 Processi non real-time Lo scheduling in LINUX (primo tipo) Questi processi vengono raggruppati in due code separate: 1. codaattiva:iprocessichesonoandatiinwaitprimaditerminare ilquanto di tempo loro assegnato(inclusi i processi che non hanno ancora iniziato ad eseguire) 2. coda scaduta: i processi che hanno esaurito il proprio quanto di tempo. Lo scheduler sceglie il processo a priorità più alta nella coda attiva e gli assegnalacpuperuntempoparia: uninteroquantoditempo(disolitoda10a100millisecondi)seilprocesso non aveva ancora iniziato ad eseguire il proprio codice (in quel quanto di tempo). la porzione di quanto di tempo non ancora utilizzata dal processo quando eraandatoinwaitlavoltaprecedenteincuiavevausatolacpu(quindiper un tempo sicuramente inferiore al quanto assegnato inizialmente) Quando un processo ha esaurito il proprio quanto di tempo, viene spostato nella coda scaduta. 44

23 Lo scheduling in LINUX (primo tipo) Notate che, inizialmente, la coda scaduta è vuota: nessun processo è ancora riuscito ad utilizzare completamente un quanto di tempo assegnatogli. Quando la coda attiva è vuota, vuol dire che a tutti i processi hanno ricevuto ed esaurito completamente un quanto di tempo (in sostanza, siamo di fronte ad una forma sofisticata di Round Robin) A questo punto le due code si cambiano di ruolo: quella scaduta divene la coda attiva, e viceversa, e il processo di scheduling ricomincia assegnando un quanto di tempo al processo con priorità più alta nella coda attiva. 45 Lo scheduling in LINUX (primo tipo) Il nice (ossia, la priorità corrente) di un processo viene ricalcolato dinamicamente quando il processo ha esaurito il proprio quanto di tempo, sommandogli o sottraendogli il valore 5, a seconda del suo grado di interattività. Un processo interattivo ha normalmente lunghi tempi di attesa per le operazioni di I/O e il suo nice verrà decrementato di 5, viceversa per un processo che ha speso poco tempo in attesa del completamento di operazioni di I/O. Quindi, lo scheduling favorisce i processi interattivi, che nella nuova coda attiva avranno una priorità migliore (nice più basso) dei processi non interattivi. 46

24 Lo scheduling in LINUX (secondo tipo) A partire da fine 2007 (versione ) il kernel di Linux, adotta un nuovo algoritmo di scheduling, il Completely Fair Scheduler(CFS). IlCFScercadidistribuireequamenteiltempodiCPUtratuttiiprocessi chesonoinstatodireadyinattesadell usodellacpu. Politica 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 quantita di tempo assegnata ad ogni processo Tiene conto anche dei tempi di attesa di I/O I processi in stato di READY non vengono più organizzati in code di scheduling, ma vengono mantenuti in un albero di ricerca binario. Un albero binario è una struttura dati ad accesso molto efficiente, e questo è importante, dato che la struttura deve essere letta e modificata dallo scheduler ad ogni context switch. 47 Lo scheduling in LINUX (secondo tipo) Completely Fair Scheduler (CFS): implementazione Tempo di CPU consumato da ciascun processo Tutte le operazioni (ricerca, cancellazione, inserimento) in quest'albero hannocomplessitao(log 2 N). Ciascun nodo dell'albero(processo) è caratterizzato dal: tempo consumato = tempo di CPU assegnatogli inizialmente meno quanto ancora gli resta da consumare 48

25 Lo scheduling in LINUX (secondo tipo) Completely Fair Scheduler (CFS): implementazione Tempo di CPU consumato da ciascun processo Ilnodopiùasinistraèsemprequellocolvalorepiùbassochecorrisponde al processo che ha usato la CPU per meno tempo, e viene scelto dallo scheduler per entrare in esecuzione. Il CFS può essere configurato scegliendo la periodicità del context switch, ossia ogni quanto tempo viene ricalcolato il valore contenuto nei nodi. 49

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

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

Dettagli

5. Scheduling della CPU. 5.1 Concetti Fondamentali. 5.1.2. Lo scheduler della CPU

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

Dettagli

5. Scheduling della CPU

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

Dettagli

Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst

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

Dettagli

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

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

Dettagli

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

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

Dettagli

Lo schedulatore del kernel

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

Dettagli

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. 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

Dettagli

Lo scheduling. Tipici schedulatori

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

Dettagli

Lez. 4 Lo scheduling dei processi. Corso: Sistemi Operativi Danilo Bruschi

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

Dettagli

Scheduling della CPU

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

Dettagli

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi

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

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU

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

Dettagli

Scheduling della CPU:

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

Dettagli

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano scheduling Riedizione modifi cata delle slide della Prof. DI Stefano 1 Scheduling Alternanza di CPU burst e periodi di I/O wait a) processo CPU-bound b) processo I/O bound 2 CPU Scheduler Seleziona uno

Dettagli

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di 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

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

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

Dettagli

Scheduling della CPU. Contenuti delle lezioni del 23 e del 26 Marzo 2009. Sequenza alternata di CPU burst e di I/O burst.

Scheduling della CPU. Contenuti delle lezioni del 23 e del 26 Marzo 2009. Sequenza alternata di CPU burst e di I/O burst. Contenuti delle lezioni del 23 e del 26 Marzo 2009 Scheduling della CPU Introduzione allo scheduling della CPU Descrizione di vari algoritmi di scheduling della CPU Analisi dei criteri di valutazione nella

Dettagli

Processo - generalità

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

Dettagli

Corso di Informatica

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

Dettagli

Un sistema operativo è un insieme di programmi che consentono ad un utente di

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

Dettagli

Pronto Esecuzione Attesa Terminazione

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

Dettagli

Scheduling. Lo scheduler è la parte del SO che si occupa 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

Dettagli

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! 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

Dettagli

Sistemi Operativi. Scheduling dei processi

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

Dettagli

Scheduling Introduzione Tipi di scheduler Scheduler di lungo termine (SLT) Scheduler di medio termine (SMT) Scheduler di breve termine (SBT)

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

Dettagli

Processi e Thread. Scheduling (Schedulazione)

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

Dettagli

Sistemi Operativi. Schedulazione della CPU

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

Dettagli

SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007

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

Dettagli

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Rappresentazione e gestione delle attività e della computazione:

Dettagli

Lezione 6. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

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

Dettagli

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi.

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

Dettagli

Sistemi Operativi Kernel

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

Dettagli

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. 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

Dettagli

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

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

Dettagli

Mul&programmazione. Ges&one dei processi. Esecuzione parallela. MAC OSX Monitoraggio a9vità. Linux System monitor. Windows Task Manager. A.

Mul&programmazione. Ges&one dei processi. Esecuzione parallela. MAC OSX Monitoraggio a9vità. Linux System monitor. Windows Task Manager. A. Mul&programmazione Ges&one dei processi A. Ferrari Tu9 i Sistemi Opera&vi moderni sono in grado di eseguire contemporaneamente più di un programma Il numero di programmi in esecuzione è superiore al numero

Dettagli

Diagramma delle durate dei CPU burst. Lo scheduler della CPU. Criteri di scheduling. Dispatcher

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

Dettagli

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job.

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job. Di cosa parliamo in questa lezione? Lezione 4 Cosa è un processo e come viene gestito dal SO 1 e job 2 Il blocco di controllo Sistemi operativi 3 Struttura di un file eseguibile 4 La schedulazione dei

Dettagli

SISTEMI OPERATIVI. Schedulazione della CPU. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

SISTEMI OPERATIVI. Schedulazione della CPU. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) Schedulazione della CPU Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario Concetti base

Dettagli

Scheduling. Dipartimento di Informatica Università di Verona, Italy. Sommario

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

Dettagli

Il software. la parte contro cui si può solo imprecare. Il software

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

Dettagli

Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base

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

Dettagli

Scheduling della CPU. Concetti base. Criteri di Scheduling. Algoritmi di Scheduling

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

Dettagli

Scheduling della CPU

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

Dettagli

Scheduling. Livelli Algoritmi

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

Dettagli

Sistemi Operativi (modulo di Informatica II) I processi

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

Dettagli

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Funzioni dei Sistemi Operativi!2 Le funzioni principali del SO Gestire le risorse dell elaboratore

Dettagli

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 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

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

Dettagli

Il Concetto di Processo

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

Dettagli

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

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,

Dettagli

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

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

Dettagli

Sistemi Operativi. ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Sistemi Operativi. ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08 Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione Introduzione

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

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.

Dettagli

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni 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

Dettagli

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

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

Dettagli

Funzioni del Sistema Operativo

Funzioni del Sistema Operativo Il Software I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (ferramenta). La struttura del calcolatore può essere schematizzata come una serie di

Dettagli

Capitolo 6: CPU scheduling

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

Dettagli

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

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

Dettagli

Algoritmi di scheduling

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

Dettagli

Modello dei processi. Riedizione delle slide della Prof. Di Stefano

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

Dettagli

Scheduling della CPU Simulazione in linguaggio Java

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

Dettagli

Scheduling della CPU

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

Dettagli

Scheduling. Scheduling 14/12/2003 1/7

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

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

La schedulazione. E.Mumolo mumolo@units.it

La schedulazione. E.Mumolo mumolo@units.it La schedulazione E.Mumolo mumolo@units.it Concetti fondamentali Multiprogrammazione: esecuzione simultanea di più sequenze di esecuzione Pseudo-parallelismo su una sola CPU Esecuzione parallela su più

Dettagli

Lo scheduler di UNIX (1)

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

Dettagli

Introduzione ai Sistemi Operativi

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

Dettagli

6 CPU Scheduling. 6.1 Concetti Fondamentali dello Scheduling della CPU. 6.1 Concetti Fondamentali

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

Dettagli

Introduzione ai sistemi operativi

Introduzione ai sistemi operativi Introduzione ai sistemi operativi Che cos è un S.O.? Shell Utente Utente 1 2 Utente N Window Compilatori Assembler Editor.. DB SOFTWARE APPLICATIVO System calls SISTEMA OPERATIVO HARDWARE Funzioni di un

Dettagli

IL SISTEMA OPERATIVO

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO... è l insieme dei programmi che rende agevole l uso dell hardware, mascherando le caratteristiche delle risorse fisiche (interfaccia) gestisce le risorse fisiche ottimizzandone l

Dettagli

Corso di Sistemi Operativi

Corso di Sistemi Operativi Corso di Sistemi Operativi Scheduling dei processi a.a. 2012/2013 Francesco Fontanella Classificazione dei processi Durante l'esecuzione di un processo: si alternano periodi di attività svolte dalla CPU

Dettagli

GESTIONE DEI PROCESSI

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

Dettagli

Dipartimento di Informtica e Sistemistica Università di Roma La Sapienza

Dipartimento di Informtica e Sistemistica Università di Roma La Sapienza Dipartimento di Informtica e stica Università di Roma La Sapienza Cosa è un sistema operativo Esempi di Insieme di componenti SW che gestiscono le operazioni di basso livello dell elaboratore Compiti di

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Cos è un Sistema Operativo? Per capirlo, immaginiamo inizialmente

Dettagli

Processi. Laboratorio Software 2008-2009 C. Brandolese

Processi. Laboratorio Software 2008-2009 C. Brandolese Processi Laboratorio Software 2008-2009 Introduzione I calcolatori svolgono operazioni simultaneamente Esempio Compilazione di un programma Invio di un file ad una stampante Visualizzazione di una pagina

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi a.a. 2010/2011 Francesco Fontanella Il Sistema Operativo Sistema Operativo 2 Il Sistema Operativo Il Sistema Operativo è uno strato

Dettagli

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario Processi e thread Dipartimento di Informatica Università di Verona, Italy Sommario Concetto di processo Stati di un processo Operazioni e relazioni tra processi Concetto di thread Gestione dei processi

Dettagli

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 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

Dettagli

Capitolo 1: Introduzione

Capitolo 1: Introduzione Capitolo 1: ntroduzione Che cos è un sistema operativo? Sistemi mainframe. Sistemi desktop. Sistemi multiprocessore. Sistemi distribuiti. Sistemi cluster. Sistemi in tempo reale. Sistemi palmari. Migrazione

Dettagli

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche Sommario Definizione di S. O. Attività del S. O. Struttura del S. O. Il gestore dei processi: lo scheduler Sistemi Mono-Tasking e

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

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)?

Dettagli

Il Sistema Operativo (1)

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

Dettagli

Scheduling della CPU

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

Dettagli

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

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

Dettagli

Il supporto al Sistema Operativo

Il supporto al Sistema Operativo Il supporto al Sistema Operativo Obiettivi e funzioni del S.O. Il Sistema Operativo è il software che controlla l esecuzione dei programmi e amministra le risorse del sistema. Ha due obiettivi principali:

Dettagli

Infrastrutture Software

Infrastrutture Software Infrastrutture Software I componenti fisici di un sistema informatico sono resi accessibili agli utenti attraverso un complesso di strumenti software finalizzati all utilizzo dell architettura. Si tratta

Dettagli

1.5: Gestione dei Processi e della CPU

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

Dettagli

Calcolo numerico e programmazione. Sistemi operativi

Calcolo numerico e programmazione. Sistemi operativi Calcolo numerico e programmazione Sistemi operativi Tullio Facchinetti 25 maggio 2012 13:47 http://robot.unipv.it/toolleeo Sistemi operativi insieme di programmi che rendono

Dettagli

Scheduling della CPU (2) CPU bursts (2)

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,

Dettagli

SCHEDULATORI DI PROCESSO

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

Dettagli

Software che sovrintende al funzionamento del computer eseguendo compiti diversi:

Software che sovrintende al funzionamento del computer eseguendo compiti diversi: Sistema Operativo dispensa a cura di Alessandro Bellini Software che sovrintende al funzionamento del computer eseguendo compiti diversi: 1. Gestire interazione utente macchina 2. Fornire un interfaccia

Dettagli

Concetto di processo. Processi. Immagine in memoria di un processo. Stati di un processo. Un SO esegue una varietà di attività:

Concetto di processo. Processi. Immagine in memoria di un processo. Stati di un processo. Un SO esegue una varietà di attività: Impossibile visualizzare l'immagine. Processi Concetto di processo Un SO esegue una varietà di attività: Sistemi batch job Sistemi time-sharing programmi utenti o task Nel libro i termini job e processo

Dettagli

SISTEMI OPERATIVI. E il S.O. in funzione sul computer che consente all utente di poter avviare i programmi applicativi desiderati.

SISTEMI OPERATIVI. E il S.O. in funzione sul computer che consente all utente di poter avviare i programmi applicativi desiderati. SISTEMI OPERATIVI SOFTWARE DI BASE Il software di base comprende tutti quei programmi indispensabili ai fini del funzionamento dell elaboratore, per questo viene detto di base. I S.O. rientrano nella categoria

Dettagli

Tecniche Automatiche di Acquisizione Dati

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

Dettagli

A.C. Neve Sistemi operativi 3.0 1

A.C. Neve Sistemi operativi 3.0 1 SISTEMI OPERATIVI Sistemi operativi Processi 2 Componenti di un sistema operativo 3 Tipologie di un sistema operativo 4 Nucleo di un sistema operativo Caratteristiche dei processi 7 Stati dei processi

Dettagli

Sebbene le durate varino secondo il processo e secondo il calcolatore, la curva di frequenza è simile a quella qui riportata.

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.

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

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

Dettagli

Il Sistema Operativo

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

Dettagli

ESERCIZI SULLO SCHEDULING DEI PROCESSI

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

Dettagli