INIT: for i = 0 to M-1 set(p[i], 0); for i = 0 to M-1 set(a[i], 0);

Documenti analoghi
Architettura degli elaboratori Docente:

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

LA MEMORIA NEL CALCOLATORE

Il Sottosistema di Memoria

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

Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc Esercitazione. Memoria virtuale

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Elementi base per la realizzazione dell unità di calcolo

Laboratorio di Architettura degli Elaboratori

Architettura dei computer

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

INFORMATICA GENERALE. Informatica Generale

Interfacciamento di periferiche I/O al μp 8088

Sistemi Operativi Esercizi Gestione Memoria

FILE E INDICI Architettura DBMS

Il Sottosistema di Memoria

MANUALE UTENTE RIO-42

Soluzioni ai problemi di Mutua Esclusione Primitive di sincronizzazione. Soluzioni ai problemi di Mutua EsclusionePrimitive di sincronizzazione

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

Informatica 10. appunti dalla lezione del 16/11/2010

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

STRUTTURE DEI SISTEMI DI CALCOLO

Gestione della memoria

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

Strutture di accesso ai dati: B + -tree

I sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas

NAT: Network Address Translation

Procedura operativa per la gestione della funzione di formazione classi prime

Informatica Teorica. Macchine a registri

I dischi ottici. Istituzioni di Informatica -- Rossano Gaeta 43

Manuale di Aggiornamento BOLLETTINO. Rel B. DATALOG Soluzioni Integrate a 32 Bit

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

Corso di Sistemi di Elaborazione delle informazioni

Architetture di rete. 4. Le applicazioni di rete

Sommario. Processi e Programmi. Che cosa e un Processo? Lezione 5 Processi e Threads

AutoritàEmittente CNS Contraente. Certificatore Accreditato. La firma digitale

Un semplice commutatore a pacchetto

IL DIRETTORE DELL AGENZIA. di concerto con il Direttore dell Agenzia delle Entrate

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

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

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:

LabVIEW parte II. Ing. Gianfranco Miele November 3, 2010

I Bistabili. Maurizio Palesi. Maurizio Palesi 1

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

I B+ Alberi. Sommario

Richiami sull architettura del processore MIPS a 32 bit

Lab 1: Java Multithreading

Manutenzione periodica al PIANO DEI CONTI

Architettura di un sistema di calcolo

Elementi di base del calcolatore

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

Diagrammi a blocchi 1

Esercizio C2.1 - Acquisizione dati: specifiche dei blocchi

Esercitazione [5] Input/Output su Socket

Il contesto! Gestione della Memoria! Reg. di Base e reg. Limite! Associazione tra dati/istruzioni e memoria!

Esercitazione 4. Comandi iterativi for, while, do-while

La memoria principale

Cosa è importante: pom.xml Goal Plug-in Repository

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

Guida Compilazione Questionario SCUOLA DELL INFANZIA PARITARIA

Manuale Utente CMMG Corso Medici Medicina Generale

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Tecnica basata su Relazioni I/O Circuito di Clock

La gestione dell I/O (Cap. 5, Tanenbaum)

Esercizio: memoria virtuale

Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per:

Elezioni comunali Esempi di attribuzione dei seggi

Architettura Single Channel

memoria virtuale protezione

Guida Esempi di calcolo del contributo Enasarco

Esempi di attribuzione dei seggi

1 DESCRIZIONE DELLE FUNZIONI REGISTRAZIONE UTENZE INTERNET Caricamento utente internet (data entry)... 3

1. Qual è il valore giuridico di un documento informatico firmato con firma digitale?

Prova in itinere di Metodi di Ottimizzazione AA 2007/2008: compito A

Sportello Unico per l Edilizia

La memoria: tecnologie di memorizzazione

Ingegneria del Software

IN CASO DI...INCIDENTE TI AIUTIAMO A COMPILARE IL MODULO BLU GUIDA PRATICA

Risoluzione di problemi ingegneristici con Excel

AMBIENTE EXCEL CALCOLO DEL RESTO DELLA DIVISIONE FRA NATURALI

WINDOWS TERMINAL SERVER PER L ACCESSO REMOTO AL SISTEMA DI PROTOCOLLO INFORMATICO

PROGRAMMA DISCIPLINARE SVOLTO a. s / 2016

