Module 4 Flashcards Preview

SEG4545 > Module 4 > Flashcards

Flashcards in Module 4 Deck (18):
1

Distinguish a process from a thread (2)

Processes are active participants of system-level multitasking.
Threads ... process-level ...

2

Describe these layers: microkernel (2), kernel (2), executive (3), and OS (3)

Microkernel: task scheduling and dispatching
Kernel: Intertask communication and syncronisaton
Executive: Privatized memory blocks, I/O, supporting features
OS: UI, file system, security features

3

Most real-time kernels are actually...?

executives

4

Placez les définitions ci-dessous dans l'ordre des termes qu'elles définissent Ordonnanceur, Dispatcher, Communication/synchronisation entre tâches.
a. Accomplit les fonctions "administratives" pour démarrer une tâche.
b. Appuie la communication entre tâches afin de permettre la collaboration entre tâches.
c. Détermine quelle tâche sera la prochaine à exécuter dans un système multitâche.

3)
a. Détermine quelle tâche sera la prochaine à exécuter dans un système multitâche.
b. Accomplit les fonctions "administratives" pour démarrer une tâche.
c. Appuie la communication entre tâches afin de permettre la collaboration entre tâches.

5

En équipe, discutez comment composer avec le rebondissement en logiciel. Donner une réponse d’équipe qui donne les étapes nécessaire pour faire l’anti rebondissement du bouton presso

Micronoyau.

6

En équipe, discuter comment utilisez la boucle d’interrogation avec délai pour déterminer si le bouton poussoir a été presser ou relâcher.

Supposez que la ligne d’entrée branchée au bouton pressoir est haut lorsque le bouton est relâché et bas lorsqu’il est pressé.
a. Attend que la ligne d’entrée passe de haut à bas (bouton est pressé).
b. Délai d’une période de temps, disons 10 ms (temps pour que le rebondissement s’arrête).
c. Si la ligne est haut, recommence à l’étape a (suppose du bruit sur la ligne d’entrée).
d. Si la ligne est basse, attend que la ligne devient haut (le bouton est relâché).
e. Délai d’une période de temps, disons 10 ms (temps pour que le rebondissement s’arrête).
f. Si la ligne est basse, revient à l’étape d (suppose du bruit sur la ligne d’entrée).
g. Si la ligne est haute, alors indique que le bouton pressoir a été pressé et retourne à l’étape a pour attendre que le bouton soit pressé à nouveau.

7

Quel type d'ordonnancement est appliqué dans la structure cyclique de code?

Ordonnancement tourniquet sans préemption.

8

En équipe, discuter comment deux tâches peuvent être utilisées pour réaliser l’application bouton pressoir/DEL. Dans la réponse d’équipe, donnez une courte description de la fonction de chaque tâche.

Tâche 1, qui détecte que le bouton pressoir est pressé signale à la Tâche 2 de changer l’état de la DEL.

9

En équipe, discutez comment les deux tâches de l'application bouton pressoir/DEL peuvent communiquer. Rapportez la conclusion de l’équipe.

Puisque l’exécution des deux tâches est atomique (c.-à-d. sans interruption), la façon la plus simple pour faire communiquer les 2 tâches est avec une variable globale. La synchronisation entre les deux tâches pour accéder la variable globale n’est pas un problème puisque l’exécution des 2 tâches est atomique.

10

En équipe, discuter comment un FSM pourrait servir à faire l’anti rebondissement du bouton pressoir. Rapportez les « phases » de votre solution.

En supposant que le FSM est exécuté périodiquement avec une fréquence de 10 ms en utilisant des délais (équivalent au temps de rebondissement), on peut définir les états FSM suivants avec les transitions indiquées.
a. ATTEND_PRESSE (attend que la ligne devienne basse).
i. Si la ligne est haute, reste dans ATTENT_PRESSE
ii. Si la ligne est basse, change à l’état VERIFIE_PRESS
b. VERIFIE_PRESS (vérifier le bouton pressé)
i. Si la ligne est haute, retourne à l’état ATTEND_PRESS
ii. Si la ligne est basse (la presse est confirmée), change à l’état ATTEND_RELACHE
c. ATTEND_RELACHE (attend que la ligne devienne haute).
i. Si la ligne est basse, reste dans ATTENT_RELACHE
ii. Si la ligne est haute, change à l’état VERIFIE_RELACHE
d. VERIFIE_RELACHE (vérifier le bouton relâché)
i. Si la ligne est basse, retourne à l’état ATTEND_RELACHE
ii. Si la ligne est haute (la relâche est confirmé), change à l’état ATTEND_PRESSE

11

En équipe, discuter comment le système à interruption pourrait être utilisé pour réaliser l’application bouton pressoir - DEL. Donnez une courte description de votre conception d’équipe

Organise 2 tâches, toutes deux exécutées chacune à leur tour. Une minuterie génère les interruptions (il serait aussi possible d’avoir deux minuteries, une pour chaque tâche). La fréquence des interruptions sont de 10 ms (le temps de rebondissement). La tâche qui compose avec le bouton pressoir utilise le FSM (décrit dans la question 10) pour détecter que le bouton pressoir est pressé et le signaler à la 2e tâche avec une variable globale. La logique pour la 2e tâche est simple, lorsque la variable globale indique le bouton pressé, change l’état de la DEL, et réinitialisé la variable globale.

12

En équipe, discuter comment chacun des systèmes suivants est un cas particulier du système avant-plan/arrière-plan : Boucle d’interrogation, structure cyclique de code, système à interruptions. Donnez une courte réponse pour chacun de ces systèmes.

a. Boucle d’interrogation : Aucune tâches avant-plan (à interruption), seul la tâche arrière-plan (boucle dans main) exécute in interrogeant le système.
b. Code cyclique : Semblable au système à boucle d’interrogation, pas de tâches avant-plan (à interruption) et la tâche arrière-plan qui exécute les tâches une après l’autre.
c. Système à interruptions : Pas de tâche arrière-plan (la boucle main ne fait rien), et touches les tâches sont exécutées à partir d’interruptions.

13

En équipe, concevez un système avant-plan/arrière-plan pour le système bouton pressoir – DEL. Donnez une courte description de votre conception d’équipe.

Utiliser la tâche arrière-plan (boucle main) pour vérifier la variable global; lorsqu’elle est entamé (change de valeur), change l’état de la DEL et réinitialise la variable global.
Utilise une tâche en avant-plan (avec une interruption de minuterie avec une période de
10 ms), et utilise le FSM de la question 10 pour surveiller le bouton pressoir.

14

Quelle information peut se trouvé dans le bloc de contrôle de tâche?

État de tâche, priorité de tâche, information de contexte (registres d’UCT y compris le
compteur de programme), pointeur de pile, pointeur à un autre TCB, etc.

15

Quel type d'ordonnancement de tâche (sans inclure le HWI, SWI et idle) est utilisé par le SYS/BIOS ?

Utilise un ordonnancement premier-arrivé, premier-servi avec préemption. C.-à-d. les
tâches vont interrompre les tâches de plus basse priorité et les tâches de même priorités
sont exécutés premier arrivé, premier servi

16

Comment le SE utilise le bloc ce contrôle de tâche?

Pour la gestion des tâches, le plus important d’ordonnancer les tâches selon un algorithme
d’ordonnancement (p.ex. avec préemption, en tourniquet, etc.). Aussi pour faire la
gestion de mémoire et de l’entrée/sortie (fil d’attentes E/S).

17

En équipe discutez comment l’ordonnancement disponible dans le SYS/BIOS peut être utilisé pour faire l’acquisition de données et l’analyse de données dans le projet IDP.

Afin de faire la collecte et l’analyse de données de façon continue, une ou plusieurs
tâches SWI peuvent être utilisées pour faire l’analyse de données. Ainsi, les tâches
interruptions (HWI) après la fin de la collecte d’un bloc de données peuvent engendrer la
tâche SWI afin de faire l’analyse des données. Ainsi, les tâches SWI sont une extension
des tâches HWI.

18

En équipe discutez comment la priorité peut affecter l’état (mode) d’une tâche.

Lorsqu’une tâche est en exécution (état Task_Mode_RUNNING) :
a. Si une tâche de plus haute priorité devient prête à exécuter, alors la tâche en
exécution passe de l’état Task_Mode_RUNNING à Task_Mode_READY. La
nouvelle tâche passe à l’état Task_Mode_RUNNING.
b. Si une tâche de priorité pareille ou inférieure à celle en exécution devient prête à
exécuter, elle est mise en attente et entre dans l’état Task_Mode_READY. La
tâche en exécution ne change pas d’état