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.
  1. Donner son type.
  2. Décrire ce qu'elle fait.
  3. 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.