• Non ci sono risultati.

Vecchio valore di NNuovo valore di NYX

N/A
N/A
Protected

Academic year: 2021

Condividi "Vecchio valore di NNuovo valore di NYX"

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

CONCORRENZA – 22 settembre 2003 Esercizio -1: essersi iscritti correttamente per svolgere questa prova.

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

Esercizio 1: Un motore a quattro tempi ha un funzionamento in quattro fasi: aspirazione, compressione, scoppio e scarico. La camera di scoppio e' composta da un cilindro ed un pistone che scorre all'interno del cilindro. In testa ad ogni cilindro ci sono due valvole (di aspirazione e di scarico) e una candela.

Durante la fase di aspirazione occorre aprire la valvola di aspirazione e il pistone scende, durante la fase di compressione il pistone sale con entrambe le valvole chiuse, durante la fase di scoppio la candela produce una scintilla e il pistone scende, durante la fase di scarico deve essere aperta la valvola di scarico e il pistone sale. Scrivere le sincronizzazioni fra pistone, valvole e candela sotto forma di monitor.

Pistone: process while(true)

{

cyl.iniziaascendere() ...

cyl.sceso() cyl.iniziaasalire() ...

cyl.salito() }

Valvola: array i=[a,s] of process { while (true) {

cyl.iniziaadaprire(i) ...

cyl.aperta(i)

cyl.iniziaachiudere(i) ...

cyl.chiusa(i) }

Candela: process { while (true) {

cyl.iniziaascintillare() /* scintilla */

cyl.finescintilla() }

Ci sono problemi di deadlock? Di starvation?

Esercizio 2:

P1: S1.V(); S1.V(); S1.P(); S1.P(); S2.P(); S2.P(); print(A); S1.V();S1.V() P2: S1.P();print(B);S1.V();S1.P();print(C);S1.V();S2.V();

P3: S1.P();print(D);S1.V();S1.P();print(E);S1.V();S2.V();

Scrivere tutte le possibili sequenze generate dall'esecuzione del programma composto dai processi P1,P2 e P3.

I semafori sono tutti inizializzati a zero. Sono possibili casi di deadlock? Se si', quali? Se no, perche'?

Esercizio 3: Sia data una funzione x=f(n,y) che atomicamente fa lo shift a destra di un numero binario. Il bit meno significativo prima dello shift (quello che verrebbe eliminato) viene restituito dopo l'operazione; il bit più significativo viene posto uguale a y. Può questa funzione essere usata come la test&set? In caso negativo, spiegare perchè; in caso positivo, illustrare il codice delle funzioni cs_enter e cs_exit.

Vecchio valore di N Nuovo valore di N Y

X

Riferimenti

Documenti correlati

Otto animali in prova (5 austriaci e 3 romeni) hanno ingerito 7 pasti di latte in più (1 pasto a settimana) degli altri perché risultavano sotto peso agli occhi del titolare, questa

La grande ossessione del tempo pareva essere non tanto la modernità ma il passato: nella filosofia della storia elaborata dall’Estado Novo, due erano le

Il 14 marzo 2020 è stato sottoscritto il “Protocollo condiviso di regolazione delle misure per il contrasto ed il contenimento della diffusione del virus Covid 19

Il 14 marzo 2020 è stato sottoscritto il “Protocollo condiviso di regolazione delle misure per il contrasto ed il contenimento della diffusione del virus Covid 19

Da questo punto di vista la riflessione giuridica hegeliana si colloca all’interno di un più ampio discorso, in quanto lo statuto del diritto come fenomeno

Per realizzare la geometria si è fatto uso del programma SolidWorks: sono state realizzate alcune parti standard del modello, quali gli iniettori ed il volume che simula

[r]

La persona salta dal carrello a terra, dalla parte opposta rispetto al carrello B , con una velocità ⃗ u parallela al binario misurata nel sistema di riferimento del carrello