Ciao a tutti sono nuovo da queste parti. Ho un problema devo realizzare il progetto del quale vi riporto il testo qui sotto e avrei bisogno di due dritte a grandi linee per cominciare nella realizzazione di questo lavoro.
Grazie a tutti![]()
<<Scopo del progetto è gestire il transito delle imbarcazioni in un porto seguendo le
specifiche qui riportate.
All'inizio dell'esecuzione il porto è vuoto. Vengono generate tramite un processo
un certo numero di imbarcazioni che cercano di entrare nel porto. NB: il numero
di moli è limitato quindi al più 10 imbarcazioni possono soggiornare
contemporaneamente nel porto. Dopo un po' di tempo trascorso a riva (variabile
da imbarcazione a imbarcazione), ogni imbarcazione prende il largo liberando il
molo che occupava.
L'accesso al porto avviene tramite un canale gestito come senso unico alternato.
Ad intervalli regolari vengono fatte entrare alcune imbarcazioni nel porto e poi
fatte uscire alcune imbarcazioni. La durata dei periodi di ingresso ed uscita è
identica. Quindi quando è il turno degli ingressi, le navi ferme al largo iniziano a
entrare, e continuano a farlo per un certo tempo prefissato (a patto che ci siano
moli liberi). Allo scadere del tempo, l'ingresso viene bloccato e si consente alle
navi pronte a partire di uscire, sempre per un tempo prefissato.
Ogni imbarcazione attraccata, avvisa la capitaneria di porto inviando un
messaggio su di una coda (unica per tutte le imbarcazioni e per la capitaneria),
indicante il nome della nave, il carico ed eventuali altre informazioni ritenute
utili. La capitaneria di porto registra tali messaggi in un'area di memoria
condivisa (il registro della capitaneira).
A campione, la capitaneria di porto effettua dei controlli su di alcune
imbarcazioni. A tal fine il processo si forka generando un controllore. Controllore
e nave si scambiano alcune informazioni secondo il protocollo descritto nel
seguito. Il controllore riporta nel registro tutti i passi.
Messaggio 1: da capitaneria a nave: CHECK_START
Messaggio 2: da nave a capitaneira: materiale trasportato + quantità
Messaggio 3: da capitaneira a nave: OK oppure MULTA
La terminazione di tutti i processi figli va intercettata dal corrispodente genitore,
che in tale occorrenza esegue la wait/waitpid.>>