Systeme Taches
1. **Énoncé du problème :**
Nous avons un processeur à 100 MHz (100 millions de cycles par seconde).
Chaque instruction prend 4 cycles.
Les tâches arrivent toutes les 10 μs (microsecondes).
Chaque tâche contient :
- Sauvegarde du contexte : 30 instructions
- Récupération du contexte : 30 instructions
- Traitement du vecteur : 60 instructions
2. **Formules et règles importantes :**
- Fréquence du processeur $f = 100 \times 10^6$ Hz
- Durée d'un cycle $T_c = \frac{1}{f} = \frac{1}{100 \times 10^6} = 10^{-8}$ s
- Durée d'une instruction $T_i = 4 \times T_c = 4 \times 10^{-8}$ s
- Intervalle entre tâches $T_{intervalle} = 10 \mu s = 10 \times 10^{-6} = 10^{-5}$ s
3. **Calcul du nombre d'instructions par tâche :**
Nombre total d'instructions par tâche = $30 + 30 + 60 = 120$ instructions
4. **Calcul du temps d'exécution de chaque tâche (WCET) :**
$$ WCET = 120 \times T_i = 120 \times 4 \times 10^{-8} = 4.8 \times 10^{-6} \text{ s} = 4.8 \mu s $$
5. **Nombre maximal d'instructions par tâche :**
Le temps maximal disponible est l'intervalle entre tâches $10 \mu s$.
Donc, nombre maximal d'instructions $N_{max}$ satisfait :
$$ N_{max} \times T_i \leq 10 \times 10^{-6} $$
$$ N_{max} \leq \frac{10 \times 10^{-6}}{4 \times 10^{-8}} = 250 $$
6. **Avec un programme d'arrière-plan prenant 50% du temps processeur :**
Le temps disponible pour les tâches est réduit à 50% de $10 \mu s$, soit $5 \mu s$.
Donc :
$$ N_{max\\_50\%} \leq \frac{5 \times 10^{-6}}{4 \times 10^{-8}} = 125 $$
7. **Pour les interruptions qui arrivent toutes les 10 μs, chaque instruction prend 4 cycles :**
Nombre maximal d'instructions par interruption :
$$ N_{int} \leq \frac{10 \times 10^{-6}}{4 \times 10^{-8}} = 250 $$
8. **Si la routine d'interruption comprend 100 instructions :**
Temps d'exécution interruption :
$$ 100 \times 4 \times 10^{-8} = 4 \times 10^{-6} = 4 \mu s $$
Temps restant pour les tâches dans l'intervalle de 10 μs :
$$ 10 \mu s - 4 \mu s = 6 \mu s $$
Nombre maximal d'instructions pour la tâche :
$$ N_{tache} \leq \frac{6 \times 10^{-6}}{4 \times 10^{-8}} = 150 $$
**Conclusion :**
- Nombre d'instructions par tâche : 120
- WCET par tâche : 4.8 μs
- Nombre maximal d'instructions par tâche sans contrainte : 250
- Nombre maximal d'instructions par tâche avec 50% temps processeur utilisé par arrière-plan : 125
- Nombre maximal d'instructions par interruption : 250
- Avec routine interruption de 100 instructions, système peut traiter tâches et interruptions sans manquer aucune.
- Nombre maximal d'instructions dans la fonction de traitement des tâches dans ce cas : 150