[Sistemi Operativi] Esercizi sui semafori
Salve a tutti, potete darmi un parere sulla risoluzione di questi esercizi sui semafori? Grazie in anticipo
Esercizio 1
Tre processi Po,P1 e P2 devono accedere ad una risorsa condivisa R. I processi accedono alla risorsa solo e saltando utilizzando uno schema round robin P0 ,P1 e P2. Illustrare una soluzione mediante pseudicodice che faccia uso di semafori come primitive di sincronizzazione per l'accesso alla risorsa condivisa e che rispetti la modalità d'acceesso.
Esercizio 2
Tre processi lettori P0, P1 e P2 ed un processo scrittore S accedono ad una risorsa condivisa R. Il processo scrittore S accede alla risorsa solo al termine dell’accesso da parte del processo P0. I processi P0, P1 e P2 accederanno alla risorsa solo quando S avrà rilasciato la risorsa. Illustrare una soluzione mediante pseudicodice che faccia uso di semafori come primitive di sincronizzazione per l’accesso alla risorsa condivisa e che rispetti la modalita` di accesso.
Esercizio 1
Tre processi Po,P1 e P2 devono accedere ad una risorsa condivisa R. I processi accedono alla risorsa solo e saltando utilizzando uno schema round robin P0 ,P1 e P2. Illustrare una soluzione mediante pseudicodice che faccia uso di semafori come primitive di sincronizzazione per l'accesso alla risorsa condivisa e che rispetti la modalità d'acceesso.
Esercizio 2
Tre processi lettori P0, P1 e P2 ed un processo scrittore S accedono ad una risorsa condivisa R. Il processo scrittore S accede alla risorsa solo al termine dell’accesso da parte del processo P0. I processi P0, P1 e P2 accederanno alla risorsa solo quando S avrà rilasciato la risorsa. Illustrare una soluzione mediante pseudicodice che faccia uso di semafori come primitive di sincronizzazione per l’accesso alla risorsa condivisa e che rispetti la modalita` di accesso.
Risposte
Quale sarebbe la domanda? A parte il fatto che gli esercizi mi sembrano poco sensati (il primo esercizio si implementa ad esempio più facilmente con un ciclo in quanto hai in pratica trasformato il programma da concorrente a sequenziale), la tua soluzione mi sembra andare bene (almeno ad una rapida occhiata). Nel secondo esercizio avrei probabilmente scritto due codici diversi per P0 e gli altri lettori.