OTTIMIZZAZIONE CRITERI DI SCHEDULING PER JOB MULTIPROCESSO IN AMBIENTE GRID

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "OTTIMIZZAZIONE CRITERI DI SCHEDULING PER JOB MULTIPROCESSO IN AMBIENTE GRID"

Transcript

1 UNIVERSITÀ DEGLI STUDI DI PARMA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI CORSO DI LAUREA INFORMATICA OTTIMIZZAZIONE CRITERI DI SCHEDULING PER JOB MULTIPROCESSO IN AMBIENTE GRID RELATORE: Chiar.mo Prof. ROBERTO ALFIERI CANDIDATO: LEONARDO MUTTI Anno Accademico

2

3 A coloro che nel mio percorso hanno sempre creduto. Grazie.

4

5 Indice 1 Premessa Teoria delle code Schema di un processo a coda Processo degli arrivi Capacità della coda Processo di servizi Canali di servitori Descrivere una coda Notazione Kendall Indici di efficienza Valutazione indici di efficienza Legge di Little Fair Queuing Proprietà Weighted fair queuing Preemption Starvation Checkpointing Scenari Reti Sistemi Operativi Scheduler della CPU Scheduling con diritto di prelazione Criteri di scheduling Algoritmi di scheduling Job Manager Algoritmi di assegnazione dei nodi Grid Evoluzione del Grid Computing Il Cluster Grid di Parma Job Sheduler

6 5.1 Controllo del traffico Obbiettivo primario Ottimizzazione MAUI Filosofia e obbiettivi dello scheduler Maui Scheduling Object Risorse Class (or Queue) Partitions Account Priorità Preemption Fairness Fairshare Obbiettivi del fairshare Reservation Backfill Checkpointing MOAB LSF Job Multiprocesso Sviluppo del progetto TORQUE Installazione di TORQUE Creazione dei pacchetti RPM Il file server_name Il file "nodes" Installare Torque in un nodo Il file "config" Creazione delle code Il comando qsub

7 6.2 MAUI Installazione di Maui Configurazione iniziale Maui testing File layout MOAB Installazione di Moab Variabili d'ambiente Avviamo Moab Workload Manager Installazione Moab Cluster Manager Gestione del job CERT Esecuzione di un job multiprocesso Conclusioni Bibliografia Sitografia Appendice A : maui.cfg

8 1 Premessa La necessità di utilizzare strumenti informatici che consentano operazioni molto complesse in tempi molto ristretti, ha portato l'idea di raccogliere risorse di calcolo per ottenere strumenti sempre più performanti, al fine di soddisfare le richieste di molti. Da questa idea nasce Grid: una struttura complessa di strumenti informatici distribuiti su rete geografica che permetta, a chi né ha la possibilità, di svolgere operazioni all'interno di siti di calcolo. Da questa vasta disponibilità di risorse e da un numero sempre più ampio di possibili fruitori nasce il problema affrontato in questo elaborato di tesi: come è possibile ottimizzare la gestione di tali risorse in modo da soddisfare tutte le richieste, e renderla giusta, così da ripartirle in modo equo e bilanciato? Da queste due domande e stato estrapolato un contesto di studio dal quale non potevamo esulare, la gestione delle code e dei criteri di scheduling. Partendo da un analisi teorica di come le code possano essere rappresentate per essere gestite e studiate e stato analizzato come esse vengano risolte in due contesti informatici fondamentali: i sistemi operativi e le reti di calcolatori. Una volta compresi i concetti chiave di tali gestioni si è studiato più nel dettaglio i diretti gestori di code nei siti di calcolo in ambiente Grid, ovvero i job scheduler. Analizzando le loro principali caratteristiche e metodi di funzionamento ci siamo imbattuti nelle problematiche della gestione di code di job come: la gestione degli utenti, l'assegnazione delle risorse a tali utenti, la preemption, il problema della starvation, l'introduzione della tecnica del fairshare e altre ancora. Lavorando sul sito di calcolo dell'università di Parma si è proceduto a configurare il job scheduler, in modo da risolvere tali problematiche e ad introdurre con successo alcune tecniche avanzate di gestione code come la backfill e il fairshare. In tale contesto si è manifestata la ormai sempre più attuale necessità di gestione di job multiprocesso, che richiedono una configurazione più complessa e accorta del sito di 8

9 calcolo dovuta alla loro particolare necessità di risorse in modo simultaneo. 9

10 2 Teoria delle code La teoria delle code è lo studio matematico delle linee di attesa (o code) e di vari processi correlati, quali il processo di arrivo in coda, l'attesa (essenzialmente un processo di immagazzinamento) e il processo di servizio. Può essere applicata ad un'ampia varietà di problemi reali, soprattutto nel campo dei trasporti, delle telecomunicazioni, della fornitura di servizi pubblici (ad es. in sanità) e delle operazioni aziendali. Usualmente, la teoria delle code è considerata una branca della ricerca operativa. Le sue origini vengono fatte risalire al 1909 quando l'ingegnere danese Agner Krarup Erlang pubblicò un articolo intitolato The theory of probability and telephone conversations relativo alle attese nelle chiamate telefoniche. 2.1 Schema di un processo a coda Schematicamente un processo in coda possiamo rappresentarlo nel seguente modo: Sorgente di arrivi Clienti Coda Stazione di servizio Clienti serviti Gli elementi fondamentali che caratterizzano un sistema di servizio sono: Processo degli arrivi Caratteristiche proprie della coda Capacità della coda Processo di servizio Canali di servitori 10

11 2.1.1 Processo degli arrivi La dimensione della sorgente degli arrivi per ipotesi è infinita. Il processo degli arrivi viene definito in base ai tempi di interarrivo, cioè il tempo che intercorre tra due entrate di due clienti successivi. In genere si ipotizza che il processo degli arrivi sia stazionario cioè non dipende dal tempo e che le variabili aleatorie siano indipendenti ed identicamente distribuite. Le caratteristiche della coda, sono di due tipi: Disciplina del servizio: cioè l'ordine con cui il cliente viene scelto dalla coda per poter usufruire del servizio: FCFS (FIFO) First In First Out LCFS (LIFO) Last In Firs Out SIRO (Servizio in ordine casuale) Basata sulla classe di priorità Comportamento del cliente: che può essere diverso, ad esempio: Rinuncia, il cliente aspetta poi si scoraggia Indecisione, cioè cambia coda Corruzione, paga un prezzo per avanzare di posto nella coda Inganno, avanza senza pagare il prezzo Capacità della coda Può essere o finita o infinita e questo va a influenzare la capacità del sistema, infatti se la coda è finita e viene saturata il cliente non può accedere al servizio e deve cambiare coda Processo di servizi Descrive il modi in cui viene erogato il servizio, viene definito per mezzo dei tempi di 11

12 servizio nel caso in cui essi siano dipendenti, indipendenti ed identicamente distribuiti. Il più comune è quello con i tempi di servizio esponenziale di Poisson. Può capitare che il tempo di servizio dipenda dalla dimensione della coda, oppure avere dei servitori a sequenza cioè una catena di servitori per poter ottenere il servizio completo Canali di servitori Possiamo avere: Più canali ed un unico servitore, cioè una fila davanti a un posto di servizio. Un unico canale e più servitori, dove i clienti sono in un unica coda e appena un servitore si libera si accede al servizio Descrivere una coda Notazione Kendall Nel 1953, David George Kendall introdusse la notazione A/B/C, successivamente estesa come A/B/s/c/z/p nella quale i numeri sono sostituiti con quanto segue. A è la distribuzione dei tempi di interarrivo (processo degli arrivi) B è la distribuzione dei tempi di servizio s è il numero dei servitori (capacità di servizio) c è la capacità del sistema o capacità della sorgente di arrivi (il sistema può accettare al massimo c clienti, per default è infinita) z è la disciplina del servizio (per default è FCFS) p è la capacità dell'intero sistema o dimensione della sorgente degli arrivi (per default è infinita) A è B possono assumere i seguenti valori: M per "di Markov", implicante una distribuzione esponenziale negativa unilatera per i tempi di servizio o tra gli arrivi: ciò implica l'assenza di memoria di questi ultimi; D per distribuzione "degenere" o "deterministica" dei tempi di servizio, tutti i 12

