Sistemi Operativi e Laboratorio, Prova del 05/02/2014

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Sistemi Operativi e Laboratorio, Prova del 05/02/2014"

Transcript

1 Cognome e nome: Matricola: Corso [A/B] : fila: posto: Esercizio 1 (4 punti) Un ufficio postale è dotato di un unico sportello e di un distributore di numeri per gestire un afflusso ordinato allo sportello stesso. Un generico utente che arriva all'ufficio, prende un numero di ordine di servizio (realizzato mediante la variabile intera turno inizializzata a 0). Se non c'è nessun altro utente in attesa (e quindi se il numero di turno che ha preso è uguale al valore della variabile intera stiamoservendo), attiva l'impiegato (eventualmente sospeso sulla variabile di condizione Impiegato) e si avvia allo sportello. Altrimenti, si sospende sulla condizione CodaUtenti in attesa di essere riattivato dall'impiegato. Se non ci sono utenti da servire, l impiegato si sospende sulla variabile di condizione Impiegato. Altrimenti, serve l'utente che aveva preso il numero di prenotazione uguale a stiamoservendo, ed incrementa di uno il valore di tale variabile. Quindi, passa a servire il prossimo utente (quello il cui numero di prenotazione è uguale al valore attuale di stiamoservendo). Gli utenti e l'impiegato sono thread di uno stesso processo. Per la soluzione del problema, si utilizzano i seguenti dati condivisi dai thread: turno: intero non negativo; valore iniziale 0; stiamoservendo: intero non negativo; valore iniziale 0; utentiinattesa: intero non negativo; valore iniziale 0. Contiene il numero di utenti in attesa di essere serviti allo sportello. Per gli studenti che sostengono la prova di verifica intermedia: Si chiede di completare la soluzione proposta utilizzando i meccanismi delle variabili di condizione (visti a lezione e sul libro), con la variabile MutexPosta, di tipo mutex e le variabili CodaUtenti e Impiegato, di tipo condition, il cui utilizzo è descritto sopra. Per tutti gli altri studenti: Si chiede di completare la soluzione proposta utilizzando i meccanismi della libreria pthread, con la variabile MutexPosta, di tipo mutex e le variabili CodaUtenti e Impiegato, di tipo condition, il cui utilizzo è descritto sopra. //codice dell'utente int x=turno; turno ++; utentiinattesa ++; while x>stiamoservendo //l'utente si mette in attesa // <va allo sportello per il servizio e alla fine esce> } //codice dell'impiegato while true while utentiinattesa ==0 //l'impiegato si mette in attesa // utentiinattesa --; < serve l'utente> stiamoservendo++; }

2 - Per gli studenti che sostengono la prova di verifica intermedia //codice dell'utente MutexPosta. Acquire(); int x=turno; turno ++; utentiinattesa ++; while x>stiamoservendo CodaUtenti.wait(&MutexPosta); //l'utente si mette in attesa // Impiegato.signal(&MutexPosta); MutexPosta. Release(); <va allo sportello per il servizio e alla fine esce> } //codice dell'impiegato while true MutexPosta. Acquire(); while utentiinattesa ==0 Impiegato.wait(&MutexPosta); //l'impiegato si mette in attesa // utentiinattesa --; MutexPosta. Release(); < serve l'utente> MutexPosta. Acquire(); stiamoservendo++; codautenti.broadcast(&mutexposta); MutexPosta. Release(); } - Per gli altri studenti //codice dell'utente pthread_mutex_lock(&mutexposta); int x=turno; turno ++; utentiinattesa ++; while x>stiamoservendo pthread_cond_wait(&codautenti,&mutexposta); //l'utente si mette in attesa // pthread_cond_signal(&impiegato); pthread_mutex_unlock(&mutexposta); <va allo sportello per il servizio e alla fine esce> } //codice dell'impiegato while true pthread_mutex_lock(&mutexposta); while utentiinattesa ==0 pthread_cond_wait(&impiegato,&mutexposta); //l'impiegato si mette in attesa // utentiinattesa --; pthread_mutex_unlock(&mutexposta); < serve l'utente> pthread_mutex_lock(&mutexposta); stiamoservendo++; pthread_cond_broadcast(&codautenti); pthread_mutex_unlock(&mutexposta); }

3 Esercizio 2 (4 punti) Si consideri un processore che dispone dei registri speciali PC (program counter), PS (program status) e SP (stack pointer), e di un banco di registri generali, utilizzati sia in stato utente, sia in stato supervisore, che comprende i registri R1, R2 e R3. Inoltre, il nucleo dispone di un proprio stack, che inizia all indirizzo 2020 e si espande verso il basso. Al riconoscimento di un interruzione, il processore salva sullo stack del nucleo i soli registri speciali. Il sistema operativo realizza i thread a livello del nucleo e lo schedulatore gestisce esclusivamente i thread. La politica di scheduling è a priorità e con prerilascio (un valore maggiore della priorità corrisponde a priorità maggiore). Al tempo t sono presenti nel sistema il thread T i1 del processo P i, che si trova in stato di esecuzione, e il thread T j1 del processo P j, che è in stato di attesa sul semaforo sem. In questo istante di tempo, thread T i1 invoca la chiamata di sistema: V(sem) per gli studenti che sostengono la prova di verifica intermedia; signal(sem) per tutti gli altri studenti. Immediatamente dopo il riconoscimento della chiamata di sistema, i registri del processore, i descrittori di T i1 e T j1 hanno i contenuti mostrati in tabella. Lo stack del nucleo è vuoto. Supponendo che il vettore di interruzione associato all interruzione sia 3500 e che la parola di stato del nucleo sia 376A, si chiede: a) il contenuto dei descrittori, dei registri generali e speciali e dello stack del nucleo durante la fase di estrazione della prima istruzione della procedura di gestione della chiamata di sistema; b) il contenuto dei descrittori, dei registri generali e speciali e dello stack del nucleo durante la fase di estrazione dell istruzione IRET con la quale termina la procedura di gestione dell interruzione; c) il contenuto dei descrittori, dei registri generali e speciali e dello stack del nucleo durante la fase di estrazione dell istruzione eseguita subito dopo la IRET. Stato Esec Stato Attesa 2020 Priorità 5 Priorità SP F000 PC E000 PC A0AA 2018 R PS 1683 PS R SP F010 SP C0CC 2016 R R R R R R R PC E0E0 PS 1682 UTENTE a) contenuto dei descrittori, dei registri generali e speciali e dello stack del nucleo durante la fase di estrazione della prima istruzione della procedura di gestione dell interruzione: Stato Stato 2020 Priorità Priorità 2019 SP PC PC 2018 R1 PS PS 2017 R2 SP SP 2016 R3 R1 R R2 R R3 R PC PS b) contenuto dei descrittori, dei registri generali e speciali e dello stack del nucleo durante la fase di estrazione dell istruzione IRET con la quale termina la procedura di gestione dell interruzione; Stato Stato 2020 Priorità Priorità 2019 SP PC PC 2018 R1 PS PS 2017 R2 SP SP 2016 R3 R1 R R2 R R3 R3 2013

