Memoria. Sistemi Operativi Giuseppe Prencipe. Memoria virtuale. Gestione della memoria. Paginazione su richiesta. Paginazione su richiesta

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Memoria. Sistemi Operativi Giuseppe Prencipe. Memoria virtuale. Gestione della memoria. Paginazione su richiesta. Paginazione su richiesta"

Transcript

1 Sistemi Operativi Giuseppe Prencipe Memoria Virtuale Memoria Abbiamo visto varie tecniche per gestire la memoria Permettono la presenza contemporanea di più processi in memoria La memoria virtuale è una tecnica che permette di eseguire processi che possono anche non essere completamente contenuti in RAM 1 2 Gestione della memoria Un programma deve essere in memoria per poter essere eseguito Caricarlo tutto in RAM Overlay e caricamento dinamico aiutano ad attenuare questa limitazione Caricarne solo una parte Le condizioni d errore in un programma servono raramente Anche se c è bisogno di avere tutto il programma in RAM, spesso non è necessario caricarlo tutto in una volta Con il secondo metodo, il programma non è vincolato alla quantità di memoria fisica disponibile. Gli utenti scrivono programmi per uno spazio degli indirizzi virtuale 3 Memoria virtuale Tipicamente si realizza nella forma di paginazione su richiesta o segmentazione su richiesta Gli algoritmi di sostituzione dei segmenti sono più difficili da realizzare, dato che i segmenti sono a dimensione variabile 4 Paginazione su richiesta Quando un processo sta per essere caricato, il paginatore fa una predizione sul numero di pagine che saranno usate prima che il processo sia scaricato Sono necessari meccanismi per distinguere le pagine presenti in memoria da quelle nei dischi Bit di validità Non valido significa che La pagina non appartiene allo spazio logico del processo (accesso illegale), o Che la pagina cercata non è in memoria fisica Fin quando il processo accede pagine valide, è come se l intero processo fosse in memoria L accesso a una pagina marcata come non valida causa un eccezione di pagina mancante (page fault trap) Paginazione su richiesta In seguito a un insuccesso nell accesso a una pagina, viene eseguita una procedura di gestione Se il riferimento non era valido perchè illegalesi termina il processo Se era non valido semplicemente perchè la pagina non era stata caricata in memoriaviene caricata Si individua un blocco di memoria libero (lista dei blocchi liberi) Si trasferisce la pagina dal disco al blocco designato Si modifica la tabella delle pagine Si riprende l esecuzione del processo (sospeso in seguito alla trap) Fig

2 Paginazione su richiesta pura È possibile avviare l esecuzione di un processo senza che nessuna delle sue pagine sia in memoria Cosa accade in questo caso???? Paginazione su richiesta pura 7 Paginazione su richiesta Per realizzare la paginazione su richiesta, occorrono i meccanismi necessari alla paginazione Tabella delle pagine Memoria ausiliaria (swap) Bisogna porre attenzione a riavviare l esecuzione dell istruzione che ha causato il page fault Es.: si consideri ADD(A,B)C Prelievo istruzione ADD Prelievo A Prelievo B Somma A e B Memorizza in C Se il page fault avviene con la memorizzazione in C (perché C si trova in una pagina non in RAM)bisogna rieseguire l istruzione dall inizio dopo aver caricato la pagina contenente C Approfondire ulteriori esempi sul testo 8 Paginazione su richiesta La paginazione su richiesta può avere un effetto rilevante sulle prestazioni del sistema Sia ma il tempo d accesso in memoria ( nanosec circa) Sia p la probabilità che si verifichi un page fault. Abbiamo che il tempo d accesso effettivo in memoria (TAE) è TAE=(1-p)xma+px(tempo gestione fault) In seguito a un page fault Si genera la trap, e si salvano resgistri utente e stato del processo Si determina la natura della trap (pagina mancante) Si controlla la correttezza del riferimento e si determina la locazione della pagina nel disco Lettura dal discoeventuale scheduling CPU Ulteriori attese dovute a (eventuali) code sul dispositivo di I/O Interrupt I/O Context switch (se c è stato scheduling CPU) Si determina la provenienza dell interrupt dal disco Si aggiorna la tebella delle pagine Si attende che la CPU sia di nuovo assegnata a questo processo Recupero dello stato del processo 9 Paginazione su richiesta Considerando un tempo medio di 25 millisec per gestire il page fault e di 100 nanosec per l accesso in memoria, abbiamo (in nanosecondi) TAE=(1 - p) x p x (25 millisec)= (1 - p) x p x = x p Il TAE è proporzionale alla frequenza dei fault. Se un accesso su 1000 causa faulttae è di 25 microsecondi il calcolatore è rallentato di un fattore 250 Occorre tenere bassa la frequenza dei fault Gestione I/O Copiare le pagine dal disco all area di swap (è più veloce gestire I/O dall area di swap che dal file system) Si prendono le pagine dal file system, ma poi si scaricano nell area di swap 10 Creazione dei processi Un processo viene creato con una system call...???? Usando opportunamente la paginazione, si accelera la creazione Fork Crea un processo figlio, assegnando una copia dello spazio d indirizzi del genitore Tipicamente, dopo la fork, il figlio esegue una exec, che sovrascrive lo spazio appena copiato Per migliorare le prestazioni si usa la copiatura su scrittura (copy-on-write) Inizialmente il figlio condivide le pagine del padre (con la paginazione condivisa, si realizza semplicemente) Le pagine che potrebbero essere modificate dal figlio vengono marcate come pagine da copiare in scrittura Se il figlio scrive su una di queste pagine, allora il SO provvede a farne una copia nello spazio d indirizzi del figlio 11 Creazione dei processi Al momento della duplicazione, bisogna trovare una pagina libera Tipicamente si mantiene un pool di pagine libere per questo scopo Queste pagine sono assegnate con azzeramento su richiesta, cioè la pagina viene rimepita di zeri prima di essere assegnata 12 2

3 Associazione alla memoria Quando si effettua un accesso a un file su disco, bisogna utilizzare chiamate di sistem (open, read, write, close) Per accelerare le operazioni di I/O, si considera l accesso al file come un ordinario accesso in memoria (associazione dei file alla memoria) L accesso al file avviene tramite la normale paginazione su richiesta, che determina (inizialmente) una pagina mancante A questo punto si carica una (o più) pagina del file dal disco in memoria Tutte le operazioni su file sono operazioni in memoria 13 Associazione in memoria Normalmente, le scritture del file in memoria non corrispondono a scritture effettive del file su disco Alla chiusura del file, bisogna riportare le pagine dalla memoria sul disco In questo modo si può realizzare la condivisione di un file Ogni modifica apportata a una delle pagine del file in memoria sarà immediatamente visibile a tutti i processi che condividono quel file Fig La coordinazione dell accesso ai dati condivisi critici deve avvenire in mutua esclusione 14 Sostituzione delle pagine La paginazione su richiesta si basa sul principio che vengono caricate in RAM solo alcune di tutte le pagine di cui il processo avrà bisogno In questo modo si può aumentare il grado di multiprogrammazione, caricando in RAM alcune pagine di più processi Cosa accade se si verifica un page fault? Il SO verifica che si tratta di una trap dovuta a pagina mancante (e non ad accesso illegale) Localizza su disco la pagina da caricare Sceglie una pagina libera in RAM (dalla lista dei blocchi liberi) Effettua il caricamento Ovviamente, mirando ad aumentare il grado di multiprogrammazione, e dato che alcune delle pagine sono destinate anche all I/O, accade che la lista dei blocchi liberi risulti vuota (non ci sono pagine libere) Cosa si fa? Si può terminare il processo a cui manca la pagina. NO!!!! La paginazione su richiesta è un tentativo di migliorare le prestazioni. Inoltre la paginazione deve essere completamente trasparente all utente Il SO può scaricare dalla memoria l intero processo, liberando le sue pagine, ma riducendo il grado di multiprogrammazione Oppure sostituisce le pagine 15 Sostituzione pagine IDEA: se nessun blocco di memoria è libero, se ne libera uno attualmente inutilizzato Il blocco si libera scrivendo il suo contenuto nell area di swap, e aggiornando la tabella delle pagine Il blocco libero si utilizza per caricare la pagina che ha causato la trap 16 Sostituzione pagine Quindi, la procedura di servizio dell eccezione diventa S individua la locazione nel disco della pagina richiesta Si cerca un blocco libero in memoria Se esiste, viene assegnato Altrimenti si seleziona una pagina vittima da scaricare Si scrive la pagina vittima su disco, e si modifica la tabella delle pagine e la lista dei blocchi liberi Si scrive la pagina richiesta nel blocco liberato, e si modificano la tabella delle pagine e la lista dei blocchi liberi Si riprende il processo utente 17 Sostituzione pagine Se non ci sono blocchi liberi, sono necessari due trasferimenti di pagine!! Per cercare di ridurre questo sovraccarico, si utilizza il bit di modifica È associato a ogni pagina per determinare se è stata modificata o meno Per realizzare la paginazione su richiesta bisogna avere Algoritmo di assegnazione dei blocchi liberi Quanti blocchi assegnare a ogni processo? Algoritmo di sostituzione dell pagine 18 3

4 Sostituzione pagine Tipicamente un buon algoritmo di sostituzione delle pagine minimizza la frequenza delle assenze di pagine Un algoritmo si valuta generando una successione di riferimenti alle pagine Casuale Analizzando un sistema reale Con questa tecnica si possono avere milioni di indirizzi al secondo Per ridurre la mole di dati da analizzare si nota che Interessa solo il numero di pagina per ogni accesso e non tutto l indirizzo Se una pagina è in memoria, tutti gli accessi a quella pagina non causano fault, quindi la successione di riferimenti è più corta della successione di indirizzi (pag. 343) Inoltre bisogna conoscere anche il numero di blocchi di memoria 19 Sostituzione FIFO A ogni pagina si associa il tempo in cui quella pagina è stata portata in memoria Si sostituisce la pagina presente in memoria da più tempo Non è necessario memorizzare il tempo. Infatti, è sufficiente strutturare le pagine in memoria con una coda FIFO Es. Fi. 10.9: Successione riferimenti: 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1 3 blocchi di memoria 20 Sostituzione FIFO Non ha sempre buone prestazioni Infatti, è possibile che una pagine lette frequentemente vengano sostuituite e quindi generino eccessivi page fault Anomalia di Belady 1,2,3,4,1,2,5,1,2,3,4,5 # assenze di pagine # blocchi di memoria Sostituzione ottimale Si indica con MIN o OPT l algoritmo che presenta la minima frequenza di assenza di pagine e non presenta mai l anomalia di Belady IDEA: si sostituisce la pagina che non si userà per il periodo di tempo più lungo Es. Fig Difficile da realizzare, dato che richiede la conoscenza futura della successione dei riferimenti Analogia con quale altro algoritmo del SO???? Si utilizza per studi comparativi 22 Sostituzione LRU Cerca di approssimare l algoritmo ottimo FIFO: si utilizza l istante in cui la pagina è stata caricata in memoria OPT: si utilizza l istante in cui una pagina è usata LRU: si utilizza come approssimazione di un futuro vicino un passato recente, e si sostituisce la pagina che non è stata usata per il periodo più lungo (least recently used LRU) 23 Sostituzione LRU Associa ad ogni pagina l istante in cui è stata usata per l ultima volta Per sostituire una pagina, l algoritmo sceglie quella che non è stata usata per il periodo più lungo Costituisce l ottimo tra gli algoritmi che ricercano indietro nel tempo Infatti, la frequenza di assenze di pagine per l algoritmo OPT su una sequenza S è uguale a quella per LRU sull inversa di S (e viceversa) Fig

5 Sostituzione LRU È di difficile realizzazione Come realizzare un ordine per i blocchi di memoria definito secondo il momento dell ultimo uso? Contatori Pila Sostituzione LRU contatori Ogni elemento della tabella delle pagine contiene un campo momento d uso Alla CPU si aggiunge un registro contatore che viene incrementato ad ogni riferimento in memoria Ogni volta che si fa riferimento a una pagina, si copia il valore del registro nel campo momento d uso nella sua tabella delle pagine Bisogna fare una ricerca nella tabella delle pagine per trovare la pagina LRU Scrivere in memoria (nel campo momento d uso) per ogni accesso in memoria Possibilità di overflow del registro contatore Sostituzione LRU pila Presenza di un pila dei numeri delle pagine Ogni volta che si fa riferimento a una pagina, la si estrae dalla pila e la si colloca in cima in cima alla pila si trova la pagina usata più recentemente in fondo, quella usata meno recentemente Alcuni elementi devono essere estratti dal centro della pila Realizzazione tramite lista doppiamente concatenata, con un puntatore all elemento in cima e uno a quello in fondo Per estrarre una pagina dalla pila, nel caso peggiore, si devono modificare pochi puntatori Per una sostituzione non si devono fare ricerche Sostituzione LRU LRU e OPT non presentano l anomalia di Belady Algoritmi a pila: classe di algoritmi che non la presentano Cioè, si dimostra che l insieme delle pagine in memoria per n blocchi è sempre un sottoinsieme dell insieme delle pagine che dovrebbero essere in memoria per n+1 blocchi Per realizzare LRU è necessario il supporto dell architettura Aggiornamento contatore/pila per ogni accesso in memoria Non si può fare con interrupt (e procedure di servizio)!!!! Approssimazione LRU Poche architetture offrono supporto per la realizzazione dell LRU Quindi bisogna ricorrere a sue approssimazioni Un aiuto è dato dal bit di riferimento È associato a ogni pagina (nella tabella delle pagine) Inizialmente tutti i bit sono a 0 Viene impostato a 1 quando una pagina è riferita (lettura/scrittura) È possibile stabilire quali pagine sono state riferite o no Chiaramente non è possibile conoscere l ordine d uso delle pagine (necessario per LRU), ma consente di progettare algoritmi che approssimano LRU Con bit supplementari di riferimento Si registra il bit di riferimento associato a ogni pagina I bit registrati si tengono in una stringa di bit in una tabella in memoria A intervalli regolari, un interrupt trasferisce il controllo al SO, che scrive il bit di riferimento per ogni pagina nel bit più significativo della stringa associata a quella pagina, scartando il bit meno significativo (traslazione a destra) Se si usano stringhe di 8 bit, significa che la pagina non è riferita da 8 intervalli significa che la pagina è stata riferita almeno una volta in ognuno degli ultimi 8 intervalli In questo modo si può stabilire un ordinamento fra le pagine Chiaramente le stringhe non sono uniche, e in caso di conflitto (più pagine con associata la stringa minima) Si scaricano tutte le pagine con stringa minima Oppure in ordine FIFO

