LA GESTIONE DELLA MEMORIA

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "LA GESTIONE DELLA MEMORIA"

Transcript

1 LA GESTIONE DELLA MEMORIA Ambiente Monoprogrammato (monoprogrammazione) In ambiente monoprogrammato é possibile far girare un solo programma per volta. Tutte le risorse sono dedicate all unico programma residente in memoria. Non esiste il problema della concorrenza e il S.O. risulta abbastanza semplice. Abbastanza semplice risulta anche la gestione della memoria centrale. La memoria centrale é divisa in non più di tre aree: a) Area contenente i moduli software del S.O b) Area contenente il programma utente da eseguire c) Area differenza fra Area totale a disposizione dell utente e Area occupata dal programma caricato. Tale Area resta vuota e non utilizzabile. Allocazione Singola Contigua (vedi Fig. 13) Il modo più semplice di gestione della memoria, in questo caso, consiste nel riservare una prima parte della memoria, ad accesso controllato, contenente le procedure del S.O. L utente ha quindi a disposizione la parte rimanente della memoria che inizia da un indirizzo definito staticamente. In questo caso il calcolo dell indirizzo è estremamente semplice, in quanto l indirizzo iniziale è fissato staticamente, quindi il passaggio dal nome simbolico all indirizzo rilocabile e fisico é immediato Funzioni che il S.O. deve garantire per il gestore della memoria: 1) Mantenere traccia dello stato di memoria (tutta la memoria é dedicata interamente all unico lavoro) 2) Definire la strategia di allocazione (se la memoria é sufficiente si può allocare) 3) Effettuare l allocazione (programma allocato a partire dalla prima locazione libera dal S.O.) 4) Deallocare la memoria (finito il lavoro, il programma rilascia la risorsa memoria) NB: un programma di dimensione superiore a quella fisicamente disponibile (memoria utente ), non ha nessuna possibilità di essere eseguito. Facendo riferimento al ciclo di vita del processo, il programma non supera la fase di lancio. Il S.O. verifica che non ci sono le condizioni per farlo diventare processo (verrà visualizzata una condizione di errore). Svantaggi principali: a) Utilizzazione ridotta della memoria b) Inefficiente uso del processore (resta in attesa durante le operazioni di I/O) c) Il programma utente deve avere una dimensione limitata compatibilmente con la memoria disponibile Ambiente multiprogrammato (multiprogrammazione) In questo caso il sistema di elaborazione deve gestire più programmi contemporaneamente presenti in memoria centrale. Quindi la memoria diventa una risorsa soggetta a condivisione. Un problema rilevante é quello degli accessi fuori area; il S.O. deve controllare che ogni programma faccia riferimento soltanto agli indirizzi facenti parte dell area di memoria ad esso dedicata (protezione degli accessi fuori area). Il sistema deve provvedere ad un ricalcolo degli indirizzi fisici secondo tecniche molto più sofisticate rispetto al caso 23

2 precedente (ci saranno dei registri che tengono traccia degli indirizzi di soglia fra le varie aree di memoria. Le aree in cui si considera divisa la memoria centrale fisica vengono chiamate partizioni. ( vedi Fig 14) Fig 14 Funzioni fondamentali svolte da un gestore della memoria 1) Mantenere traccia dello stato della memoria (conoscenza dello stato delle singole partizioni. Es: in uso/non in uso, dimensione, indirizzo iniziale ecc ). 2) Definire la strategia di allocazione: se c é una partizione libera che può contenere il programma questo può essere allocato secondo dei criteri realizzati principalmente dal job scheduler 3) Effettuare l allocazione: il programma é allocato nella partizione prescelta a partire dall indirizzo indicato dal S.O. 4) Deallocare la memoria: quando il lavoro é finito, il programma rilascia la partizione che torna nello stato di disponibilità. Allocazione Partizionata L allocazione partizionata prevede due modalità fondamentali : partizionamento statico e dinamico Partizionamento Statico La memoria centrale è divisa a priori in partizioni di dimensione prefissata e le informazioni relative allo stato della risorsa vengono inserite in una tabella delle partizioni secondo la struttura di Fig 15 Fig 15 Nell esempio indicato ci sono cinque partizioni a disposizione degli utenti. Tali partizioni variano fra gli 8 e i 520 K. Soltanto le N 1, 2, 5 sono occupate. I primi 312 K sono occupati dal S.O. In questo esempio la memoria totale é composta da 1024 Kbytes. Questa tabella serve per conoscere lo stato della risorsa memoria e per la costruzione del meccanismo di protezione. (Per ogni partizione viene indicato lo spazio di indirizzi riservato). Quando un nuovo programma vuole accedere alla memoria, il S.O. consulta la tabella alla ricerca di una partizione sufficientemente ampia 24

3 par contenere il programma; se la ricerca ha successo, il programma viene caricato e nella tabella viene indicato partizione in uso. Questo meccanismo di allocazione funziona bene quando si conosce, statisticamente, la frequenza e la dimensione dei programmi che richiedono la memoria. Sarà utile sapere se l elaboratore lavora con tanti piccoli programmi oppure con pochi grossi programmi. (Nel primo caso servono molte piccole partizioni nel secondo poche grandi). Questa tecnica produce lo spiacevole fenomeno definito: frammentazione. Come indicato anche in Fig 15, i programmi non occupano interamente la partizione che viene loro assegnata ma resterà sempre un piccolo spazio non utilizzato e non utilizzabile da altri utenti. Se si ha un programma di piccole dimensioni e si è costretti ad assegnargli una partizione di dimensioni notevoli, la parte che resta inutilizzata non può essere occupata da un altro programma anche se lo spazio libero risulta sufficiente. Svantaggi del partizionamento statico sono quindi: a) Rallentamento del lavoro b) Sfruttamento inefficiente della risorsa memoria Partizionamento Variabile Secondo questa tecnica il S.O. crea partizioni della esatta dimensione necessaria a contenere il programma che si sta caricando. Tale tecnica utilizza due tabelle; una tabella delle partizioni occupate e una tabella delle partizioni libere. Esempio : (vedi Fig 16 ) Fig 16 Inizialmente la tabella delle partizioni libere sarà costituita da un solo record che indica una sola partizione grande quanto l intera memoria, mentre la tabella delle partizioni occupate sarà completamente vuota. Nell istante considerato, la memoria ha tre partizioni occupate, non contigue, e due libere. Si supponga che il S.O. selezioni un programma che occupa 24 K di memoria. Il S.O. analizzando la tabella delle partizioni libere, vede che c é una partizione libera di 32 K ( vedi Fig.17) 25