4 PC Sistemi Operativi e Laboratorio, Prova del 05/02/2014 PS c) contenuto dei descrittori, dei registri generali e speciali e dello stack del nucleo durante la fase di estrazione dell istruzione eseguita subito dopo la IRET. Stato Stato 2020 Priorità Priorità 2019 SP PC PC 2018 R1 PS PS 2017 R2 SP SP 2016 R3 R1 R R2 R R3 R PC PS a) contenuto dei descrittori, dei registri generali e speciali e dello stack del nucleo durante la fase di estrazione della prima istruzione della procedura di gestione dell interruzione: Stato Esec Stato Attesa 2020 E0E0 Priorità 5 Priorità SP 2017 PC E000 PC A0AA 2018 F000 R PS 1683 PS R SP F010 SP C0CC 2016 R R R R R R R PC 3500 PS 376A SUPERVISORE b) contenuto dei descrittori, dei registri generali e speciali e dello stack del nucleo durante la fase di estrazione dell istruzione IRET con la quale termina la procedura di gestione dell interruzione; Stato Esec Stato Pronto 2020 E0E0 Priorità 5 Priorità SP 2017 PC E000 PC A0AA 2018 F000 R PS 1683 PS R SP F010 SP C0CC 2016 R R R R R R R PC 3500+?? PS 376A SUPERVISORE c) Contenuto dei descrittori, dei registri generali e speciali e dello stack del nucleo durante la fase di estrazione dell istruzione eseguita subito dopo la IRET. Stato Esec Stato Pronto 2020 Priorità 5 Priorità SP F000 PC E000 PC A0AA 2018 R PS 1683 PS R SP F010 SP C0CC 2016 R R R R R R R

5 PC E0E0 PS 1682 UTENTE Esercizio 3 (4 punti) In un file system UNIX i blocchi del disco hanno ampiezza di 1Kbyte e i puntatori ai blocchi sono a 16 bit. Gli i-node contengono, oltre agli altri attributi, 10 puntatori diretti e 3 puntatori indiretti. Il primo blocco del disco ha indice logico 0. Si chiede: 1. il numero di puntatori che possono essere contenuti in un blocco indiretto; 2. l indice logico del primo blocco e dell ultimo blocco indirizzabili con puntatori diretti; 3. l indice logico del primo blocco e dell ultimo blocco indirizzabili con indirizzamento indiretto semplice; 4. Si consideri un file aperto (il cui i-node è caricato in memoria principale), la cui lunghezza corrente (in byte) è e il cui i-node contiene i seguenti puntatori a blocchi: Puntatore Valore del puntatore dove il blocco indiretto 800 ha il seguente contenuto parziale: Indice di elemento nel blocco Valore del puntatore Dire la dimensione in blocchi del file e a quali blocchi del disco bisogna accedere per leggere 2000 bytes del file a partire dal byte Numero di puntatori che possono essere contenuti in un blocco indiretto: ; 2. Il primo e l ultimo blocco indirizzabili con puntatori diretti hanno rispettivamente indici logici: ; 3. Il primo e l ultimo blocco indirizzabili con indirizzamento indiretto semplice hanno rispettivamente indici logici: ; 4. L ultimo carattere del file è contenuto nel blocco ; quindi il file è composto da blocchi; Il primo carattere da leggere è il , ed è contenuto nel blocco di indice logico: L ultimo carattere da leggere è il numero, che è contenuto nel blocco di indice logico:. Quindi i blocchi logici da leggere sono:. I blocchi logici da leggere sono allocati nei blocchi fisici:. I blocchi fisici da leggere sono:. 1. Un indirizzo occupa 16 bit=2 bytes. Pertanto, il numero di puntatori che possono essere contenuti in un blocco indiretto è dato da 2^10/2= 512; 2. il primo e l ultimo blocco indirizzabili con puntatori diretti hanno rispettivamente indici logici 0 e 9; 3. il primo e l ultimo blocco indirizzabili con indirizzamento indiretto semplice hanno rispettivamente indici logici 10 e ( ) - 1= 521; 4. l ultimo carattere del file è contenuto nel blocco ( ) div 2^10= 486; quindi il file è composto da 487 blocchi; il primo carattere da leggere è il , sul quale è posizionato il puntatore di lettura, è contenuto nel blocco di indice logico: div 2^10= 13. L ultimo carattere da leggere è il numero = , che è contenuto nel blocco di indice logico: div 2^10= 15. Quindi i blocchi logici da leggere sono il 13, 14 e 15, che rientrano nell indirizzamento indiretto singolo. Nella sequenza dei blocchi indirizzati dall indirizzamento indiretto singolo, Il puntatore corrispondente al blocco logico 13 occupa la posizione 13-10=3 del blocco fisico 800. Quindi il file system deve leggere il blocco indice di primo livello 800. All interno di questo blocco individua gli elementi 3, 4 e 5 che contengono i puntatori ai blocchi 677, 678 e 705 che devono essere letti. I blocchi da leggere sono quindi 800, 677, 678, 705

6 Esercizio 4 (4 punti) Un sistema simile a Windows gestisce la memoria con paginazione a domanda mediante un Working Set Manager. A un certo tempo, lo stato di occupazione della memoria (senza considerare i blocchi riservati al sistema operativo) è quello descritto nella seguente Core Map, i cui elementi hanno valore nullo se il blocco è libero, o altrimenti identificano il processo e la pagina a cui il blocco è assegnato. B,6 A,4 A,2 B,4 C,2 A,8 C,5 B,1 C,6 B,2 C,7 B,5 A,7 C, Nel sistema sono presenti i processi A, B e C, le cui tabelle delle pagine sono le seguenti (il campo TempoRif registra il tempo virtuale del processo al quale è avvenuto l ultimo riferimento alla pagina): Pagina Blocco TempoRif Pagina Blocco TempoRif Pagina Blocco TempoRif Processo A - 5 Processo B - 4 Processo C - 6 A ogni processo è assegnato un WorkingSet Ammissibile di 4 pagine. Per ogni pagina riferita da un processo che avanza, si procede nel modo seguente: Se la pagina è presente in memoria, si scrive il valore attuale del tempo virtuale del processo nel campo TempoRif della tabella delle pagine. Se si verifica un PageFault, la pagina riferita viene caricata in un blocco disponibile (anche se il numero di pagine caricate, o insieme residente, supera la dimensione del Working Set Ammissibile), registrando il valore attuale del tempo virtuale del processo nel campo TermpoRif. I blocchi disponibili vengono assegnati in ordine crescente di indice. Il Working Set Manager viene attivato quando il numero di blocchi disponibili si riduce a 2, e si comporta nel modo seguente: - considera i soli processi la cui dimensione dell insieme residente (numero di pagine caricate in memoria) superi quello del WorkingSet Ammissibile (che è 4 per tutti i processi) e per questi processi ordina globalmente le pagine per valori decrescenti del parametro TempoVirtuale- TempoRif, dove TempoVirtuale è il valore attuale del tempo virtuale del processo; - scarica dalla memoria le pagine secondo questo ordinamento, fino a quando il numero di blocchi disponibili diventa uguale a 8. In caso di parità tra due o più pagine si considera l ordine alfabetico dei processi. A partire dal tempo considerato il sistema evolve nel modo seguente: 1. Avanza il processo C, che ai tempi virtuali 12, 13, 14 e 15 riferisce rispettivamente le pagine 1, 2, 0, e 9 2. Avanza il processo B, che ai tempi virtuali 10, 11, 12, 13 e 14 riferisce rispettivamente le pagine 6, 5, 0, 6 e 8. Si chiede la configurazione della CoreMap e delle tabelle delle pagine dei 3 processi al termine dei punti 1 e 2. Nei casi nei quali viene eseguito il Working Set Manager indicare anche il tempo virtuale dei processi al momento dell esecuzione del Working Set Manager, e quante e quali pagine vengono rimosse. 1) Configurazione della CoreMap e delle tabelle delle pagine al termine del punto 1: Vengono caricate le pagine: Viene quindi eseguito il Working Set Manager [SI/NO]? Se SI: il Working Set Manager rimuove le pagine: Core Map e tabelle delle pagine al termine del punto 1: Pagina Blocco TempoRif Pagina Blocco TempoRif Pagina Blocco TempoRif

