Progetto di Laboratorio di Sistemi Operativi I

Informatica e Tecnologie Informatiche

Anno Accademico 2003-2004

Scopo del progetto

Lo scopo del progetto è di sviluppare un programma concorrente che risolve il seguente problema e valutarne le prestazioni.

Problema

In un ristorante fast-food che serve un unico tipo di piatto, gli inservienti sono identificati con altrettanti processi, suddivisi in tre categorie:

  • gli addetti alla ricezione degli ordini, che passano ai cuochi;
  • i cuochi, che preparano i piatti e li passano ai cassieri;
  • i cassieri, che ricevono i piatti dai cuochi e li consegnano ai clienti, oltre a provvedere alla riscossione.
Anche i clienti sono rappresentati da processi (NON usare thread), che passano i loro ordini agli addetti alla ricezione e ritirano il piatto dai cassieri.

I clienti arrivano al ristorante ogni t secondi, dove t e' generato randomicamente con distribuzione geometrica. Inoltre, se la coda al ristorante è troppo lunga, i clienti scelgono di cambiare ristorante.

La sincronizzazione tra processi deve essere realizzata con i semafori e la memoria condivisa forniti dalla libreria IPC. I parametri del programma realizzato devono essere passati da linea di comando seguendo lo standard Linux.

[Facoltativo 1] Considerate la possibilità che esistano due tipi di piatti, con due diversi tempi di preparazione.

[Facoltativo 2] Qual è il minimo numero di cuochi che garantisce il massimo ricavo dalla gestione del ristorante? Discutere le assunzioni sulla capienza del fast-food, sul numero degli addetti alla ricezione e dei cassieri.

[Facoltativo 3] Realizzare un gestore di tempo virtuale e utilizzarlo per stimare almeno il tempo di turnaround medio dei clienti.

Relazione

A completamento del progetto ogni gruppo dovrà consegnare una documentazione su carta con chiara indicazione sulla copertina dei componenti del gruppo (nome, matricola, anno accademico e recapito). La documentazione dovrà (almeno) contenere le informazioni dettagliate di seguito (è scoraggiato l'uso di cartelline o copertine di plastica):

  • Lo scopo del progetto (problema da risolvere, possibili soluzioni, etc.).
  • Le scelte motivate di progetto (parametri e loro intervallo, etc.).
  • Descrizione degli errori previsti e loro gestione (in particolare nella gestione dei processi).
  • Descrizione dei criteri di formattazione usata per l'output
  • L'organizzazione del codice e delle strutture dati.
  • Descrizione dei test effettuati ed analisi dei risultati.
  • Manuali di installazione ed utilizzo (in formato testo). Per questa parte si dovra' usare una organizzazione logica analoga a quella dei manuali Linux.

Come appendice del documento dovra' essere incluso il codice sorgente C (commentato!).

Modalità di consegna

I sorgenti in C del progetto e la relazione in formato elettronico dovranno essere presenti nella cartella del gruppo entro le ore 12 di giovedì 8 gennaio 2004, quando l'accesso a tali cartelle sarà disabilitato. Entro la stessa data ed ora dovranno essere consegnate anche le rispettive relazioni in formato cartaceo al terzo piano di via Salaria 113, nello studio di Luigi V. Mancini o nello studio di Alessandro Mei (qualsiasi sia il vostro canale), oppure, in nostra assenza, nell'ufficio dei tecnici (Gabriella Cavallo, Emanuele Gabrielli).

-- AlessandroMei - 23 Oct 2003


This topic: Lab_so_1/AL > WebHome > ProgettoSO20032004
Topic revision: r7 - 2003-11-28 - LuigiMancini
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback