corso di: Sistemi Operativi prof. Dimauro Giovanni Sistemi Operativi - Slides 1

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "corso di: Sistemi Operativi prof. Dimauro Giovanni Sistemi Operativi - Slides 1"

Transcript

1 corso di: Sistemi Operativi prof. Dimauro Giovanni Sistemi Operativi - Slides 1

2 Indice 1) I Processi 3 Multiprocessing e Multiprogramming 3 Commutazione di Processo (Task Switch) 7 Tipi di Scheduler 9 Algoritmi di Scheduling 11 2) Sincronizzazione dei Processi 16 Mutua Esclusione 18 I Semafori 19 Supporti Hardware per la Mutua Esclusione 24 Altri Meccanismi 25 3) Stallo 33 Condizione per lo Stallo 33 Identificazione e Risoluzione dello Stallo 35 Tecniche per Evitare lo Stallo 36 Prevenzione dello Stallo 38 4) Gestione della Memoria 40 Mono-Allocazione 40 Partizionamento Statico 41 Partizionamento Dinamico 45 Segmentazione 50 Paginazione 55 Memoria Virtuale 59 Algoritmi di Sostituzione delle Pagine 62 5) File System 67 I File 67 Le Directory 70 Gestione dello Spazio sul Disco 74 Consistenza del File System 77 Prestazione del File System 78 2

3 I PROCESSI Introduzione al processo Il sistema operativo controlla un numero più o meno grande di attività, corrispondenti a programmi eseguiti sul processore: programmi degli utenti programmi relativi a servizi di sistema operativo La competizione di più attività per l uso delle risorse è un presupposto per aumentarne il grado di utilizzo. Il modello per la descrizione e la realizzazione della coesistenza di diverse attività si chiama modello concorrente. Il modello concorrente è basato sul concetto di processo. Tutti i sistemi operativi, in maniera più o meno esplicita, adottano il concetto di processo. Un processo è definito come un attività controllata da un programma che si svolge su un processore. Un processo è un programma in esecuzione e comprende anche i valori correnti del program counter, dei registri e delle variabili. Quando un utente decide di attivare un programma il sistema operativo gestisce la richiesta dell utente attivando un processo, e la sua attivazione richiede: 1. allocazione della memoria 2. creazione di una struttura contenente i dati del processo (descrittore del processo) 3. caricamento del codice e dei dati in memoria 4. inserimento del processo nella lista dei processi pronti all esecuzione In un sistema multiprogrammato, possono esserci già altri processi attivi, pertanto il processo appena creato entra in competizione con gli altri processi già attivi per l assegnazione di risorse. La competizione tra processi richiede al sistema operativo una particolare attenzione nell allocare risorse nel proteggere i differenti spazi di indirizzamento Una diversa relazione tra processi concorrenti è quella della cooperazione, questa interazione è tipica di processi correlati, dove ciascuno esegue una specifica funzione, perseguendo un obiettivo comune. L interazione tra processi cooperanti deve essere supportata dal sistema operativo mediante scambio di dati, segnali e messaggi In un qualsiasi sistema multiprogrammato, il sistema operativo: mantiene aggiornato il quadro di tutti i processi attivi assegna loro le risorse secondo differenti strategie per realizzare le prestazioni previste Il sistema operativo ha funzioni essenziali di gestione dei processi quali: creazione e rimozione controllo dell evoluzione dei processi, assicurando che quelli abilitati giungano al termine gestione di condizioni di eccezione durante l esecuzione di un processo (interrupt, overflow, ecc.) assegnazione delle risorse di sistema ai processi supporto alla comunicazione tra processi (segnali o messaggi) Multiprocessing e multiprogramming L esecuzione di più processi contemporaneamente è un presupposto fondamentale per aumentare il grado di utilizzo delle risorse, l efficacia del multiprocessing verrà illustrata con un esempio. Sistemi Operativi - Slides 3

4 Sistema per il controllo di un sistema di acquisizione dati, descrizione del sistema: 1. acquisizione dati da convertitore A/D (procedura COLLECT) 2. registrazione dati su disco (procedura LOG) 3. calcoli statistici (procedura STAT) 4. notificazione di eventi anomali (procedura REPORT) Le attività di questo sistema possono essere eseguite in modo sequenziale tra loro. Alcune attività coinvolgono dispositivi molto più lenti in confronto alla velocità di esecuzione della CPU se le attività vengono eseguite in modo strettamente sequenziale la CPU si trova sicuramente inattiva durante le conversioni A/D, durante l attesa dell accesso al disco e durante la stampa dei report. Le prestazioni globali del sistema aumentano se le quattro attività vengono assegnate a processi distinti che le eseguono in modo concorrente. Definizione del problema: COLLECT viene eseguita per prima LOG è orientata all Input/Output, mentre STAT al calcolo, pertanto sono due candidate alla esecuzione concorrente REPORT parte solo quando STAT si è completata, ma può essere eseguita in concorrenza con la COLLECT successiva COLLECT può iniziare un ciclo successivo quando LOG e STAT hanno entrambi terminato B1 è un buffer di condivisione dati tra COLLECT --> LOG e STAT B2 è un buffer di condivisione dati tra STAT e REPORT Sia il tempo di esecuzione delle 4 attività circa equivalente: il grafo suggerisce che l esecuzione concorrente può produrre un miglioramento delle prestazioni di circa il 50% rispetto al caso sequenziale. Sistemi Operativi - I Processi 4