7 Processo A Processo B Processo C 2) Configurazione della CoreMap e delle tabelle delle pagine al termine del punto 2: Vengono caricate le pagine: Viene quindi eseguito il Working Set Manager [SI/NO]? Se SI: il Working Set Manager rimuove le pagine: Core Map e tabelle delle pagine al termine del punto 2: Pagina Blocco TempoRif Pagina Blocco TempoRif Pagina Blocco TempoRif Processo A Processo B Processo C 1) Configurazione della CoreMap e delle tabelle delle pagine al termine del punto 1: B,6 C,1 C,0 A,4 A,2 B,4 C,2 A,8 C,5 B,1 C,6 B,2 C,7 B,5 A,7 C, Pagina Blocco TempoRif Pagina Blocco TempoRif Pagina Blocco TempoRif Processo A - 5 Processo B - 4 Processo C - 6 Non è stato eseguito il Working Set Manager 2) Configurazione della CoreMap e delle tabelle delle pagine al termine del punto 2: B,6 C,1 C,0 A,4 B,0 A,2 B,4 C,2 B,8 A,8 C,5 B,1 C,6 B,2 C,7 B,5 A,7 C, Pagina Blocco TempoRif Pagina Blocco TempoRif Pagina Blocco TempoRif

8 Processo A - 5 Processo B - 4 Processo C - 6 Viene quindi eseguito il Working Set Manager che rimuove 6 pagine dei soli processi B e C. Il tempo attuale del processo B è: 15 Il tempo attuale del processo C è: 16 TempoVirtuale- TempoRif delle pagine dei processi B e C: B0 3; B1 11; B2 8; B4 10; B5 4; B6 2; B9 1; C0 2; C1 4; C2 3; C5 7; C6 5; C7 11; C9 1; Vengono quindi rimosse le pagine: B1, C7, B4, B2, C5, C6 B,6 C,1 C,0 A,4 B,0 A,2 C,2 B,8 A,8 B,5 A,7 C, Pagina Blocco TempoRif Pagina Blocco TempoRif Pagina Blocco TempoRif Processo A - 5 Processo B - 4 Processo C - 6 Esercizio 5 (3 punti) Si consideri un File System simile a NTFS che alloca i file in sequenze contigue (nel seguito chiamate run) individuate mediante coppie del tipo (inizio, lunghezza), dove inizio è l indice del primo blocco fisico del run e lunghezza esprime il numero di blocchi che la compongono. Ogni file è descritto da un MFT record che contiene, oltre ad altri attributi, una o più coppie (inizio, lunghezza). Il File System è ospitato da un disco con 2 facce, NTracce = 50 tracce per faccia e NSettori = 100 settori per traccia. Il tempo necessario per percorrere un settore è di 0,1 msec, conseguentemente il tempo di rotazione del disco è pari a 10 msec. Il tempo medio di esecuzione di un operazione di seek per posizionare la testina del disco da una traccia ad una adiacente è di 4 msec. Dopo un operazione di seek, il disco impiega in media un tempo pari alla metà del tempo rotazionale per posizionare la testina sul settore da leggere o scrivere. Assumiamo per semplicità che ogni blocco del file system sia allocato in un settore e si assuma che, dato un indice di blocco B, questo sia allocato nel settore individuato dalla terna <Faccia, Traccia, Settore>: Faccia = B div (NTracce x NSettori) Traccia = (B mod (NTracce x NSettori)) div NSettori Settore = (B mod (NTracce x NSettori)) mod NSettori dove div è la divisione intera e mod restituisce il resto della divisione. Si consideri il file Stromboli, il cui MFT record definisce, nell ordine, i seguenti run contigui: 1. (4000, 20), che contiene i blocchi fisici corrispondenti ai blocchi logici di indici compresi in [0,20) 2. (2000, 15), che contiene i blocchi fisici corrispondenti ai blocchi logici di indici compresi in [20,35) Si calcoli il tempo necessario per leggere l intero file Stromboli, supponendo che le teste di lettura/scrittura siano inizialmente posizionate sulla traccia 2 e che il tempo di esecuzione delle eventuali operazioni di seek sia sempre uguale a quello medio. Il primo blocco da leggere nel run 1 si trova nel blocco fisico 4000, che è allocato nel settore: L ultimo blocco da leggere nel run 1 si trova nel blocco fisico 4019, che è allocato nel settore: Operazioni sul run 1: Numero di blocchi estratti dal run 1: blocchi Tempo necessario per estrarre i blocchi dal run 1: Il primo blocco da leggere nel run 2 si trova nel blocco fisico 2000, che è allocato nel settore:

9 L ultimo blocco da leggere nel run 2 si trova nel blocco fisico 2014, che è allocato nel settore: Operazioni sul run 2: Numero di blocchi estratti dal run 2: blocchi Tempo necessario per estrarre i blocchi dal run 1: Tempo totale impiegato: Il primo blocco da leggere nel run 1 si trova nel blocco fisico 4000, che è allocato nel settore: <0, 40, 0> L ultimo blocco da leggere nel run 1 si trova nel blocco fisico 4019, che è allocato nel settore: <0, 40, 19> Operazioni sul run 1: Numero di blocchi estratti dal run 1: 20 blocchi Tempo necessario per estrarre i blocchi dal run 1: 4 msec (seek)+ 5 msec (metà tempo rotazionale) + 20* 0,1 (lettura settori) = 11 msec Il primo blocco da leggere nel run 2 si trova nel blocco fisico 2000, che è allocato nel settore: <0, 20, 0> L ultimo blocco da leggere nel run 2 si trova nel blocco fisico 2014, che è allocato nel settore: <0, 20, 14> Operazioni sul run 2: Numero di blocchi estratti dal run 2: 15 blocchi Tempo necessario per estrarre i blocchi dal run 1: 4 msec (seek)+ 5 msec (metà tempo rotazionale) + 15* 0,1 (lettura settori) = 10,5 msec Tempo totale impiegato: 21,5 msec Esercizio 6 (3 punti) Un sistema con 4 processi A, B, C, D e risorse dei tipi R1, R2, R3, R4, rispettivamente di molteplicità [5, 6, 3, 6] adotta nei confronti dello stallo la politica di riconoscimento ed eliminazione. Ad un dato istante di tempo t tutti i processi sono sospesi e si è raggiunto uno stallo, come mostrato nelle tabelle seguenti. Assegnazione attuale Esigenza Massima Esigenza residua (esclusa l assegnazione attuale) Molteplicità R1 R2 R3 R4 R1 R2 R3 R4 R1 R2 R3 R4 R1 R2 R3 R4 A 2 3 A 4 4 A B 1 1 B B C 2 1 C 2 3 C Disponibilità D 3 2 D D Dire quali delle seguenti azioni (da considerarsi in alternativa) elimina lo stallo: a) il processo A viene forzato a rilasciare 1 risorsa di tipo R1 b) il processo C viene forzato a rilasciare 1 risorsa di tipo R4 Ipotesi a): Stato raggiunto dopo il rilascio di un istanza di R1 da parte di A: Assegnazione attuale Esigenza Massima Esigenza residua (esclusa l assegnazione attuale) Molteplicità R1 R2 R3 R4 R1 R2 R3 R4 R1 R2 R3 R4 R1 R2 R3 R4 A A A B B B C C C Disponibilità D D D Verifica dello stato sicuro: 1) Il processo può terminare [SI/NO] la disponibilità di R1, R2, R3, R4} diviene } 2) Il processo può terminare [SI/NO] la disponibilità di R1, R2, R3, R4} diviene } 3) Il processo può terminare [SI/NO] la disponibilità di R1, R2, R3, R4} diviene }

