diff --git a/doc/rapport/devel.tex b/doc/rapport/devel.tex index 7b00f6c..2181c0c 100644 --- a/doc/rapport/devel.tex +++ b/doc/rapport/devel.tex @@ -75,21 +75,34 @@ bibliot pas traitées ici, car leur utilité est décrite dans la partie {\sc Difficultés recontrées}. \begin{itemize} -\item{\sc msgAllocate(\dots)} -\item{\sc msgFree(\dots)} +\item{\sc msgAllocate(\dots)} Prend en argument : un espace de mesage +{\em msgSpace *}, un numéro de {\em pool} qui est un {\em int}, une +taille {\em int} et une option {\em int}. Cette fonction, comme +spécifié dans l'énoncé, alloue un buffer +dans le {\em pool} spécifié, ou sinon dans le {\em pool} le plus proche +en taille (supérieure ou égale) et qui sera ``potentiellement'' libre +le plus rapidement, sauf s'il l'est déjà. Pour cela, on regarde le +nombre de {\em locks}, qu'il y a dessus gr{\^a}ce aux sémaphores. On +choisit le buffer dont le {\em pool} a le moins de ``locks'' en fonction +du nombre de ses buffers. +\item{\sc msgFree(\dots)} Cette fonction prend en argument un espace de +message {\em msgSpace *} et l'adresse d'un buffer {\em void *}. Celle-ci +restitue le buffer au {\em pool} d'où il a été extrait. \item{\sc msgGet(\dots)} Notre fonction {\em void * msgGet(\dots)}, est telle qu'elle corresponde bien à l'énoncé. Elle prend en argument un espace de messages {\em msgSpace *}, un numéro de file, ou {\em queue}, {\em int} et l'adresse d'un buffer {\em void *}. Elle renvoie l'adresse du buffer en t{\^e}te de la file du numéro donné dans l'espace de -messages spécifiés.\\ +messages spécifiés. Lors d'un appel à cette fonction, celle-ci +``locke'' d'abord le sémaphore qu'il y a sur la {\em queue}. Si la file +est vide, cela bloque le {\em get}.\\ {\sc Remarque :} Nous n'avons pas implémenté le cas du \verb+ANYFILE+. -\item{\sc msgList(\dots)} \item{\sc msgPut(\dots)} Cette fonction fait exactement ce qu'elle est sensée faire tel que énoncé dans le rapport. Elle prend en argument un espace de messages {\em msgSpace *}, un numéro de file, ou {\em queue}, {\em int} et l'adresse d'un buffer {\em void *}. Elle insère le buffer dans le numéro -de file de messages de l'espace de messages. +de file de messages de l'espace de messages. Lorsque l'on appelle cette +fonction, à la fin, on ``délocke'' le sémaphore sur la {\em queue}. \item{\sc msgSpaceState(\dots)} Cette fonction prend en argument, un ``id'' d'espace de message, {\em msgSpaceId}, et permet de conna{\^i}tre l'état de l'espace de message dont l'``id'' est donnée en argument.