Subjects informatique

Processeur Taches

Step-by-step solutions with LaTeX - clean, fast, and student-friendly.

Search Solutions

Processeur Taches


1. Énoncé du problème : Nous avons un processeur à 100 MHz, un programme d'arrière-plan utilisant 30% du temps CPU, et des tâches périodiques toutes les 10 µs (10 microsecondes, car 10 ps semble une erreur probable, on prendra 10 µs). Nous devons calculer divers paramètres liés à l'exécution des tâches. 2. Données importantes : - Fréquence processeur $f = 100\ \text{MHz} = 100 \times 10^6\ \text{cycles/s}$ - Temps par cycle $T_c = \frac{1}{f} = \frac{1}{100 \times 10^6} = 10^{-8} \text{s} = 10 \text{ns}$ - Tâches toutes les 10 µs = $10 \times 10^{-6} \text{s} = 10^{-5} \text{s}$ - Programme d'arrière-plan prend 30% du temps CPU - Sauvegarde contexte = 45 cycles - Récupération contexte = 21 cycles - Traitement vecteur tâche = 30 cycles - Macro-instruction = 4 cycles 3. Calculs : **1. Temps nécessaire pour l'exécution d'une tâche** Le nombre total de cycles par tâche est la somme des cycles de sauvegarde, récupération et traitement : $$\text{Cycles par tâche} = 45 + 21 + 30 = 96$$ Le temps par tâche est donc : $$t_{t\^ache} = 96 \times T_c = 96 \times 10^{-8} = 9.6 \times 10^{-7} \text{s} = 0.96 \ \mu s$$ **2. Nombre d'instructions par tâche** Chaque instruction prend 4 cycles, donc : $$\text{Nombre d'instructions} = \frac{\text{cycles de traitement}}{\text{cycles par instruction}} = \frac{30}{4} = 7.5$$ On peut arrondir à 7 ou 8 instructions par tâche. **3. Nombre maximal d'instructions disponibles dans la fonction de traitement des tâches** Le temps total disponible par tâche est l'intervalle entre tâches moins le temps du programme d'arrière-plan (30% du temps CPU). Le temps total par tâche est $10 \ \mu s$. Le temps CPU disponible pour la tâche est donc 70% de $10 \ \mu s$ : $$t_{disponible} = 0.7 \times 10 \times 10^{-6} = 7 \times 10^{-6} \text{s}$$ Le nombre maximal de cycles disponibles est : $$N_{cycles} = \frac{t_{disponible}}{T_c} = \frac{7 \times 10^{-6}}{10^{-8}} = 700$$ Le nombre maximal d'instructions est : $$N_{instr} = \frac{N_{cycles}}{4} = \frac{700}{4} = 175$$ **4. Avec un autre programme d'arrière-plan prenant aussi 30% du temps (total 60%)** Le temps CPU disponible est 40% de $10 \ \mu s$ : $$t_{disponible} = 0.4 \times 10 \times 10^{-6} = 4 \times 10^{-6} \text{s}$$ Nombre de cycles disponibles : $$N_{cycles} = \frac{4 \times 10^{-6}}{10^{-8}} = 400$$ Nombre maximal d'instructions : $$N_{instr} = \frac{400}{4} = 100$$ **5. Avec 60 instructions par tâche et 60% du temps CPU utilisé par programmes d'arrière-plan, nombre maximum de tâches par seconde** Temps CPU disponible par tâche : $$t_{disponible} = 0.4 \times 10 \times 10^{-6} = 4 \times 10^{-6} \text{s}$$ Temps d'exécution par tâche (60 instructions × 4 cycles/instruction × $T_c$) : $$t_{t\^ache} = 60 \times 4 \times 10^{-8} = 2.4 \times 10^{-6} \text{s}$$ Nombre maximal de tâches par seconde : $$N_{t\^aches} = \frac{1}{t_{t\^ache}} = \frac{1}{2.4 \times 10^{-6}} \approx 416,666$$ Mais il faut vérifier que les tâches arrivent toutes les 10 µs, donc le nombre maximal est limité par la fréquence d'arrivée : $$N_{max} = \frac{1}{10 \times 10^{-6}} = 100,000$$ Donc le nombre maximal de tâches possibles est $100,000$ par seconde. **6. Temps d'exécution du programme d'arrière-plan $C_p = 30 \ \mu s$ exécuté en boucle infinie, nombre d'instructions du programme d'arrière-plan** Nombre de cycles pour $C_p$ : $$N_{cycles} = \frac{30 \times 10^{-6}}{10^{-8}} = 3000$$ Nombre d'instructions : $$N_{instr} = \frac{3000}{4} = 750$$ --- **Résumé final :** 1. Temps par tâche = $0.96 \ \mu s$ 2. Instructions par tâche = 7.5 (environ 7 ou 8) 3. Max instructions disponibles (30% arrière-plan) = 175 4. Max instructions disponibles (60% arrière-plan) = 100 5. Max tâches par seconde (60 instructions, 60% arrière-plan) = 100,000 6. Instructions programme arrière-plan (30 µs) = 750