6 Seconda chance Il numero di bit utilizzati per le stringhe dipende dall architettura Nel caso in cui è zero (cioè si usa il solo bit di riferimento) algoritmo con seconda chance È un algoritmo di tipo FIFO Si selezionano le pagine in ordine FIFO Se il bit di riferimento è zero, la pagina si scarica Se 1, le si da una seconda chance tenendola in memoria, azzerando il bit di riferimento, e aggiornando il suo istante d arrivo in memoria al tempo attuale In questo modo, una pagina a cui si offre una seconda chance non viene sostituita fino a quando???? Fino a che tutte le altre pagine non sono state scaricate o non è stata offerta loro una seconda chance Se una pagina è usata spesso (il suo bit di riferimento è sempre 1), non viene mai scaricata 31 Seconda chance Un metodo per realizzare la seconda chance è basato sull uso di una coda circolare Un puntatore indica la prima pagina da sostituire Quando serve un blocco di memoria, si fa avanzare il puntatore fino a una pagina con bit 0 Tutti i bit che esamina fino a quello su cui si ferma sono posti a 0 (erano sicuramente a 1) Trovata la pagina vittima, la si sostituisce e si inserisce la nuova pagina nellaposizione corrispondente Nel caso peggiore, cosa accade???? la coda viene percorsa tutta, dando a tutte le pagine una seconda chance 32 Seconda chance II Si migliora se si utilizza la coppia (bit di riferimento, bit di modifica) (0,0) non usata, non modificatamigliore da sostituire (0,1) non usata recentemente, ma modificataoccorre salvarla in memoria (1,0) usata recentemente, non modificata-->probabilmente sarà usata di nuovo (1,1) usata e modificataprobabilmente sarà usata di nuovo e dovrà essere salvata su disco Si usa lo schema della coda circolare e si sostituisce la pagina che si trova nella classe minima non vuota Occorre scandire la lista più volte per trovare la vittima 33 Sostituzione con conteggio Si utilizza un contatore del numero di riferimenti che sono stati fatti a ciascuna pagina Due schemi Sosituzione delle pagine meno frequentemente usate (least frequently used LFU) Si sostituisce la pagina con il conteggio più basso Svantaggio: pagina usata molto all inizio e poco dopo ha un contatore alto e rimane in memoria Soluzione: traslazione a destra del contatore a intervalli regolari Sostituzione delle pagine più frequentemente usate (most frequentlu used MFU) Si basa sull osservazione che probabilmente la pagina con il contatore più basso è stata appena inserita e quindi non è stata ancora usata Poco usati, perché onerosi da realizzare e non approssimano bene OPT 34 Memorizzazione transitoria delle pagine Per migliorare le prestazioni Il sistema conserva un gruppo di blocchi liberi Quando si ha un fault, invece di attendere che venga selezionata la pagina vittima, si carica subito la pagina in uno dei blocchi liberi del gruppo Quando poi la pagina vittima è selezionata, viene scaricata, e il suo blocco aggiunto al gruppo dei blocchi liberi Si estende l idea Conservando un elenco delle pagine modificate Quando il dispositivo di paginazione è inattivo, si sceglie una pagina modificata, la si salva su disco (non la si scarica!!!!) e si reimposta il suo bit di modifica In questo modo si aumenta la probabilità che quando quella pagina sarà sostituita non la si dovrà salvare su disco Ricordando quale pagina era contenuta in ogni blocco libero, la pagina può continuare ad essere usata anche dopo essere stata scaricata A ogni richiesta di pagina si deve controllare anche se si trova in uno dei blocchi liberi 35 Assegnazione blocchi memoria Come si assegnano i blocchi liberi ai processi? Nel caso di un solo utente/processo, la situazione è semplice L idea di fondo è di assegnare qualsiasi blocco libero al processo utente Se si ha multiprogrammazione, le strategie di assegnazione dei blocchi di memoria sono soggette a vari vincoli 36 6

7 Assegnazione blocchi memoria Non si possono assegnare più blocchi di memoria di quanti ne siano disponibili (a meno di condivisione di pagine) Deve esistere un numero minimo di blocchi di memoria che si devono assegnare Se si ha page fault prima che l esecuzione di un istruzione è completa, bisogna iniziarle da capo Es.: se ho istruzioni di load, allora almeno due blocchi; se ho istruzioni di load indirette, almeno 3 blocchi Il numero minimo di blocchi da assegnare dipende dall architettura PDP-11: l istruzione MOV copre più di una parolasta in più di una pagina (a cavallo di due pagine) Riferimenti indiretti non possono essere illimitati: in questo caso si potrebbero chiamare in causa tutte le pagine della memoria virtuale Rimedio: limitare il livello dei riferimenti indiretti (ad es., con max 16 livelli, il numero minimo di pagine da assegnare sarebbe di 17) Il numero minimo di blocchi da assegnare dipende dall architettura (set di istruzioni), mentre il numero max dipende da...???? Memoria fisica disponibile!!!! Algoritmi di assegnazione Assegnazione uniforme: se ci sono m blocchi e n processisi possono dare ad ogni processo m/n blocchi Eventuali resti si possono assegnare al gruppo di blocchi liberi Assegnazione proporzionale: si riconosce che i processi hanno bisogni diversila memoria disponibile si assegna a ciascun processo in base alla sua dimensione Sia si la dimensione della memoria virtuale di Pi S=Σsi, e m numero di blocchi liberi Al processo pi si assegnano ai=si/s x m blocchi Chiaramente si sceglie ai in modo che la somma degli ai sia m, e che ciascun ai sia un intero maggiore del numero di blocchi minimo richiesto dall architettura Algoritmi di assegnazione In entrambi gli schemi, il numero di blocchi assegnati può variare a seconda del grado di multiprogrammazione I processi a bassa priorità e quelli ad alta priorità sono trattati allo stesso modo Per migliorare la situazione, si possono assegnare i blocchi proporzionalmente alla priorità piuttosto che alla dimensione Algoritmi di assegnazione Gli algoritmi di assegnazione dei blocchi sono legati anche a quelli di sostituzione delle pagine Sostituzione globale: un processo può avere assegnato un blocco che in quel momento è occupato da qualche altro processo Processi a alta priorità sottraggono blocchi a quelli a bassa priorità Un processo non può controllare la propria frequenza di assenza delle pagine Sostituzione locale: i blocchi a un certo processo vengono assegnati solo dal suo insieme di blocchi Il numero di blocchi assegnato a un processo non cambia Non usa pagine che sono poco usate e assegnate ad altri processi La sostituzione globale è più produttiva ed è il metodo più usato Attività di paginazione degenere Se un processo non dispone di un numero sufficiente di blocchi di memoria, si verificano parecchie assenze di pagine. Ciò comporta: basso utilizzo della CPU Il processo continua a subire assenze di pagine, facendo sostituire pagine che saranno immediatamente trattate come assenti e dovranno essere riprese. Paginazione degenere Esempio: un pò di processi caricati, sostituzione globale delle pagine Processo richiede più pagine Page faults Dispositivo di paginazione Pagine sottratte ad altri processi Page faults Thrashing degenerazione dell attività di paginazione (si spende più tempo per la paginazione che per l esecuzione dei processi). 41 Processi in coda di paginazione Coda pronti si svuota SO aumenta il grado di multiprogrammazione Page faults 42 7

8 Attività di paginazione degenere Perché si verifica attività di paginazione degenere? Σ dimensione della località > dimensione totale della memoria Soluzione: sostituzione locale comunque, se un processo è in attività degenere, passa lo stesso la maggiorparte del tempo in coda di paginazione, aumentando i tempi di gestione della stessa e rallentando gli altri processi Località di riferimenti alla memoria Perché la paginazione funziona?? Modello di località Un processo, durante la sua esecuzione, si sposta di località in località Le località si possono sovrapporre Quindi si cerca di caricare in memoria la località corrente di un processo Modello dell insieme di lavoro Δ finestra dell insieme di lavoro numero di riferimenti alle pagine (esempio: riferimenti) WSS i (dimensione dell insieme di lavoro del processo P i ) = numero totale delle pagine che il processo accede negli ultimi Δ riferimenti (varia nel tempo) se Δ è troppo piccolo, non include l intera località. se Δ è troppo grande, può sovrapporre più località. se Δ = l insieme di lavoro coincide con l insieme di pagine cui il processo fa riferimento durante la sua esecuzione. D = Σ WSS i richiesta totale dei blocchi di memoria Se D > m (numero totale blocchi liberi) l attività di paginazione degenera (thrashing) Strategia: se D > m, il sistema operativo individua un processo da sospendere. NOTA: ogni processo usa attivamente le pagine nel proprio working set 45 Modello dell insieme di lavoro Uso del working set: il SO assegna a ogni processo un numero di pagine pari alla dimensione del suo insieme di lavoro Se la somma degli insiemi di lavoro supera il numero di blocchi disponibili si sospende un processo La finestra dell insieme di lavoro è dinamicadifficile tener traccia delle pagine che sono in un WSS 46 Modello dell insieme di lavoro Il modello dell insieme di lavoro si può approssimare con un segnale d interruzione del temporizzatore a intervalli fissi e con un bit di riferimento Esempio: Δ = segnale d interruzione dal temporizzatore ogni 5000 riferimenti si mantengono in memoria 2 bit per ciascuna pagina quando si verifica un segnale d interruzione, i valori dei bit di riferimento di ciascuna pagina vengono copiati e poi azzerati se uno dei bit in memoria = 1 la pagina è nell insieme di lavoro Perché questo schema non è del tutto preciso? Per migliorarlo = 10 bit e un interruzione ogni 1000 riferimenti. Frequenza delle assenze di pagine frequenza delle assenze di pagine numero dei blocchi di memoria limite superiore limite inferiore si aumenta il numero di blocchi di memoria si riduce il numero di blocchi di memoria Un altra tecnica per controllare la degenerazione è quello della frequenza delle assenze di pagine Stabilisce un tasso accettabile di assenza delle pagine. Se la frequenza delle assenze di pagine è molto bassa, il processo potrebbe disporre di troppi blocchi di memoria. Se la frequenza delle assenze di pagine è eccessiva, significa che il processo necessita di più blocchi di memoria

9 Altre considerazioni Prepaginazione Portare in memoria in blocco l insieme di lavoro di un processo (quando inizia o viene riattivato in seguito a sospensione) Quando un processo viene sospeso, bisogna salvare il suo WWS È vantaggiosa se costa meno della gestione dei page faults Dimensione delle pagine Frammentazione (per ridurla, scegliamo pagine...????) piccole Dimensione della tabella delle pagine (con piccole pagine si hanno tabelle...????) grandi Tempo richiesto per leggere o scrivere una pagina (per ridurre i tempi di I/O occorre usare pagine...????) grandi Località (vengono migliorate le caratteristiche di località usando pagine...????) piccole 49 Altre considerazioni (cont.) Portata del TLB (TLB reach): quantità di memoria accessibile dal TLB (translation lookaside buffer, memoria associativa) Portata del TLB = (numero di elementi) X (dimensione delle pagine) Idealmente, il TLB dovrebbe contenere l insieme di lavoro di un processo; altrimenti vi sarà un elevato grado di assenza delle pagine 50 Aumentare la portata del TLB Aumentare la dimensione delle pagine. Potrebbe portare a una maggiore frammentazione della memoria relativamente alle applicazioni che non richiedono pagine così grandi Impiegare diverse dimensioni delle pagine. Ciò consente alle applicazioni che richiedono dimensioni di pagina maggiori di utilizzarle senza che si verifichi un aumento della frammentazione La gestione di pagine diverse deve essere fatta dal SO (uno dei campi del TLB deve indicare la dimensione fisica della pagina riferita) 51 Altre considerazioni (cont.) Le prestazioni si possono migliorare anche a livello di programmazione (anche se la paginazione è del tutto trasparente) Struttura del programma (pagina di 1024b, matrice memorizzata per righe) int A[][] = new int[1024][1024]; Ciascuna riga è memorizzata in una pagina Programma 1 for (j = 0; j < A.length; j++) for (i = 0; i < A.length; i++) A[i,j] = 0; Quanti page fault abbiamo? 1024 x 1024 assenze di pagine Programma 2 for (i = 0; i < A.length; i++) for (j = 0; j < A.length; j++) A[i,j] = 0; Quanti page fault abbiamo? 1024 assenze di pagine 52 Altre considerazioni (cont.) Vincolo di I/O. Talvolta occorre permettere che alcune pagine si possano vincolare alla memoria Esempi tra i sistemi operativi Prendiamo in considerazione l I/O. Un processo richiede I/O Poi viene sospeso, e la pagina coinvolta nell I/O sostituita Quando l I/O è completato, la pagina interessata non è più in memoria Soluzioni Usare un area di sistema per i trasferimenti tra unità I/O e memoria (in questo modo i blocchi in memoria che devono ricevere i dati sono sicuramente presenti) Vincolare le pagine in memoria (non possono essere selezionate per la sostituzione) Bit di vincolo associato alla pagina Completato l I/O, si rimuove il vincolo Le pagine del nucleo (o di una sua parte) sono vincolate Windows NT Solaris 2 NOTA: Le elaborazioni in tempo reale sono poco adatte all uso di memoria virtuale

10 Windows NT Usa la paginazione su richiesta per gruppi di pagine (demand paging with clustering), richiamando quindi non solo la pagina richiesta ma anche quelle a essa adiacenti. Alla sua creazione, un processo riceve i valori del minimo insieme di lavoro e del massimo insieme di lavoro. Il minimo insieme di lavoro (working set minimum) è il minimo numero di pagine caricate nella memoria di un processo che il sistema garantisce di assegnare. Se la memoria è sufficiente, il sistema potrebbe assegnare un numero di pagine pari al suo massimo insieme di lavoro (working set maximum). Viene mantenuta una lista delle pagine fisiche libere, con associato un valore soglia che indica se è disponibile una quantità sufficiente di memoria libera Se si ha un fault, e il processo è al suo massimo, si procede per sostituzione locale Nel caso in cui la quantità di memoria libera scenda sotto la soglia, il gestore della memoria virtuale usa un metodo noto come regolazione automatica dell insieme di lavoro (automatic working set trimming) per riportare il valore sopra la soglia. In pratica, se a un processo sono state assegnate più pagine del suo minimo insieme di lavoro, il gestore della memoria virtuale rimuove pagine fino a raggiungere quel valore. 55 Solaris 2 Mantiene una lista delle pagine libere da assegnare ai processi che ne abbiano bisogno. Lotsfree: parametro associato alla lista delle pagine libere; rappresenta una soglia per l inizio della paginazione (1/64 memoria fisica) 4 volte al secondo si verifica se la memoria libera è < lotsfree. In questo caso si avvia il processo di pageout Pageout: scandisce le pagine usando un algoritmo simile alla seconda chance Scanrate è la frequenza di scansione delle pagine ed è compresa tra i valori slowscan e fastscan (secondo la quantità di memoria disponibile) Pageout è eseguito più frequentemente a seconda del quantitativo di memoria libera disponibile. 56 Scansione delle pagine nel Solaris fastscan frequenz adi scansione Per oggi basta!!!! 100 slowscan minfree desfree lotsfree memoria libera Gestione del Page Fault (1) 1. Una eccezione provoca l invocazione del nucleo, salvando almeno il PC sullo stack (hw) 2. Salvataggio registri generali e altri reg. interni (assembler) 3. Il sistema determina la pagina logica richiesta registro speciale o software 4. Il sistema verifica la validità dell indirizzo, e ricerca una pagina libera o, in alternativa, una pagina vittima 5. Se la pagina vittima selezionata è stata modificata (dirty), viene scritta su disco 59 Gestione del Page Fault (2) 6. Il sistema richiede la lettura della pagina logica dal disco (schedulatore) va in esecuzione un altro processo pronto 7. Quando la lettura è completata (interruzione), si aggiorna la tabella delle pagine 8. Viene ripristinata l istruzione che ha causato il page fault 9. Il processo che ha causato il page fault viene schedulato 10. Ripristino dei registri, ritorno in modo utente (assembler) 60 Il processo riprende l elaborazione come se il page fault non fosse avvenuto 10

11 Ripristino dell Istruzione Il fault si può verificare in una dei tre accessi Problemi se l istruzione modifica i registri autoincremento, autodecremento Alcune macchine hanno dei registri interni che mantengono infomazioni di ripristino 61 (backup) # Vincolare le pagine in Memoria Memoria virtuale e I/O interagiscono occasionalmente Un processo richiede una lettura da un dispositivo su un buffer Mentre attende per l I/O passa in esecuzione un altro processo Il processo in esecuzione causa un page fault La pagina contenente il buffer del primo processo può essere selezionata per essere scaricata dalla memoria Necessità di vincolare alcune pagine Le pagine vincolate non possono essere scaricate dalla memoria (pinning) 62 Backing Store: area di swap Separazione tra Politiche e Meccanismi Process address space (a) Paginazione con un area di swap statica indirizzo iniziale su disco in TP (b) Paginazione con area di swap dinamica 63 Gestione di un page fault con un pager esterno (ispirata al sistema Mach) 64 Vincolo I/O 65 11

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

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

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

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

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

SISTEMI OPERATIVI. La memoria virtuale. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

SISTEMI OPERATIVI. La memoria virtuale. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) La memoria virtuale Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario La memoria virtuale

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

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

Gestione della memoria

Gestione della memoria Prof. Diomede Mazzone Gestione della memoria Memoria Virtuale Cosa accade usualmente Alcuni processi possono rimanere in stato di ready per molto tempo, occupando memoria! Le pagine fisiche di memoria

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

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

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

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

memoria virtuale protezione

memoria virtuale protezione Memoria Virtuale Le memorie cache forniscono un accesso veloce ai blocchi di memoria usati più di recente La memoria virtuale fornisce un accesso veloce ai dati sulle memorie di massa usati più di recente.

Dettagli

Memoria virtuale. Riassumendo Meccanismo di traduzione indirizzi con tabella TLB Ogni processo ha la sua PMT Politiche della memoria virtuale E

Memoria virtuale. Riassumendo Meccanismo di traduzione indirizzi con tabella TLB Ogni processo ha la sua PMT Politiche della memoria virtuale E Spazio di indirizzamento virtuale Riprendiamo lo spazio di indirizzamento virtuale del programma di inversione stringa LO SPAZIO DI INDIRIZZAMENTO VIRTUALE DI UN PROCESSO É Spazio di indirizzamento virtuale

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

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

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

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

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

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

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith Configurazione della ricerca desktop di Nepomuk Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith 2 Indice 1 Introduzione 4 1.1 Impostazioni di base....................................

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

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

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

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

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

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing Informatica 3 LEZIONE 21: Ricerca su liste e tecniche di hashing Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing Informatica 3 Lezione 21 - Modulo 1 Algoritmi sequenziali e basati su

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

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

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 MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

File system II. Sistemi Operativi Lez. 20

File system II. Sistemi Operativi Lez. 20 File system II Sistemi Operativi Lez. 20 Gestione spazi su disco Esiste un trade-off,tra spreco dello spazio e velocità di trasferimento in base alla dimensione del blocco fisico Gestione spazio su disco

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

La memoria virtuale 9.2. Sistemi Operativi a.a. A.A. 2009-10 2013-2014

La memoria virtuale 9.2. Sistemi Operativi a.a. A.A. 2009-10 2013-2014 La Memoria Virtuale La memoria virtuale Background Paginazione su richiesta Copy on Write Sostituzione delle pagine Allocazione dei frame Thrashing File mappati in memoria Allocazione di memoria del kernel

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

Architettura di un sistema di calcolo

Architettura di un sistema di calcolo Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un

Dettagli

Sistemi Operativi. ugoerr+so@dia.unisa.it 10 LEZIONE MEMORIA VIRTUALE CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Opertivi 2007/08

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

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

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) (Da effettuare non prima del 01/01/2011) Le istruzioni si basano su un azienda che ha circa 1000 articoli, che utilizza l ultimo

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

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

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo Release 5.20 Manuale Operativo COLLI Gestione dei Colli di Spedizione La funzione Gestione Colli consente di generare i colli di spedizione in cui imballare gli articoli presenti negli Ordini Clienti;

Dettagli

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

Dettagli

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica Consiglio regionale della Toscana Regole per il corretto funzionamento della posta elettronica A cura dell Ufficio Informatica Maggio 2006 Indice 1. Regole di utilizzo della posta elettronica... 3 2. Controllo

Dettagli

Esempio: aggiungere j

Esempio: aggiungere j Esempio: aggiungere j Eccezioni e interruzioni Il progetto del controllo del processore si complica a causa della necessità di considerare, durante l esecuzione delle istruzioni, il verificarsi di eventi

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

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

CMS ERMES INFORMATICA

CMS ERMES INFORMATICA 01/07/2014 Guida di riferimento alla pubblicazione di contenuti sul portale Il presente documento costituisce una guida di riferimento all aggiornamento e alla pubblicazione di contenuti sui portali web

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

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

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

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,