4 Fig 17 Esempio di partizionamento dinamico La prima tabella ha guadagnato un record e contemporaneamente la seconda ha mantenuto ancora due partizioni, la prima delle quali ha ora ampiezza di soli 8 K e parte dall indirizzo 376K. Rappresentazione della memoria ( dopo allocazione Prog_4 ) A questo punto, se il prog_2 termina, viene liberato lo spazio di memoria centrale e quindi viene liberato un record nella tabella delle partizioni occupate ed occupato un record nella tabella delle partizioni libere. Se viene liberata una partizione adiacente ad un altra partizione libera, allora ne verrà costruita una unica che le comprende entrambe. Quando termina il prog_4 viene creata un unica partizione ampia 64 K a partire dalla locazione 320 K. 26

5 Strategie di allocazione del Gestore della Memoria Il problema consiste nello scegliere la partizione più idonea per allocare un programma. I metodi più comuni sono i tre seguenti: 1) FIRST FIT: il programma viene inserito nella prima partizione di dimensione sufficiente a contenerlo 2) BEST FIT: Il programma viene inserito nella partizione la cui dimensione è più vicina a quella richiesta, in modo da ridurre al minimo la dimensione dei frammenti 3) WORST FIT: Il programma viene inserito nella partizione più grande disponibile in quel momento, in modo da generare dei frammenti della dimensione massima possibile. Nessuna di queste tre tecniche é la migliore in assoluto. I progettisti di sistemi operativi le ritengono tutte valide. Nella seconda tecnica (BEST FIT) il vantaggio principale é dovuto al fatto che si hanno frammenti molto piccoli e quindi minor spreco di spazio. Lo svantaggio principale, in partizionamento dinamico, consiste nella difficoltà di allocare programmi in partizioni molto piccole (frammenti). Nella terza tecnica (WORST FIT) i frammenti sono abbastanza grandi per essere riutilizzati. Le due tecniche suddette richiedono che la tabella delle partizioni libere sia ordinata per dimensione delle partizioni crescente, in modo da facilitare l operazione di ricerca. Le tre tecniche suddette possono essere usate sia in partizionamento statico che dinamico. Partizionamento Rilocabile Per risolvere il problema della frammentazione si possono ricompattare tutte le aree libere di memoria in modo da avere a disposizione un unica grande area, posta nella memoria bassa oppure alta, e nuovamente utilizzabile per altri programmi. In linea di principio il procedimento sembra abbastanza semplice; praticamente invece si presentano notevoli problemi dato che il sistema deve trattare delle operazioni o istruzioni legate agli indirizzi delle locazioni; si pensi alle strutture di dati che utilizzano puntatori. Poiché il ricompattamento implica uno spostamento di un programma in altra zona di memoria, si deve mettere in atto una tecnica che riaggiusti tutti i riferimenti alla memoria. Il S.O. deve essere in grado di lavorare con partizionamento dinamico. Con il partizionamento statico non é pensabile un compattamento dei programmi. 1) Prima soluzione: si ricaricano tutti i programmi presenti in memoria centrale in modo contiguo lasciando così un unico spazio in fondo alla memoria. Tale operazione comporta una ripartenza di tutti i programmi. In questo modo non ci sono problemi di ricalcolo degli indirizzi fisici. Svantaggi : a) Ovviamente non è possibile procedere in tal modo se il programma ha prodotto dei risultati (anche una sequenza di modifica di un file). b) se, mentre avviene il ricaricamento, si presenta un nuovo programma, il S.O. deve decidere se caricarlo insieme agli altri (magari a danno di altri precedentemente presenti in memoria) oppure costringerlo ad attendere. c) Il procedimento é lungo e complesso e può rallentare in modo consistente il lavoro dell elaboratore 2) Seconda soluzione: si effettua un ricaricamento limitato al minimo necessario. Qualche programma può non richiedere di essere spostato. Per ogni partizione é prevista una coppia di registri chiamati: registro base di rilocazione e registro limite. Nel registro base di rilocazione viene memorizzato il numero di bytes di cui avviene lo spostamento. Il registro limite memorizza la dimensione della partizione. Il programma in questo modo non viene modificato (con risparmio di tempo e risorse). Ad ogni riferimento a memoria viene sommato (compattamento verso la parte alta della memoria) o sottratto (compattamento verso la parte bassa della memoria) il contenuto del registro base di rilocazione. ESEMPIO: (vedi Fig 18) Il prog_x é stato caricato in una partizione ampia 20 K a partire dalla locazione della memoria centrale. Dalla locazione fino al programma suddetto si é generato uno spazio libero che si vuole compattare verso la parte bassa degli indirizzi di memoria. (Reg_lim = ( dim part)), (Reg_base_riloc = ( )). 27

6 Il valore del Reg_base viene sottratto (compattamento verso il basso) a tutti i riferimenti a memoria riscontrati nel programma durante l esecuzione. Per esempio se un istruzione fa riferimento alla locazione 60350, dopo il compattamento il riferimento sarà modificato in ( ). La funzione principale del registro limite riguarda la protezione degli accessi. Anche a compattamento avvenuto non devono esserci riferimenti non consentiti alla memoria. ESEMPIO Compattamento di tre partizioni. (vedi Fig. 19) Supponiamo di voler spostare verso l alto tre partizioni intervallate da un frammento ognuna. La nuova posizione del primo programma si ottiene sottraendo la dimensione del primo frammento che viene eliminato (valore de Reg_base) al vecchio indirizzo iniziale. Il valore del Reg_base del secondo programma é calcolato sommando al valore del registro di rilocazione precedente l ampiezza del secondo frammento. Il valore del terzo Reg_base di rilocazione si ottiene sommando al valore del secondo la dimensione del terzo frammento. Il S.O. quindi provvede ad aggiornare il valore di ogni reg_base di rilocazione sommando il contenuto del registro base precedente alla dimensione dell ultimo frammento da eliminare. 28

7 Quando risulta conveniente effettuare un ricompattamento della memoria? Si potrebbe fare ogni volta che viene liberata una partizione in modo da avere sempre un unica grande area vuota a disposizione senza frammentazione. In questo modo si avrebbe una notevole semplificazione della tabella delle aree libere (partizionamento dinamico) a spese però di maggiori costi di gestione (tempo e realizzazione). Una seconda soluzione consiste nell effettuare l operazione di compattamento periodicamente. Il sistema lavora, in questo caso, come in un normale partizionamento dinamico ma periodicamente c é questa riorganizzazione delle aree libere e delle relative tabelle. Nessuna delle due soluzioni é in assoluto la migliore. Fra le tecniche viste finora, il partizionamento rilocabile é la soluzione migliore in termini di utilizzo della risorsa memoria. Gli svantaggi sono relativi ai costi, alla complessità e alla limitatezza alla sola memoria fisica. La Paginazione Questo meccanismo cerca di ridurre il fenomeno della frammentazione superando il vincolo della contiguità. Nella gestione paginata della memoria, si considera lo spazio di indirizzi di un programma diviso in pagine di una dimensione predefinita che é la stessa per tutti i programmi girano nell elaboratore. La memoria é divisa in blocchi tali da contenere esattamente una qualsiasi pagina di programma. Le pagine di programma vengono smistate in memoria nei blocchi che sono liberi in quell istante. Non c è contiguità fisica fra gli indirizzi del programma ma tramite certe tabelle si riesce a stabilire una contiguità logica. Page Breakage : con questo termine si indica il fenomeno della frammentazione limitato all ultima pagina. Se per esempio definiamo dei blocchi di memoria di 4 K, non tutti i programmi richiedono un multiplo esatto di 4 K, per cui l ultima pagina occuperà meno spazio lasciando pertanto un frammento inutilizzabile (es un programma di 17 K che viene caricato in una memoria divisa in blocchi di 4 K, necessita di 5 blocchi dei quali l ultimo produrrà un frammento di 3 K). La dimensione ottimale dei blocchi di memoria è generalmente intorno ai 4 K. I blocchi non devono essere molto grandi (possono generare grossi frammenti) e nemmeno troppo piccoli perché ogni programma ne richiederebbe un numero alto con conseguente difficoltà di gestione da parte del S.O. Funzioni fondamentali del gestore 1) Mantenere traccia dello stato della memoria, per mettere in relazione le pagine con i blocchi della memoria, si utilizzano due tabelle: PAGE MAP TABLE (PMT): una per ogni programma, con tanti elementi quante sono le sue pagine, contiene la corrispondenza tra il numero della pagina ed il numero di blocco di memoria che la contiene. MEMORY BLOCK TABLE (MBT): unica nel sistema, con tanti elementi quanti sono i blocchi della memoria, e contenente lo stato dei blocchi ( liberi, occupati). 2) Definire la strategia di allocazione dei blocchi: a carico del job scheduler; consiste nel ricercare nella MBT i blocchi liberi e disponibili per il programma in attesa; 3) Effettuare l allocazione: le pagine del programma sono caricate nei blocchi prescelti dal S.O. che provvede anche all aggiornamento delle PMT e MBT; 4) Deallocare la memoria: quando il lavoro é finito, il programma rilascia i blocchi di memoria che tornano nello stato di disponibilità ( aggiornamento della MBT ). Le tabelle suddette possono essere implementate in diversi modi: in modo abbastanza semplice attraverso un gruppo di registri dedicati che vengono caricati e gestiti come i registri dei programmi ma rispetto a questi ultimi hanno una gestione prioritaria. Tale tecnica é efficace se la tabella ha dimensioni limitate. Se le tabelle sono grandi vengono utilizzate memorie di tipo associativo (come la CACHE) dove il registro si compone di due parti: chiave e valore. Se il numero di elementi delle tabelle é alto, solo una parte può essere conservato nella CACHE (tempo ridotto) altrimenti si deve accedere alla memoria centrale con conseguente tempo medio di ritrovamento alto. Alle tabelle PMT e MBT viene associata la JT (job table) che contiene l identificatore del programma, la sua dimensione e l indirizzo di memoria a partire dal quale é memorizzata la sua PMT. ESEMPIO: (vedi Fig.18) In questo esempio si considerano delle pagine di 4 K (lo stesso per i blocchi). Dalle tabelle si vede che sono presenti in memoria tre programmi ognuno con la sua PMT e restano ancora due blocchi liberi. 29

8 VANTAGGI : 1) Drastica riduzione della frammentazione 2) Più programmi contemporaneamente presenti in memoria SVANTAGGI : 1) Complessità della gestione 2) Grande quantità di memoria richiesta per la conservazione delle tabelle 3) Limitatezza della memoria fisica 30

9 La Memoria Virtuale Nelle modalità di gestione della memoria viste finora, un programma non poteva essere mandato in esecuzione se non era disponibile una quantità di memoria sufficiente a contenerlo completamente. Per questo motivo molti programmi voluminosi, erano costretti a lunghe attese oppure non avevano nessuna possibilità di ottenere una allocazione in memoria centrale. Il concetto di memoria virtuale permette di superare il vincolo della limitatezza fisica della memoria centrale. Per esempio può essere possibile far girare un programma che richiede 50 K di memoria avendone a disposizione soltanto 20 K. Il principio consiste nell immaginare di avere a disposizione una memoria ipotetica virtuale teoricamente infinita. VANTAGGI : 1) Non c é più la limitazione dovuta alla dimensione della memoria fisica, quindi diventa possibile eseguire programmi di qualsiasi dimensione 2) Si eleva notevolmente il livello di multiprogrammazione del sistema 3) Si possono sfruttare, come conseguenza, in modo più efficiente tutte le altre risorse procurate dall elaboratore. Principi di Località: Il concetto di memoria virtuale trae origine dai seguenti due principi di località: 1) Principio di località temporale: le locazioni di memoria usate recentemente é probabile che saranno riutilizzate molto presto (es. programmi con istruzioni cicliche, sottoprocedure strutture di dati composte) 2) Principio di località spaziale: se é stata indirizzata una certa locazione di memoria, è probabile che saranno indirizzate presto anche le locazioni adiacenti ad essa (programmi con struttura sequenziale oppure strutture dati lineari come i vettori ). Da questi due principi si evince che, quando é in esecuzione una certa parte del programma, non é necessario che siano presenti in memoria anche tutte le altre istruzioni. Si possono conservare solo quelle parti di programma interessate dall esecuzione secondo i criteri probabilistici enunciati con i due principi. Gestione di una memoria virtuale: 1) Si deve spezzettare un programma (tecniche di paginazione e di segmentazione) 2) Caricamento in memoria di alcuni pezzi del programma lasciando il resto su memoria di massa 3) Se durante l esecuzione di un programma viene richiesta una pagina, non presente in memoria, si dovrà provvedere al caricamento con eventuale rimozione di un blocco (algoritmi di rimozione della pagina). Questi criteri sono seguiti dalle tre strategie principali per la gestione della memoria virtuale: Gestione virtuale paginata Gestione segmentata Gestione segmentata - paginata Gestione Virtuale Paginata Questa tecnica sfrutta la politica di gestione a pagine, tenendo comunque conto del nuovo concetto di memoria virtuale. Pertanto, se le pagine che servono non sono in memoria centrale, bisogna provvedere a caricarle e si devono eventualmente rimuovere altre pagine che al momento non servono (algoritmo di rimozione). Funzioni fondamentali del gestore: 1) Mantenere traccia dello stato della memoria (si devono mettere in relazione le pagine con i blocchi di memoria e con i dispositivi di massa, per questo vengono usate tre tabelle): Page Map Table (PMT): una per ogni programma, con tanti elementi quante sono le sue pagine, contiene la corrispondenza tra il numero della pagina e il numero di blocco di memoria che la contiene; Memory Block Table (MBT): unica nel sistema, con tanti elementi quanti sono i blocchi della memoria, e contenente lo stato dei blocchi (liberi/occupati); File Map Table (FMT): una per ogni programma, mette in relazione le pagine del programma col loro indirizzo fisico sul dispositivo di memoria di massa; 2) Definire la strategia di allocazione dei blocchi: questa gestione é sviluppata dal JOB SCHEDULER che deve ricercare nella MBT dei blocchi liberi per il programma in attesa. Se la memoria centrale é occupata, parte il meccanismo di rimozione delle pagine. 3) Effettuare le allocazioni: le pagine del programma vengono caricate nei blocchi prescelti dal S.O. (dopo eventuale rimozione ) che provvede anche all aggiornamento delle tabelle. 31

10 4) Deallocare la memoria: quando il lavoro é finito, il S.O. rende di nuovo disponibili i blocchi di memoria che tornano così disponibili. La paginazione virtuale, rispetto alla paginazione semplice, introduce qualche modifica alle tabelle (vedi esempio in Fig 19) MBT: mantiene la stessa struttura (Num_blocco/stato) e viene interrogata per accesso alla memoria PMT: oltre ai campi Num_pag, Num_blocco contiene un bit che indica se la pagina è presente o non presente in memoria centrale FMT: contiene due campi (Num_pagina, Indirizzo_file) e serve a mettere in relazione la singola pagina con l indirizzo della sua copia su disco. Nell esempio indicato, viene considerato un programma composto da 3 pagine inizialmente residenti su disco nelle locazioni indicate dalla FMT. Le pagine 0 e 1 sono state caricate in memoria centrale nei blocchi 2 e 4. La pagina 2 non è presente in memoria. Se successivamente ci sarà necessità di tale pagina, il S.O. dovrà accedere alla locazione 5340 (indicata dalla FMT) e caricare la pagina nel blocco individuato tramite la MBT. Vengono utilizzati due bit (reference bit e change bit) associati ad ogni blocco della memoria fisica (abbinati ad ogni record della MBT) e vengono utilizzati nella procedura di rimozione delle pagine dai blocchi. Reference bit: viene impostato ad 1 quando viene effettuato un riferimento ad una qualsiasi locazione del blocco Change bit: viene impostato ad uno quando viene effettuata una modifica ad una qualsiasi locazione del blocco relativo Processo sviluppato dal S.O: Inizio esecuzione istruzione; Calcolo Num_pag di programma da utilizzare; IF <Num_pag in memoria centrale> THEN begin completa l istruzione ; passa alla prossima istruzione ; end ELSE IF < esiste un blocco libero > THEN carica la pagina nel blocco libero ( usa FMT ) ; ELSE begin scegli il blocco da liberare; se la pagina é stata modificata ( Change bit = 1 ) riscrivila sul disco ; aggiorna le MBT e PMT ; carica la pagina nel blocco liberato ( usa la FMT ) ; end aggiorna le MBT e PMT ; continua l istruzione interrotta. 32

11 PAGE FAULT (fallimento dell operazione di ricerca della pagina): quando il sistema deve caricare una pagina si genera un page fault, se non viene recuperato un blocco libero, parte il meccanismo di rimozione di una pagina dalla memoria centrale. Vengono usati i seguenti algoritmi : 1) FIFO (first in first out) 2) LRU (least recently used) 3) NUR (not used recently) 1) Questo algoritmo é molto semplice: viene eliminata dalla memoria la pagina che, tra quelle presenti in un certo istante, é stata caricata per prima. Il metodo é semplice ma produce molti page fault. Se una pagina é usata frequentemente (es. pagina di menu principale), diventerà presto la più vecchia e quindi viene eliminata, ma essendo sempre richiesta viene immediatamente ricaricata rallentando così il sistema. 2) Tale algoritmo seleziona la pagina che non é stata referenziata da più tempo (non necessariamente si tratta di quella in memoria da più tempo).tale tecnica si basa sul principio di località: si suppone che se una pagina é stata richiesta di recente, é probabile che presto serva nuovamente (le informazioni per la rimozione di una pagina sono contenute nel reference bit e ne change bit). L efficienza di tale metodo é superiore a quella del FIFO 3) Tale metodo parte dagli stessi principi del metodo LRU. Si cerca di eliminare una pagina non utilizzata di recente (non necessariamente quella non usata da più tempo). In questo modo la gestione si semplifica. Si prevede un azzeramento periodico dei reference bit, se al momento della selezione della pagina viene trovato ad 1, significa che é stato fatto un accesso recente; se viene trovato a 0, non é stato fatto un accesso recente e quindi può avvenire la rimozione. La scelta della pagina da eliminare, fra quelle che hanno il reference bit= 0, é casuale. L efficacia di tale tecnica é vicina alla precedente ma é di più semplice implementazione. La tecnica della gestione virtuale paginata mantiene tutti i vantaggi legati alla gestione della memoria centrale in modo virtuale (memoria teoricamente infinita, alto livello di multiprogrammazione... ) e gli svantaggi dovuti alla complessità ed al volume delle tabelle da gestire. Per quanto riguarda la frammentazione, viene conservato quel minimo relativo al Page breakage (resto nell ultima pagina di ogni programma). Gestione virtuale segmentata Quando si parla di memoria virtuale, si intende che i programmi non sono caricati per intero in memoria centrale. Si deve quindi pensare ad una eventuale suddivisione da operare su ogni programma. La tecnica della paginazione é deterministica e legata alla dimensione predefinita staticamente per i blocchi di memoria. Con la gestione virtuale segmentata i programmi vengono divisi in segmenti di dimensione variabile secondo la logica del programma. Nella paginazione si fa una suddivisione in pagine indipendentemente da quello che contengono (criterio fisico). Nella segmentazione, la suddivisione in segmenti viene fatta a seconda del significato del contenuto (criterio logico). Tutto questo viene fatto nel rispetto dei principi di località. La paginazione, essendo legata, alle dimensioni del programma, poteva anche spezzare su due pagine una stessa funzione e generare quindi un numero notevole di page faults fra le due durante l esecuzione. Il problema si elimina se tutte le istruzioni che concorrono alla realizzazione di una funzione restano adiacenti anche in memoria centrale. La segmentazione virtuale consiste nella suddivisione della memoria centrale in una entità simile alla partizione: cioè uno spazio di dimensione variabile creato dinamicamente e gestito tramite tabelle che indicano le aree libere e quelle occupate. Oltre alle tabelle che realizzano il partizionamento, ci saranno dei meccanismi che realizzano la virtualizzazione. Funzioni fondamentali svolte dal gestore della memoria 1) Mantenere traccia dello stato della memoria ; si deve conoscere lo stato delle aree di memoria (libere e occupate) e lo stato di ogni programma (quanta parte é in memoria di massa e quanta in memoria centrale). Vengono utilizzate due tabelle principali: Segment Map Table (SMT): una per ogni programma, con tanti elementi quanti sono i suoi segmenti, che contiene la corrispondenza tra le aree di memoria e il segmento e l indicazione sul tipo di accesso consentito; Unallocated Area Table (UAT): unica nel sistema, elenca i dati sulle aree libere della memoria centrale; esiste un altra tabella che realizza il meccanismo di condivisione dei segmenti da parte di più programmi: Active Segment Table ( AST ) 2) Definire la strategia di allocazione della memoria (a carico del job scheduler), si deve ricercare nella UAT se esistono aree libere per il segmento richiesto del programma in esecuzione; se la ricerca non va a buon fine, parte il meccanismo di rimozione per creare spazio in memoria centrale 33

12 3) Effettuare l allocazione: i segmenti del programma sono caricati nelle aree libere prescelte dal S.O. (eventualmente dopo intervento del meccanismo di rimozione) che provvede anche all aggiornamento delle tabelle. 4) Deallocare la memoria: a lavoro finito il programma rilascia le aree di memoria occupate (se non sono condivise con altri programmi) che tornano disponibili ed eventualmente aggiorna i dati posti sul disco. La tabella SMT ha una struttura più complessa rispetto alla equivalente PMT (usata nella paginazione). (vedi Fig. 20). Primo campo: numero del segmento Secondo campo: dimensione del segmento che serve per la ricerca dell area libera nellauat Terzo campo: tipo di accesso consentito al programma nel segmento specifico (R lettura, W scrittura, E: esecuzione); Quarto campo: stato (In: in memoria centrale, Out: in memoria di massa) Quinto campo: locazione iniziale del segmento all interno della memoria centrale ( ha senso se il segmento é già in memoria) La tabella delle aree libere (UAT) ha la stessa struttura di un meccanismo semplicemente partizionato. In Fig. 21 viene rappresentata lo stato della memoria 34

13 Vantaggi principali del metodo segmentato : Elimina frammentazione: muovendo i segmenti in aree della dimensione esatta, si elimina il problema dei frammenti inutilizzabili (grazie anche al compattamento periodico) Permette la crescita dinamica del segmento: nel caso in cui il segmento subisce delle modifiche di dimensione, non si presentano problemi poiché la dimensione del segmento non é definita a priori. Nella paginazione, una modifica della dimensione di una pagina comporta la risuddivisione di tutto il programma. Facilita la condivisione dei segmenti: la suddivisione del programma é logica e non fisica é quindi possibile consentire la condivisione di alcuni segmenti che contengono funzioni che possono essere utili a più programmi Controllo degli accessi più rigoroso: l accesso ad ogni segmento é controllato Linking e loading dinamico: i programmi voluminosi e complessi possono essere composti da centinaia di procedure e funzioni distinte. Poiché é costoso linkarle e caricarle tutte in memoria nello stesso tempo, viene caricato in memoria solo il programma principale, mentre le altre parti vengono richiamate quando servono. Tabella AST: contiene informazioni sui segmenti attivi (residenti in memoria centrale). Quando un programma richiama un segmento, le coordinate del segmento vengono inserite in tale tabella. Un programma che ha bisogno di una funzione consulta prima la AST per controllare che sia già in memoria, nel caso non ci sia il S.O. provvede al caricamento. Quando un segmento viene rimosso dalla memoria centrale devono essere aggiornate tutte le SMT e le AST. I meccanismi di rimozione del segmento sono simili a quelli della paginazione, in più c é il vincolo della dimensione del segmento. Non basta che l area da liberare sia la più vecchia o la meno usata, é importante che la sua dimensione sia sufficiente. Svantaggi principali: La necessità del compattamento aumenta la complessità della gestione; La dimensione non fissa dei segmenti del programma non garantisce i vantaggi di memorizzazione guadagnata nell organizzazione a blocchi della memoria di massa La dimensione massima di un segmento é limitata alla dimensione della memoria fisica Le tecniche per ridurre il segment fault sono più complesse dell equivalente nella gestione paginata. Gestione virtuale segmentata - paginata Questa é una tecnica di tipo segmentato; in aggiunta ogni segmento é suddiviso in pagine di uguale dimensione. Si ottengono buoni risultati a scapito di una maggiore difficoltà di gestione. L indirizzo di una locazione di memoria é composto di tre parti: un numero di segmento, un numero di pagina del segmento, uno spiazzamento all interno della pagina (vedi Fig. 22) 35

14 In figura é rappresentato un esempio che indica il segmento N3, la pagina N6 all interno del segmento e lo spiazzamento all interno della pagina della locazione 850. In questo tipo di gestione la SMT contiene l indirizzo della tabella PMT che definisce la relazione tra pagine del segmento 3 e blocchi della memoria: il risultato é l indirizzo fisico iniziale del blocco 30 della memoria centrale all interno del quale si ricerca la locazione 850. Le tabelle sono tutte quelle relative alla segmentazione e alla paginazione: si può così mantenere la contiguità e l unità logica tipica della segmentazione e facilitare il caricamento in memoria del segmento poiché esso viene spezzato in più pagine. Nella SMT, invece della locazione iniziale del segmento si trova l indirizzo iniziale della PMT che contiene i dati relativi a tutte le pagine di quel segmento. I vantaggi e gli svantaggi sono quelli della paginazione e della segmentazione sommati. Il meccanismo della segmentazione paginata é abbastanza efficiente e flessibile con un buon livello di protezione degli accessi ma é piuttosto gravosa la gestione da parte del S.O. Come svantaggio si ha la ricomparsa della frammentazione dovuta al page breakage. 36

