فهرست منبع

chapters/linux_file_descriptor: ajout section communication entre processus

Alexandre Janniaux 6 سال پیش
والد
کامیت
80e790ed31
1فایلهای تغییر یافته به همراه47 افزوده شده و 1 حذف شده
  1. 47 1
      chapters/linux_file_descriptor.tex

+ 47 - 1
chapters/linux_file_descriptor.tex

@@ -1,4 +1,50 @@
-Tout d'abord, nous allons implémenter le transfert de descripteur de fichier
+\section{Communication entre processus}
+
+Dans un premier temps, il faut choisir un mécanisme de communication entre les
+différents processus. Nous allons donc lister rapidement les méthodes
+utilisables.
+
+\begin{itemize}
+    \item Les tubes unix ou pipes unix permettent de réaliser une communication
+        multi-processus unidirectionnel. D'un côté, un producteur écrit dans le
+        tube, ou bloque jusqu'à ce qu'il puisse avoir la place d'écrire. De
+        l'autre côté, un consommateur lit dans le tube ou bloque si aucune
+        données n'est disponible. Les tubes unix ont l'avantage d'être très
+        facile à manipuler et être globalement disponible sur toutes les
+        plateformes importantes sans exception. Néanmoins, il ne s'agit que du
+        transfert de données et il faut donc un mécanisme d'accès pour les
+        ressources. Les tubes Unix peuvent être créés de façon anonymes avec la
+        fonction \inltype{pipe}, soit être nommés via la fonction
+        \inltype{mknode} ou \inltype{mkfifo}.
+
+    \item Les mémoires partagés fournissent un moyen de communication
+        extrêmement performants pour dialoguer. Elles ont besoin d'un mécanisme
+        de synchronisation mais n'ont absolument pas besoin de passer par des
+        appels systèmes hormi pour leur création. C'est donc un candidat de
+        choix pour une communication entre deux processus. En revanche, elle
+        demande l'introduction de beaucoup de contrôle autour pour éviter les
+        bogues classiques en C, les dépassements, les écrasements et les
+        ressources ne peuvent être transmises qu'à travers un autre mécanisme ou
+        une redirection d'IO vers la mémoire partagée.
+        %TODO: expliquer redirection au dessus en citant la partie général: qqun
+        %      fait les IO et redirige le résultat sur la shared memory
+
+    \item Les files de message, ou message queues
+        %TODO
+
+    \item Les sockets unix
+        %TODO
+\end{itemize}
+
+La solution qui s'applique le plus simplement à notre solution tout en
+conservant des performances correctes apparait clairement comme étant les
+sockets unix. Ils fournissent unes permettant d'apporter la gestion des accès.
+Ils fournissent également un moyem de transférer des descripteurs de fichiers
+entre processus.
+
+\section{Partage de ressources entre processus}
+
+Ensuite, nous allons implémenter le transfert de descripteur de fichier
 entre processus. L'objectif derrière cette fonctionnalité est de pouvoir
 utiliser les descripteurs de fichier comme des jetons inforgeables qui apportent
 des accès aux ressources, soit par communication, soit par accès direct.