La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Système à temps partagé. 2 Soit un système à temps partagé où les utilisateurs composent un numéro pour accéder au système. K ports pour accéder au système.

Présentations similaires


Présentation au sujet: "Système à temps partagé. 2 Soit un système à temps partagé où les utilisateurs composent un numéro pour accéder au système. K ports pour accéder au système."— Transcription de la présentation:

1 Système à temps partagé

2 2 Soit un système à temps partagé où les utilisateurs composent un numéro pour accéder au système. K ports pour accéder au système. Si tous les ports sont occupés, un signal occupé est transmis. Lusager devra réessayer plus tard. Lorsquun usager accède au système, le port choisi nest plus disponible tant et aussi longtemps que lusager na pas raccroché le téléphone. K ports usagers Noeud de calcul

3 Système à temps partagé3 Les usagers tentent daccéder au système en des temps aléatoires à un taux moyen de 35 appels/heure. La longueur moyenne dune session au terminal est de 25 minutes. Il existe 14 ports disponibles. Plusieurs demandes ont été faites pour améliorer les capacités de la machine (UCT, mémoire), augmenter le nombre de ports et la vitesse de transmission de façon à améliorer le niveau de service. Lacquisition de nouveaux ports est dispendieux. coût en matériel : $ service téléphonique : $ 25/mois Le système peut supporter un maximum de 32 ports et la puissance du système est limitée.

4 Système à temps partagé4 Temps de calcul moyenCoûtMémoire suppl ,0001M 730,0002M En augmentant le taux de transmission entre lordinateur et les usagers de 120 cps (caractères/sec.) à 960 cps, le temps moyen dune session pourrait être réduit de 3 min. Coût :$400/terminal (100 terminaux peuvent se connecter au système). Laugmentation de la mémoire est aussi à envisager.

5 Système à temps partagé5 Formulation du problème Nous pouvons utiliser un modèle de simulation pour prédire la performance du système lorsque ses paramètres changent: Quelle est la probabilité de se relier au système, laquelle est une fonction du nombre de ports ? ou Quel est le nombre moyen de ports occupés lequel est une fonction de la quantité de la mémoire, du nombre de ports, de la vitesse de transmission. ou Quel est le niveau de satisfaction des usagers en fonction des ressources ajoutées. ou encore,

6 Système à temps partagé6 Formulation du problème MaxSatisfaction de lutilisateur sujet àCoût total des dépenses < C o MinCoût total des dépenses sujet àSatisfaction des usagers > S o Minlongueur moyenne dune session sujet àCoût total < C o Min Coût total (Coût des usagers + des ressources) pour optimiser une fonction objectif sujet à certaines contraintes: ou

7 Système à temps partagé7 Formulation du problème Plusieurs de ces objectifs et contraintes ont besoin dêtre explicités davantage: La satisfaction des usagers nécessite de considérer la probabilité quun usager accède au système dès la première fois. le temps quun usager reste dans le système une fois reliée. Pour mesurer les temps dattente des usagers, nous devons considérer le temps dattente avant davoir accès au système. les temps dattente avant davoir accès aux ressources du système. etc.

8 Système à temps partagé8 Formulation du problème Pour faciliter la formulation du problème et le développement du modèle, nous considérons les paramètres et variables suivants: k o : nombre courant de ports (t): taux darrivée moyen des usagers au temps t C T : Coût mensuel pour chaque ligne téléphonique additionnelle C H : Coût en matériel par port additionnel C U : Coût permettant à tous les usagers de transmettre à 960 cps L: durée moyenne de vie du matériel k l : nombre de ports additionnels C R : investissement dans des ressources additionnelles(mémoire) K: nombre total de ports : k o + k l U: C U : 0 si les usagers demeurent à 120 cps. E[T]: durée moyenne dune session dun usager.

9 Système à temps partagé9 Formulation du problème ressources matérielaugmentationlignes téléphoniques additionnellesportvitesseadditionnelles transmission n(t): nombre dusagers reliés au système au temps t. TC: coût total annuel C R +k l C H +U/L +12 k l C T P K : Prob. un usager ne peut être relié au système immédiatement car les K ports sont occupés P C : Prob. un usager peut être relié au système immédiatement. Niveau de service = 1-P K.

10 Système à temps partagé10 Formulation du problème Le choixsemble le plus judicieux. Note : On pose P o Nous cherchons à : Min TC sujet à P K < P o 1.2. Min P K sujet à TC < TC o 3. MinCoût total incluant le coût associé au temps dattente des usagers 1.

11 Système à temps partagé11 DÉVELOPPEMENT DU MODÈLE ANALYTIQUE Un modèle analytique peut être développé si les hypothèses suivantes sont satisfaites: a)les temps de liaison et temps entre des appels au système sont des v.a. expon. (durée de service) (temps entre les arrivées de clients) b)la présence dun nombre initial dusagers reliés au système au début de la journée a un effet qui sestompe rapidement. c)la distribution du temps entre les appels ne change pas (substantiellement du moins) lorsque tous les ports sont occupés. Modèle de file dattente.

