#ifndef SYSTEME_H_
#define SYSTEME_H_

/**
 * @file Systeme.h
 * TD n°6 :  sem06-td-Cpp2
 * @author l'équipe pédagogique 
 * @version 1 23/01/11
 * @brief Entête du système
 * Structures de données et algorithmes - DUT1 Paris 5
 */
 
#include "File.h"

struct Systeme {
	File fProc; //file des processus en concurrence
	unsigned int quantum; //quantum du temps d'exécution du processeur
};

/**
 * @brief Initialiser le système
 * @param[out] s : le système
 * @param[in] c : capacité de la file
 * @param[in] q : quantum d'exécution
 */
void initialiser(Systeme& s, unsigned int c, unsigned int q);

/**
 * @brief Désallouer le système
 * @param[in,out] s : le système
 */
void detruire(Systeme& s);

/**
 * @brief Lancer un processus dans le systeme
 * @param[in,out] s : le système
 * @param[in] p : le système
 */
void lancerProcessus(Systeme& s, const Processus& p);

/**
 * @brief Gérer les proccessus concurrents
 * @param[in,out] s : le système
 */
void gererProcessus(Systeme& s);

/**
 * @brief Affichage d'un processus
 * @param[in,out] os : le flot de sortie
 * @param[in] p : le processus
 */
//void afficher (iostream& os, const Processus& p);

#endif /*SYSTEME_H_*/