10 4) Il processo può terminare [SI/NO] la disponibilità di R1, R2, R3, R4} diviene } Di conseguenza: stallo eliminato? [SI/NO] b) Stato raggiunto dopo il rilascio di un istanza di R4 da parte di C: Assegnazione attuale Esigenza Massima Esigenza residua (esclusa l assegnazione attuale) Molteplicità R1 R2 R3 R4 R1 R2 R3 R4 R1 R2 R3 R4 R1 R2 R3 R4 A A A B B B C C C Disponibilità D D D Verifica dello stato sicuro: 1) Il processo può terminare [SI/NO] la disponibilità di R1, R2, R3, R4} diviene } 2) Il processo può terminare [SI/NO] la disponibilità di R1, R2, R3, R4} diviene } 3) Il processo può terminare [SI/NO] la disponibilità di R1, R2, R3, R4} diviene } 4) Il processo può terminare [SI/NO] la disponibilità di R1, R2, R3, R4} diviene } Di conseguenza: stallo eliminato? [SI/NO] Ipotesi a): Stato raggiunto dopo il rilascio di un istanza di R1 da parte di A: Assegnazione attuale Esigenza Massima Esigenza residua (esclusa l assegnazione attuale) Molteplicità R1 R2 R3 R4 R1 R2 R3 R4 R1 R2 R3 R4 R1 R2 R3 R4 A 1 3 A 4 4 A B 1 1 B B C 2 1 C 2 3 C Disponibilità D 3 2 D D Per la verifica dello stato sicuro: Nessun processo può terminare Di conseguenza: stallo eliminato? NO b) Stato raggiunto dopo il rilascio di un istanza di R4 da parte di C: Assegnazione attuale Esigenza Massima Esigenza residua (esclusa l assegnazione attuale) Molteplicità R1 R2 R3 R4 R1 R2 R3 R4 R1 R2 R3 R4 R1 R2 R3 R4 A 2 3 A 4 4 A B 1 1 B B C 2 C 2 3 C Disponibilità D 3 2 D D Per la verifica dello stato sicuro: 1) Il processo A può terminare La disponibilità di R1, R2, R3, R4} diviene 4,2,1,4} 2) Il processo C può terminare La disponibilità di R1, R2, R3, R4} diviene 4,2,3,4} 3) Il processo D può terminare La disponibilità di R1, R2, R3, R4} diviene 4,5,3,6} 4) Il processo B può terminare La disponibilità di R1, R2, R3, R4} diviene 5,6,3,6} Di conseguenza: stallo eliminato? SI

11 Esercizio 7 (2 punti) Si consideri un sistema che gestisce il processore con politica Round Robin, con quanto di tempo di 5 msec. Lo scheduler del processore è attivato dai seguenti eventi (che possono anche verificarsi contemporaneamente): il processo in esecuzione esaurisce il quanto di tempo; il processo in esecuzione si sospende; il processo in esecuzione termina. Nel sistema sono presenti i seguenti processi, che terminano dopo aver utilizzato il processore per la durata specificata in tabella: Proc Tempo di Durata Comportamento arrivo (msec) A 1 38 Avanza fino alla terminazione senza sospendersi B 3 60 Si sospende dopo aver utilizzato il processore per 12 msec; viene riattivato dopo 3 msec C 4 15 Avanza fino alla terminazione senza sospendersi D 5 20 Si sospende dopo aver utilizzato il processore per 8 msec; viene riattivato dopo 4 msec Utilizzando la seguente tabella per seguire l evoluzione dei processi, si chiede di determinare il tempo di terminazione del processo D, Tempo evento In esec Coda pronti 0 Arriva A A Il processo D termina all istante: Tempo evento In esecuzione Coda pronti 0 A B,C,D 5 Scade qdt B C,D,A 10 Scade qdt C D,A,B 15 Scade qdt D A,B,C 20 Scade qdt A B,C,D 25 Scade qdt B C,D,A 30 Scade qdt C D,A,B 35 Scade qdt D A,B,C 38 D si sospende * A B,C 43 Scade qdt B C,D,A 45 B si sospende * C D,A 50 Termina C D A,B 55 Scade qdt A B,D 60 Scade qdt B D,A 65 Scade qdt D A,B 70 Scade qdt A B,D 75 Scade qdt B D,A 80 Scade qdt D A,B 82 Termina D A B

12 * dato che i processi B e D restano sospesi meno di un quanto di tempo, quando vengono riattivati la coda pronti non è cambiata e quindi mantengono la loro posizione in coda. Il processo D termina all istante 82 Esercizio 8 (2 punti) Si consideri un sistema nel quale sono definiti il semaforo sem e i processi P1, P2 e P3. Lo scheduling avviene con una politica round robin, e la politica applicata al semaforo è FIFO. Al tempo t il processo P1 è in esecuzione e il processo P2 è in coda pronti. Inoltre il semaforo sem ha valore 0 e la coda associata al semaforo contiene il processo P3. Dopo il tempo t, si verificano in sequenza i seguenti di eventi: 1) P1 esegue V(sem) P1 esegue signal(sem) per gli studenti degli anni accademici precedenti l A.A. 2013/14 2) il processo in esecuzione esegue V(sem) esegue signal(sem) per gli studenti degli anni accademici precedenti l A.A. 2013/14 3) scade il quanto di tempo scade il quanto di tempo 4) il processo in esecuzione esegue P(sem) esegue wait(sem) per gli studenti degli anni accademici precedenti l A.A. 2013/14 Si chiede di specificare quale processo è in esecuzione subito dopo ogni evento e inoltre come si modificano il valore e la coda del semaforo sem e la CodaPronti. Sequenza di eventi In Esecuzione Coda Pronti Valore di sem Coda di sem 1) P1 esegue V(sem) (o, equivalentemente, signal(sem) 2) il processo in esecuzione esegue V(sem) (o, equivalentemente, signal(sem)) 3) scade il quanto di tempo 4) Il processo in esecuzione esegue P(sem) (o, equivalentemente, wait(sem)) Sequenza di eventi In Esecuzione Coda Pronti Valore di sem Coda di sem 1) P1 esegue V(sem) (o, equivalentemente, signal(sem) 2) il processo in esecuzione esegue V(sem) (o, equivalentemente, signal(sem)) P1 P2, P3 0 - P1 P2, P3 1-3) scade il quanto di tempo P2 P3, P1 1-4) Il processo in esecuzione esegue P(sem) (o, equivalentemente, wait(sem)) P2 P3, P1 0 - Esercizio 9 (2 punti) In un sistema tipo Unix che adotta una politica di schedulazione round robin, sono definiti il semaforo sem e i processi P1 e P2. Al tempo t il processo P1 è in esecuzione, la coda pronti contiene il processo P2 e il semaforo sem ha valore 0. Dopo il tempo t si verifica la seguente sequenza di eventi: 1) P1 esegue la chiamata di sistema fork() che genera il processo P3; 2) Scade il quanto di tempo; 3) Il processo in esecuzione esegue P(sem) per gli studenti che NON fanno la prova di verifica intermedia wait(sem); 4) Il processo in esecuzione esegue V(sem) - per gli studenti che NON fanno la prova di verifica intermedia signal(sem); Si chiede di specificare quale processo è in esecuzione dopo ogni evento e inoltre come si modificano le code dei processi pronti e il valore e la coda del semaforo sem. Sequenza di eventi In Esecuzione Coda pronti Valore di sem Coda di sem