12 Système à temps partagé12 Notations P i Prob i usagers sont reliés au système, i = 0, 1, 2,..., K =1 / temps moyen entre les arrivées =1 / longueur moyenne dune session K P 0 = ( ) i / i! -1 i=0 P i =P 0 ( ) i / i 1 <= i <= K P K =Prob tous les ports sont occupés ( ) K / K ( ) i / i! ( * ) i=0

13 Système à temps partagé13 DÉVELOPPEMENT DU MODÈLE ANALYTIQUE Objectif:Min TCApproche:Générer les 6 graphiques possibles P C 0.98et choisir la meilleure solution. 108 choix possibles (2 vitesses de transmission, 3 tailles de la mémoire, 18 ports supplémentaires). Chacune de ces alternatives est caractérisé par le temps de liaison (1/ ) et le nombre de ports K. le niveau de service P C peut être calculé à laide de ( * ) pour chaque alternative. En considérant une vitesse de transmission et une taille de la mémoire, le coût total annuel et le niveau de service peuvent être calculés en fonction du nombre de ports.

14 Système à temps partagé14 DÉVELOPPEMENT DU MODÈLE ANALYTIQUE ,000 12,000 14,000 16, cps et 3M TC PKPK NIVEAU DE SERVICENIVEAU DE SERVICE COÛT TOTALANNUELCOÛT TOTALANNUEL Nombre de ports additionnels

15 Système à temps partagé15 DÉVELOPPEMENT DUN MODÈLE DE SIMULATION Question:Les hypothèses imposées pour développer notre modèle analytique viennent-elles entacher nos résultats? Paramètres:- temps moyen entre 2 arrivées dusagers - # ports au total - durée moyenne dune session au terminal. État:- # ports occupés - temps darrivée dun usager - temps où lusager du port I termine sa session - Indicateur de létat du port I (occupé ou non). MESURES DE PERFORMANCE (a)- accumulation des temps de liaison au système (b)- nombre total dappels dusagers pour accéder au système (c)- nombre total dappels dusagers qui ont accédé au système (d)- probabilité quun usager puisse accéder au système (c)/(b)

16 Système à temps partagé16 MODÈLE DE SIMULATION /***************************************************************** Simulation d'un système à temps partagé. Le système est initialement vide et on simule pendant une période [Duree_du_rechauffement, Duree_de_la_simulation]. L'intervalle de réchauffement du simulateur est [0, Duree_du_rechauffement]. *****************************************************************/ #include #define Kmax 32// # maximum de ports

17 Système à temps partagé17 MODÈLE DE SIMULATION const double Maximum_des_reels = 3.4E38; long souche; enum Bool {false, true}; float Temps;// Instant courant de la simulation float Duree_de_la_simulation;// Durée de la simulation float Duree_du_rechauffement;// Durée du réchauffement float temps_moyen_entre_2arrivees;// Temps moyen entre 2 arrivées float longueur_session_moyenne;// Durée moyenne d'une session enum Evenement {Arrivee = 0, Depart = 1,Fin_du_rechauffement = 2, Fin_de_simulation = 3}; enum Evenement Evenement_courant;// Événement que nous sommes // en train de traiter float Instant_Prochain_Evenement[3]; // Instant d'occurrence du prochain // événement prévu de chaque type

