• Aucun résultat trouvé

TP 13

N/A
N/A
Protected

Academic year: 2022

Partager "TP 13"

Copied!
4
0
0

Texte intégral

(1)

Université de Nice Sophia Antipolis Janvier 2006 IUT- Département d’Informatique

TD Architecture 2

TP 13

I. Objectifs :

Prise de contact avec le noyau et ses primitives

Primitives d’affichage rapide (création de fenêtres, affichage dans ces fenêtres ...)

Tâche de gestion

Terminaison des tâches et retour au DOS

Problème de priorité

Partage du temps et notion de région.

II. Rappel :

Les fichiers objets qui contiennent les primitives du noyau ainsi que celles da’ffichages se trouvent sont noyau.obj et video.obj et se trouvent sour //moby/Applications/BC31/STR/BIN.

Ces fichiers .obj sont à ajouter au projet sous Borlandc pour que le link se fasse correctement.

Les .h correspondants sont sous //moby/Applications/BC31/STR/INCLUDE.

Le code d’initialisation du module noyau a pour rôle de créer une première tâche appelé ProcessusIdle en lui affectant la priorité maximum InitNoyau().

Primitives Vidéo :

InitVideo() ;

F1 = OuvreFen(X, Y, X+L, Y+H, CoulFond, CoulAff, «Titre»);

Rend le numéro de la fenêtre (Word)

CoulFond = noir, bleu, vert, cyan, rouge, marron, magenta

EffaceFen(Fi);

FermeFen(Fi);

SelectFen(Fi);

Selection d’une fenêtre avant d’utiliser EcrVar

LireCar(Fi, ON/oFF, &Car);

Lecture suspensive

Une seule tâche peut faire un LireCar

ON: affichage du caractère en echo; OFF : pas d’echo

EcrCar(Fi, Car);

EcrVar(«Texte %d»,Var);

Format identique au printf

EcrTexte(Fi, « Texte ») ; Gestion des tâches :

InitNoyau().

CreateTask(Word IdTache, Word PrioTache, Word (*Tache)()) : Inexistante->

Dormante

StartTask(Word IdTache); Dormante -> Prete

EnterRegion(); Inhibe l’ordonnanceur

LeaveRegion(); Autorise l’ordonnanceur

(2)

Temporisations :

Tempo10( Word Durée) ;

Tempo(Word Durée)

III. Organisation du TD : A. Multi fenêtrage

On crée une tâche Tache_Gene_Evts qui va écrire dans 5 fenêtres différentes en fonction du caractère lu au clavier.

TP5a.C : Multi-Fenêtrage

Fonction :

Création de fenêtres avec le système de Multi-Fenêtrage VIDEO et opérations d'affichage dans les fenêtres Enlever le while(TRUE) à la fin du main et expliquer Voici la description des procédures que vous devez déclarer.

void Proc_<X> :

Ecrire Texte dans fenêtre Fi « Proc En Cours » Tempo10(x);

Effacer Fenêtre Fi void Proc_D :

Ecrire Texte dans fenêtre Fi « Proc En Cours » Selection de la fenêtre F5

Ecrire Variable Cpt Cpt ++

si Cpt == 3 alors Cpt = 0 Tempo10(y);

Effacer Fenêtre F5

Tache_Gene_Evts :

Ecrire Dans la fenêtre 1

"Tapez des chiffres entre '1' et '4' ; '0' pour sortir\r");

Répéter

Lire Caractère tapé

Affichez caractère dans la fenêtre Test caractère :

si caractère = '0' alors retour au dos finsi si caractère = '1' alors appel de Proc_A finsi si caractère = '2' alors appel de Proc_B finsi si caractère = '3' alors appel de Proc_C finsi si caractère = '4' alors appel de Proc_D finsi tant_que (Vrai)

main

Initialisation de la Vidéo Ouverture des 4 fenêtres Initialisation du noyau

Création de la tâche Tache_Gene_Evts Démarrage de la tache

Répéter

instruction vide Tant_que (Vrai)

B. Problème de priorité

Création d’un tâche Tkill qui permet de quitter proprement l’application. Cette tâche est utilisée pour tous les TD.

TP5b.C : Priorités

Fonction :

(3)

On crée une tâche TK (TKill) de priorité 3 permettant de quitter proprement une application.

Puis une tâche T1 de priorité plus forte et une nouvelle fenêtre dans laquelle cette tâche écrit en permanence Faire constater que TKill ne démarre pas Puis mettre à T1 une priorité moins forte et expliquer

Tkill : Répéter

Lire Caractère dans la fenêtre F1 si caractère == '0')

alors

retour au dos finsi

Tant_que (Vrai) Tache1

Répéter

Ecrire Texte dans la fenêtre F1 Tempo(10)

Effacer Fenêtre F1 Tempo(10)

Tant_que (Vrai)

main :

Initialisation de la Vidéo Ouverture d’1 fenêtre Initialisation du noyau Création de la tâche Tache1 Création de la tâche TKill

Démarrage des la taches en région Répéter

instruction vide Tant_que (Vrai)

C. Notion de région et partage de temps.

Il faut voir l’effet de l’ordre de lancement des tâches sur l’affichage effectué par les tâches.

Voir aussi l’effet de la primitive RTClockInit(Ticks).

TP5c.C : EnterRegion et LeaveRegion

Fonction :

On reprend l’exercice b et on ajoute une tâche T2 de même priorité que T1 qui écrit en permanence dans sa fenêtre

Faire constater la nécessité de EnterRegion et LeaveRegion en inversant l'ordre de démarrage de T1 et T2 Ajouter la primitive de partage du temps (pour T1 et T2) et faire afficher les messages de T1 et T2 dans la même fenêtre Tkill :

idem exercice 2 Tache1

idem exercice 2 Tache2 :

Répéter

Ecrire Texte dans la fenêtre F2 Tempo(10)

Effacer Fenêtre F2 Tempo(10)

Tant_que (Vrai)

(4)

main :

Initialisation de la Vidéo Ouverture de 2 fenêtres Initialisation du noyau Création de la tâche Tache1 Création de la tâche Tache2 Création de la tâche TKill Démarrage des taches en région Répéter

instruction vide Tant_que (Vrai)

Références

Documents relatifs

Une tâche a pour fonction générale de solliciter chez le sujet la mobilisation de certaines ressources (les connaissances, capacités, aptitudes, attitudes, mécanismes,

Il doit exécuter l’épaulé jeté le second mouvement avec les mêmes contraintes .Cette performance doit être validé par trois arbitres du niveau de la compétition.. Le secrétaire

complètement dans la cour ! Je suis quelqu’un de très sociable et j’ai le cœur sur la main : si je peux vous aider, je le ferai ! Ma vie ressemble à des montagnes russes : des

Si nous avions pour fonction de préparer, pour une race élue, pour une caste privilégiée, des serviteurs dociles, des esclaves des machines et des cadrans

Yvonne Rainer dira ainsi sa surprise lorsqu’elle découvre ce qu’est devenue la tâche dans la pièce Parades and Changes (1965) d’Anna Halprin 18 : si les actions de

Ton correspondant néerlandais, t’a envoyé un e-mail car il va bientôt être confiné et ne sait pas comment il va devoir s’occuper. Il te demande donc de lui écrire un e-mail

- Lire et Comprendre un document - S’exprimer à l’oral pour communiquer, penser, échanger - Écrire pour structurer sa pensée, son savoir, pour argumenter, communiquer, échanger

- Lire et Comprendre un document - S’exprimer à l’oral pour communiquer, penser, échanger - Écrire pour structurer sa pensée, son savoir, pour argumenter, communiquer, échanger