Questions de cours
On fera cet exercice sans utiliser les notes de cours (ni les corrections de
TD). On pourra utiliser la documentation OCaml (manuel, librairies, etc.)
et Unix (pages man).
Question 1.1
On considère la fonction OCaml Unix.read
correspondant à l'appel système
Unix read
.
- Donner son type.
- Décrire ce qu'elle fait.
- Donner trois raisons différentes d'échec possibles
(on donnera si possible le nom des erreurs associées, mais ce n'est pas
indispensable; dans tous les cas, on expliquera brièvement la raison de
l'échec).
Question 1.2
Un programme séquentiel manipule des données mutables de type state
qui
peuvent être consultées avec une fonction get
de type unit -> state
et
modifiée avec une fonction set
de type state -> unit
. Les fonctions
get
et set
peuvent échouer en levant certaines exceptions.
Afin de pouvoir parallèliser certains calculs en utilisant des
coprocessus, définir des fonctions safe_set
et safe_get
qui
assurent la synchronisation nécessaire autour set
et get
afin de les
utiliser dans des coprossessus.