15 GESTIONE DEL PROCESSORE Il livello di S.O. richiamato con maggior frequenza, direttamente o da altri gestori, é quello che si occupa della gestione del processore. Vengono evidenziati i seguenti tre moduli: 1) Job scheduler: seleziona il job che può essere eseguito (transizione fra gli stati di acquisizione e pronto) 2) Process scheduler: decide tutte le modalità di accesso al processore (transizione tra gli stati pronto ed esecuzione) 3) Traffic controller: mantiene traccia dello stato del processo, coordina i meccanismi di sincronizzazione e comunicazione tra i processi (transizioni in stati di attesa e terminazione e pronto) In ambiente monoprogrammato il job scheduler ed il process scheduler coincidono in quanto il job selezionato dal job scheduler è anche l unico che otterrà l uso del processore. Scheduler: con tale termine si intende un gestore di una risorsa che esegue il suo lavoro secondo certe regole e priorità. Vengono evidenziate le seguenti classi di scheduling: Short term scheduling : gestisce un utilizzo della risorsa di durata molto breve (frazioni di secondo); si tratta del process sheduler che gestisce i tempi di utilizzo della CPU (millisecondi). Si parla anche di dispatcher o schedulatore di basso livello (rappresenta il processo con cui il nucleo di un S.O fa passare un processo tra quelli presenti nella ready list dallo stato di pronto allo stato di esecuzione). Medium term scheduling: Le operazioni di gestione della risorsa fanno riferimento a tempi di media lunghezza (le operazioni interne al calcolatore sono comunque velocissime per l uomo) un esempio può essere il job scheduler che gestisce operazioni meno frequenti e che richiedono più tempo. E più importante ottimizzare l uso della risorsa (tramite algoritmo) piuttosto che la elocità di esecuzione. Long term scheduling: (detto semplicemente scheduler) riguarda un controllo delle richieste a livello ancora più alto. (Può essere la fase in cui si decide se un programma può essere accolto all interno della macchina in attesa di essere scelto dal job scheduler. Da quanto detto si intuisce che, passando dallo scheduling a basso livello allo scheduling ad alto livello vengono trattate operazioni sempre meno legate al processore fisico; quindi si passa da problematiche relative alla riduzione dei tempi di esecuzione a problematiche relative alla ottimizzazione dell uso e della condivisione delle risorse. Un esempio di gestione a lungo termine é lo spooler che si occupa di gestire le richieste di stampa di più utenti in ambiente multiprogrammato. Job Scheduler Il job scheduler é un piccolo gestore che deve assegnare le risorse del sistema ai job (o programmi) selezionati. Deve pertanto svolgere le quattro funzioni fondamentali di un gestore : prendere nota dello stato dei job richiedenti applicare la strategia prescelta per selezionare i job da portare allo stato di pronto assegnare le risorse richieste dai job che sono arrivati in stato di pronto sovrintendere alle operazioni di deallocazione delle risorse Per mantenere traccia dei job che richiedono di essere eseguiti é necessario avere una tabella per ogni job chiamata job control block che contiene le informazioni circa le richieste temporali e di risorse. L insieme di tutte le tabelle JCB costituisce la coda dei job in stato di acquisizione. ( vedi fig.23 ) 37

16 Alcune informazioni, come la priorità dell utente o il tempo previsto per l esecuzione dipendono dalle dichiarazioni o dalle stime dell utente, altre, come lo stato corrente sono impostate dal sistema operativo. Per selezionare i job da portare dallo stato di acquisizione allo stato di pronto vengono utilizzati principalmente due criteri: Ottimizzazione dell uso delle risorse a costi limitati (complessità degli algoritmi di gestione) Minimizzazione dei tempi di attesa dei job Facendo riferimento alla minimizzazione dei tempi di attesa si definisce la seguente grandezza : Average Turnaround Time (ATT: tempo medio di esecuzione) così definito: dove Ti = Fi - Ai Fi = istante finale Ai= istante iniziale (istante di arrivo job) n = numero dei job Il problema consiste nell individuare delle strategie che mediamente comportano le minori attese per i programmi e quindi per gli utenti. Sistema monoprogrammato: Siccome é possibile eseguire un solo programma per volta, alcuni job saranno costretti ad attendere il loro turno. Si possono individuare tre strategie: FIFO (programmi eseguiti nell ordine in cui vengono lanciati). Shortest Job First (SJF) prevede una precedenza di esecuzione per il job che ha il tempo previsto minimo c é quindi un risparmio di tempo rispetto alla tecnica FIFO. Future Knowledge (conoscenza futura) é utilizzabile se il sistema conosce a priori la sequenza di job che si presenteranno per essere eseguiti; si possono fare delle scelte che permettono di migliorare il tempo medio Sistema multiprogrammato: Si possono utilizzare gli algoritmi visti con la variante che possono lavorare più job contemporaneamente. Se per esempio viene usata la tecnica FIFO, il S.O. farà eseguire i primi N job acquisiti (se N é il livello di multiprogrammazione) Process Scheduler Questo modulo si incarica di assegnare il processore ai processi che sono stati inseriti nella coda di pronto dal job scheduler. Anche in questo caso il modulo può essere considerato come un piccolo gestore di risorse. Si possono ancora individuare le quattro funzioni fondamentali dei gestori. Process Control Block (PCB): sono delle tabelle contenenti le informazioni fondamentali relative ad un processo in esecuzione. L insieme delle PCB é organizzato come lista di record (ogni PCB é un record). (vedi fig 24 ) Fig 24 Process Control Block 38

17 Il traffic controller viene richiamato ogni volta che un processo cambia stato (attesa-pronto-esecuzione ecc..) e va a modificare il contenuto del campo relativo allo stato all interno della corrispondente PCB. Le PCB organizzate nella lista che si trova nello stato di pronto costituiscono la coda che prende il nome di ready list e rappresentano le richieste dei job pronti a ricevere la CPU. Altre PCB si trovano nelle code relative agli altri stati che compongono il ciclo di esecuzione di un processo. Strategie di assegnazione del processore: FCFS (First Come First Served) Round Robin (RR) Inverso del time slice residuo Priorità definita Shortest Elapsed Time (SET) FCFS: é basata sul principio del FIFO. Il primo processo che entra nella ready list é il primo che ottiene l utilizzo della CPU che mantiene per tutto il tempo necessario al completamento del lavoro. ROUND ROBIN (Fig.25): é una tecnica molto importante sulla quale si basano molte altre. Ogni processo mantiene il processore per un certo tempo (time slice). Se il processo non ha finito il suo lavoro, deve essere inserito di nuovo nella coda nella posizione definita dalla particolare strategia adottata dal S.O. La tecnica round robin prevede che la ready list venga gestita in modo FIFO perché ad ogni processo in coda venga assegnato a turno un intervallo di tempo di CPU uguale per tutti. Se il processo, al termine del suo time slice, non ha terminato il suo lavoro, deve rilasciare forzatamente la CPU (preemption) e viene inserito in fondo alla ready list. In questo modo i processi brevi non sono soggetti a lunghe attese, mentre i processi lunghi allungano i loro tempi di lavoro. La scelta del time slice é molto importante; se il tempo é troppo breve rispetto alla durata dei processi, il numero di interruzioni risulta molto alto e si abbassano le prestazioni del sistema. Se il tempo é troppo lungo quasi tutti i processi terminano il loro lavoro e si ricade così nella tecnica FCFS. Fig. 25 Round Robin INVERSO DEL TIME SLICE RESIDUO: La tecnica del tempo residuo di CPU prevede una gestione con priorità della ready list. Il S.O. fa una prima assegnazione della CPU secondo la strategia Round Robin pura, poi inserisce i processi nella lista in ordine inverso rispetto al tempo di CPU non utilizzato. Si vuole cioè dare priorità maggiore ai processi che usano poco la CPU e che quindi lasciano un grande residuo di timeslice. In questo modo si raggiungono due obiettivi : Si abbrevia il tempo medio di esecuzione (si velocizzano i processi brevi) Si intensificano le operazioni sulle periferiche (aumenta la percentuale di utilizzo) infatti se un processo interrompe il suo lavoro col processore é molto probabile che lo faccia anche per svolgere delle operazioni di I/O. Processi I/O bound: processi che presentano una notevole quantità di operazioni di I/O Processi CPU bound: processi per i quali predomina il lavoro con la CPU 39

18 PRIORITÁ DEFINITA: si può pensare di ordinare la coda secondo delle priorità prestabilite, per cui ogni processo prende posto nella ready list secondo la propria priorità. Si possono definire anche tante code, una per ogni livello di priorità in modo che tutti i processi della stessa importanza siano nella stessa struttura (priorità multilista). Ogni coda viene poi gestita con tecnica FCFS oppure Round Robin. I processi a priorità più alta accederanno per primi; i processi a priorità inferiore potranno accedere alla CPU solo quando non c é nessun processo nelle code superiori. Il lavoro di una coda viene interrotto quando si presenta un nuovo processo di priorità superiore. Tale tecnica potrebbe produrre il fenomeno denominato starvation (attesa infinita) di processi a bassa priorità. SHORTEST ELAPSED TIME (SET): tale tecnica é una sintesi delle precedenti. E ancora una organizzazione multilista (gestita in Round Robin) che sfrutta dinamicamente le richieste temporali dei processi. I processi che arrivano in stato di pronto vengono automaticamente inseriti nella coda di priorità maggiore ottenendo quindi la CPU entro breve tempo. Se terminano il lavoro prima della fine del time slice escono dalla struttura, altrimenti regrediscono di un livello di priorità passando alla coda immediatamente inferiore. Tale procedimento si applica a tutti i processi della lista finché non resta vuota. A questo punto viene assegnata la CPU alla seconda lista con le stesse regole e così via fini all ultima. Se arriva un processo, mentre si sta scandendo una lista inferiore,al termine del time slice, il controllo passa alla prima lista della struttura. In pratica, a regime, il sistema da priorità massima alla lista contenente i processi che richiedono brevi periodi di CPU e penalizza i processi CPU bound che acquistano il processore raramente. 40

Sistemi Operativi. 5 Gestione della memoria

Sistemi Operativi. 5 Gestione della memoria Gestione della memoria Compiti del gestore della memoria: Tenere traccia di quali parti della memoria sono libere e quali occupate. Allocare memoria ai processi che ne hanno bisogno. Deallocare la memoria

Dettagli

Gestione della Memoria

Gestione della Memoria Gestione della Memoria Idealmente la memoria dovrebbe essere grande veloce non volatile Gerarchia di memorie Disco: capiente, lento, non volatile ed economico Memoria principale: volatile, mediamente grande,

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

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

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

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 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

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

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

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

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

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

Il memory manager. Gestione della memoria centrale

Il memory manager. Gestione della memoria centrale Il memory manager Gestione della memoria centrale La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda

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

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Lo scheduling. Tipici schedulatori

Lo scheduling. Tipici schedulatori Lo scheduling Un processo durante la sua evoluzione è o running o in attesa di un evento. Nel secondo caso trattasi della disponibilità di una risorsa (CPU, I/O, struttura dati, ecc.) di cui il processo

Dettagli

Scheduling della CPU. 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

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

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

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

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

Processi e Thread. Scheduling (Schedulazione)

Processi e Thread. Scheduling (Schedulazione) Processi e Thread Scheduling (Schedulazione) 1 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

La Gestione delle risorse Renato Agati

La Gestione delle risorse Renato Agati Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File

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

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

Corso di Sistemi di Elaborazione delle informazioni

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

Dettagli

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

Sistemi Operativi SCHEDULING DELLA CPU

Sistemi Operativi SCHEDULING DELLA CPU Sistemi Operativi SCHEDULING DELLA CPU Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale Calcolatori Elettronici La memoria gerarchica La memoria virtuale Come usare la memoria secondaria oltre che per conservare permanentemente dati e programmi Idea Tenere parte del codice in mem princ e

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

La Memoria Virtuale Ottimizzazione della memoria centrale

La Memoria Virtuale Ottimizzazione della memoria centrale La Memoria Virtuale Ottimizzazione della memoria centrale 1) Introduzione- Gerarchia della memoria Da un punto di vista funzionale, ogni dispositivo di memorizzazione elettronica di informazioni presenta

Dettagli

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione Gestione della memoria Paginazione Segmentazione Segmentazione con paginazione Modello di paginazione Il numero di pagina serve come indice per la tabella delle pagine. Questa contiene l indirizzo di base

Dettagli

Sistema operativo: Gestione dei processi

Sistema operativo: Gestione dei processi Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica - ICA Prof. Pierluigi Plebani A.A. 2011/2012 Sistema operativo: Gestione dei processi La presente dispensa e da utilizzarsi

Dettagli

Capitolo 11 La memoria cache

Capitolo 11 La memoria cache Capitolo 11 La memoria cache Gerarchie di Memoria Dati sperimentali mostrano che i riferimenti alla memoria godono della proprietà di località spaziale e temporale. Località spaziale: tendenza a generare

Dettagli

GESTIONE DELLA MEMORIA CENTRALE

GESTIONE DELLA MEMORIA CENTRALE GESTIONE DELLA MEMORIA CENTRALE E MEMORIA VIRTUALE 7.1 Gestione della memoria Segmentazione Segmentazione con paginazione Memoria Virtuale Paginazione su richiesta Sostituzione delle pagine Trashing Esempi:

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09 SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli

Dettagli

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Informatica: il sistema operativo

Informatica: il sistema operativo pierpaolo.vittorini@cc.univaq.it Università degli Studi dell Aquila Facoltà di Medicina e Chirurgia 6 ottobre 2006 Il software Il software è l insieme dei programmi che operano sul calcolatore Software

Dettagli

La memoria - generalità

La memoria - generalità Calcolatori Elettronici La memoria gerarchica Introduzione La memoria - generalità n Funzioni: Supporto alla CPU: deve fornire dati ed istruzioni il più rapidamente possibile Archiviazione: deve consentire

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

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