18 Système à temps partagé18 MODÈLE DE SIMULATION typedef struct Port { float Debut_session;// Début d'une session float Longueur_session;// Durée d'une session }; int Port_courant;// Prochain port libéré. int K;// # ports disponibles enum Bool Ports_utilises[Kmax];// Information sur les sessions en cours struct Port Information_sur_les_ports[Kmax]; int Nombre_d_appels;// Nombre total d'appels au système int Nombre_d_appels_reussis;

19 Système à temps partagé19 MODÈLE DE SIMULATION float Duree_entre_deux_arrivees(); float Duree_du_service(); void Lire_Donnees(); void Initialisation_Simulation(); void Arrivee_d_un_client(); void Fin_d_une_session(); void Rechauffement(); void Rapport();

20 Système à temps partagé20 MODÈLE DE SIMULATION void main() { Lire_Donnees(); Initialisation_Simulation(); do { if(Instant_Prochain_Evenement[Arrivee] < Instant_Prochain_Evenement[Depart]) Evenement_courant = Arrivee; else Evenement_courant = Depart; Temps = Instant_Prochain_Evenement[Evenement_courant]; if(Temps >= Duree_de_la_simulation) {Temps = Duree_de_la_simulation; Evenement_courant = Fin_de_simulation;}; if(Temps > Instant_Prochain_Evenement[Fin_du_rechauffement]) {Temps = Duree_du_rechauffement; Evenement_courant = Fin_du_rechauffement;}; switch (Evenement_courant) {case Arrivee : Arrivee_d_un_client(); break; case Depart : Fin_d_une_session(); break; case Fin_du_rechauffement : Rechauffement(); break; case Fin_de_simulation : Rapport(); break;}; } while (Evenement_courant != Fin_de_simulation); }

21 Système à temps partagé21 MODÈLE DE SIMULATION float Duree_entre_deux_arrivees() { // Génère la durée entre deux arrivées successives. return (float) (-log(1.0 - (float)((rand() % 10000) / )) * temps_moyen_entre_2arrivees); } float Duree_du_service() { // Génère une durée de service. return (float) (-log(1.0 - (float)((rand() % 10000) / )) * longueur_session_moyenne); }

22 Système à temps partagé22 MODÈLE DE SIMULATION void Lire_Donnees() { /*Lecture de la durée de la simulation, du temps moyen entre deux arrivées successives, de la longueur moyenne d'une session et du nombre de ports disponibles. Impression des données d'entrée.*/ printf(" Veuillez fournir les renseignements suivants : \n\n"); printf(" Duree du rechauffement = "); scanf("%f", &Duree_du_rechauffement); printf(" Duree de la simulation = "); scanf("%f", &Duree_de_la_simulation); printf(" Temps moyen entre deux arrivees successives = "); scanf("%f", &temps_moyen_entre_2arrivees); printf(" Longueur moyenne d'une session = "); scanf("%f", &longueur_session_moyenne); printf(" Nombre de ports disponibles = "); scanf("%d", &K); printf(" \n"); }

23 Système à temps partagé23 MODÈLE DE SIMULATION void Initialisation_Simulation() { int i; /*Initialise le système à vide, initialise l'horloge et tous les compteurs à 0, le prochain événement est une arrivée et on prévoit son instant d'occurrence.*/ Temps = 0.0f; souche = time(NULL);srand((int)souche); for (i = 0; i < K; i++) Ports_utilises[i] = false; Instant_Prochain_Evenement[Arrivee] = Duree_entre_deux_arrivees(); Instant_Prochain_Evenement[Depart] = (float) Maximum_des_reels; Instant_Prochain_Evenement[Fin_du_rechauffement]=Duree_du_rechauffement; Nombre_d_appels = 0; Nombre_d_appels_reussis = 0; }

24 Système à temps partagé24 MODÈLE DE SIMULATION void Arrivee_d_un_client() { int i = 0;enum bool Port_trouve = false; Nombre_d_appels += 1; do {if (Ports_utilises[i] == false) {Ports_utilises[i] = true; Information_sur_les_ports[i].Debut_session = Temps; Information_sur_les_ports[i].Longueur_session = Duree_du_service(); if(Instant_Prochain_Evenement[Depart] > Temps + Information_sur_les_ports[i].Longueur_session) {Port_courant = i; Instant_Prochain_Evenement[Depart] = Temps + Information_sur_les_ports[i].Longueur_session; }; Nombre_d_appels_reussis += 1;Port_trouve = true; }; i += 1; } while ((Port_trouve == false) && (i < K)); Instant_Prochain_Evenement[Arrivee] = Temps + Duree_entre_deux_arrivees(); }

25 Système à temps partagé25 MODÈLE DE SIMULATION void Fin_d_une_session() { float T = (float) Maximum_des_reels;int i; Ports_utilises[Port_courant] = false; for (i = 0; i < K; i++) if(Ports_utilises[i] == true) {if (Information_sur_les_ports[i].Debut_session + Information_sur_les_ports[i].Longueur_session < T) {T = Information_sur_les_ports[i].Debut_session + Information_sur_les_ports[i].Longueur_session; Port_courant = i; }; if(T < Maximum_des_reels) Instant_Prochain_Evenement[Depart] = Information_sur_les_ports[Port_courant].Debut_session + Information_sur_les_ports[Port_courant].Longueur_session; else Instant_Prochain_Evenement[Depart] = (float) Maximum_des_reels; }

26 Système à temps partagé26 MODÈLE DE SIMULATION void Rechauffement() { Instant_Prochain_Evenement[Fin_du_rechauffement] = (float) Maximum_des_reels; Nombre_d_appels = 0; Nombre_d_appels_reussis = 0; } void Rapport() { //Imprime la probabilité qu'un usager puisse accéder au système. printf("Probabilite qu'un usager puisse acceder au systeme : %.3f", ((float) Nombre_d_appels_reussis) / (float) Nombre_d_appels); }

27 Système à temps partagé27 MODÈLE ÉTENDU DE SIMULATION À laide de notre modèle de simulation, nous pouvons relâcher les hypothèses imposées sur la distribution des temps darrivées et des durées de service. Grâce à la simulation, nous pouvons considérer aussi dautres aspects du système, ce qui serait impossible avec un modèle analytique. Représenter le comportement des usagers lorsquils ne réussissent pas à obtenir une ligne du premier coup. Catégories dusagers. etc.


Télécharger ppt "Système à temps partagé. 2 Soit un système à temps partagé où les utilisateurs composent un numéro pour accéder au système. K ports pour accéder au système."

Présentations similaires


Annonces Google