Elle s'applique à ma classe des systèmes discrets,
caractérisés par la présence des événements aléatoires ou liés à des variables stochastiques. Trois stratégies de simulation discrète peuvent être utilisées: ❑ Simulation des événements (ordonnancement des événements). ❑ Simulation des activités (balayage des activités) ❑ Simulation des processus (interaction des processus). Simulation des événements Le système est étudié à des instants discrets, non fixes; c'est-à-dire lorsque des événements surviennent et altèrent l'état du système. Ces changements de l'état du système peuvent générer à leur tour de nouveaux événements et ainsi de suite. Le système de files d'attente est un modèle type de la Simulation des événements Simulation des événements Dans l'exemple de la cabine téléphonique , le parcours de l'usager peut être schématisé comme suit: Exemple d'événements: Arrivée d'un client. Début de service. Départ d’un client Le temps de simulation Utilisation d’une horloge de simulation. Unité de temps est choisi en fonction de besoin L’horloge peu avancer par: ➢ bonds réguliers ➢ Bonds irréguliers (simulation discrète) Les arrivées dans le système Distribution de probabilités déterminée pour les arrivées et la durée de service Elle doit correspondre a la nature réelle de phénomène. Exemple: dans une banque: exponentielle Analyse et description de l’algorithme de simulation analyse des composante: Les entités du système et leurs attributs EVENT_list Analyse et description de l’algorithme de simulation Algorithme Début Initialisation () Tantque (la simulation continue) faire Extraire un événement de l’Event_list; Traiter l’événement Effectuer des statistiques Fin tant que Imprimer les résultats () Fin Analyse et description de l’algorithme de simulation A. Terminaison: Le programme de simulation s’arrête: ✓ Lorsque un nombre spécifié est servi ✓ Lorsqu’une certaine durée s’écoule. Analyse et description de l’algorithme de simulation B. Classification des événements: ➢ Événement primaire ➢ Événement secondaire ➢ Événement secondaire conditionnel ➢ Événement secondaire inconditionnel Analyse et description de l’algorithme de simulation C. Traitement de l’évènement ➢ Événement primaire (EP) 1. Avancer l’horloge de simulation jusqu’au temps de réalisation de cet événement. 2. Déterminer le temps de réalisation du prochain EP et l’insérer dans EVENT_list 3. Changer l’état du système conformément à cet événement 4. Tester s’il y a un Événement secondaire conditionnel qui se réalise et l’insérer dans l’Event_list et le traiter dans l’immédiat. Analyse et description de l’algorithme de simulation C. Traitement de l’évènement ➢ Événement secondaire (ES) 1. Avancer l’horloge de simulation jusqu’au temps de réalisation de cet événement. 2. Changer l’état du système conformément à cet événement 3. Placer tous les Événement s secondaire inconditionnel qui dans l’Event_list. 4. Tester s’il y a un Événement secondaire conditionnel qui se réalise et l’insérer dans l’Event_list et le traiter dans l’immédiat. Analyse et description de l’algorithme de simulation D. Statistique ➢ A chaque traitement d’Événement on peut calculer certaine statistique, exemples: 1. Temps d’occupation du serveur 2. Nombre de clients servis sans faire la queue 3. Nombre maximum de clients dans la FA 4. …. Variantes des algorithmes de simulation des événements Simulation orientée serveur Simulation orientée client Simulation avec plusieurs serveur en parallèle Simulation orientée serveur On s’intéresse pas au clients de façon individuelle, mais la fille d’attente entière sera considérée comme une entité. L’étude est concentrer sur le serveur. Variantes de l’algorithme de simulation des évènements Il existe trois variantes: ➢Simulation orientée serveur ➢Simulation orientée client ➢Simulation avec plusieurs serveurs Simulation orientée serveur
• On s’intéresse pas au client d’une façon individuelle
La FA est considérée comme entité L’étude se concentre sur le serveur Statistiques: Taille de la FA (q) Temps d’occupation du serveur. Temps d’inoccupation du serveur … Simulation orientée serveur
• Lorsqu’un client arrive, il se fait servir immédiatement
si la file d’attente est vide « et le serveur est inoccupé » si non il entre en file d’attente selon la discipline suggérée. • Lorsque le serveur finit de servir un client, ce dernier quitte le système, et un autre client vient se faire servir s’il en reste en file d’attente, si non le serveur devient inoccupé. Simulation orientée serveur
Description des entités :
Entité Queue q: entier; /* taille de la file d’attente*/ /*nombre de clients en attente*
Serveur Serveur_libre: logique /*état du serveur*/
Tinacet: reel; /* temps d’inactivité du serveur*/ Simulation orientée serveur
Description des événements du système:
Evènement Type Attribut Condition
Arrivée Primaire Tarr: réel /
Début service Secondaire Tdeb_serv: reel Serveur_libre
conditionnel et q>0
Départ Secondaire Tdep:réel /
inconditionnel Simulation orientée serveur Structure de données: Event_list: liste d’enregistrements composés de: Event_type {Arrivé, début,_service, départ} Tevent:réel Simulation orientée serveur Algorithme: Départ | Initialisation (); | Tantque Nclient<Nmax Faire | | extraire le premier évènement l’Event_liste; | | selon (event_type) Faire | | | arrivée: arriver(); | | |début_service: débuter_service(); | | |départ: partir(); | | |fin cas | | fin tantque | Imprimer_résultat(); FIN Simulation orientée serveur Initialisation: Départ | Initialisation (arrivée, 0) dans l’Event_list; /*mise en place du premier évènement primaire */ |serveur_libre vrai; | t 0; /*inisialisation de l’horloge de simulation*/ |q0;/*nombre de client en attente */ |Nmax /*nombre maximum de clients traiter*/ |qmax 0; | Nclient0; /*compteur des clients déjà servis*/ | Totinact0; /*temps total d’inactivité*/ | FIN Simulation orientée serveur Procedure Arriver() Départ | | t Tevent; /*avancer l’horloge de simulation*/ |tarrt+temps _inter_arrivées; |inserer (arrivée, tarr) dans l’event_list; |q q+1; | si q>qmax alors |qmax q finsi | si serveur_libre alors |inserer (début_service, t) dans l’évent_liste | finsi FIN Simulation orientée serveur Procédure Debuter_service() Debut | t Tevent; /*avancer l’horloge de simulation*/ |serveur_libre faux; |qq-1; |Tdept+estimation du temps de service; |inserer(Départ, Tdep) dans l’évent_liste | si (T-Tinact) <>0alors | TotinactTotinact+(t-Tinact); |finsi FIN Simulation orientée serveur Procedure Partir() Debut | t Tevent; /*avancer l’horloge de simulation*/ |serveur_libre vrai; |tinactt; |nclientnclient+1; | si q<>0 alors |inserer (début_service, t) dans l’évent_liste |finsi FIN
Metasploit pour débutant : le guide du débutant pour bypasser les antivirus, contourner les pare-feu et exploiter des machines avec le puissant framework Metasploit.