13 clienti hanno lo stesso valore; E k per una distribuzione di Erlang con k come parametro di forma; G per una distribuzione "Generale". z invece può assumere i valori: First Come First Served (FCFS) (o First In First Out - FIFO) (il primo che arriva viene servito per primo); Last Come First Served (LCFS) (o Last In First Out - LIFO) (l'ultimo che arriva viene servito per primo); Service In Random Order (SIRO) (servizio in ordine casuale). Esempi di code definiti con tali convenzioni sono: M/M/1: Questa è una coda molto semplice. Qui il tempo di arrivo e il tempo di servizio rispettano una distribuzione esponenziale negativa (Poisson). Il sistema prevede solo un server. Questo tipo di coda può essere applicato a una grande varietà di problemi come un qualsiasi sistema costituito da un numero ampio e indipendente di clienti approssimabili con un processo di Poisson. Purtroppo l'uso del processo di Poisson per stimare il tempo di servizio spesso non è applicabile in modo fedele ma rimarrà solo una cruda approssimazione. M/D/n: Qui il processo di arrivo è un processo di Poisson mentre il processo di servizio rispetta una distribuzione deterministica. Il sistema ha n server. Qui il tempo di sevizio di può essere stimato uguale per tutti i clienti. Per esempio una biglietteria con n cassieri. G/G/n: Questa è il sistema più generale dove l'arrivo del cliente e il tempo di servizio sono entrambi casuali. Il sistema ha n server. Nessuna soluzione analitica è tuttora conosciuta per questo tipo di code Indici di efficienza Per analizzare le prestazioni del sistema è possibile utilizzare degli indici di efficienza: 13

14 L numero medio di clienti nel sistema L q numero medio di clienti in coda W tempo medio per cliente nel sistema W q tempo medio per cliente in coda quando è passato poco tempo dalla fornitura del servizio si dice che siamo in uno stato transitorio che è uno stato difficile da gestire e valutare. Se passa un tempo sufficiente il sistema passa a condizioni di regime ovvero il sistema diventa stazionario, questa è la condizione più semplice da considerare. Questi indici valgono solo per condizioni a regime. Un altro indice che consideriamo è: ρ fattore di utilizzazione del posto di servizio Altre notazioni in input al nostro sistema sono: λ frequenza media dei tempi di interarrivo (ovvero il numero medio di arrivi nell'unità di tempo) µ velocità media del servizio o tasso di servizio (ovvero il numero medio di clienti per i quali è espletato il servizio nell'unita di tempo) Partendo da λ e µ possiamo ottenere il tempo medio di interarrivo e il tempo medio di servizio: 1/ λ tempo medio di interarrivo 1/ µ tempo medio di servizio C'è una relazione che lega tutte e tre queste variabili ed è: ρ = λ/ µ Esempio Consideriamo i seguenti intervalli di interarrivo: 3' 7' 10' 4' 6' in 30 minuti 14

15 e di voler calcolare il numero medio di arrivi nell'unità di tempo e il tempo medio di interarrivo. Il numero medio di arrivi nell'unità di tempo sarà dato da: 5/30 = 1/6 = λ per cui il tempo medio di interarrivo sarà: 1/ λ = 6' Valutazione indici di efficienza Legge di Little Schematicamente abbiamo una situazione del genere: Range di arrivo Range di servizio Modello L W Variabili Il progettista avrà delle variabili per minimizzare il costo del servizio. Se L e W sono grandi il modello non funziona bene, e per farlo funzionare bene posso variare il numero di servitori, la disciplina, le regole del sistema, ecc... Esiste una legge che ci viene in aiuto: Legge di Little L=λW L q =λw q 15

16 Se µ è costante W = W q + 1/µ Applichiamo ora queste nozioni ad un caso base: caso D/D/1, è il più facile da analizzare ma anche il più difficile che esista nella realtà: Informazione a(i) = istante di arrivo del cliente i s(i) = durata del servizio del cliente i Variabili X(i) = istante di uscita del cliente i dal sistema W(i) = tempo di attesa del cliente i Se supponiamo che X(0) = 0 allora: X(i) = s(i) + max {a(i), X(i-1)} W(i) = X(i) a(i) - s(i) Il numero medio di clienti nel sistema è dato dalla somma dei clienti che soddisfano la relazione: a(i) t X(i) Ora andremo ad analizzare alcuni delle nozioni più importanti, utili per una corretta gestione delle code. 2.2 Fair Queuing Il Fair Queuing è una algoritmo di scheduling usato in informatica sia nei computer per la gestione di processi che nelle telecomunicazioni per permettere a flussi di pacchetti di condividere equamente la capacità di trasmissione o ricezione del collegamento. La nascita del Fair Queuing avviene nel 1985 grazie a John Nagle durante i suoi studi nel campo delle telecomunicazioni. 16

17 Il vantaggio rispetto agli algoritmi di gestione delle code convenzionali è la migliore gestione di flussi ad alto carico di lavoro, con la possibilità di sfruttare a pieno le potenzialità del sistema. Fair Queuing può essere vista come una approssimazione del processo di sharing della CPU in un calcolatore Proprietà Il fair queuing è usato principalmente nei router, switch e multiplexer che inoltrano i pacchetti da un buffer, con l'evolversi della tecnologia il fair queuing è stato utilizzato anche per risolvere altri tipi di problemi, come nel nostro caso, la gestione di job multiprocesso in un ambiente Grid. Il fair queuing lavora con un buffer che può essere visto come un insieme di code dove i pacchetti o i job vengono temporaneamente depositati prima di essere trasmessi o eseguiti. Il buffer è suddiviso appunto in code dove vengono memorizzati i pacchetti o i job in base alle loro caratteristiche. Ad esempio per quanto riguarda i pacchetti di rete vengono suddivisi in base all'ip di destinazione oppure per quanto riguarda i job sono assegnati ad una coda specifica in base a chi sottomette il job, quale è la sua priorità oppure in base alle risorse richieste per la sua computazione. La proprietà principale del fair queuing è quella di fissare degli obbiettivi di massimizzazione o minimizzazione di alcuni valori, e in base a questi obbiettivi l'algoritmo modula la gestione delle code. Ecco il motivo del suo nome fair queuing, code giuste, infatti tramite l'assegnazione di obbiettivi efficienti e corretti l'algoritmo si sviluppa nel tempo e si modula per gestire al meglio il flusso di lavoro. Ad esempio possiamo impostare come obbiettivo la minimizzazione del tempo di attesa medio per ogni utente che sottomette un job, oppure nell'ambito delle reti il tempo di attesa di ogni pacchetto in base all'ip di destinazione. L'algoritmo lavorerà per ottenere questa minimizzazione così da soddisfare tutti i clienti delle code da esso gestite in modo equo. Per ottenere tale obbiettivo l'algoritmo di scheduler farà in modo di memorizzare tutti i dati relativi a quanto ogni utente che sottometto job oppure che deve 17

18 ricevere dei pacchetti di rete è stato già soddisfatto e in base a questi dati deciderà quale utente ha ora la priorità di gestione Weighted fair queuing WFQ è un algoritmo della famiglia degli algoritmi fair, è stato sviluppato nel 1989, quattro anni dopo l'introduzione di Nagle del Fair Queuing, da Lixia Zhang. Questo algoritmo è stato introdotto sempre nell'ambito della gestione delle reti in modo da garantire un accesso equo alle risorse di rete, così da evitare che una flusso potesse occupare tutte le risorse del canale di comunicazione. Infatti a differenza del Fair Queuing classico dove i pacchetti vengono distribuiti su varie code e le code vengono processate tutte simultaneamente suddividendo il canale per le code presenti, il Weighted Fair Queuing classifica al momento dell'arrivo il pacchetto, assegnando ad esso un peso (weight) in base ai dati contenuti nell'header del pacchetto stesso e in base a questo peso andrà a posizionare il pacchetto in una coda opportuna così da poter classificare le code presenti in base al peso dei pacchetti e in base a tale peso lo scheduler andrà a ripartire la capacità di banda. 18

19 Illustrazione 1: Weighted Fair Queuing 2.3 Preemption La preemption (o prelazione) è, in informatica, l'operazione in cui un processo viene temporaneamente interrotto e portato al di fuori della CPU, senza alcuna richiesta di cooperazione e con l'intenzione di ripristinarlo in un secondo momento, per dare spazio ad un altro processo a priorità più alta. Tale scambio è noto come context switch (o cambiamento di contesto). La preemption può avvenire tramite uno scheduler, che ha il compito di interrompere e/o ripristinare i processi presenti nel sistema operativo a seconda del loro stato; in tal caso si parla di preemptive scheduling (o scheduling con diritto di prelazione). Tramite il metodo di preemption vengono gestiti i sistemi operativi più performanti e vengono gestiti i Batch System che necessitano di riservare maggiore attenzione e priorità di esecuzione a certi job rispetto altri già in esecuzione. 19

20 La preemption è un metodo che interviene su due processi distinti, un primo processo subisce la preemption e viene sospeso durante l'esecuzione per rilasciare risorse ad un altro processo detto processo preemptor. Con risorse non intendiamo solo la CPU come citato precedentemente ma vengono intese tutte le risorse necessarie al processo preemptor presenti nel sito di calcolo. 2.4 Starvation In informatica, per starvation (termine inglese che tradotto letteralmente significa inedia) si intende l'impossibilità, da parte di un processo pronto all'esecuzione, di ottenere le risorse di cui necessita. Un esempio tipico è il non riuscire ad ottenere il controllo della CPU da parte di processi con priorità molto bassa, qualora vengano usati algoritmi di scheduling a priorità. Può capitare, infatti, che venga continuamente sottomesso al sistema un processo con priorità più alta. Un aneddoto riguardo questo problema è la storia del processo con bassa priorità, scoperto quando fu necessario fermare il sistema sull'ibm 7094 al MIT nel 1973: era stato sottomesso nel 1967 e fino ad allora non era ancora stato eseguito. Per evitare questi problemi si possono utilizzare, oltre ad algoritmi di scheduling diversi, come Round Robin, le cosiddette tecniche di invecchiamento (aging). Ovvero si provvede ad aumentare progressivamente, ad intervalli regolari, la priorità dei processi qualora questi non siano riusciti ad ottenere le risorse richieste. Questo fa sì che anche un processo con la priorità più bassa possa potenzialmente assumere quella più alta, riuscendo così ad ottenere, in un tempo massimo predefinito, quanto di cui necessita. Altri usi del termine starvation sono in relazione alle risorse di accesso alla memoria o CPU: si dice che un programma è bandwidth-starved quando la sua esecuzione è rallentata da un'insufficiente velocità di accesso alla memoria, o CPU-starved quando il processore è troppo lento per eseguire efficacemente il codice. 20

21 2.5 Checkpointing Il checkpointing è una tecnica utilizzata per fornire fault tolerance nei sistemi informatici. Fondamentalmente si basa sulla memorizzazione dello stato corrente di una applicazione così da poter utilizzare tali informazioni salvate per ripristinare l'applicazione in caso di blocco o chiusura inaspettata dell'applicazione stessa. Abbiamo 3 diverse tipologie di checkpointing: la prima cosiddetta kernel-checkpoint dove è il kernel linux stesso che si occupa di fornire il servizio di checkpointing, la seconda, user-checkpointing dove sono software definita dall'utente ad occuparsi di effettuare checkpointing della applicazione in esecuzione e la terza, applicationcheckpointing dove è l'applicazione stessa che è stata progettata e programmata per effettuare checkpointing. Come vedremo il checkpointing è ampiamente utilizzato anche nei Batch System per una corretta gestione dei processi. 21

22 3 Scenari In questo capitolo vogliamo porre l'attenzione su come la gestione delle code sia fondamentale nelle componenti più importanti di un sistema informatico. Sia la progettazione di reti di calcolatori che la progettazione dei sistemi operativi base dei nostri calcolatori ha dovuto scontrarsi con la gestione di code. Senza una gestione corretta di tali code non si sarebbe mai arrivati ad avere reti cosi preformanti e sistemi operativi così complessi come siamo abituati ad usare. 3.1 Reti Il primo scenario dove incontriamo la necessita di gestire le code è nella gestione dei protocolli di comunicazione di reti di calcolatori. Infatti proprio sugli algoritmi utili alle comunicazioni telefoniche è nata la teoria delle code che si è andata via via approfondendosi con l'avvento delle reti di calcolatori. Con la trasmissione di dati in formato di pacchetto la prima necessità è stata quella di suddividere in modo equo un unico canale di comunicazione evitando il più possibile la perdita di dati e la congestione del canale. Con congestione del canale si intende quando il traffico offerto dalla rete è vicino o superiore alla capacità della rete stessa. Proprio nella gestione della congestioni si individuano gli algoritmi più complessi e il primo approccio per una gestione Fair della problematica. La congestione può essere causata da più fattori. Se improvvisamente diversi flussi di pacchetti cominciano ad arrivare attraverso tre o quattro linee di input e tutti i pacchetti necessitano della stessa linea di output, inizia a formarsi una coda. Se la memoria non è sufficiente, non sarà possibile conservare tutti i dati, perciò alcuni pacchetti andranno persi. Aggiungere memoria può aiutare fino ad un certo punto, ma Nagle (1987) ha scoperto che se i router hanno memoria infinita la congestione peggiora anziché migliorare, poiché quando raggiungeranno il fronte della coda, i pacchetti saranno già 22

23 scaduti (ripetutamente) e quindi saranno già stati trasmessi dei duplicati. Si conoscono molti algoritmi di controllo della congestione, e per organizzarli in modo sensato, Yang and Reddy (1995) hanno sviluppato una tassonomia. I due studiosi hanno diviso prima di tutto gli algoritmi in soluzioni a ciclo aperto e soluzioni a ciclo chiuso; poi hanno diviso gli algoritmi a ciclo aperto in soluzioni che agiscono sulla sorgente e soluzioni che lavorano sulla destinazione. Anche gli algoritmi a ciclo chiuso sono stati divisi in due categorie: soluzioni a retroazione esplicita e soluzione a retroazione implicita. Con algoritmi a ciclo aperto si intende quegli algoritmi che cercano di prevenire il verificarsi della congestione ricorrendo ad una buona progettazione della rete. Mentre gli algoritmi a ciclo chiuso si basano sul concetto di controreazione; la rete viene costantemente monitorata, al verificarsi di una congestione i router si scambiano informazioni al fine di migliorare la situazione. Le tecniche più utilizzate per il controllo della congestione sono: Bit di allarme Tramite un bit all'interno del pacchetto viene segnalato uno stato di congestione così da poter diminuire il flusso di dati sino al ristabilirsi della condizione normale. Chole packet In questo caso la comunicazione di congestione viene data tramite l'invio di un pacchetto chole packet che comunica alla sorgente lo stato di congestione ed eventuali altri canali da sfruttare per effettuare l'invio di pacchetti. Chole packet hop-by-hop Load shedding Con load shedding indichiamo l'azione di eliminazione intrapresa dai router inondati da troppi pacchetti. RED (Random Early Detection) Si tratta di un algoritmo che permette ai router di scartare i pacchetti prima che tutto lo 23

24 spazio del buffer sia completamente esaurito, in pratica, facendo in modo che i router scartino i pacchetti prima che la situazione diventi senza speranza è possibile bloccare il problema sul nascere Illustrazione 2: Random Early Detection Jitter Con jitter viene indicata la variazione nel tempo di arrivo del pacchetto, tramite il controllo di questo valore è possibile effettuare controllo della congestione è diminuire il flusso appena si osserva che i tempi di consegna stanno aumentando. 3.2 Sistemi Operativi Il secondo scenario informatico in cui possiamo trovare la problematica della gestione delle code è quello dei sistemi operativi. Infatti il sistema operativo ha come compito principale quello di gestire in modo ottimale i processi in esecuzione sul calcolatore. Tali processi vengono spesso eseguiti in modo concorrenziale richiedendo risorse come CPU, memoria e dispositivi di input e output per essere portati a termine, proprio il sistema operativo si occupa di tale gestione così da evitare lunghe attese dell'utente per 24

25 l'esecuzione del proprio processo e situazioni di stallo del sistema operativo e quindi del calcolatore stesso. In questo contesto andremo ad dare una breve analisi di come il sistema operativo gestisce l'allocazione della risorsa più importante la CPU, chi in particolare si occupa di tale gestione, che algoritmi usa e quali problematiche possono sorgere se tale risorsa non fosse gestita correttamente Scheduler della CPU Lo scheduling della CPU è alla base dei sistemi operativi multi programmati: attraverso la commutazione del controllo della CPU tra i vari processi, il sistema operativo può rendere più produttivo il calcolatore. L obbiettivo della multi programmazione è avere sempre processi in esecuzione al fine di massimizzare l utilizzo della CPU. In un sistema con una sola unità di elaborazione si può eseguire al più un processo alla volta; gli altri processi, se presenti, devono attendere che la CPU si liberi e possa essere nuovamente sottoposta a scheduling. Ogni qualvolta la CPU passa nello stato d inattività il sistema operativo sceglie per l esecuzione uno dei processi presenti nella coda dei processi pronti. In particolare è lo scheduler a breve termine, o scheduler della CPU che, tra i processi nella memoria pronti per l esecuzione, sceglie quale assegnare alla CPU. La coda dei processi pronti non è necessariamente una coda in ordine di arrivo (FIFO). Come si nota analizzando i diversi algoritmi di scheduling, una coda dei processi pronti si può realizzare come una coda FIFO, una coda con priorità, un albero o semplicemente una lista concatenata non ordinata Scheduling con diritto di prelazione Le decisioni riguardanti lo scheduling della CPU si possono prendere nelle seguenti circostanze: 1. Un processo passa dallo stato di esecuzione allo stato di attesa 2. Un processo passa dallo stato di esecuzione allo stato pronto 25

26 3. Un processo passa dallo stato di attesa allo stato pronto 4. Un processo termina Il primo e l ultimo caso non prevedono alcuna scelta di scheduling; a essi segue la scelta di un nuovo processo da eseguire, sempre che ce ne sia uno nella coda dei processi pronti per l esecuzione; in questo caso si dice che lo schema di scheduling è senza diritto di prelazione (non preemptive). Una scelta si deve invece fare nei due casi centrali; in tal caso parliamo di scheduling con diritto di prelazione (preemptive). Nel caso dello scheduling senza diritto di prelazione, quando si assegna la CPU ad un processo, questo rimane in possesso della CPU fino al momento del suo rilascio, dovuto la termine dell esecuzione o al passaggio nello stato di attesa. Questo metodo di scheduling è impiegato nell ambiente Microsoft Windows ed è l unico che si può utilizzare in certe architetture che non prevedono la presenza di un temporizzatore, necessario per lo scheduling con diritto di prelazione. La capacità di prelazione si ripercuote anche sulla progettazione del nucleo del sistema operativo. Durante l'elaborazione di una chiamata del sistema, il nucleo può essere impegnato in attività a favore di un processo; tali attività possono comportare la necessità di modifiche a importanti dati del nucleo, come le code I/O. Se si ha la prelazione del processo durante tali modifiche e il nucleo deve leggere e o modificare gli stessi dati, si può avere il caos. Alcuni sistemi operativi, tra cui la maggior parte delle versioni dello UNIX, affrontano questo problema attendendo il completamento della chiamata del sistema o che si abbia il blocco dell'i/o prima di eseguire un cambio di contesto (context switching). Purtroppo questo modello d'esecuzione del nucleo non è adeguato alle computazioni in tempo reale e alle multielaborazioni. Per quel che riguarda lo UNIX, sono ancora presenti sezioni di codice a rischio. Poiché le interruzioni si possono, per definizione, verificare in ogni istante e il nucleo non può sempre ignorarle, le sezioni di codice eseguite per effetto delle interruzioni devono essere protette da un uso simultaneo. Il sistema operativo deve ignorare raramente le interruzioni, altrimenti si potrebbero perdere dati in ingresso, o si potrebbero 26

27 sovrascrivere dati in uscita. Per gestire in modo efficiente sistemi con sempre più numerose unità di elaborazione, si devono ridurre al minimo le modifiche allo stato del sistema delle interruzioni, e si deve aumentare al massimo la selettività dei meccanismi di bloccaggio Criteri di scheduling Diversi algoritmi di scheduling della CPU hanno proprietà differenti e possono favorire una particolare classe di processi. Prima di scegliere l'algoritmo da usare in una specifica situazione occorre considerare le caratteristiche dei diversi algoritmi. Per il confronto tra gli algoritmi di scheduling della CPU son stati suggeriti molti criteri. Le caratteristiche usate per il confronto possono incidere in modo rilevante sulla scelta dell'algoritmo migliore. Di seguito riportiamo alcuni criteri: Utilizzo della CPU. La CPU deve essere più attiva possibile. Teoricamente, l'utilizzo della CPU può variare dallo 0 al 100 per cento. In un sistema reale può variare dal 40 per cento, per un sistema con poco carico, al 90 per cento per un sistema con utilizzo intenso. Produttività. La CPU è attiva quando si svolge un lavoro. Una misura del lavoro svolto è data dal numero dei processi completati nell'unità di tempo: tale misura è detta produttività (throughput). Per processi di lunga durata questo rapporto può essere di un processo all'ora, mentre per brevi transazioni è possibile avere una produttività di 10 processi al secondo. Tempo di completamento. Considerando un processo particolare, un criterio importante può essere relativo al tempo necessario per eseguire il processo stesso. L'intervallo che intercorre tra la sottomissione del processo e il completamento dell'esecuzione è chiamato tempo di completamento (turnaround time), ed è la somma dei tempi passati nell'attesa dell'ingresso in memoria, nella coda dei processi pronti, durante l'esecuzione nella CPU e nel compiere operazioni di I/O. Tempo di attesa. L'algoritmo di scheduling della CPU non influisce sul tempo 27

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

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

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

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

Sommario. Introduzione al problema Infrastruttura realizzata Procedure di ottimizzazione Validazione Conclusioni

Sommario. Introduzione al problema Infrastruttura realizzata Procedure di ottimizzazione Validazione Conclusioni Sommario Introduzione al problema Infrastruttura realizzata Procedure di ottimizzazione Validazione Conclusioni 2 Il cluster INFN Perugia Oltre 250 cpu e 40TB di spazio dati 9 gruppi, 100 utenti locali

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

Corso di Elettronica dei Sistemi Programmabili. Sistemi Operativi Real Time. Introduzione. Aprile 2014 Stefano Salvatori 1/28

Corso di Elettronica dei Sistemi Programmabili. Sistemi Operativi Real Time. Introduzione. Aprile 2014 Stefano Salvatori 1/28 Corso di Elettronica dei Sistemi Programmabili Sistemi Operativi Real Time Introduzione Aprile 2014 Stefano Salvatori 1/28 Sommario Definizioni livelli di astrazione processi di tipo batch e processi interattivi

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

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

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

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

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

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

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

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

Università degli Studi di Napoli Federico II Corso di Laurea Magistrale in Informatica I Anno

Università degli Studi di Napoli Federico II Corso di Laurea Magistrale in Informatica I Anno Griglie computazionali Università degli Studi di Napoli Federico II Corso di Laurea Magistrale in Informatica I Anno LEZIONE N. 16 Resource Management Systems: PBS, MAUI Il Computing Element Griglie computazionali

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

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

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

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

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

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

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

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

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

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

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

Sistemi di Controllo Real Time

Sistemi di Controllo Real Time Sistemi di Controllo Real Time Automazione 13/10/2015 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO SISTEMI REAL TIME CLASSIFICAZIONE DEI SISTEMI REAL TIME PARALLELISMO E PROGRAMMAZIONE CONCORRENTE SISTEMI

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

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

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

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

Tecniche di schedulazione

Tecniche di schedulazione Tecniche di schedulazione Gruppo Reti TLC nome.cognome@polito.it http://www.telematica.polito.it/ TECNICHE DI SCHEDULAZIONE - 1 Algoritmi di scheduling Scheduling: scegliere un pacchetto da trasmettere

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

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

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII.UNISI.IT HTTP://WWW.DII.UNISI.IT/~RIGUTINI/

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Il software Dipartimento di Ingegneria dell Informazione Universitàdegli Studi di Parma SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono

Dettagli

1.4. Caratteristiche generali dei Sistemi Operativi

1.4. Caratteristiche generali dei Sistemi Operativi 1.4. Caratteristiche generali dei Sistemi Operativi 1.4.1. Funzione primaria di un S.O. Il sistema operativo è la parte più importante del software di base ed ha il compito primario di costituire l interfaccia

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

Service Level Agreement Management Framework

Service Level Agreement Management Framework Facoltà di Ingegneria Università degli studi di Catania Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Workshop su QoS e SLA Service Level Agreement Management Framework Giovanni Morana

Dettagli

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

Analisi e sviluppo di un sistema automatico per la segnalazione di stati anomali dei job del Data Center S.Co.P.E.

Analisi e sviluppo di un sistema automatico per la segnalazione di stati anomali dei job del Data Center S.Co.P.E. Tesi di Laurea Analisi e sviluppo di un sistema automatico per la segnalazione di stati anomali dei job del Data Center S.Co.P.E. Anno Accademico 2011/2012 Relatore Ch.mo prof. Marcello Cinque Correlatore

Dettagli

Sistema Operativo e Applicativi

Sistema Operativo e Applicativi Sistema Operativo e Applicativi Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Software A.A. 2012-2013 1 / 36 Software Conosciamo due classi di software: Programmi

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

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

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi Evoluzione dei sistemi operativi (4) Sistemi multiprogrammati! più programmi sono caricati in contemporaneamente, e l elaborazione passa periodicamente dall uno all altro Evoluzione dei sistemi operativi

Dettagli

uomo Software (sistema operativo) hardware

uomo Software (sistema operativo) hardware uomo Software (sistema operativo) hardware 1 Sistema operativo Insieme di programmi che svolgono funzioni essenziali per l uso del sistema di elaborazione Questi programmi sono i primi ad essere eseguiti

Dettagli

Reti di Telecomunicazione

Reti di Telecomunicazione Università di ergamo Dipartimento di Ingegneria dell Informazione e Metodi Matematici Reti di Telecomunicazione Prof. Fabio Martignon Università di ergamo Dipartimento di Ingegneria dell Informazione e

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

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

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

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

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

Architettura degli elaboratori 2 I appello (versione A)

Architettura degli elaboratori 2 I appello (versione A) Quesito 1 (punti 7). Cinque processi batch, identificati dalle lettere A E rispettivamente, arrivano all elaboratore agli istanti 0, 2, 4, 6, 9 rispettivamente. Tali processi hanno un tempo di esecuzione

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

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione Introduzione Fondamenti di Informatica: Sistemi Operativi 1 Elaboratori necessitano di SOFTWARE SOFTWARE DI SISTEMA (SISTEMI OPERATIVI): fanno funzionare le varie componenti del computer e permettono all

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

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

MACCHINA DI VON NEUMANN

MACCHINA DI VON NEUMANN I seguenti appunti non hanno la pretesa di essere esaustivi, ma hanno l unico scopo di illustrare in modo schematico i concetti necessari allo sviluppo del programma di Informatica della 1D del Liceo Scientifico

Dettagli

Progetto per la realizzazione di una Cloud per l'area Padovana

Progetto per la realizzazione di una Cloud per l'area Padovana Progetto per la realizzazione di una Cloud per l'area Padovana Versione 0.3.2 14 Ottobre 2013 Introduzione Il modello di calcolo basato su paradigma GRID si e' rivelato di grande successo perche' ha permesso

Dettagli

Sistemi operativi e reti A.A. 2015-16. Lezione 2

Sistemi operativi e reti A.A. 2015-16. Lezione 2 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 2 Giovedì 8-10-2015 Sistemi batch multiprogrammati La causa principale

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

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

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 La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono:

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

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Introduzione: 1. Principi di base dei sistemi operativi 2. Sistemi

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

40. Le transizioni fra stati Lo schema di transizione fra stati può essere rappresentato graficamente nel modo seguente :

40. Le transizioni fra stati Lo schema di transizione fra stati può essere rappresentato graficamente nel modo seguente : 32. Il Sistema Operativo : definizione e struttura Il SO è un insieme di programmi le cui funzioni principali sono costituire un interfaccia tra la macchina e l utente e gestire in modo ottimale le risorse

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

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1 GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno

Dettagli

TITLE Sistemi Operativi 1

TITLE Sistemi Operativi 1 TITLE Sistemi Operativi 1 Cos'è un sistema operativo Definizione: Un sistema operativo è un programma che controlla l'esecuzione di programmi applicativi e agisce come interfaccia tra le applicazioni e

Dettagli

Introduzione all Informatica

Introduzione all Informatica Lezione 3 Davide Di Ruscio Alfonso Pierantonio Dipartimento di Informatica Università degli Studi dell Aquila Università degli Studi dell Aquila alfonso@di.univaq.it diruscio@di.univaq.it. Sommario 2 2»

Dettagli

Solitamente la capacità è minore di un disco magnetico, ma la velocità è molto più alta.

Solitamente la capacità è minore di un disco magnetico, ma la velocità è molto più alta. C4. MEMORIA SECONDARIA Nel seguito verranno analizzati, oltre alla struttura dei dispositivi di memorizzazione, anche gli algoritmi di scheduling delle unità a disco, la formattazione dei dischi, la gestione

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

Università degli Studi di Padova

Università degli Studi di Padova Università degli Studi di Padova Dipartimento di Scienze Chimiche Via F. Marzolo n.1 -- 35131 Padova - ITALIA Gara: Fornitura di un cluster di calcolo ad alte prestazioni, dotato di server multiprocessori,

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

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

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

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

INTERFACCIA UTENTE----------------------------------------------------------------------------------------------------

INTERFACCIA UTENTE---------------------------------------------------------------------------------------------------- IL FILE SYSTEM PROF. ANTONIO TUFANO Indice 1 FILE SYSTEM ------------------------------------------------------------------------------------------------------------------ 3 1.1. CARATTERISTICHE E STORIA

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

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

Parte VI SISTEMI OPERATIVI

Parte VI SISTEMI OPERATIVI Parte VI SISTEMI OPERATIVI Sistema Operativo Ogni computer ha un sistema operativo necessario per eseguire gli altri programmi Il sistema operativo, fra l altro, è responsabile di riconoscere i comandi

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

Corso di Alfabetizzazione Informatica

Corso di Alfabetizzazione Informatica Corso di Alfabetizzazione Informatica Lezione 6 a.a. 2010/2011 Francesco Fontanella La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono: diversi

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

LAN MAN WAN. Una internet è l'insieme di più reti reti distinte collegate tramite gateway/router

LAN MAN WAN. Una internet è l'insieme di più reti reti distinte collegate tramite gateway/router Rete di reti (interrete, internet) 2 Prof. Roberto De Prisco TEORIA - Lezione 8 Rete di reti e Internet Università degli studi di Salerno Laurea e Diploma in Informatica Una rete di comunicazione è un

Dettagli

Sistemi Web Tolleranti ai Guasti

Sistemi Web Tolleranti ai Guasti Sistemi Web Tolleranti ai Guasti Candidato: Paolo Romano Relatore: Prof. Salvatore Tucci Correlatore: Prof. Bruno Ciciani Sommario Il problema: garantire semantica exactly once alle transazioni Web. Sistema

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

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli