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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 Roberta Gerboni 1

2 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 trova in memoria di massa. 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 trova in questo stato) perché gli è stata assegnata la CPU. 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

3 Un processo passa la propria vita a fare le code. 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 di RUN). 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

4 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

5 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) e sulle risorse. In particolare la tabella dei processi contiene l identificatore (PID) univoco di ciascun processo e il puntatore all immagine del processo. 5

6 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

7 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

8 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

9 Schedulatore a breve termine e context switch 9

10 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

11 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

12 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

13 Task manager di Windows 7 13

14 Task manager di Windows 7 14

15 Task manager di Windows 7 15

16 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à oppure se il processo ha utilizzato la CPU per il massimo tempo consentito (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

17 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

18 Senza prerilascio Politiche di scheduling SENZA PRERILASCIO 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 diun 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

19 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à aspettare un tempo 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 Ma c è un problema che impedisce di usare questo algoritmo 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

20 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

21 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

22 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

23 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

24 Con prerilascio CON PRERILASCIO Politiche di scheduling 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: Quando arriva un nuovo processo in stato di READY che ha priorità maggiore di quello in stato di RUN Quando un processo passa dallo stato di WAIT allo stato di READY ed ha priorità maggiore di quello in stato di RUN 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

25 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 e a tornare in stato di READY. In questo modo si evita la starvation, perché a turno tutti i processi usano la CPU per uno stesso intervallo di tempo. La politica RR è equivalente a FCFS con prerilascio. 25

26 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

27 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

28 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 P1 P2 P3 P4 P5 P6 P1 P2 P4 P5 P6 P T 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

29 Con prerilascio Round Robin Processi da P1 a P8 in coda dei pronti (READY) e unità di tempo di CPU richieste da ciascun processo. Tempo di CPU Processi P1 P2 P3 P4 P5 P6 P7 P8 P1 P2 P4 P5 P6 P7 P T 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

30 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 ha un burst minore di Q. D altra parte, se Q è troppo grande diventa un FCFS, e non va bene per il time sharing. Una regola empirica dice che l 80% dei CPU burst dovrebbe essere minore di Q. 30

31 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

32 Con prerilascio Scheduling a code multiple Politiche di scheduling Ad esempio si può fare la scelta di: 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à T di 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

33 Con prerilascio CON PRERILASCIO Politiche di scheduling Scheduling a code multiple con FeedBack (retroazione) - MFQS L assegnamento di un processo a una coda non è più fisso. I processi possono venire spostati dal SO da una coda ad un 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

34 Scheduling per sistemi multi-core Sono ormai comuni le architetture con CPU a 2, 4, 6 e 8 core. 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 SO sia in grado di sfruttare a pieno ciascun core. 34

35 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 Scheduling per sistemi multi-core Vi può essere una coda READY separata per ciascun core. Questa soluzione potrebbe portare ad una situazione con un processore in stato idle e un altro sovraccarico di processi. Quando lo scheduler di un core si attiva, sceglie uno dei processi READY e lo manda in esecuzione sul proprio core. 35

36 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

37 SMP (symmetric multiprocessing) Scheduling per sistemi multi-core È 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

38 Un aspetto importante dei sistemi multi-core è il bilanciamento del carico. Non ha infatti senso avere un sistema con 2 o 3 o 4 core se poi i vari processi da eseguire non sono distribuiti più o meno omogeneamente tra i vari core. Coda unica 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 Scheduling per sistemi multi-core 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 nella coda di un core scarico. Ad esempio, Linux SMP attiva il proprio meccanismo di bilanciamento del carico ogni 200 millisecondi e ogni volta in cui si svuota la coda di un core. 38

39 Scheduling per sistemi multi-core La migrazione di un processo da un core ad un altro può non essere 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 ha una cache privata di secondo livello L2 e di primo livello L1 (L1 è a sua volta divisa in una cache per i dati e in una per le istruzioni). 39

40 Lo scheduling in Windows XP Lo scheduler usa uno schema a 32 livelli di priorità (da 0 a 31): i processi real-time hanno una priorità da 16 a 31, 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 processo a priorità più alta e gli assegna la CPU. Se ci sono più processi con la stessa priorità, si usa RR. 40

41 Lo scheduling in Windows XP Se il processo che sta utilizzando la CPU va in WAIT prima di esaurire il suo quanto di tempo, 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 (quindi siamo in presenza di un processo interattivo) si avrà un grosso incremento della priorità. se il processo attende un dato dal disco, 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

42 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

43 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. per i processi real-time la priorità va da 0 a 99 per gli altri processi (non real-time) la priorità va da 100 a 140. I valori nell intervallo sono detti nice. 43

44 Processi non real-time Lo scheduling in LINUX (primo tipo) Questi processi vengono raggruppati in due code separate: 1. coda attiva: i processi che sono andati in wait prima di terminare il quanto 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 assegna la CPU per un tempo pari a: un intero quanto di tempo (di solito da 10 a 100 millisecondi) se il processo 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 era andato in WAIT la volta precedente in cui aveva usato la CPU (quindi per un tempo sicuramente inferiore al quanto assegnato inizialmente) Quando un processo ha esaurito il proprio quanto di tempo, viene spostato nella coda scaduta. 44

45 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

46 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

47 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). Il CFS cerca di distribuire equamente il tempo di CPU tra tutti i processi che sono in stato di READY in attesa dell uso della CPU. 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

48 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 hanno complessita O( 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

49 Lo scheduling in LINUX (secondo tipo) Completely Fair Scheduler (CFS): implementazione Tempo di CPU consumato da ciascun processo Il nodo più a sinistra è sempre quello col valore più basso che corrisponde 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

Gli stati di un processo

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

Dettagli

I THREAD O PROCESSI LEGGERI

I THREAD O PROCESSI LEGGERI I THREAD O PROCESSI Processi (pesanti): LEGGERI entità autonome con poche risorse condivise (si prestano poco alla scrittura di applicazioni fortemente cooperanti) Ogni processo può essere visto come Immagine

Dettagli

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

Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per:

Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire efficientemente l'elaboratore e le sue periferiche,

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

Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi prof. Augusto Celentano. Domande di riepilogo

Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi prof. Augusto Celentano. Domande di riepilogo Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi prof. Augusto Celentano Domande di riepilogo 1) Il descrittore di processo (Process Control Block) include al suo interno:

Dettagli

Sistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1

Sistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1 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

I Processi. Il Concetto di Processo

I Processi. Il Concetto di Processo I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite

Dettagli

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06. SISTEMI OPERATIVI 06.a Il Nucleo Nucleo di un SO Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher 1 Architettura di base dei SO Due le strutture di riferimento: 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

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

Il Sistema Operativo Il Sistema Operativo Il sistema operativo Con il termine sistema operativo si intende l insieme di programmi e librerie che opera direttamente sulla macchina fisica mascherandone le caratteristiche specifiche

Dettagli

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca

Dettagli

Struttura Logica del S.O:

Struttura Logica del S.O: Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 20 Martedì 16-12-2014 1 System call per la gestione dei processi Creazione

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

Sistemi Operativi. A.M. Fanelli Architettura dei Sistemi a. a Livello di Sistema Operativo. Livello di Linguaggi Applicativi

Sistemi Operativi. A.M. Fanelli Architettura dei Sistemi a. a Livello di Sistema Operativo. Livello di Linguaggi Applicativi Sistemi Operativi A.M. Fanelli Architettura dei Sistemi a. a. 2008-09 1 Livello di Sistema Operativo Livello di Linguaggi Applicativi Livello di Linguaggio Assembly Livello di Sistema Operativo Livello

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

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

Capitolo 1: Introduzione

Capitolo 1: Introduzione Capitolo 1: Introduzione Cos è un sistema operativo Sistemi mainframe Sistemi da scrivania Sistemi con più unità d elaborazione Sistemi distribuiti Batterie di sistemi (cluster) Sistemi d elaborazione

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

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

Sommario. Processi e Programmi. Che cosa e un Processo? Lezione 5 Processi e Threads

Sommario. Processi e Programmi. Che cosa e un Processo? Lezione 5 Processi e Threads Sommario Lezione 5 Processi e Threads Processi e Programmi Implementazione dei Processi Casi di Studio relativi a Processi Thread Casi di Studio relativi a Thread 5.2 Processi e Programmi Che cosa e un

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

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

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

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

Sistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Sistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia 1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it e 11 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

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

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

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

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

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

Operazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU

Operazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU Operazioni di I/O 1 Schema di collegamento fra dispositivi periferici e CPU Memoria CPU buffer interfaccia Registro di controllo Registro Di stato Unità di controllo Dispositivo fisico 2 1 Unità di interfaccia

Dettagli

2.2 Scheduling in Linux

2.2 Scheduling in Linux Appunti di Sistemi Operativi 28 2.2 Scheduling in Linux In generale, i processi possono essere classificati secondo due schemi: CPU bound vs. I/O bound; interattivi vs. batch vs. real-time. Le due classi

Dettagli

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel SISTEMI DI INPUT/OUTPUT 10.1 Sistemi I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per l I/O del kernel Trasformazione delle richieste di I/O Stream Prestazioni 10.2 I/O Hardware

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

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

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

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

Sistema Operativo (Software di base)

Sistema Operativo (Software di base) Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

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

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso INDICI PER FILE Strutture ausiliarie di accesso 2 Accesso secondario Diamo per scontato che esista già un file con una certa organizzazione primaria con dati non ordinati, ordinati o organizzati secondo

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

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

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

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

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

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

Informatica Generale 06 - Introduzione ai Sistemi Operativi

Informatica Generale 06 - Introduzione ai Sistemi Operativi Informatica Generale 06 - Introduzione ai Sistemi Operativi Cosa vedremo: Funzionalità dei sistemi operativi Bootstrap Stato utente e stato supervisore Componenti di un Sistema Operativo Cos è un sistema

Dettagli

Sistemi operativi. Motivazione. Tipi di software. Sistemi operativi. Un sistema operativo (SO) e un insieme di programmi che gestiscono le funzioni

Sistemi operativi. Motivazione. Tipi di software. Sistemi operativi. Un sistema operativo (SO) e un insieme di programmi che gestiscono le funzioni Motivazione Sistemi operativi Molte attivita in parallelo su un singolo calcolatore Es.: stampa di un documento e scrittura di un altro Il sistema operativo serve a coordinare queste attivita e far comunicare

Dettagli

Heap e code di priorità

Heap e code di priorità Heap e code di priorità Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010

Dettagli

Processi e thread. Concetto di processo

