ATTENTION !

Ne pas oublier d'inclure le fichier interf.h

et d'initialiser l'interface par init_interf();

INTERFACE pour TP I3 cours Concurrence

Mode d'emploi sous forme d'exemples

/************************************************/

/* chronometrage

------------- */

chrono tp; /* variable chronometre */

int temps_ecoule;

/* variable valeur retournee: temps ecoule depuis start_chrono */

start_chrono( &tp ); /* declenche le chronometre */

/* code en retour: 0=Ok, -1=erreur */

temps_ecoule = read_chrono( &tp ); /* Lecture chronometre */

/*************************************************/

/* Endormissement

--------------*/

rsleep( 500 ); /* argument en ms */

/* rsleep permet des endormissements inferieurs a 1 seconde, mais superieurs a 10 ms */

sleep( 1 ); /* argument en secondes */

/*************************************************/

/* Processus

---------*/

int id; /* identification du processus genere*/

TASK toto()

/* description d'un processus: ressemble à un sous-programme */

{ /* corps du processus */}

id = create_task( 0, toto );

/* 1er argument: priorite nice; entre 0 (le +) et 20 (le -)

2eme: étiquette du descripteur de processus */

/*************************************************/

/* Arrêt, Marche d'un processus

----------------------------*/

arret(); /* Le processus appelant est bloqué jusqu'a ce qu'un autre processus fasse un "marche" */

marche( id ); /* id = identificateur du processus arrêté, à remettre en exécution */

/*************************************************/

/* Verrouillage ordonnanceur

------------------------- */

lock(); /* verrouillage */

unlock(); /* deverrouillage */

/*************************************************

/* Allocation Memoire

------------------ */

un_type *pointeur; /* pointeur pour recevoir adresse segment */

pointeur = (un_type)create_segment( sizeof un_type );

/* allocation en mémoire partagée */

pointeur = (un_type)malloc( sizeof un_type );

/* allocation en mémoire non partagée */