5 Sincronizzazione tra i processi L esecuzione concorrente dei processi richiede la sincronizzazione tra i processi stessi. I meccanismi di sincronizzazione sono uno dei più importanti servizi forniti dal Sistema Operativo. Ritornando all esempio, ciascuno dei processi esegue in modo più o meno indipendente dagli altri il proprio flusso sequenziale di istruzioni; la sincronizzazione tra i processi cooperanti avviene mediante invio e ricezione di segnali. Un processo in attesa di uno o più segnali viene sospeso dal sistema operativo. Ipotesi di sincronizzazione Ut: Unità di tempo 1. COLLECT consiste nel servizio consecutivo di 3 interrupt provenienti dal convertitore A/D il tempo di sotto-servizio è di 0.25 Ut due sotto-servizi distano almeno 1 Ut 2. LOG richiede 2 accessi al disco in scrittura, di cui ciascuno utilizza 0.5Ut per l inizializzazione di 1.5Ut per l operazione fisica di I/O 3. STAT è orientata all uso della CPU e impiega 2 Ut 4. REPORT gestisce 2 interrupt relativi alla stampante distanti 1.5 Ut L esecuzione sequenziale dei 4 processi richiede 12Ut Sistemi Operativi - Slides 5

6 Assegnazione delle priorità In questo sistema l esecuzione concorrente richiede l assegnazione di priorità software, per indicare al sistema operativo la decisione da prendere in caso di più di un processo sospeso, l ordine delle priorità stabilito è: (1) LOG, pilota il disco e quindi deve rispondere immediatamente (2) COLLECT, fornisce i dati agli altri processi (3) REPORT, è basato su interrupt ed interessa l I/O (4) STAT, può essere eseguito tra gli interrupt della stampante Il sistema operativo se gli giunge un interrupt dall I/O, controlla le priorità ed eventualmente interrompe il processo in esecuzione per avviare quello con priorità più alta. Questo meccanismo è del tipo scheduling con preemption basato sulle priorità. Con l elaborazione multiprocessing il sistema compie un intero ciclo in 5.25 unità di tempo contro 12. I benefici delle operazioni multiprocesso non sono ottenibili a costo zero. Nel caso in esempio si sono introdotti ulteriori elementi come segnali e assegnazione delle priorità; inoltre operazioni come il debugging possono diventare notevolmente più complesse. Lo sforzo per realizzare il multiprocessing di un unico programma va riservato per applicazioni critiche. Nei sistemi operativi multiutente i programmi di sistema e degli utenti vengono considerati come singoli processi e la concorrenza viene sfruttata prevalentemente tra più processi, realizzando quindi il multiprogramming. Stato dei processi dal punto di vista del S.O. Un processo è la più piccola entità che possa individualmente richiedere l uso della CPU per l esecuzione. L evolvere di un processo è visto dal sistema operativo come il passaggio attraverso una successione degli stati: dormiente, pronto, in esecuzione e sospeso. Lo stato dormiente viene spesso tralasciato poichè fa riferimento ai processi, residenti in memoria secondaria, che non sono ancora noti al sistema operativo. I processi in stato di pronto possiedono tutte le risorse necessarie alla loro esecuzione tranne la CPU. Dopo la creazione si trovano generalmente in stato di pronto. Un modulo del sistema operativo denominato scheduler seleziona i processi a cui assegnare la CPU. Inoltre possono essere stati interrotti da un processo a priorità più alta e possono aver terminato il loro time-slice. Il processo in stato di esecuzione ha la disponibilità della CPU, esegue la sua sequenza di istruzioni, può chiamare il sistema operativo per eseguire servizi quali l I/O e la sincronizzazione con scambio di messaggi. I processi in stato di sospeso sono in attesa che gli vengano assegnate una o più risorse. Il sistema operativo tiene traccia delle cause della sospensione e vengono spostati tra i processi pronti all arrivo di messaggi da altri processi e eventi esterni. Stato globale del sistema All interno del sistema vi sono in ogni istante diversi processi attivi che si trovano in uno degli stati. Lo stato globale del sistema è l immagine collettiva dello stato di tutti i processi e delle risorse. Lo stato dei processi cambia rapidamente in funzione di eventi interni o esterni, e pertanto varia rapidamente anche lo stato globale del sistema. Lo stato globale viene utilizzato ad esempio dagli algoritmi di scheduling per decidere l allocazione delle risorse. É necessario pertanto che il sistema operativo tenga traccia dello stato globale del sistema. All atto della creazione di un processo, il sistema operativo crea in memoria centrale una struttura di tipo Sistemi Operativi - I Processi 6