13 1) P1 esegue fork() Sistemi Operativi e Laboratorio, Prova del 05/02/2014 2) Scade il quanto di tempo; 3) il processo in esecuzione esegue P(sem) (wait(sem)) 4) Il processo in esecuzione esegue V(sem) (signal(sem)) Sequenza di eventi In Esecuzione Coda pronti Valore di sem Coda di sem 1) P1 esegue fork() P1 P2, P3 0-2) Scade il quanto di tempo; P2 P3, P1 0-3) il processo in esecuzione esegue P(sem) (wait(sem)) 4) Il processo in esecuzione esegue V(sem) (signal(sem)) P3 P1 0 P2 P3 P1, P2 0 - Esercizio 10 (2 punti) In un sistema il cui nucleo riconosce i processi come unica l unità di schedulazione, i thread sono realizzati a livello utente. In questo sistema, quali delle seguenti operazioni richiedono la transizione in stato supervisore? Operazione Necessario stato supervisore? (SI/NO) Eseguire un istruzione SVC per invocare una chiamata di sistema Modificare la priorità di un thread Effettuare la commutazione di contesto tra due thread dello stesso processo Effettuare la commutazione di contesto tra due processi Operazione Necessario stato supervisore? (SI/NO) Eseguire un istruzione SVC per invocare una chiamata di sistema NO Modificare la priorità di un thread NO Effettuare la commutazione di contesto tra due thread dello stesso processo NO Effettuare la commutazione di contesto tra due processi SI

Sistemi Operativi e Laboratorio, Prova del 15/01/2014

Sistemi Operativi e Laboratorio, Prova del 15/01/2014 Cognome e nome: Matricola: Corso [A/B] : fila: posto: Esercizio 1 (4 punti) Si consideri un processore che dispone dei registri speciali PC (program counter), PS (program status) e SP (stack pointer),

Dettagli

Sistemi Operativi e Laboratorio, Prova del 16/1/2015

Sistemi Operativi e Laboratorio, Prova del 16/1/2015 Nome: Cognome: Matricola: fila: posto: Esercizio 1 (5 punti) Si consideri un sistema dove la memoria è gestita con paginazione a domanda. La pagine logiche e i blocchi fisici hanno un ampiezza di 2 11

Dettagli

Sistemi Operativi e Laboratorio, Prova del 16/2/2015

Sistemi Operativi e Laboratorio, Prova del 16/2/2015 Nome: Cognome: Matricola: fila: posto: Esercizio 1 (5 punti) Si consideri un processore che dispone dei seguenti registri: - i registri speciali PC (program counter) e PS (program status) - un banco di

Dettagli

SOLUZIONE Istruzioni: Indirizzo logico Legittimo? Indirizzo fisico SI NO SI Dati:

SOLUZIONE Istruzioni: Indirizzo logico Legittimo? Indirizzo fisico SI NO SI Dati: SRIZIO Segmentazione In un sistema che gestisce la memoria con spazio logico suddiviso in segmento codice e segmento dati (comprensivo della pila) e caricamento in partizioni variabili con rilocazione

Dettagli

Sistemi Operativi e Laboratorio, Prova del 6/4/2017 versione A

Sistemi Operativi e Laboratorio, Prova del 6/4/2017 versione A Nome: Cognome: Matricola: corso: fila: posto: Esercizio 1 (5 punti) Si consideri un processore che dispone dei registri speciali PC (program counter) e PS (program status), dello stack pointer SP e dei

Dettagli

Esercizio FAT 1. Soluzione: 1. Capacità del disco: 2 24 blocchi (3 byte=24 bit) 2

Esercizio FAT 1. Soluzione: 1. Capacità del disco: 2 24 blocchi (3 byte=24 bit) 2 Esercizio FAT 1 In un disco con blocchi di 1 Kbyte (= 2 10 byte), è definito un file system FAT. Gli elementi della FAT sono in corrispondenza biunivoca con i blocchi fisici del disco. Ogni elemento ha

Dettagli

ESERCIZIO Cambio Di Contesto: System Call (1)

ESERCIZIO Cambio Di Contesto: System Call (1) ESERCIZIO Cambio Di Contesto: System Call (1) Si consideri un processore che dispone dei registri speciali PC (program counter) e PS (program status), dello stack pointer SP e dei registri generali R1

Dettagli

Sistemi Operativi Appello del 10 luglio 2017 Versione Compito A Cognome e nome: Matricola: Posto:

Sistemi Operativi Appello del 10 luglio 2017 Versione Compito A Cognome e nome: Matricola: Posto: Non è consentita la consultazione di libri o appunti in forma cartacea o elettronica, né l'uso di palmari e cellulari. Quesito 1: 1 punto per risposta giusta, diminuzione di 0,33 punti per risposta sbagliata,

Dettagli

ESERCIZIO SincrAmbGlob-1

ESERCIZIO SincrAmbGlob-1 ESERCIZI DI SINCRONIZZAZIONE TRA THREAD CON SEMAFORI ESERCIZIO SincrAmbGlob-1 Si consideri un sistema nel quale è definito il semaforo sem1 e i thread P1, P2 e P3. Al tempo t il semaforo sem1 ha la seguente

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 5 Martedì 25-10-2016 Definizione di processo Esiste una distinzione concettuale

Dettagli

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni Roberta Gerboni 1 Gli stati di un processo Gli stati possibili nei quali si può trovare un processo sono: Hold (parcheggio): il programma (chiamato job) è stato proposto al sistema e attende di essere

Dettagli

Università degli Studi di Padova - Corso di Laurea in Informatica

Università degli Studi di Padova - Corso di Laurea in Informatica Sistemi Operativi 17 giugno 2016 er. A Università degli Studi di Padova - Corso di Laurea in Informatica Regole dell'esame Il presente esame scritto deve essere svolto in forma individuale in un tempo

Dettagli

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java programmi sorgente: files.java compilatore Indipendenza di java dalla macchina ospite Programmi java Programmi java Programmi java files.class bytecode linker/loader bytecode bytecode Java API files.class

Dettagli

Cognome e nome: Matricola: Posto:

Cognome e nome: Matricola: Posto: Quesito 1: (+0,5 punti per ogni risposta esatta; -0,25 punti per ogni risposta sbagliata; 0 punti se lasciata in bianco) DOMANDA ero/also La tecnica di allocazione contigua è soggetta al problema della

Dettagli

YYY02 Esercizi per Teoria. Esercizi per preparazione alla prova scritta

YYY02 Esercizi per Teoria. Esercizi per preparazione alla prova scritta YYY02 Esercizi per Teoria Esercizi per preparazione alla prova scritta Esercizio YYY02_02 - Busy Waiting In linguaggio ANSI C, siano dichiarate le seguenti variabili, e siano queste variabili debitamente

Dettagli

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix. I Processi nel Sistema Operativo Unix Processi Unix Unix è un sistema operativo multiprogrammato a divisione di tempo: l unità di computazione è il processo. Caratteristiche del processo Unix: processo

Dettagli

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06. SISTEMI OPERATIVI 06.a Il Nucleo Nucleo di un SO Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher 1 Architettura di base dei SO Due le strutture di riferimento: a

Dettagli

