???
This commit is contained in:
parent
eff2be3efa
commit
0293b5482c
1 changed files with 18 additions and 5 deletions
|
@ -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.
|
||||
|
|
Loading…
Reference in a new issue