7 record denominata descrittore di processo: il descrittore del processo accompagna il processo in tutta la sua durata e i suoi cambiamenti di stato informazioni (di tipo statico e dinamico) contenute nel DDP: nome del processo (ID) priorità stato (pronto, in esecuzione, sospeso) elenco delle risorse chieste ed allocate immagine di attivazione del processo (registri, flag, ecc.) altri campi alcune informazioni inserite nel DDP vengono fornite dal linker/loader in fase di sospensione, nel DDP vengono registrate le informazioni utili a ripristinare le condizioni esistenti prima della sospensione Il DDP rappresenta lo stato di un processo, il sistema operativo tiene traccia dello stato globale (per ciò che riguarda i processi) ponendo i DDP in 2 liste: lista dei processi pronti e lista dei processi sospesi. Queste liste includono i DDP di processi che si trovano nello stesso stato, un DDP appartiene alla lista relativa allo stato in cui si trova il relativo processo, e non ad una lista fissata. Le 2 liste vengono esaminate dai moduli del s.o. incaricati di assegnare le risorse. Per esempio lo scheduler esamina la lista dei processi pronti e, in base all ordine di arrivo, in base alle priorità e ad eventuali altre politiche sceglie il DDP del processo da avviare. O anche quando il sistema di acquisizione dati, istante all evento 1. Commutazione di processo (task switch) Per variare lo stato di un processo il sistema operativo interviene e aggiorna le liste con le seguenti modalità: memorizzazione dello stato del processo che sta per essere sospeso o interrotto nel DDP program counter stack pointer registro di stato del processore altri registri del processore motivo della sospensione il DDP viene inserito nella lista dei processi pronti o sospesi lo scheduler prende il controllo ed esamina la lista dei processi pronti in base alle strategie di scheduling, sceglie il processo da riavviare Sistemi Operativi - Slides 7

8 dal DDP del nuovo processo vengono estratte le informazioni per ricreare lo stato del sistema La commutazione di processo, considerata la sua complessità e l estrema frequenza con cui ricorre, può influenzare considerevolmente le prestazioni di un sistema. Spesso sono predisposti supporti hardware per velocizzare l esecuzione della commutazione di processo, per esempio i banchi di registri duplicati, uno per i processi utente e l altro per i processi di sistema operativo. Servizi del sistema operativo per la gestione dei processi I processi utente possono invocare delle chiamate di sistema operativo predefinite che vengono indicate generalmente con il nome di servizi run-time. I servizi run-time possono essere richiesti dall utente in due forme: chiamate al supervisore incluse nel codice degli utenti comandi digitati al terminale dall utente, interpretati da apposito interprete del s.o. I sistemi operativi prevedono un set di chiamate che, al di là di alcune differenze nei parametri e nei dettagli, sono comuni: Tipiche chiamate al sistema operativo: Create (processid, attributi) crea un processo Delete (ProcessID) elimina un processo Abort (ProcessID) termina forzatamente un processo Suspend (ProcessID) sospende un processo Resume (ProcessID) riprende un processo sospeso Delay (ProcessID, time) sospende il processo per la durata Time Get_attributes (ProcessID, attribute) preleva il contenuto del DDP Ch_priority (ProcessID) modifica della priorità Nel funzionamento della chiamatacreate (processid, attributi) il s.o. crea un nuovo processo con gli attributi specificati e una zona di memoria libera per registrarvi il DDP del nuovo processo, inoltre riempie i campi del DDP, con i parametri passati dalla chiamata o con quelli standard ed inserisce il DDP nella lista dei processi pronti. Alcuni dei parametri passati possono essere di livello di privilegio (sistema o utente), a priorità, di dimensioni e quantità di memoria richiesta, con massima occupazione di memoria per i dati/stack, con informazioni sulla protezione della memoria e sui diritti di accesso e altri dati dipendenti dal sistema. I codici di errore che vengono restituiti si riferiscono tipicamente o a un uso di identificatori non validi o a una mancanza di spazio per creare un DDP. Risultato delle chiamate Il sistema operativo risponde ad una chiamata con l esecuzione del relativo modulo oppure restituendo il controllo al processo chiamante indicando il motivo della non esecuzione della chiamata. La non gratificazione della chiamata può essere dovuta al passaggio di parametri errati o illegali o a una temporanea indisponibilità di una risorsa richiesta. La semplice chiamata al sistema operativo per ottenere un servizio non assicura che il servizio sia garantito. Il sistema operativo si aspetta che il processo utente verifichi, dopo ogni chiamata, i codici di ritorno forniti, questo controllo è essenziale al fine del corretto funzionamento del programma e dello Scheduling. 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 del sistema operativo che seleziona il processo che deve andare in esecuzione. L obiettivo primario dello scheduling è l ottimizzazione delle prestazioni del sistema. In un grande sistema, il sistema operativo può prevedere fino a 3 tipi di scheduler: di lungo Sistemi Operativi - I Processi 8

9 termine; di medio termine; di breve termine. Tipi di Scheduler Scheduler di lungo termine (SLT) Opera sulla coda dei lavori batch, la modalità batch è riservata all esecuzione sia di programmi che sfruttano intensamente qualcuna delle risorse del sistema (CPU, I/O), sia di programmi che, avendo bassa priorità, consentono di sfruttare le risorse del sistema anche nei tempi in cui l attività interattiva è ridotta. I lavori batch sono corredati da tutti i dati ed i comandi necessari per la loro esecuzione, da delle stime effettuate dal programmatore (o dal sistema), sulle risorse necessarie, sulle dimensioni della memoria e sul tempo di esecuzione totale. Infatti, il lavoro dello scheduler di lungo termine si basa sulla stima del comportamento globale del job (lavoro). La strategia principale dello scheduler di lungo termine è di fornire alla coda dei processi pronti (e quindi allo scheduler di breve termine) gruppi di processi che siano bilanciati tra loro nello sfruttamento della CPU e dell I/O. Quando il carico della CPU scende, l SLT aumenta il numero di processi provenienti dalla coda batch, al contrario, quando il carico aumenta, i tempi di risposta del sistema diminuiscono, l SLT diminuisce fino anche a bloccare i lavori provenienti dalla coda batch. La frequenza di chiamata dell SLT è bassa e consente di implementare strategie anche complesse di selezione dei lavori e di dimensionamento del carico dei processi da inviare alla coda pronti. Scheduler di medio termine (SMT) Lo scheduler di medio termine gestisce i processi sospesi che sono stati rimossi dalla memoria centrale (mediante swapping). I processi sospesi non possono evolvere al completamento fino a che le condizioni che ne hanno causato la sospensione persistono, la presenza di molti processi sospesi in memoria, riduce la disponibilità per nuovi processi pronti, inoltre lo scheduler di breve termine è obbligato a scegliere tra pochi processi pronti. Questo problema si risolve trasferendo dalla memoria principale ad una memoria secondaria, con l operazione detta swapping, uno o più processi. L SMT si occupa della gestione dei processi rimossi dalla memoria centrale. Il processo sospeso non svolge alcuna attività quando vengono rimosse le condizioni di sospensione, lo scheduler SMT utilizza le informazioni del DDP per stabilire la richiesta di memoria del processo, tenta di Sistemi Operativi - Slides 9

10 allocare spazio in memoria centrale e riposiziona il processo in memoria nella coda dei pronti. L SMT viene attivato sia quando si rende disponibile spazio in memoria sia quando l arrivo di processi pronti scende al di sotto di una soglia specificata. Scheduler di breve termine (SBT) Assegna la CPU ad un processo scelto nel gruppo dei processi residenti in memoria e pronti, la sua principale strategia è orientata alla massimizzazione delle prestazioni del sistema secondo un specifico insieme di obiettivi. Lo scheduler di breve termine viene chiamato ogni volta che un evento esterno o interno modifica lo stato globale del sistema. Gli impulsi di temporizzazione (interrupt basati su intervalli di tempo), gli interrupt e completamento di operazioni di I/O, la maggior parte delle chiamate di sistema, la trasmissione e ricezione di segnali e l attivazione di programmi interattivi possono produrre la sospensione o l interruzione del processo in esecuzione ed anche la sospensione dei processi pronti. La maggior parte dei servizi di sistema operativo richiede l intervento dell SBT. Per esempio chiamata Create: aggiunge un processo nuovo alla coda dei pronti dove l SBT viene avviato per determinare se il nuovo processo deve andare in esecuzione subito. Altre funzioni come sospensione, cambio di priorità e terminazione richiedono l intervento dello scheduler SBT. I programmi interattivi avviati dagli utenti si pongono direttamente nella coda dei processi pronti, il loro flusso non è controllato da alcun filtro, possono provocare saturazione del sistema e quindi degrado dei tempi di risposta, in prima attivazione vengono gestiti esclusivamente dall SBT. Scheduling e valutazione delle prestazioni Gli algoritmi di scheduling possono basarsi dinamicamente su alcune misure per tenere a livello elevato le prestazioni del sistema con: sfruttamento della CPU, lavoro utile, tempo di ricircolo, tempo di attesa e tempo di risposta. 1. sfruttamento della CPU Valuta la % del tempo in cui la CPU è impegnata per eseguire programmi degli utenti e per eseguire moduli del sistema operativo. Il massimo sfruttamento della CPU coincide con un buon uso anche di tutte le altre componenti del sistema, risultando in un buon rendimento globale. 2. lavoro utile Misura la quantità di lavoro completata in una unità di tempo, ad esempio: il numero di lavori dell utente completati in una unità di tempo, questo valore non è molto utile per confrontare le prestazioni di diversi algoritmi di scheduling, a meno di porre lo stesso carico di lavoro con la stessa sequenza di lavori. 3. tempo di ricircolo Misura il tempo che trascorre dal momento in cui un programma viene avviato fino al suo completamento. 4. tempo di attesa Misura il tempo che un processo trascorre in attesa delle risorse a causa di conflitti con altri processi. Questa è la penalità che si paga per condividere risorse ed è espressa come (tempo di ricircolo - tempo di esecuzione), inoltre valuta in sostanza la sorgente di inefficienza. 5. tempo di risposta Sistemi Operativi - I Processi 10