Processi e thread. Concetto di processo Processi e thread Concetto di processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione l di un processo è sequenziale (le istruzioni vengono

Dettagli

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il processore. Istituzionii di Informatica -- Rossano Gaeta Il processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

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

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

Capitolo 6 Le infrastrutture SoftWare

Capitolo 6 Le infrastrutture SoftWare Capitolo 6 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: garantire la correttezza e la precisione nell elaborazione

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

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 3-Equipaggiamento di un SO 1 Prerequisiti Hardware e software Uso pratico elementare di un sistema operativo Struttura a strati del SO 2 1 Introduzione In questa Unità vogliamo

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

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 10 Giovedì 7-11-2013 1 Gestione della memoria La memoria principale è

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

LA GESTIONE DELLA I/O

LA GESTIONE DELLA I/O LA GESTIONE DELLA I/O Il S.O. È l interfaccia tra l hardware e i programmi che effettuano richieste di I/O Sottosistema di I/O strutturato in moduli chiamati DRIVER uno per ogni dispositivo I Driver rendono

Dettagli

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: Il Software L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: un insieme di programmi che permettono di trasformare un insieme di circuiti

Dettagli

2. Nucleo del sistema operativo (la gestione dei processi)

2. Nucleo del sistema operativo (la gestione dei processi) Struttura interna del sistema operativo Linux 2. Nucleo del sistema operativo (la gestione dei processi) Architettura (struttura) del sistema operativo shell Programmi utente Modo utente Interfaccia delle

Dettagli

Sistemi Operativi Politiche di Ordinamento Processi

Sistemi Operativi Politiche di Ordinamento Processi Sistemi Operativi Politiche di Ordinamento Processi Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Astrazione di processo Ogni processo è associato

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

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

La memoria secondaria

La memoria secondaria La memoria secondaria E di solito un disco rigido che contiene dati e programmi in modo permanente (può essere anche un cd-rom, floppy disk, etc). Tempi di accesso: Floppy: O(100) ms Hard disk: O(10) ms

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

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 11 Martedì 10-11-2015 1 Memoria partizionata Le tecniche di memoria partizionata

Dettagli

Sistemi Operativi Modulo A a.a gruppo 1 (A-I)

Sistemi Operativi Modulo A a.a gruppo 1 (A-I) Sistemi Operativi Modulo A a.a. 2002-2003 - gruppo 1 (A-I) Docente: Mario Guarracino mario.guarracino@unina.it tel. 081 6139519 http://www.dma.unina.it/~mariog Informazioni logistiche Orario delle lezioni

Dettagli

Struttura interna del sistema operativo Linux

Struttura interna del sistema operativo Linux Struttura interna del sistema operativo Linux 5. I device driver A cura di: Anna Antola Giuseppe Pozzi DEI, Politecnico di Milano anna.antola/giuseppe.pozzi@polimi.it -versione del 30 marzo 2004-1-04.-04

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

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

II parte: Gestione dei Processi. 3. Processi. 3.1 Concetto di Processo

II parte: Gestione dei Processi. 3. Processi. 3.1 Concetto di Processo 1 II parte: Gestione dei Processi processi (cap. 3) Thread (cap. 4) Scheduling della CPU (cap. 5) Sincronizzazione fra processi (cap. 6) Deadlock (stallo dei processi) (cap. 7) 3. Processi 2 Il processo

Dettagli

Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette

Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette all'utente e ai programmi di gestire i dispositivi e le periferiche

Dettagli

Lab 1: Java Multithreading

Lab 1: Java Multithreading Dept. of Computer Science Lab 1: Java Multithreading Matteo Camilli matteo.camilli@unimi.it Laboratorio di Sistemi Operativi a.a. 2015/16 Università degli Studi di Bergamo 1 Outline Programmazione multithreading

Dettagli

Sistemi operativi e reti A.A Lezione 2

Sistemi operativi e reti A.A Lezione 2 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 2 Giovedì 8-10-2014 1 Sistemi a partizione di tempo (time-sharing) I

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

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato. Il File System Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i concetti

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

Come funzionano i computer

Come funzionano i computer Fluency Come funzionano i computer Capitolo 6 Cosa sanno fare Esecuzione deterministica istruzioni per elaborare dati Devono ricevere una serie di istruzioni da seguire Cosa non sanno fare Non hanno immaginazione

Dettagli

I sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas

I sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas I sistemi operativi (prima parte) Le esigenze dell informatica moderna Computer facili da usare Gestione di grandi archivi di dati Esecuzione di più programmi sulla stessa macchina Collegamento in rete

Dettagli

Gerarchia fisica di memoria 1. Gerarchia fisica di memoria 2. Gerarchia fisica di memoria 3. Ricapitolazione di concetti base

Gerarchia fisica di memoria 1. Gerarchia fisica di memoria 2. Gerarchia fisica di memoria 3. Ricapitolazione di concetti base Gerarchia fisica di memoria 1 Tempo di accesso Capacità tipica Ricapitolazione di concetti base Sistemi Operativi - T. Vardanega Pagina 92/113 Gerarchia fisica di memoria 2 La cache è suddivisa in blocchi

Dettagli

Modulo 3. Software. Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè

Modulo 3. Software. Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Modulo 3 Software Cosa è il software E l insieme di programmi che consente al computer di funzionare e di svolgere le funzioni richieste dall utente. Esistono fondamentalmente due tipologie di software:

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

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

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 1 Martedì 11-10-2016 1 Introduzione Un sistema operativo è un software

Dettagli

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1

Dettagli

Sistemi Operativi ed interazione con HW e CAD

Sistemi Operativi ed interazione con HW e CAD Sistemi Operativi ed interazione con HW e CAD Corsi di Informatica Grafica Prof. Manuel Roveri Indice Il Sistema Operativo Software di sistema e applicativo Architettura di un sistema operativo Classificazione

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

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse. Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,

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