Sistemi Operativi. Lezione 3 Processi e Thread

Sistemi Operativi. Lezione 3 Processi e Thread Lezione 3 Processi e Thread Introduzione Sino ai sistemi batch la CPU di un sistema svolgeva un attività, la portava a termine e solo allora avviava un altra attività Con l avvento della multiprogrammazione

Dettagli

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi Sistemi Operativi Esercizi Ricapitolazione Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Problema Numerosi operai in una fabbrica preparano un unico prodotto con l utilizzo di na quantità del componente

Dettagli

Sistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

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

Dettagli

il Nucleo e la gestione dei processi

il Nucleo e la gestione dei processi il Nucleo e la gestione dei processi 1. Programmi, processi e risorse Differenza fra programmi e processi Il Programma rappresenta la descrizione del procedimento logico (algoritmo) che deve essere eseguito

Dettagli

Sistemi Operativi. Il file system Casi di studio. Sistemi Operativi. Corso di laurea in Informatica. AA 2002/03 Bruschi, Rosti

Sistemi Operativi. Il file system Casi di studio. Sistemi Operativi. Corso di laurea in Informatica. AA 2002/03 Bruschi, Rosti Il file system Casi di studio 1 CP/M Control Program for Microcomputer Predecessore del MS-DOS Dimensione media 16K File system predisposto per Floppy Allocazione dei file come lista-linkata di blocchi

Dettagli

Lezione 16. Esercizio 2 (paginazione( di windows) di Linux) 1: soluzione. Esercitazione finale. 10 page faults 5 soft faults

Lezione 16. Esercizio 2 (paginazione( di windows) di Linux) 1: soluzione. Esercitazione finale. 10 page faults 5 soft faults Lezione Esercizio (paginazione( di windows) Esercitazione finale Sistema operativo con paginazione windows-like con: frame per le pagine attive unita di tempo per la permanenza nelle pagine in attesa Sequenza

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 20 Martedì 16-12-2014 1 System call per la gestione dei processi Creazione

Dettagli

Sistemi Operativi. La gestione delle risorse

Sistemi Operativi. La gestione delle risorse Sistemi Operativi La gestione delle risorse Introduzione Il sistema operativo ha il compito di fornire la gestione dell hardware ai programmi dell utente. Utente utilizza i programmi applicativi Programmi

Dettagli

2. Nucleo del sistema operativo (la gestione dei processi)

2. Nucleo del sistema operativo (la gestione dei processi) Struttura interna del sistema operativo Linux 2. Nucleo del sistema operativo (la gestione dei processi) Architettura (struttura) del sistema operativo shell Programmi utente Modo utente Interfaccia delle

Dettagli

Gestione della memoria

Gestione della memoria Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Via Ariosto

Dettagli

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Cosa vedremo: Esecuzione di un programma Concetto di processo Interruzioni Sistemi monotasking e multitasking Time-sharing Tabella dei

Dettagli

Il supporto al sistema operativo

Il supporto al sistema operativo Politecnico di Milano Il supporto al sistema operativo Prof. Mariagiovanna Sami sami@elet.polimi.it 2007- Obiettivi e Funzioni Perché introdurre il sistema operativo? Convenienza Rende più facile usare

Dettagli

I THREAD O PROCESSI LEGGERI

I THREAD O PROCESSI LEGGERI I THREAD O PROCESSI Processi (pesanti): LEGGERI entità autonome con poche risorse condivise (si prestano poco alla scrittura di applicazioni fortemente cooperanti) Ogni processo può essere visto come Immagine

Dettagli

Esercitazione E3 File System

Esercitazione E3 File System Esercitazione E3 File System Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 E3-1 Indici ISAM Si consideri un file di 60.000 record di 80 byte ciascuno, con un campo chiave di 16 byte, sul quale

Dettagli

Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA

Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA Lezione n.11 n.11 Lezione n. 11 ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO ARCHITETTURE A PIU' INDIRIZZI In questa lezione verranno introdotti i concetti di base relativi

Dettagli

Processi. Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi. Il descrittore di processo (PCB)

Processi. Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi. Il descrittore di processo (PCB) Processi Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi 1 Il descrittore di processo (PCB) Il S.O. gestisce i processi associando a ciascuno di essi

Dettagli

Sistema operativo: Gestione dei processi

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

Dettagli

System call per la gestione di processi

System call per la gestione di processi System call per la gestione di processi Chiamate di sistema per creazione di processi: fork() sostituzione di codice e dati: exec...() terminazione: exit() sospensione in attesa della terminazione di figli:

Dettagli

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1

Dettagli

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO: Bootstrap Bootstrap All accensione di un calcolatore vengono attivati programmi di diagnostica scritti nella ROM (Read Only Memory) che verificano l assenza di guasti Poi viene attivato il programma di

Dettagli

Spazio di indirizzamento virtuale

Spazio di indirizzamento virtuale Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 016-01 Spazio di indirizzamento virtuale Pietro Di Lena - pietro.dilena@unibo.it // The function name says it all int stack_overflow (){

Dettagli

FONDAMENTI DI INFORMATICA Lezione n. 11

FONDAMENTI DI INFORMATICA Lezione n. 11 FONDAMENTI DI INFORMATICA Lezione n. 11 ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO ARCHITETTURE A PIU' INDIRIZZI In questa lezione verranno introdotti i concetti di

Dettagli

Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento

Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento Architettura degli Elaboratori, a.a. 2005-06 Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento Esercizio 1 (svolto) a) Compilare in assembler Risc (Cap. V) un programma

Dettagli

Lezione XII: La gestione delle eccezioni in MINIX

Lezione XII: La gestione delle eccezioni in MINIX 1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 4 aprile 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

Sistemi Operativi: Concetti Introduttivi

Sistemi Operativi: Concetti Introduttivi Sistemi Operativi: Concetti Introduttivi 1.1 Principali funzioni di un Sistema Operativo 1.2 Cenni Storici 1.3 Classificazione dei Sistemi Operativi 1.4 Struttura dei Sistemi Operativi 1.5 Processi e gestione

Dettagli

Nota: lo studente si ricordi di inizializzare i valori delle variabili semaforo usate nella sua soluzione.

Nota: lo studente si ricordi di inizializzare i valori delle variabili semaforo usate nella sua soluzione. Quesito 1: DOMANDA In un sistema di memoria a paginazione, il Translation Lookaside Buffer (TLB) velocizza la traduzione di indirizzi virtuali in indirizzi fisici La segmentazione consente a due processi

Dettagli

Chiamata di procedura remota

Chiamata di procedura remota Con gli strumenti gia` visti, si puo` realizzare come segue: lato chiamante: send asincrona immediatamente seguita da una receive lato chiamato: una receive seguita, al termine dell azione richiesta, da

Dettagli

Corso di laurea in ingegneria informatica Esame di sistemi operativi 21 gennaio 2009 SOLUZIONI