11 Nei sistemi time-sharing misura il tempo che trascorre dal momento in cui viene introdotto l ultimo carattere al terminale, fino a quando compare la prima risposta. Nei sistemi real-time misura il tempo che trascorre dal momento in cui viene segnalato un evento esterno, fino a quando viene eseguita la prima istruzione della relativa routine di gestione. Nella progettazione degli scheduler c è una selezione dei più importanti criteri di prestazioni, un ordinamento dei criteri secondo l importanza relativa e una progettazione di una strategia di scheduling ottima o che approssimi una strategia ottima. Nella realtà gli algoritmi di scheduling sono basati su tecniche euristiche che danno buone prestazioni o quasi ottime, ma raramente ottime. La ricerca di strategie ottime può richiedere una grossa mole di lavoro, inaccettabile per algoritmi di questo tipo richiederebbe anche la raccolta di statistiche necessarie. Gli scheduler tendono a massimizzare le prestazioni medie del sistema, ma rivestono altrettanta importanza, la varianza delle prestazioni e i metodi per limitare il degrado nei casi peggiori. Conflitti di prestazioni Nella progettazione di algoritmi di scheduling ci si trova spesso a scegliere compromessi tra richieste di prestazioni in netto conflitto. Esempio: un basso tempo risposta richiede un basso numero processi attivi; un alto sfruttamento CPU richiede alto numero processi attivi. La conoscenza dell ambiente d uso è fondamentale per l attento bilanciamento di diversi requisiti e vincoli: tipo di sistema obiettivo sistemi batch carico e sfruttamento dei componenti di sistema sistemi multiuser basso tempo di risposta al terminale sistemi real time gestione rapida di numerosi eventi esterni Algoritmi di scheduling Prima classificazione dei metodi di scheduling: 1. metodi interrompenti il processo in esecuzione può essere tolto in qualsiasi momento da uno a priorità maggiore lo scheduler viene attivato ad ogni variazione dello stato del sistema l interrompibilità del processo richiede un carico di lavoro molto maggiore allo scheduler forniscono maggior velocità di risposta agli eventi, ma al prezzo di un sovraccarico maggiore 2. metodi non interrompenti il processo in esecuzione mantiene il possesso delle risorse allocate, compresa la CPU può cedere solo volontariamente l uso della CPU può sospendersi a causa di una sua attività (es. richiesta di I/O) un eventuale processo a priorità maggiore non può forzarne la sospensione Scheduling con modello First Come First Served (FCFS, FIFO) In questo modello il primo processo ad entrare è il primo ad essere servito (e ad uscire), il carico di lavoro viene quindi smaltito man mano che arriva, non è previsto alcun meccanismo di interruzione dei processi in corso. I vantaggi sono la realizzazione semplificata dello scheduler e la sua esecuzione comporta un carico di lavoro molto limitato rispetto all esecuzione dei processi. Gli svantaggi sono: il metodo non prende in considerazione lo stato del sistema, ha quindi risultati poveri in termini di prestazioni; la non interrompibilità ha, come conseguenza diretta: un basso sfruttamento dei componenti e un basso lavoro utile del sistema; rinuncia all importanza delle priorità fra processi. Sistemi Operativi - Slides 11

12 Scheduling con modello Short Remaining Time Next (SRTN) Il modello del minor tempo rimasto, seleziona il processo che richiede il minor tempo per essere completato. Nella forma non interrompibile viene spesso chiamata Shortest Job First (SJF) e lo scheduler viene chiamato ogni volta che un processo è completato oppure cede il controllo al sistema operativo. Nella forma interrompibile (solo per scheduler di breve termine) lo scheduler viene chiamato ogni volta che un processo viene posto in stato di pronto, confronta il tempo residuo di esecuzione del nuovo processo pronto con il tempo necessario per portare a completamento il processo in esecuzione. In funzione del risultato il processo in esecuzione può continuare o essere rimpiazzato da quello con tempo di esecuzione residuo più basso, il processo eventualmente interrotto viene posto nella coda dei pronti. Il vantaggio è che lo scheduling SRTN è ottimo in termini di minimizzazione del tempo di attesa, fissato il carico di lavoro. Gli vvantaggi sono: le sue applicazioni pratiche dipendono dal grado di accuratezza con cui si può predire il comportamento di un processo; una maggiore accuratezza richiede tecniche più sofisticate e quindi un sovraccarico maggiore; la versione con interruzione presenta un ulteriore sovraccarico; per le frequenti commutazioni di processo; per le numerose chiamate allo scheduler; per mantenere una lista ordinata dei processi in base al loro tempo residuo. Lo scheduling SRTN riveste anche una certa importanza teorica: come metro di misura per valutare le prestazioni di altri algoritmi in termini di scostamento dal comportamento ottimo: Sistemi Operativi - I Processi 12

