Guest User

Untitled

a guest
Jun 18th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1.  
  2. _monitor(bounded_buffer)
  3. op signal_voiture(i : int),
  4. file_expedition(i : int) returns aDebarquer : int,
  5. debarque_visiteur(i : int; j : int)
  6.  
  7. const m : int := 10 /* Visiteurs */
  8. const n : int := 22 /* Voitures */
  9.  
  10. _body(bounded_buffer)
  11.  
  12. var noVisiteur : int := 0
  13.  
  14. _condvar1(visAttente, m)
  15. _condvar(voiAttente)
  16. _condvar(visiteur_expo)
  17.  
  18. _proc( signal_voiture(i) )
  19. write("Le visiteur", i, "veut prendre une voiture")
  20. _signal(voiAttente)
  21.  
  22. noVisiteur := i
  23.  
  24. _signal(visiteur_expo)
  25. _wait(visAttente[i])
  26. _proc_end
  27.  
  28. _proc( file_expedition(i) returns aDebarquer)
  29. write("La voiture", i, "se place dans la file d'attente")
  30. _pri_wait(voiAttente, i)
  31. write("La voiture", i, "part en expédition")
  32.  
  33. _wait(visiteur_expo)
  34. write("Le visiteur", noVisiteur, "prend la voiture", i, "et part en expédition")
  35.  
  36. aDebarquer := noVisiteur
  37. _proc_end
  38.  
  39. _proc( debarque_visiteur(i, j) )
  40. write("La voiture", i, "débarque le visiteur", j)
  41. _signal(visAttente[j])
  42. _proc_end
  43. _monitor_end
  44.  
  45. resource park_jurassique()
  46. import bounded_buffer
  47.  
  48. procedure musee(i : int)
  49. do true ->
  50. write("Le visiteur", i, "visite le musée")
  51. fa j : = 1 to 100000 ->
  52. af
  53.  
  54. bounded_buffer.signal_voiture(i)
  55. od
  56. end
  57.  
  58. procedure expedition(i : int)
  59. do true ->
  60. var vis : int := 0
  61.  
  62. vis := bounded_buffer.file_expedition(i)
  63. fa j : = 1 to 100000 ->
  64. af
  65. bounded_buffer.debarque_visiteur(i, vis)
  66. od
  67. end
  68.  
  69. process visiteur(i := 1 to m)
  70. musee(i)
  71. end
  72.  
  73. process voiture(i := 1 to n)
  74. expedition(i)
  75. end
  76. end
Add Comment
Please, Sign In to add comment