In base alle attribuzioni conferitegli dalle norme riportate nel seguito del presente provvedimento. Dispone

FIRMA ELETTRONICA. Il sistema di garanzia è stato individuato nella crittografia in quanto è in grado di assicurare:

INFORMAZIONI PRODOTTO LOCKING SYSTEM MANAGEMENT 3.3 SERVICE PACK 1 BASIC BASIC ONLINE BUSINESS PROFESSIONAL

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Università degli Studi di Udine. DLGS 196/03 Gestione delle credenziali di autenticazione informatica

File System. Capitolo 13

Oggetto: Utility per la variazione massiva del codice IVA.

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

Corso di Sistemi di Elaborazione delle informazioni

ELETTRONICA II. Prof. Dante Del Corso - Politecnico di Torino

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

SUI SISTEMI DI DISEQUAZIONI IN DUE INCOGNITE

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini

Processo di validazione delle offerte

Personal Computer: introduzione

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

Transcript:

Esercizio Descrivere la tecnica di gestione della memoria basata su paginazione (non e richiesta la descrizione della tecnica si memoria virtuale). Inoltre, data un architettura a 64 bit di indirizzamento logico, la quale supporta pagine di 1MB ciascuna e paginazione a 2 livelli, si calcoli il numero delle entry della tabella delle pagine di primo livello ammettendo tabelle di secondo livello ciascuna con un numero di entry pari a 1 K.

Soluzione Parte A: descrizione della struttura logica di un address space (suddivisa in pagine), della strutturazione logica della RAM (suddivisa in frames), della struttura di un indirizzo logico e del relativo indirizzo fisico, della struttura di una tabella delle pagine, dell integrazione del TLB nell operativita del microcodice di traduzione degli indirizzi da logici a fisici. Parte B: 1MB di taglia della pagina comporta 2^(20) byte indirizzabili per pagina, che necessitano di 20 bit per l offset di pagina nell indirizzo logico tabelle di secondo livello con 1K elementi inplicano che l identificazione di una pagina in una sezione di secondo livello necessiti di 10 bit nell indirizzo logico i rimanenti 34 bit sono destinati all identificazione della sezione target per l accesso, quindi la taglia della tabella di primo livello dovra essere di 2^(34) elementi (ovvero 32 G elementi)

Esercizio Si consideri un insieme di N processi (P1,..., PN), ciascuno dei quali scrive periodicamente un nuovo messaggio su una memoria condivisa M di N slot. Ciascun processo Pi scrive esclusivamente nell i-esimo slot della memoria condivisa. Dopo aver scritto il proprio messaggio, Pi attende che venga consegnata una risposta nello stesso slot della memoria condivisa. Le risposte vengono prodotte da un ulteriore processo REPLY. In particolare, non appena i messaggi di due processi Pi e Pi+1 con indice consecutivo (modulo N) sono disponibili, questi vengono scambiati da REPLY e consegnati come risposte. L attesa della risposta da parte dei processi Pi e bloccante. La lettura dei messaggi da parte di REPLY e anche essa bloccante. Gli accessi in scrittura/lettura su M da parte dei processi (P1,, PN) potranno avvenire in concorrenza. Si schematizzi la soluzione del suddetto problema di sincronizzazione, usando solo semafori, fornendo lo pseudo-codice delle procedure SCRIVI-LEGGI e SCAMBIA usate rispettivamente da Pi e REPLY.

Soluzione (senza perdita di generalita i processi Pi vengono indentificati nel range [0,M-1]) Binary sem P[M]; // codes if messages have been posted Binary sem A[M]; // codes if answers have been provided INIT: for i = 0 to M-1 set(p[i], 0); for i = 0 to M-1 set(a[i], 0); SCRIVI-LEGGI: me = getpid(); < write message into M[me] >; signal(p[me]); wait(a[me]); < read reply form M[me] >; REPLY: static int index = 0; wait(p[index]); wait(p[(index + 1)%M]); < switch M[index] and M[(index+1)%M] >; signal(a[index]); signal(a[(index + 1)%M]); index = (index+2) % M;