13 Il miglior comportamento di questo tipo di scheduling viene ottenuto soltanto se, al momento dello scheduling, si conosce con esattezza il tempo futuro di esecuzione dei processi. Questa caratterisitica limita l efficacia della realizzazione dell SRTN non è infatti facile stimare in modo affidabile il comportamento futuro di un processo, tranne in processi specializzati. Scheduling con modello Round Robin (RR) In ambienti interattivi, uno degli obiettivi primari è una equa condivisione delle risorse fra gli utenti. Il metodo round-robin (o del time-slicing, o a quanti di tempo) divide il tempo di CPU in quanti Q assegnati a chi ne fa richiesta: nessun processo può rimanere in esecuzione per più di Q; se il processo non si completa in Q, torna nella coda dei processi pronti; il processo che cede il controllo al s.o. prima della terminazione del proprio Q, perde la parte rimanente. La CPU viene quindi assegnata secondo uno schema di priorità a rotazione. La schedulazione round-robin fornisce una buona condivisione delle risorse del sistema, dove i processi più brevi possono completare l operazione in un Q (quindi buon tempo di risposta), i processi più lunghi sono forzati a passare più volte per la coda dei processi pronti (tempo proporzionale alle loro richieste di risorse) e per i processi interattivi lunghi, se l esecuzione tra due fasi interattive riesce a completarsi in un Q, il tempo di risposta è buono. La realizzazione di uno scheduler RR richiede il supporto di un Timer. Il timer invia un interruzione alla scadenza di ogni Q, forzando lo scheduler a sostituire il processo in esecuzione. Il timer viene riazzerato se un processo cede il controllo al s.o. prima della scadenza del suo Q. Lo scheduling round-robin è considerato un algoritmo abbastanza valido, è uno dei più usati per ottenere tempi di risposta buoni ai terminali. L efficienza della schedulazione dipende fortemente dalla scelta del quanto di tempo Q. La relazione tra la durata di Q e le prestazioni di RR non è lineare. Non si può ridurre Q sperando di ottenere un conseguente miglioramento del tempo di risposta. Un quanto Q troppo breve si riduce in un sovraccarico dovuto alla frequente commutazione di processi, fino ad un forte degrado delle prestazioni. Un quanto Q troppo lungo fa degenerare RR in un algoritmo FCFS, poichè i processi tendono a completare la propria esecuzione prima della scadenza di Q. Solitamente Q ricade tra 1 e 100 ms, permettendo al processo in esecuzione di avanzare di qualche migliaio di istruzioni, il numero di istruzioni eseguite in un Q viene usato come misura di confronto tra diversi sistemi (la misura di durata del tempo è dipendente dalla tecnologia). Scheduling con modello interrompibile basato sulla priorità (anche detto Event Driven) A ogni processo del sistema viene assegnato un livello di priorità, lo scheduler sceglie sempre il processo pronto con priorità maggiore. La priorità può essere assegnata dall utente o dal sistema e può essere di tipo statico o dinamico. La priorità dinamica varia in funzione: del valore iniziale; delle caratteristiche del processo; della richiesta di risorse; del comportamento durante l esecuzione. Ed è realizzabile in forma interrompente o non interrompente. Il modello Event Driven è applicato nei sistemi dove il tempo di risposta, soprattutto ad Sistemi Operativi - Slides 13

14 eventi esterni, è molto critico. Con questo tipo di scheduling il sistemista può influire sull ordine in cui uno scheduler ED serve gli eventi esterni modificando le priorità assegnate ai processi e le prestazioni sono dipendenti da una accurata pianificazione dell assegnazione delle priorità. Un problema peculiare del metodo ED è che eventi con bassa priorità rischiano di essere emarginati nel sistema. Più in generale, lo scheduling ED non è in grado di garantire il completamento di un processo in un intervallo di tempo finito dalla sua creazione. Scheduling con modello a code multiple (MLQ) I sistemi in cui le attività includono applicazioni interattive, lavori batch e molte periferiche, richiedono un modello di scheduling che offra prestazioni accettabili a tutte le attività l approccio più idoneo è quello della combinazione di modelli di scheduling, ognuno competente per il gruppo di processi che riesce a servire meglio. Il modello a code multiple suddivide il lavoro a seconda delle sue caratteristiche e mantiene code di processi separati servite da scheduler diversi. I processi sono divisi in code che raggruppano: coda 1: servizi di sistema (alta priorità) vengono serviti da uno scheduler di tipo Event Driven o FCFS coda 2: processi degli utenti interattivi (buon tempo di risposta) vengono serviti da uno scheduler di tipo Round-Robin coda 3: processi degli utenti batch vengono serviti da uno scheduler di tipo FCFS Lo scheduling tra le code può essere effettuato ad esempio con: priorità 1. viene servita prima la coda1 2. in assenza di processi in coda1 viene servita la coda2 3. in assenza di processi in coda1 e coda2 viene servita la coda3 time slice ogni coda riceve una % del tempo di CPU, assegnata in rapporto alle diverse priorità I vantaggi sono: combina i vantaggi dei sistemi puri già discussi; il degrado di una coda è riducibile assegnando tutti o parte dei processi di una coda ad una coda a priorità maggiore. Lo svantaggio è che impone a ciascuna delle code i sovraccarichi combinati di ciascuna delle tecniche impiegate. Una forma modificata è costituita dallo scheduling a code multiple con retroazione. I processi non sono staticamente legati ad una coda. Il processo migra attraverso le code in funzione del suo comportamento. Sistemi Operativi - I Processi 14

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

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

SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007 2007 SISTEMI OPERATIVI Gestione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 13/05/2007 Gestione dei processi 1. Qual è la differenza tra un programma e un processo? Un programma

Dettagli

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

SISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007 2007 SISTEMI OPERATIVI Sincronizzazione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 30/05/2007 Sincronizzazione dei processi 1. Si descrivano i tipi di interazione tra processi?

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

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

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

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

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

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

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

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

Capitolo 7: Sincronizzazione

Capitolo 7: Sincronizzazione Capitolo 7: Sincronizzazione Il problema della sincronizzazione. Il problema della sezione critica. Hardware per la sincronizzazione. Semafori. Problemi classici di sincronizzazione. Monitor (cenni). 7.1

Dettagli

CAPITOLO 27 SCAMBIO DI MESSAGGI

CAPITOLO 27 SCAMBIO DI MESSAGGI CAPITOLO 27 SCAMBIO DI MESSAGGI SCAMBIO DI MESSAGGI Sia che si guardi al microkernel, sia a SMP, sia ai sistemi distribuiti, Quando i processi interagiscono fra loro, devono soddisfare due requisiti fondamentali:

Dettagli

1. I dispositivi periferici

1. I dispositivi periferici La gestione dell I/O 1. I dispositivi periferici Un ulteriore aspetto fondamentale del SO è la gestione dei dispositivi periferici (periferiche) Dal punto di vista del sistema operativo per periferiche

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

Dettagli

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

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

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

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

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

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

CAP. 6: Nucleo del sistema operativo (La gestione dei processi)

CAP. 6: Nucleo del sistema operativo (La gestione dei processi) Struttura interna del sistema operativo Linux CAP. 6: Nucleo del sistema operativo (La gestione dei processi) Architettura del sistema operativo shell Programmi utente Modo utente Interfaccia delle chiamate

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

Lezione 10. Scheduling nei sistemi multiprocessori. Esempio: P=2 processori. Scheduling dei processi

Lezione 10. Scheduling nei sistemi multiprocessori. Esempio: P=2 processori. Scheduling dei processi Lezione 10 Cenni ai sistemi operativi distribuiti 2. Gestione della CPU e della memoria nei multiprocessori Gestione dei processi Scheduling Bilanciamento del carico Migrazione dei processi Gestione della

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

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

IL SISTEMA OPERATIVO

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

Dettagli

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

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

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

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

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

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

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

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

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

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

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

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

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

Dettagli

Sistemi Operativi. Struttura astratta della memoria. Gerarchia dei dispositivi di. Memoria centrale. Memoria secondaria (di massa)

Sistemi Operativi. Struttura astratta della memoria. Gerarchia dei dispositivi di. Memoria centrale. Memoria secondaria (di massa) Struttura astratta della memoria Memoria centrale il solo dispositivo di memoria al quale la CPU puo accedere direttamente Memoria secondaria (di massa) Estensione della memoria centrale che fornisce grande

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 Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Cos è un Sistema Operativo? Per capirlo, immaginiamo inizialmente

Dettagli

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007 2007 SISTEMI OPERATIVI Gestione della memoria Domande di verifica Luca Orrù Centro Multimediale Montiferru 18/06/2007 Gestione della memoria 1. Si descriva il concetto di memoria virtuale (esame del 19-06-2006)

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

DATA: 21-09-08 CLASSE: V a EL. TITOLO: ELABORAZIONE DEL SISTEMA OPERATIVO PER mp0

DATA: 21-09-08 CLASSE: V a EL. TITOLO: ELABORAZIONE DEL SISTEMA OPERATIVO PER mp0 DATA: 21-09-08 CLASSE: V a EL. TITOLO: ELABORAZIONE DEL SISTEMA OPERATIVO PER mp0 nelle lezioni precedenti abbiamo preso in esame tutte le caratteristiche e le funzionalità del microprocessore didattico

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il Sistema Operativo Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Cos

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

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

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

Scheduling. Livelli Algoritmi

Scheduling. Livelli Algoritmi Scheduling Livelli Algoritmi Introduzione Lo scheduling Ha lo scopo di decidere quale processo eseguire in un dato istante Si realizza mediante un componente specifico del sistema operativo Lo scheduler

Dettagli

Sistemi Operativi. Lezione 7 Comunicazione tra processi

Sistemi Operativi. Lezione 7 Comunicazione tra processi Lezione 7 Comunicazione tra processi Introduzione La soluzione sw al problema della mutua esclusione è abbastanza complessa Algoritmo di Peterson La soluzione hw mediante disabilitazione degli interrupt

Dettagli

Tecniche Automatiche di Acquisizione Dati

Tecniche Automatiche di Acquisizione Dati Tecniche Automatiche di Acquisizione Dati Sistemi operativi Fabio Garufi - TAADF 2005-2006 1 Cosa sono i sistemi operativi I sistemi operativi sono dei programmi software che svolgono le funzioni di interfaccia

Dettagli

Capitolo 6: CPU scheduling

Capitolo 6: CPU scheduling Capitolo 6: CPU scheduling Concetti di base. Criteri di schedulazione. Gli algoritmi di schedulazione. Schedulazione per sistemi multiprocessore. Schedulazione per sistemi in tempo reale. Schedulazione

Dettagli

Sistemi Operativi. Il Sistema Operativo. Gestione Risorse (3) Gestione Risorse (2) Cos'è un sistema operativo? Utenti di un SO.

Sistemi Operativi. Il Sistema Operativo. Gestione Risorse (3) Gestione Risorse (2) Cos'è un sistema operativo? Utenti di un SO. Sistemi Operativi Il Sistema Operativo Corso di Informatica Generale (Roberto BASILI) Cos'è un sistema operativo? Un sistema operativo e': La astrazione logica del livello macchina hardware e microprogrammata

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi

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

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

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

Dettagli

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi 1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi Il processo E' un programma in esecuzione Tipi di processo Stati di un processo 1 indipendenti

Dettagli

La gestione della memoria

La gestione della memoria La gestione della memoria Nella gestione della memoria il sistema operativo deve perseguire l'obiettivo di allocare il maggior numero di processi in memoria centrale per aumentare la probabilità che ci

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. ugoerr+so@dia.unisa.it 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Sistemi Operativi. ugoerr+so@dia.unisa.it 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08 Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione Concetto di processo

Dettagli

Processi. Laboratorio Software 2008-2009 C. Brandolese

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

Dettagli

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica www.dis.uniroma1.it/~midlab Sistemi Operativi II Corso di Laurea in Ingegneria Informatica Prof. Roberto Baldoni Complementi: Buffer I/O Gestione dei buffer e I/O scheduling: 1. Richiami sulle tecniche

Dettagli

CAPITOLO 24 I MONITOR

CAPITOLO 24 I MONITOR EFFETTO DELLE PRIMITIVE - signal E wait SUI SEMAFORI CAPITOLO 24 I MONITOR I semafori sono un mezzo efficace per la gestione della mutua esclusione in ambienti con processi concorrenti, ma spesso è difficile

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

Definizione e storia dei sistemi operativi

Definizione e storia dei sistemi operativi Definizione e storia dei sistemi operativi Dipartimento di Informatica Università di Verona, Italy Che cos è un Sistema Operativo? E un insieme di programmi agisce come intermediario tra HW e uomo per

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

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

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi Operativi (modulo di Informatica II) I processi Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto

Dettagli

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

A.C. Neve Sistemi operativi 3.0 1

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

Dettagli

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

Algoritmi di scheduling

Algoritmi di scheduling Capitolo 3 Algoritmi di scheduling Come caso particolare di studio, di seguito è discussa in dettaglio la politica di scheduling del sistema operativo LINUX (kernel precedente alla versione 2.6). Sono

Dettagli

Introduzione ai sistemi operativi

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

Dettagli

Sistemi Operativi. Des crizione e controllo dei proces s i

Sistemi Operativi. Des crizione e controllo dei proces s i Sistemi Operativi Des crizione e controllo dei proces s i Servizi di un Sistema Operativo Permettere ad un utente di creare processi (lanciare programmi) Interallacciare l esecuzione di diversi processi,

Dettagli

SISTEMI OPERATIVI. Deadlock (blocco critico) Domande di verifica. Luca Orrù Centro Multimediale Montiferru 04/06/2007

SISTEMI OPERATIVI. Deadlock (blocco critico) Domande di verifica. Luca Orrù Centro Multimediale Montiferru 04/06/2007 2007 SISTEMI OPERATIVI Deadlock (blocco critico) Domande di verifica Luca Orrù Centro Multimediale Montiferru 04/06/2007 Deadlock (blocco critico) 1. Si descriva il deadlock e le condizioni sotto cui si

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

Cosa è un Sistema Operativo (S.O.)

Cosa è un Sistema Operativo (S.O.) Cosa è un Sistema Operativo (S.O.) Modulo software costituito da un insieme di programmi per: permettere all utente l uso dell elaboratore senza la conoscenza approfondita dell hardware S.O. supporto all

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

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

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

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

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

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

Algoritmi di scheduling

Algoritmi di scheduling Capitolo 2 Algoritmi di scheduling 2.1 Sistemi Real Time In un sistema in tempo reale (real time) il tempo gioca un ruolo essenziale. Le applicazioni di tali sistemi sono molteplici e di larga diffusione.

Dettagli

Sincronizzazione e coordinamento nel distribuito

Sincronizzazione e coordinamento nel distribuito Sincronizzazione e coordinamento nel distribuito Sincronizzazione in sistemi centralizzati uso di primitive basate implicitamente sull esistenza della memoria condivisa Sincronizzazione in sistemi distribuiti

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Principi di base La gestione della memoria si occupa di allocare la memoria fisica ai processi che ne fanno richiesta. Nessun processo può diventare attivo prima di avere

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

Cos e` un Sistema Operativo? Cos è un sistema operativo?

Cos e` un Sistema Operativo? Cos è un sistema operativo? Cos e` un Sistema Operativo? È un programma (o un insieme di programmi) che agisce come intermediario tra l utente e l hardware del computer: fornisce un ambiente di sviluppo e di esecuzione per i programmi

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

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

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