1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi:



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

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

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

Gestione della memoria centrale

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

Capitolo Silberschatz

Sistema operativo: Gestione della memoria

Cenni di programmazione distribuita in C++ Mauro Piccolo

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

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

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

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

Sistemi Operativi. 5 Gestione della memoria

Il Sistema Operativo

STRUTTURE DEI SISTEMI DI CALCOLO

La Gestione delle risorse Renato Agati

Laboratorio di Informatica

Sistemi Operativi Kernel

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

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

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

11 Realizzazione del File System Struttura a livelli (fig. 11.1) 11.4 Allocazione dei file

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Gestione della Memoria

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Sistemi Operativi 2 aprile 2007 Compitino 1/A

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

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

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

Approccio stratificato

Esempio: aggiungere j

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Sistemi Operativi. 12 LEZIONE REALIZZAZIONE DEL FILE SYSTEM CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Il File System. Il file system

Architettura hardware

Strutturazione logica dei dati: i file

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

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

La memoria - generalità

File system II. Sistemi Operativi Lez. 20

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Corso di Sistemi di Elaborazione delle informazioni

GESTIONE DELLA MEMORIA CENTRALE

Sistemi operativi. Esempi di sistemi operativi

Varie tipologie di memoria

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

Memoria Virtuale. Lezione 29 Sistemi Operativi

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Infrastrutture Software

1. I dispositivi periferici

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

SISTEMI OPERATIVI. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Indice. settembre 2008 Il File System 2

Introduzione al sistema operativo Il file system: file, directory,...

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

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

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

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Memoria secondaria. Struttura del disco. Scheduling del disco. Gestione dell unità a disco. Affidabilità dei dischi: RAID

Il memory manager. Gestione della memoria centrale

memoria virtuale protezione

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

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

Sistemi Operativi (modulo di Informatica II)

Esercitazione E6 Esercizi d esame

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

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Protezione. Protezione. Protezione. Obiettivi della protezione

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

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

La Memoria Virtuale Ottimizzazione della memoria centrale

Un sistema operativo è un insieme di programmi che consentono ad un utente di

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

DMA Accesso Diretto alla Memoria

Transmission Control Protocol

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

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

Sistemi Operativi. Organizzazione logica ed implementazione di un File System

Architettura di un sistema di calcolo

Calcolatori Elettronici A a.a. 2008/2009

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

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

Architettura di un calcolatore

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Memoria secondaria. Sistemi Operativi mod. B 14.1

PROGETTAZIONE FISICA

Dispensa di Informatica I.1

Il Sistema Operativo: il File System

Esercitazione E2 Memoria virtuale

Tipi classici di memoria. Obiettivo. Principi di localita. Gerarchia di memoria. Fornire illimitata memoria veloce. Static RAM. Problemi: Dynamic RAM

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Dispositivi di rete. Ripetitori. Hub

Transcript:

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi: compile time, load time, execution time. Quale delle modalità precedenti necessita di un supporto hardware per poter essere implementata? 2. Illustrare lo schema di traduzione degli indirizzi nel caso della paginazione. 3. (*) Supponendo di avere un sistema con tre frame e sette pagine, addottando una politica di rimpiazzamento basata sul working set model, quanti page fault si verificheranno con la reference string seguente, assumendo = 3 e di mantenere in memoria esattamente il solo working set? 3 4 0 1 0 2 4 1 2 6 (Si assuma che i tre frame siano inizialmente vuoti.) 1. L associazione di istruzioni e dati a indirizzi di memoria può avvenire in vari momenti: compile time: l associazione avviene a tempo di compilazione e quindi si produce del codice assoluto (la locazione di esecuzione è nota a priori); nel caso in cui si voglia cambiare locazione di esecuzione, bisogna ricorrere ad una ricompilazione del codice; load time: l associazione avviene a tempo di caricamento; siccome la locazione di esecuzione non è nota a priori, il compilatore produce del codice rilocabile la cui posizione in memoria viene decisa al momento del caricamento e non può essere cambiata durante l esecuzione del programma; execution time: siccome l associazione è stabilita a tempo di esecuzione, il programma può essere spostato da una zona all altra della memoria mentre viene eseguito; questa modalità necessita di un supporto hardware (ad esempio registri base e limite). 2. Nel caso della paginazione la memoria fisica è suddivisa in blocchi di dimensione prefissata chiamati frame, mentre la memoria fisica è suddivisa in blocchi delle stesse dimensioni chiamati pagine. Ogni indirizzo generato dalla CPU si suddivide in un numero di pagina p e uno spiazzamento (offset) d all interno della pagina. Il numero di pagina viene utilizzato come indice nella page table del processo correntemente in esecuzione: ogni entry della page table contiene l indirizzo di base del frame fisico f che contiene la pagina in questione. Tale indirizzo di base f viene combinato (giustapposto come prefisso) con lo spiazzamento d per definire l indirizzo fisico da inviare all unità di memoria. 3. Simuliamo il funzionamento dell algoritmo basato sul working set model: 1

3 4 0 1 0 2 4 1 2 6 3 4 0 1 0 2 4 1 2 6 3 4 0 1 0 2 4 1 2 3 4 1 0 2 4 1 P P P P P P P P P P Si verificano quindi dieci page fault. 1. Illustrare brevemente le seguenti strutture dati utilizzate per la gestione dello spazio libero su disco, evidenziandone pregi e difetti: bitmap o vettore di bit, lista concatenata (linked list). 2. Descrivere le differenze fra le seguenti modalità di bufferizzazione: bufferizzazione in spazio utente, bufferizzazione in kernel, doppia bufferizzazione. 3. Spiegare brevemente come funziona il meccanismo di allocazione contigua nel filesystem, evidenziandone vantaggi e svantaggi. 1. Nella bitmap ogni singolo bit rappresenta un blocco del disco: se il blocco è allocato ad un file il bit è 0, se il blocco è libero il bit è 1. Il vantaggio di questa codifica è essenzialmente l efficienza nel trovare il primo blocco libero dato che la maggior parte delle CPU più diffuse mettono a disposizione delle istruzioni macchina che forniscono l offset del primo bit a 1 in una parola. In questo modo il numero del primo blocco libero può essere calcolato come segue: (numero di bit in una parola) (numero delle parole con tutti i bit 0)+offset del primo bit a 1 Lo svantaggio è che la bitmap deve essere tenuta in memoria per un utilizzo veloce e quindi può portare ad uno spreco di quest ultima se il disco è di dimensioni ragguardevoli. Una soluzione che non richiede un impiego considerevole di memoria è mantenere una lista concatenata dei blocchi del disco liberi (in cui ogni blocco contiene un puntatore al blocco libero successivo). Così facendo è sufficiente mantenere in memoria il puntatore al primo blocco della lista per essere in grado di reperire un blocco libero all occorrenza. Lo svantaggio è che se si rende necessario attraversare la lista occorre leggere ogni singolo blocco, degradando le prestazioni del sistema in modo considerevole. 2. Nel caso della bufferizzazione in spazio utente, il processo riserva un certo numero di locazioni nel suo spazio di indirizzi a beneficio della system call che effettua l operazione di I/O. Nel caso in cui le pagine contenenti il buffer vengano scaricate su disco nel momento in cui arrivano dei dati dal dispositivo di I/O, questi ultimi potrebbero andare (parzialmente) persi a causa del tempo necessario a ricaricarle in memoria. Per ovviare a tale problema si può ricorrere ad un buffer in spazio kernel (che non è soggetto ad essere swappato su disco) ed il cui 2

