Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- _monitor(bounded_buffer)
- op signal_voiture(i : int),
- file_expedition(i : int) returns aDebarquer : int,
- debarque_visiteur(i : int; j : int)
- const m : int := 10 /* Visiteurs */
- const n : int := 22 /* Voitures */
- _body(bounded_buffer)
- var noVisiteur : int := 0
- _condvar1(visAttente, m)
- _condvar(voiAttente)
- _condvar(visiteur_expo)
- _proc( signal_voiture(i) )
- write("Le visiteur", i, "veut prendre une voiture")
- _signal(voiAttente)
- noVisiteur := i
- _signal(visiteur_expo)
- _wait(visAttente[i])
- _proc_end
- _proc( file_expedition(i) returns aDebarquer)
- write("La voiture", i, "se place dans la file d'attente")
- _pri_wait(voiAttente, i)
- write("La voiture", i, "part en expédition")
- _wait(visiteur_expo)
- write("Le visiteur", noVisiteur, "prend la voiture", i, "et part en expédition")
- aDebarquer := noVisiteur
- _proc_end
- _proc( debarque_visiteur(i, j) )
- write("La voiture", i, "débarque le visiteur", j)
- _signal(visAttente[j])
- _proc_end
- _monitor_end
- resource park_jurassique()
- import bounded_buffer
- procedure musee(i : int)
- do true ->
- write("Le visiteur", i, "visite le musée")
- fa j : = 1 to 100000 ->
- af
- bounded_buffer.signal_voiture(i)
- od
- end
- procedure expedition(i : int)
- do true ->
- var vis : int := 0
- vis := bounded_buffer.file_expedition(i)
- fa j : = 1 to 100000 ->
- af
- bounded_buffer.debarque_visiteur(i, vis)
- od
- end
- process visiteur(i := 1 to m)
- musee(i)
- end
- process voiture(i := 1 to n)
- expedition(i)
- end
- end
Add Comment
Please, Sign In to add comment