Dettagli

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE PREMESSA La presente guida è da considerarsi come aiuto per l utente per l installazione e configurazione di Atollo Backup. La guida non vuole approfondire

Dettagli

Guida all uso di Java Diagrammi ER

Guida all uso di Java Diagrammi ER Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con

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

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

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi Software relazione Hardware Software di base Software applicativo Bios Sistema operativo Programmi applicativi Software di base Sistema operativo Bios Utility di sistema software Software applicativo Programmi

Dettagli

Esercitazione E2 Memoria virtuale

Esercitazione E2 Memoria virtuale Esercitazione E2 Memoria virtuale Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 E2-1 Memoria virtuale 1 Si consideri un sistema a memoria virtuale con indirizzi virtuali a 32 bit, indirizzi fisici

Dettagli

Invio SMS. DM Board ICS Invio SMS

Invio SMS. DM Board ICS Invio SMS Invio SMS In questo programma proveremo ad inviare un SMS ad ogni pressione di uno dei 2 tasti della DM Board ICS. Per prima cosa creiamo un nuovo progetto premendo sul pulsante (Create new project): dove

Dettagli

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici Uniamo VM e CACHE Physically addressed Ci sono varie alternative architetturali physically addressed virtually addressed virtually indexed Sono quelle piu semplici un dato puo essere in cache solo se e

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

Il calendario di Windows Vista

Il calendario di Windows Vista Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative

Dettagli

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche Input/Output n Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi n Tutti più lenti della CPU e della RAM n Necessità di avere moduli di I/O Moduli

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

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

Architettura del calcolatore

Architettura del calcolatore Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Gestione delle transazioni Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Transazioni v L esecuzione concorrente dei programmi utente è essenziale per le buone prestazioni del DBMS Poiché

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

MANUALE PARCELLA FACILE PLUS INDICE

MANUALE PARCELLA FACILE PLUS INDICE MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella

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

MANUALE EDICOLA 04.05

MANUALE EDICOLA 04.05 MANUALE EDICOLA 04.05 Questo è il video che si presenta avviando il programma di Gestione Edicola. Questo primo video è relativo alle operazioni di carico. CARICO Nello schermo di carico, in alto a sinistra

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

Sistemi Operativi a.a. 2004-2005. Esercizi - 2

Sistemi Operativi a.a. 2004-2005. Esercizi - 2 Sistemi Operativi a.a. 004-005 Esercizi - Renzo Davoli Alberto Montresor. I diritti di memorizzazione elettronica, di riproduzione e di adattamento parziale o totale (compresi microfilm e copie fotostatiche)

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

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it La memoria principale 2 izzazione della memoria principale ria principale è organizzata come

Dettagli

1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame.

1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame. 1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame. (a) Da quanti bit è costituito l indirizzo logico? (b) Da quanti bit

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

Mac Application Manager 1.3 (SOLO PER TIGER)

Mac Application Manager 1.3 (SOLO PER TIGER) Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i

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

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

9. Memoria Virtuale. 9.1 Memoria Virtuale: introduzione

9. Memoria Virtuale. 9.1 Memoria Virtuale: introduzione 1 9. Memoria Virtuale Concetti di base Demand Paging (Paginazione su richiesta) Prestazioni del Demand Paging Rimpiazzamento delle pagine Algoritmi di rimpiazzamento Allocazione dello spazio in Memoria

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

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Workland CRM. Workland CRM Rel 2570 21/11/2013. Attività --> FIX. Magazzino --> NEW. Nessuna --> FIX. Ordini --> FIX

Workland CRM. Workland CRM Rel 2570 21/11/2013. Attività --> FIX. Magazzino --> NEW. Nessuna --> FIX. Ordini --> FIX Attività Attività --> FIX In alcuni casi, in precedenza, sulla finestra trova attività non funzionava bene la gestione dei limiti tra date impostati tramite il menu a discesa (Oggi, Tutte, Ultima Settimana,

Dettagli

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale) Memoria Virtuale Anche la memoria principale ha una dimensione limitata. Possiamo pensare di superare questo limite utilizzando memorie secondarie (essenzialmente dischi) e vedendo la memoria principale

Dettagli

Come masterizzare dischi con Nero 11

Come masterizzare dischi con Nero 11 Come masterizzare dischi con Nero 11 Non c è dubbio che Nero è diventato un sinonimo di masterizzatore di dischi, data la lunga esperienza sul mercato. Molte persone pensano in questo programma nel momento

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

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

Procedura per creare un archivio storico remoto nelle 24 ore giornaliere

Procedura per creare un archivio storico remoto nelle 24 ore giornaliere Procedura per creare un archivio storico remoto nelle 24 ore giornaliere La seguente procedura ha lo scopo di illustrare il metodo di creazione di un archivio storico fotografico nell arco delle 24 ore

Dettagli

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti) (Esercizi Tratti da Temi d esame degli ordinamenti precedenti) Esercizio 1 L'agenzia viaggi GV - Grandi Viaggi vi commissiona l'implementazione della funzione AssegnaVolo. Tale funzione riceve due liste

Dettagli