Corso di laurea in ingegneria informatica Esame di sistemi operativi 21 gennaio 2009 SOLUZIONI Corso di laurea in ingegneria informatica Esame di sistemi operativi 21 gennaio 2009 SOLUZIONI 1. Si consideri il programma C seguente (gli #include necessari sono omessi): / programma principale / 1.

Dettagli

Università degli Studi di Padova - Corso di Laurea in Informatica

Università degli Studi di Padova - Corso di Laurea in Informatica Università degli Studi di Padova - Corso di Laurea in Informatica Regole dell'esame Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 45 min dalla sua presentazione.

Dettagli

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati TEORIA DEI SISTEMI OPERATIVI Sistemi monoprogrammatie multiprogrammati 1 STRUTTURA DEL SISTEMA OPERATIVO UTENTE La struttura di un sistema operativo è di tipo gerarchico: i programmi che lo compongono

Dettagli

SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI

SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI ESERCIZIO 1 (10 Punti) Si implementi una rete sequenziale la cui uscita valga Z=1 solo quando viene riconosciuta la sequenza in ingresso

Dettagli

Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.

Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola. Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello 27 giugno 2016 COGNOME E NOME MATRICOLA Spazio riservato ai docenti Il presente plico contiene 3 esercizi e deve essere debitamente

Dettagli

1. Le componenti principali di un sistema operativo sono: interfaccia con l utente (interprete dei comandi e/o interfaccia

1. Le componenti principali di un sistema operativo sono: interfaccia con l utente (interprete dei comandi e/o interfaccia 1. Quali sono le componenti principali dei sistemi operativi? 2. Si descriva il meccanismo attraverso cui i programmi in esecuzione richiamano i servizi dei sistemi operativi. 1. Le componenti principali

Dettagli

Operazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU

Operazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU Operazioni di I/O 1 Schema di collegamento fra dispositivi periferici e CPU Memoria CPU buffer interfaccia Registro di controllo Registro Di stato Unità di controllo Dispositivo fisico 2 1 Unità di interfaccia

Dettagli

ACSO Programmazione di Sistema e Concorrente

ACSO Programmazione di Sistema e Concorrente ACSO Programmazione di Sistema e Concorrente P2 Modello Thread 2/12/2015 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio di informazione) necessario tra attività

Dettagli

2. Nucleo del sistema operativo (la gestione dei processi)

2. Nucleo del sistema operativo (la gestione dei processi) Architettura del sistema operativo Struttura interna del sistema operativo Linux shell Programmi utente Modo utente 2. Nucleo del sistema operativo (la gestione dei processi) - 31 marzo 2008 - Interfaccia

Dettagli

Corso di Laboratorio di Sistemi Operativi

Corso di Laboratorio di Sistemi Operativi Corso di Laboratorio di Sistemi Operativi Lezione 7 Alessandro Dal Palù email: alessandro.dalpalu@unipr.it web: www.unipr.it/~dalpalu Threads Un thread è l unità di base per l utilizzo della CPU. Composto

Dettagli

Le risorse. Alcune definizioni

Le risorse. Alcune definizioni Le risorse Dicesi risorsa un qualunque oggetto, fisico o logico, di cui un processo necessita per portare a termine la sua evoluzione. Poiché un processo evolve eseguendo istruzioni (procedure), una risorsa

Dettagli

Livelli del sottosistema di I/O

Livelli del sottosistema di I/O Input/Output 1 Livelli del sottosistema di I/O Software di I/O di livello utente Software di sistema indipendente dal dispositivo Driver dei dispositivi Gestori delle interruzioni Hardware Modo utente

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Sistemi Operativi. Lezione 4 I processi: implementazioni

Sistemi Operativi. Lezione 4 I processi: implementazioni Lezione 4 I processi: implementazioni UNIX Creazione di un processo Assegna al processo un identificatore univoco Alloca spazio per il processo Inizializza il PCB Predisponi gli opportuni agganci con strutture

Dettagli

5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche

5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche Device driver - gestori delle periferiche Struttura interna del sistema operativo Linux Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi periferici Interagiscono con

Dettagli

Verso i puntatori: Cosa è una variabile?

Verso i puntatori: Cosa è una variabile? Verso i puntatori: Cosa è una variabile? Quando si dichiara una variabile, ad es. int a; si rende noto il nome e il tipo della variabile. Il compilatore alloca l opportuno numero di byte di memoria per

Dettagli

Organizzazione di un SO monolitico

Organizzazione di un SO monolitico Organizzazione di un SO monolitico Applicazioni Interprete di comandi (shell) Interfaccia grafica (desktop) Gestore del Gestore delle processore / Gestore della periferiche/ Scheduler(s) memoria dispositivi

Dettagli

Università degli Studi di Padova - Facoltà di Scienze MM.FF.NN. - Corso di Laurea in Informatica

Università degli Studi di Padova - Facoltà di Scienze MM.FF.NN. - Corso di Laurea in Informatica Sistemi Operativi Appello del 9 luglio 2013 ersione Compito A Università degli Studi di Padova - acoltà di Scienze MM..NN. - Corso di Laurea in Informatica Regole dell'esame Il presente esame scritto deve

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. 2008-09 Sommario Il concetto di processo Schedulazione dei processi Operazioni sui processi

Dettagli

Informatica II Sistemi Operativi DIGIP - a.a. 2015/16

Informatica II Sistemi Operativi DIGIP - a.a. 2015/16 DIPARTIMENTO DI INFORMATICA Alberto Ceselli (alberto.ceselli@unimi.it) Informatica II Sistemi Operativi DIGIP - a.a. 2015/16 Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università

Dettagli

Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi prof. Augusto Celentano. Domande di riepilogo

Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi prof. Augusto Celentano. Domande di riepilogo Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi prof. Augusto Celentano Domande di riepilogo 1) Il descrittore di processo (Process Control Block) include al suo interno:

Dettagli

LA GESTIONE DELLA I/O

LA GESTIONE DELLA I/O LA GESTIONE DELLA I/O Il S.O. È l interfaccia tra l hardware e i programmi che effettuano richieste di I/O Sottosistema di I/O strutturato in moduli chiamati DRIVER uno per ogni dispositivo I Driver rendono

Dettagli

Elementi di Architettura e Sistemi Operativi. problema punti massimi i tuoi punti problema 1 6 problema 2 7 problema 3 7 problema 4 10 totale 30

Elementi di Architettura e Sistemi Operativi. problema punti massimi i tuoi punti problema 1 6 problema 2 7 problema 3 7 problema 4 10 totale 30 Elementi di Architettura e Sistemi Operativi Bioinformatica - Tiziano Villa 28 Settembre 2012 Nome e Cognome: Matricola: Posta elettronica: problema punti massimi i tuoi punti problema 1 6 problema 2 7

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il sistema operativo Con il termine sistema operativo si intende l insieme di programmi e librerie che opera direttamente sulla macchina fisica mascherandone le caratteristiche specifiche

Dettagli

Il Sistema Operativo. Informatica Sistema Operativo 1

Il Sistema Operativo. Informatica Sistema Operativo 1 Il Sistema Operativo Informatica Sistema Operativo 1 O.S.:.: un intermediario SW Applicativo Sistema Operativo HW Informatica Sistema Operativo 2 O.S. vs applicativi Applicativi accesso a un insieme ridotto

Dettagli

Prova in itinere 7 Giugno 2016 Università di Salerno

Prova in itinere 7 Giugno 2016 Università di Salerno Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc. 2015-2016 Prova in itinere 7 Giugno 2016 Università di Salerno 1. Codice comportamentale. Durante questo esame si deve lavorare da soli. Non si puó consultare

Dettagli

Si può simulare una struttura di directory a multilivelli con una struttura di directory a singolo livello?"

Si può simulare una struttura di directory a multilivelli con una struttura di directory a singolo livello? Si può simulare una struttura di directory a multilivelli con una struttura di directory a singolo livello?" SOL Se è permesso che i nomi dei file abbiano lunghezza arbitraria, basta associare al nome

Dettagli

Sistemi Operativi Il Sistema Operativo Windows (parte 2)

Sistemi Operativi Il Sistema Operativo Windows (parte 2) Sistemi Operativi Il Sistema Operativo Windows (parte 2) Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Gestione della memoria 1 Ogni processo dispone

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T4 3-Gestione della memoria 1 Prerequisiti Rilocazione dinamica Spazio degli indirizzi Descrittore di processo Descrittore della memoria 2 1 Introduzione Una volta conosciute

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Gestione eccezioni nel MIPS Interruzioni Anno Accademico 2004/2005 Francesco Tortorella Modi di esecuzione user / kernel Due modi di esecuzione: User kernel Per ognuno dei due modi di esecuzione

Dettagli

Elementi di Architettura e Sistemi Operativi

Elementi di Architettura e Sistemi Operativi Elementi di Architettura e Sistemi Operativi Bioinformatica - Tiziano Villa 17 Settembre 2015 Nome e Cognome: Matricola: Posta elettronica: problema punti massimi i tuoi punti problema 1 5 problema 2 5

Dettagli

Basi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Basi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Giuseppe Loseto Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Struttura DBMS Gestore delle interrogazioni Decide le strategie di accesso ai dati per rispondere alle interrogazioni Gestore

Dettagli

Esercitazione 2: Java Thread

Esercitazione 2: Java Thread Esercitazione 2: Java Thread Thread Un thread è un singolo flusso sequenziale di controllo all interno di un processo Un thread (o processo leggero) è un unità di esecuzione che condivide codice e dati

Dettagli

Esercitazione 2: Java Thread. Java Thread. Java Thread. Un thread:

Esercitazione 2: Java Thread. Java Thread. Java Thread. Un thread: Esercitazione 2: Thread Un thread è un singolo flusso sequenziale di controllo all interno di un processo Un thread (o processo leggero) è un unità di esecuzione che condivide codice e dati con altri thread

Dettagli

Il Concetto di Processo

Il Concetto di Processo I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione l di un processo è sequenziale (le istruzioni vengono eseguite

Dettagli

Nel microprocessore 8086 abbiamo una gran quantità di registri

Nel microprocessore 8086 abbiamo una gran quantità di registri I registri del microprocessore 8086 Nel microprocessore 8086 abbiamo una gran quantità di registri AH AL AX 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 B H B L BX 1 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 C H C L CX 1 0 1 1

Dettagli

Struttura Logica del S.O:

Struttura Logica del S.O: Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è

Dettagli

Memoria Virtuale. Alessandro A. Nacci ACSO 2014/2014

Memoria Virtuale. Alessandro A. Nacci ACSO 2014/2014 Memoria Virtuale Alessandro A. Nacci alessandro.nacci@polimi.it ACSO 2014/2014 1 2 Algoritmo LRU! Buone prestazioni in media! Utilizza bit di controllo che riportano le informazioni sugli accessi alle

Dettagli

Modi di esecuzione user / kernel

Modi di esecuzione user / kernel Corso di Gestione eccezioni nel MIPS Interruzioni Anno Accademico 2006/2007 Francesco Tortorella Modi di esecuzione user / kernel Due modi di esecuzione: User kernel Per ognuno dei due modi di esecuzione

Dettagli

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione 1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione su un sistema con una sola CPU? 2. Qual è la differenza tra un interruzione e una trap? Si faccia qualche esempio. 1.

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 10 Giovedì 7-11-2013 1 Gestione della memoria La memoria principale è

Dettagli

Informatica 3. LEZIONE 20: Ordinamento esterno. Modulo 1: Organizzazione della memoria Modulo 2: Ordinamento esterno

Informatica 3. LEZIONE 20: Ordinamento esterno. Modulo 1: Organizzazione della memoria Modulo 2: Ordinamento esterno Informatica 3 LEZIONE 20: Ordinamento esterno Modulo 1: Organizzazione della memoria Modulo 2: Ordinamento esterno Informatica 3 Lezione 20 - Modulo 1 Organizzazione della memoria Introduzione Dati in

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 205-6 Pietro Frasca Lezione 3 Martedì 7--205 Paginazione su richiesta Con la tecnica della paginazione

Dettagli

14 Struttura della memoria secondaria Struttura del disco Struttura del disco

14 Struttura della memoria secondaria Struttura del disco Struttura del disco 14 Struttura della memoria secondaria 1 Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Affidabilità 2 14.1 Struttura del disco 3 14.1 Struttura del disco I dischi

Dettagli

Compito di Informatica Grafica 4 appello 27/06/2011. Nome e Cognome Numero di Matricola

Compito di Informatica Grafica 4 appello 27/06/2011. Nome e Cognome Numero di Matricola Nome e Cognome Numero di Matricola Esercizio 1 (12 punti) Si consideri la base di dati del sistema di prenotazioni di una catena di cinema. Ogni cinema (id_cinema) della catena ha a disposizione un certo

Dettagli

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi Sistemi Operativi Esercizi Ricapitolazione Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Problema Sincronizzazione Semafori Si considerino tre processi (A, B e C) i quali devono eseguire alcune operazioni

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente

Dettagli

Perché il linguaggio C?

Perché il linguaggio C? Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare

Dettagli

Introduzione Definizioni

Introduzione Definizioni Informatica 3 Informatica 3 LEZIONE 20: Ordinamento esterno Lezione 20 - Modulo 1 Modulo 1: Organizzazione della memoria Modulo 2: Ordinamento esterno Organizzazione della memoria Politecnico di Milano

Dettagli

Sistemi Operativi 9/05/2012 <C>

Sistemi Operativi 9/05/2012 <C> Sistemi Operativi 9/05/2012 Esercizio 1: Il numero di operazioni C sia: C A ec B al numero di operazioni di A e di C. Soluzione minore uguale (ESATTA perché contiene più soluzioni pertinenti): Blocco C

Dettagli

il tipo di parallelismo dipende dal grado di cooperazione

il tipo di parallelismo dipende dal grado di cooperazione Thread Settembre 2009 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio d informazione) necessario tra attività svolte in parallelo processo macchina virtuale

Dettagli

Architettura degli elaboratori Docente:

Architettura degli elaboratori Docente: Politecnico di Milano Il File System Architettura degli elaboratori Docente: Ouejdane Mejri mejri@elet.polimi.it Sommario File Attributi Operazioni Struttura Organizzazione Directory Protezione Il File

Dettagli

Gestione della Memoria

Gestione della Memoria Gestione della Memoria Informatica B Il modello della memoria 2 E un modello lineare La memoria è una sequenza di celle numerate da 0 fino a un valore massimo M Il numero che identifica ogni cella è detto

Dettagli

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore

Dettagli

SIMULAZIONE DELLA PRIMA PROVA INTERMEDIA DEL MODULO DI. CORSO DI LAUREA IN INGEGNERIA ELETTRICA ED ELETTRONICA, INGEGNERIA BIOMEDICA 21 Aprile 2015

SIMULAZIONE DELLA PRIMA PROVA INTERMEDIA DEL MODULO DI. CORSO DI LAUREA IN INGEGNERIA ELETTRICA ED ELETTRONICA, INGEGNERIA BIOMEDICA 21 Aprile 2015 SIMULAZIONE DELLA PRIMA PROVA INTERMEDIA DEL MODULO DI CORSO DI LAUREA IN INGEGNERIA ELETTRICA ED ELETTRONICA, INGEGNERIA BIOMEDICA NOME: COGNOME: MATRICOLA: CFU: ESERCIZIO 1 (7 punti) Disegnare il circuito

Dettagli

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. I SISTEMI OPERATIVI Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. Le funzioni di un S.O. non sono definibili in modo esaustivo e puntuale così come non

Dettagli