• Non ci sono risultati.

Nome e cognome ________________________________________ N. di matricola (10 cifre num.) ___________________________ UNIVERSITA' DEGLI STUDI DI BOLOGNA - CORSO DI LAUREA IN INFORMATICA CORSO DI SISTEMI OPERATIVI - ANNO ACCADEMICO 2002/2003 GESTIONE RISORSE

N/A
N/A
Protected

Academic year: 2021

Condividi "Nome e cognome ________________________________________ N. di matricola (10 cifre num.) ___________________________ UNIVERSITA' DEGLI STUDI DI BOLOGNA - CORSO DI LAUREA IN INFORMATICA CORSO DI SISTEMI OPERATIVI - ANNO ACCADEMICO 2002/2003 GESTIONE RISORSE"

Copied!
1
0
0

Testo completo

(1)

Nome e cognome ________________________________________ N. di matricola (10 cifre num.) ___________________________

UNIVERSITA' DEGLI STUDI DI BOLOGNA - CORSO DI LAUREA IN INFORMATICA CORSO DI SISTEMI OPERATIVI - ANNO ACCADEMICO 2002/2003

GESTIONE RISORSE - 30 giugno 2003

Esercizio -1: essersi iscritti correttamente per svolgere questa prova.

Esercizio 0: Scrivere correttamente nome, cognome e numero di matricola prima di svolgere ogni altro esercizio seguente.

Esercizio 1: Gestore di blocchi

Un ipotetico S.O. offre ai propri processi un buffer comune utilizzabile come cache. Questo buffer è suddiviso in N blocchi di dimensioni costanti. Le primitive per utilizzare questa cache sono le seguenti:

int[] getBuffer(int pid, int n): invocata da un processo pid per chiedere n blocchi; la primitiva restituirà un array contenente gli identificatori dei blocchi assegnati, o null se non è possibile soddisfare interamente la richiesta

void returnBlocks(int pid, int[] blocks): invocata da un processo pid per restituire un qualunque insieme di blocchi, dove blocks è l'array contenente gli identificatori dei blocchi e blocks.length è la dimensione di tale array

void maxBlocks(int pid, int max): invocato da un processo pid all'inizio per dichiarare il numero massimo di blocchi che il processo potrà mai chiedere.

Assumete che le primitive siano gestite in mutua esclusione e che una volta che un processo ha ottenuto il numero massimo di blocchi che può richiedere, prima o poi li rilasci tutti. Scrivere un gestore del buffer che (1) gestisca la memoria libera e occupata e (2) garantisca l'assenza di deadlock per le richieste.

Esercizio 2

Sia dato un sistema con paginazione e segmentazione.

sia dato un indirizzo virtuale v appartenente al segmento s tale che v+1 (la voce successiva) appartenga al segmento s' (diverso da s).

- E' possibile che si dia questa situazione? E' un caso comune o raro? In quali occasioni accade?

sia dato un indirizzo virtuale v appartenente alla pagina p tale che v+1 (la voce successiva) appartenga alla pagina p' (diversa da p).

- E' possibile che si dia questa situazione? E' un caso comune o raro? In quali occasioni accade?

Esercizio 3

Si prendano due dischi: il primo ha una velocita' di rotazione di 100 giri al secondo (6000 RPM) il secondo 200 giri al secondo (12000 RPM). Entrambi hanno un tempo di seek di 10 tracce per ms. Entrambi i dischi hanno un buffer di traccia che consente operazioni in numero arbitrario nel tempo di due rotazioni.

Siano entrambi fermi al tempo 0 sulla traccia 0 e ci siano pendenti richieste come segue:

cyl 10 settore 10 head 1 read cyl 20 settore 20 head 2 write cyl 10 settore 1 head 3 write cyl 30 settore 10 head 2 read

calcolare (spiegando il procedimento) il tempo risparmiato dal disco piu' veloce.

Riferimenti

Documenti correlati

Un solo processo alla volta deve essere in esecuzione (fra quelli che hanno chiamato init e non ancora fini), yield deve fare avvicendare i processi, deve attivare quello a priorita'

Esercizio 0: Scrivere correttamente nome, cognome, matricola e posizione prima di svolgere ogni altro esercizio. Esercizio 1: Considerare I seguenti processi gestiti mediante

Un solo processo alla volta deve essere in esecuzione (fra quelli che hanno chiamato init e non ancora fini), yield deve fare avvicendare I processi in ordine ciclico (come se

Esercizio 0: Scrivere correttamente nome, cognome, matricola e posizione prima di svolgere ogni altro esercizio.. Esercizio 1: Un servizio prevede N tipi di

Il gestore i-mo gestisce prioritariamente (e non esclusivamente) le richieste di tipo i, ma se non ci sono richieste di tipo i il gestiore i-mo riceve una richiesta della coda con

Esercizio 0: Scrivere correttamente nome, cognome, matricola e posizione prima di svolgere ogni altro esercizio.. Esercizio 1: Scrivere un monitor sbb che implementi un buffer

Esercizio 3: Scrivere un servizio di message passing asincrono (quello classico che consenta alla arecv di aspettare un messaggio da un utente specifico o da tutti usando '*')

Esercizio 0: Scrivere correttamente nome, cognome, matricola e posizione prima di svolgere ogni altro esercizio.. Esercizio 1: Sia dato un servizio di pronto soccorso con piu' di