Esercizio Si consideri un insieme di N processi (P1,..., Pn), ciascuno dei quali scrive periodicamente un nuovo messaggio su una memoria condivisa M di n slot. Ciascun processo Pi scrive esclusivamente nell iesimo slot della memoria condivisa. Dopo aver scritto il proprio messaggio, Pi attende che venga consegnata una risposta tramite un buffer R, a slot singolo. L attesa della risposta e bloccante. Un ulteriore processo REPLY legge i messaggi prodotti dai processi Pi in ordine, ovvero a partire da P1 fino a Pn, e poi ancora da P1. La lettura e anche in questo caso bloccante. Quando REPLY ha letto il messaggio proveniente da TUTTI i processi Pi, consegna la risposta destinata a tutti i Pi tramite il buffer R. Gli accessi in scrittura su M da parte dei processi (P1,, Pn) potranno avvenire in concorrenza. Si schematizzi la soluzione del suddetto problema di sincronizzazione, usando solo semafori, fornendo lo pseudo-codice delle procedure SCRIVI e RISPONDI usate rispettivamente da Pi e REPLY.

Soluzione (senza perdita di generalita i processi Pi vengono indentificati nel range [0,M-1]) Binary sem P[M]; // codes if messages have been posted Binary sem A[M]; // codes if the answer has been provided INIT: for i = 0 to M-1 set(p[i], 0); for i = 0 to M-1 set(a[i], 0); SCRIVI-LEGGI: me = getpid(); < write message into M[me] >; signal(p[me]); wait(a[me]); < get answer from buffer R >; REPLY: for index = 0 to M-1 { wait(p[index]); < read message from M[index] >; } < post reply onto buffer R >; for index = 0 to M-1 signal(a[index]);

Esercizio Si descriva lo scheduler di CPU Windows. Si consideri inoltre uno scenario single-core in cui esistono solo 3 processi attivi A, B e C, tutti singlethread/cpu bound di durata 100 milisecondi, che eseguono solo in user mode, di cui i primi due di classe real-time (stello livello) ed il terzo di classe variable. Supponendo che il tempo T per un cambio di contesto tra i due processi (qualora realmente eseguito) sia pari a 10 microsecondi, e considerando che il software di gestione dell interrupt da timer per lo scheduling della CPU e tutto eseguito in kernel mode (e ad ogni interrupt e ammesso che possa avvenire un context switch), si determini il minimo periodo dell interrupt da timer per lo scheduling di CPU che garantisca che almeno il 90 per cento del tempo di CPU speso per i tre processi sia impegnato in user mode. Risposte non motivate non verranno ritenute valide.

Soluzione Parte A: descrizione dei livelli di priorita dello scheduler windows, e della logica di assegnazione (dinamica e/o basata su system call) delle priorita ai processi/thread attivi. Parte B: i 2 processi a priorita real-time vanno in time-sharing sulla CPU, il terzo viene schedulato solo a valle del loro completamento, e non subisce context switch. Bisogna quindi calcolare il numero massimo di context switch N che occorrono durante l esecuzione dei primi 2 in modo da soddisfare la seguente equazione (Ttot Tuser)/Ttot <= 0.1 Ma Tuser = 300 millisec Ttot = Tuser + N Tsched dove Tsched = 0.01 millisec quindi N <= 3333.3... In conclusione Tinterrupt >= (200 / N ) + 0.01 millisec ~ 0.07 millisec

Esercizio Descrivere il metodo di allocazione di file basato su indicizzazione a livelli multipli. Si consideri un file di dati F di 2048 record ed un dispositivo di memorizzazione di massa con blocchi di 256 record avente tempo di accesso ai blocchi fisso pari a 30 microsecondi. Supponendo che (i) gli indici abbiano taglia pari and un record, (ii) gli indici di primo livello siano 6, e quelli di secondo livello siano 2, (iii) il tempo di identificazione di un riferimento ad un blocco di dispositivo sia costante e pari a 5 microsecondi, calcolare il tempo per la lettura di tutto il file F.

Soluzione numero di blocchi dati allocati per il file = 2048/256 = 8 6 degli 8 blocchi dati sono puntati in modo diretto dagli indici di primo livello mantenuti nell RS. il loro tempo di lettura è pari a 6 x (5 + 30) i rimanenti due blocchi dati devono essere individuati tramite indici di secondo livello tali indici sono memorizzati in un unico blocco il cui tempo di lettura risulta (5 + 30) letto il precedente blocco, il tempo di lettura dei due blocchi dati risulta pari a 2 x (5 + 30) tempo totale per la lettura di F = 6 x (5 + 30) + (5 + 30) + 2 x (5 + 30)

Esercizio Si consideri un insieme di processi {P1, P2,..., Pi,..., Pm}. Ciascuno di essi legge periodicamente il contenuto di una memoria condivisa di taglia N bytes per copiarlo in un buffer di N bytes locale al processo stesso. Un processo PROD aggiorna periodicamente il contenuto della memoria condivisa. L aggiornamento deve aver luogo solo dopo che tutti i processi {P1, P2,..., Pi,..., Pm} hanno copiato l immagine precedentemente scritta da PROD esattamente una volta. La lettura del contenuto della memoria condivisa da parte di {P1, P2,..., Pi,..., Pm} puo avvenire in modo concorrente. L aggiornamento deve avvenire in modo esclusivo (nessun processo puo leggere mentre PROD aggiorna la memoria condivisa). Si schematizzi la soluzione di tale problema di sincronizzazione, utilizzando solo semafori, costituita dal pseudocodice delle procedure AGGIORNA (usata da PROD) e LEGGI (usata da P1,..., Pm).

SOLUZIONE Indicazione a PROD del numero di lettori che hanno effettivamente letto l ultima immagine scritta Indicazione ai lettori se essi sono abilitati a leggere dalla memoria condivisa DATA Semaphore S1; // generico Semaphore S2[m] ; // binari INIT 1 // ipotesi: la memoria condivisa contiene // inizialmente una immagine valida S1 = 0; for i=1 to m S2 [i]=1;

INIT 2 // ipotesi: la memoria condivisa non contiene // inizialmente una immagine valida S1 = m; for i=1 to m S2 [i]=0; PROD: AGGIORNA wait(s1,m); <write image into shared memory>; for i=1 to m signal(s2[i]); P i : LEGGI wait(s2[i]); <read image from shared memory>; signal(s1);

Esercizio Si consideri un insieme di processi {P1, P2,..., Pi,...,Pn} che devono depositare immagini di dimensioni predefinite in un area di memoria condivisa con 4 slot disponibili (ciascuno slot puo contenere una sola immagine). Un altro processo PV (processo di verifica) ha il compito di verificare il formato di ciascuna immagine e di mandarlo in stampa dopo la verifica. Si schematizzi la soluzione di tale problema, utilizzando semafori, costituita dal pseudocodice delle procedure: DEPOSITA (usata da P1, P2,..., Pi,..., Pn) e VERIFICA (usata da PV).

SOLUZIONE quantità di slot occupati quantità di slot liberi mutua esclusione DATA Semaphore Cont1, Cont2; // generici Semaphore S ; // binario int shared_index; image buff [4]; INIT Cont1 = 0; Cont2 = 4; S = 1; shared_index = 0;

PV: DATA int index = 0; VERIFICA wait(cont1); <verify and print image in buff[index]>; index = (index+1) mod 4; Signal(Cont2); P i : DEPOSITA wait(s); wait(cont2); <write image into buff[shared_index]>; shared_index = (shared_index+1) mod 4; signal(cont1) signal(s)

Esercizio Descrivere il metodo di accesso sequenziale indicizzato ad un file. Si consideri un file di dati F di 2048 record ed il relativo file di indici f contenente 1024 elementi. Supponendo che il tempo di accesso ad un indice del file f sia 5 microsecondi e che il tempo di accesso di ogni singolo record del file F sia 20 microsecondi, calcolare il tempo massimo per l accesso ad un record del file F con chiave generica. Risposte non motivate non verranno ritenute valide.

SOLUZIONE il tempo massimo si ottiene quando: 1. la chiave ricercata è associata all ultimo record del file dati F 2. si ha una configurazione di caso peggiore del file di indici f la configurazione peggiore si ha quando la chiave ricercata tra le 2048 è nell intervallo associato all ultimo elemento del file f e tale intervallo ha la massima ampiezza, ovvero quando esistono 1023 intervalli di ampiezza 1 ed un unico intervallo di ampiezza 1025 per giungere all ultimo record di suddetto intervallo devo scandire tutto il file degli indici, questo porta via un tempo pari a 5 x 1024 devo poi leggere tutti i blocchi dell intervallo, questo porta via un tempo 20 x 1025 tempo massimo per l accesso ad un record di F con chiave generica = 5 x 1024 + 20 x 1025