Cours INF8701: Simulation des systèmes discrets

(Automne 2005 [2005-10-12] )


Travail pratique no. 2


Objectifs

Le but de ce travail pratique est d'initier l'étudiant à la simulation d'un système simple. Ce dernier devra établir un modèle qu'il implantera, et s'assurer avec les résultats obtenus que ce modèle représente une bonne approximation du système à simuler. Ce travail pratique familiarisera l'étudiant avec l'utilisation des ressources et des processus de SIMSCRIPT, ainsi que la cueillette de statistiques.


Travail à effectuer

Définition du système

Considérons un ordinateur central dont les heures d'opération normale sont de 7:00 à 24:00; mais qui opère jusqu'à ce que tous les travaux soumis pendant les heures d'ouverture (avant 24:00) soient exécutés. Les travaux sont soumis à l'ordinateur et les temps d'inter-arrivée suivent une distribution exponentielle de moyenne 1.92 minutes. Les travaux sont soumis dans 4 classes d'exécution, et la priorité associée aux travaux par le processeur est dans l'ordre décroissant des classes ( i.e. 4, 3, 2, 1). La proportion des travaux de chacune des classes, le temps de traitement moyen, ainsi que le type de classe sont les suivants:

Classe

Proportion

%

Type

Temps de traitement

Moyenne (en minutes)

4

5

Express

0.25 0.05 0.3 0.15 0.15 0.6 0.2 0.7 0.1 0.8   *

3

50

Normale

0.15 0.5 0.3 1 0.35 1.2 0.15 2 0.05 3   *

2

30

Différée

0.3 0.45 0.4 2 0.3 3   *

1

15

Nocturne

0.3 0.6 0.2 0.9 0.1 4 0.2 6 0.2 7   *


Le temps de traitement par le processeur des travaux suit une distribution empirique donnée dans le tableau précédent (fonction de densité); la quatrième colonne se lit ainsi : probabilité-1, valeur-1, probabilité-2, valeur-2, ....... Chaque tâche entre dans une file d'attente pour un traitement subséquent.

 Le processeur (CPU) pour l'exécution d'au maximum k = 4 tâches simultanément utilise la technique du tourniquet [time-slicing] en attribuant une tranche de temps à chacune des tâches en plus de changement du contexte [overhead]. Les tâches de plus haute priorité réquisitionnent le processeur avant les tâches de priorité inférieure.

Le processeur alloue une tranche de 0.1 seconde à laquelle il faut ajouter un [overhead] de 0.015 seconde.

Lors de l’exécution, étant donné les priorités, les tâches de plus haute priorité se verront attribuer toutes les tranches de temps jusqu’à un maximum de t=6 tranches; ensuite, leur priorité est réduite d’une unité. Ensuite; les tâches de priorité intermédiaire se voient attribuer toutes les tranches de temps jusqu’à un maximum de t=4 tranches  et leur priorité est réduite d’une unité. Une tâche ne peut avoir une priorité négative.


Modèle

Le modèle peut être schématisé ainsi:


Travail demandé

On demande de simuler ce service informatique pour les cas suivants:

a) l'ordonnancement au processeur est exécuté sans réquisition ([not preempted]),

b) Si un travail de classe i est en exécution et qu'un travail de classe j pour j > i est soumis, ce dernier réquisitionne le processeur. Le travail qui a subi la préemption joint la file d'attente de sa classe avec la priorité la plus élevée, et sera éventuellement réexécuté à partir du point d'interruption. Ne pas utiliser la méthode du tourniquet. Pour simplifier, le processeur ne traite qu'une tâche à la fois.

Pour chaque classe, recueillir les statistiques appropriées sur le nombre moyen et la durée moyenne des travaux dans la file, l'intervalle moyen des interarrivée, etc....... Déterminer le pourcentage d'utilisation du processeur ainsi que la proportion attribuée à chaque classe.