contenuto viene ricopiato nel buffer in spazio utente quando è pieno. In questo caso potrebbe nuovamente verificarsi una perdita di dati se, al momento di ricopiare il contenuto del buffer in spazio kernel nel buffer in spazio utente, le pagine contenenti quest ultimo dovessero essere caricate in memoria e contemporaneamente arrivassero nuovi dati dal dispositivo di I/O (questi non potrebbero essere salvati nel buffer in spazio kernel che risulta pieno). La soluzione con doppia bufferizzazione permette di risolvere anche l ultimo problema in quanto, utilizzando due buffer in spazio kernel, nel momento in cui uno dei due risulti pieno, può essere ricopiato in spazio utente (anche con i tempi necessari per ricaricare in memoria le pagine contenenti il buffer del processo) senza il rischio di perdere informazioni, dato che eventuali nuovi dati che dovessero arrivare dal dispositivo di I/O potrebbero essere salvati nel secondo buffer. I due buffer in spazio kernel si scambiano quindi i ruoli di buffer destinato alla memorizzazione di quanto arriva dal dispositivo di I/O e di buffer di sicurezza nel caso arrivino nuovi dati durante l operazione di copia. 3. Se la modalità di allocazione è quella contigua, ogni file occupa un insieme di blocchi contigui (adiacenti) su disco. Quindi l entry di ogni file nelle directory è sufficiente che contenga l indirizzo del blocco di partenza e la lunghezza dell area riservata al file. Come conseguenza si ha che l accesso al file (sia sequenziale che random) è molto efficiente e richiede al massimo spostamenti della testina di una traccia per volta (quando si deve passare dall ultimo settore di una traccia al primo della successiva). I problemi si hanno quando bisogna allocare spazio per un nuovo file, dato che l allocazione contigua soffre del problema della frammentazione esterna. Inoltre può essere difficile allocare dello spazio aggiuntivo per un file dato che fra la zona correntemente riservata al file in questione e quella riservata al prossimo file potrebbe esserci uno spazio insufficiente o nullo. Bisognerebbe quindi ricorrere alla compattazione del file system, che è un operazione costosa. 1. Cosè una socket? Dopo aver dato la definizione si elenchino alcuni tipi di socket. 2. Cosa distingue un sistema debolmente accoppiato da uno strettamente accoppiato? Si faccia qualche esempio di sistema delle due tipologie. 1. Una socket rappresenta un endpoint di comunicazione e solitamente è associata ad un indirizzo la cui natura dipende dal dominio di comunicazione scelto (processi che comunicano nello stesso dominio utilizzano lo stesso formato di indirizzi). I domini più comuni sono il dominio Unix (AF_UNIX), il dominio Internet (AF_INET, AF_INET6) il dominio Novell (AF_IPX) e il dominio AppleTalk (AF_APPLETALK). Esistono diversi tipi di socket che rappresentano diverse classi di servizi (non tutti sono disponibili in ogni dominio di comunicazione): 3

stream socket: forniscono stream di dati affidabili, duplex, ordinati, socket per pacchetti in sequenza: forniscono stream di dati, ma i confini dei pacchetti sono preservati, socket a datagrammi: trasferiscono messaggi di dimensione variabile, preservando i confini, ma senza garantire ordine o arrivo dei pacchetti, socket per datagrammi affidabili: come quelle a datagrammi, ma l arrivo è garantito, socket raw: permettono di accedere direttamente ai protocolli che supportano gli altri tipi di socket: sono utili per sviluppare nuovi protocolli. 2. I sistemi strettamente accoppiati sono caratterizzati dalla condivisione di clock e/o memoria (es.: sistemi UMA, NUMA) oppure dalla presenza di linee di comunicazione molto veloci fra i vari nodi del sistema che solitamente risiedono nello stesso rack o stanza e che sono amministrati da una singola organizzazione (es.: multicomputer, cluster of workstations). Viceversa i sistemi debolmente accoppiati sono costituiti da sistemi completi (in cui ogni nodo è sostanzialmente una macchina completa) sparsi in regioni geograficamente anche molto distanti fra loro, controllati da diverse organizzazioni e connessi da reti con linee di comunicazione molto più lente (es.: Internet). (*) Si consideri un disco gestito con politica SSTF. Inizialmente la testina è posizionata sul cilindro 20, ascendente; lo spostamento ad una traccia adiacente richiede 2 ms. Al driver di tale disco arrivano richieste per i cilindri 70, 31, 49, 3, 80, rispettivamente agli istanti 0 ms, 30ms, 40 ms 0 ms, 70 ms. Si trascuri il tempo di latenza. 1. In quale ordine vengono servite le richieste? 2. Il tempo di attesa di una richiesta è il tempo che intercorre dal momento in cui è sottoposta al driver a quando viene effettivamente servita. Qual è il tempo di attesa medio per le quattro richieste in oggetto? 1. L ordine in cui vengono servite le richieste è 31, 3, 49, 70, 80 come illustrato dal seguente diagramma: 4

20 31 3 37 49 70 80 30ms 38ms 0ms 4ms 82ms 124ms 144ms 2. Il tempo d attesa medio è (38 30)+(4 0)+(82 40)+(124 0)+(144 70) 8+4+42+124+74 = 22/ = 0, 4 ms. = Il punteggio attribuito ai quesiti è il seguente: 3, 3,, 3, 3, 3, 3, 3, 6 (totale: 32).