Memoria Virtuale. Lezione 29 Sistemi Operativi

Memoria Virtuale. Lezione 29 Sistemi Operativi Memoria Virtuale Lezione 29 Sistemi Operativi I Principi Abbiamo sinora assunto che durante l esecuzione di un programma, lo stesso debba risiedere completamente in MC Intorno alla metà degli anni 70 viene

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

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. La nozione di multiprogrammazione prevede la possibilità di

Dettagli

Lo schedulatore del kernel

Lo schedulatore del kernel Lo schedulatore del kernel Lo schedulatore Lo schedulatore è un programma del kernel che si occupa di scegliere un processo/lavoro che ha richiesto una risorsa. Lo schedulatore a lungo termine LTS è quello

Dettagli

12. Implementazione di un File System. 12.1.1 Struttura a livelli. 12.2.1 Allocazione contigua

12. Implementazione di un File System. 12.1.1 Struttura a livelli. 12.2.1 Allocazione contigua 12. Implementazione di un File System 1 Struttura del file system Metodi di allocazione Gestione dello spazio libero Implementazione delle directory Prestazioni ed efficienza 2 Utente 12.1.1 Struttura

Dettagli

Varie tipologie di memoria

Varie tipologie di memoria Varie tipologie di memoria velocita` capacita` registri CPU memoria cache memoria secondaria (Hard Disk) Gestione della memoria Una parte della viene riservata per il SO I programmi per poter essere eseguiti

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Sistemi operativi. Esempi di sistemi operativi

Sistemi operativi. Esempi di sistemi operativi Sistemi operativi Un sistema operativo è un programma che facilita la gestione di un computer Si occupa della gestione di tutto il sistema permettendo l interazione con l utente In particolare un sistema

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

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1 GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Dettagli

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Dettagli

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

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

DMA Accesso Diretto alla Memoria

DMA Accesso Diretto alla Memoria Testo di rif.to: [Congiu] - 8.1-8.3 (pg. 241 250) 08.a DMA Accesso Diretto alla Memoria Motivazioni Organizzazione dei trasferimenti DMA Arbitraggio del bus di memoria Trasferimento di un blocco di dati

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

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file. ESERCIZIO 1 Si consideri un hard disk formattato la cui memoria è suddivisa in 16 blocchi (numerati da 0 a 15). Si supponga che sull hard disk sia memorizzato un unico file, contenuto, nell ordine, nei

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

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

Capitolo 11 -- Silberschatz

Capitolo 11 -- Silberschatz Implementazione del File System Capitolo 11 -- Silberschatz Implementazione del File System File system: Definizione dell aspetto del sistema agli occhi dell utente Algoritmi e strutture dati che permettono

Dettagli

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria

Dettagli

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

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore. I processi Cos è un processo? Un processo è una attività, controllata da un programma, che si svolge su un processore. Il programma è una entità statica che descrive la sequenza di istruzioni che devono

Dettagli

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

La memoria centrale (RAM)

La memoria centrale (RAM) La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso casuale Tecnologia elettronica: Veloce ma volatile e costosa Due eccezioni R.O.M.

Dettagli

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 60 minuti dalla sua

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

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

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU Il sistema operativo Sistema operativo Gestione della CPU Primi elaboratori: Monoprogrammati: un solo programma in memoria centrale Privi di sistema operativo Gestione dell hardware da parte degli utenti

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

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

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale Funzioni principali del sistema operativo Il software la parte contro cui si può solo imprecare Avvio dell elaboratore Gestione del processore e dei processi in Gestione della memoria principale Gestione

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

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.

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

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

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

Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore

Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore 5.2 Silberschatz, Galvin and Gagne 2005 1 Massimizzare lʼutilizzo della

Dettagli

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

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

J. Assfalg Appunti di Sistemi Operativi

J. Assfalg Appunti di Sistemi Operativi Multiprogrammazione J. Assfalg Appunti di Sistemi Operativi La multiprogrammazione nasce come un metodo per massimizzare l'uso della CPU piuttosto che come uno strumento per fornire un miglior servizio

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Strutture di Memoria 1

Strutture di Memoria 1 Architettura degli Elaboratori e Laboratorio 17 Maggio 2013 Classificazione delle memorie Funzionalitá: Sola lettura ROM, Read Only Memory, generalmente usata per contenere le routine di configurazione

Dettagli

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale 1 (es. 1) Consideriamo un processo con m frame inizialmente vuoti. La stringa di riferimento è lunga p e contiene riferimenti a n pagine diverse. Per un qualsiasi algoritmo di rimpiazzamento: a) qual è

Dettagli

I processi Unix. Entry della tabella dei processi

I processi Unix. Entry della tabella dei processi I processi Unix Ciascun processo Unix può evolvere in stato utente o in stato kernel. Il passaggio dall uno all altro stato avviene mediante SVC. Poiché il processo può andare in attesa di un evento nell

Dettagli

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni

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

Esercitazione E6 Esercizi d esame

Esercitazione E6 Esercizi d esame Esercitazione E6 Esercizi d esame Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 E6-1 Memoria virtuale Si consideri un sistema a memoria virtuale con indirizzi a 32 bit, indirizzi fisici a 20

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

J. Assfalg Appunti di Sistemi Operativi

J. Assfalg Appunti di Sistemi Operativi Lo scheduler di Linux (kernel 2.4) La politica di scheduling di Linux si propone il raggiungimento dei seguenti obiettivi (molti dei quali sono in contrasto): timesharing gestione di priorità dinamiche

Dettagli

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

Dettagli

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software

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

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1 PROGRAMMA GESTIONE TURNI MANUALE UTENTE INDICE 1 PREMESSA 3 2 COMANDI COMUNI 3 3 SEDI 3 4 FESTIVITÀ 4 5 PERIODI TURNI 4 6 COD. TURNI 6 7 TURNI SPORTIVI 9 8 COD. EQUIPAGGI 9 9 DISPONIBILITÀ 10 10 INDISPONIBILITÀ

Dettagli

SCHEDULING DEI PROCESSI

SCHEDULING DEI PROCESSI SCHEDULING DEI PROCESSI FIFO o FCFS (First-In-First-Out) Primo arrivato primo servito. Si utilizza nei processi non-preemptive. RR (Round-Robin) I processi sono attivati in modalità FIFO ma viene loro

Dettagli

= 0, 098 ms. Da cui si ricava t 2 medio

= 0, 098 ms. Da cui si ricava t 2 medio 1. Una macchina ha uno spazio degli indirizzi a 32 bit e una pagina di 8 KB. La tabella delle pagine è completamente nell hardware, con una parola a 32 bit per voce. Quando parte un processo, la tabella

Dettagli