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 */