CISCO IOS (Partie 2)
Par Mathieu le vendredi 4 janvier 2008, 20:05 - Lien permanent
Comme tout OS, l’IOS doit implémenter un certain nombre de principes
élémentaires :
Il existe 4 priorités (une file
FIFO/priorité) de processus afin d’en favoriser certains par rapport à d’autres
:
- Gestion de processus
- Gestion de la mémoire
- Gestion des périphériques
- Interface Utilisateur
- ...
- Create State
- Le processus est créé par le Kernel ou par le Parser (cli / config)
- Allocation de ressources
- Modify State (optionel)
- On ajoute un terminal au processus (pas de std ::in/out/err par défaut lors d’un create)
- On lui passe certains paramètres
- Ready State
- Le processus est prêt à être lancé sur le processeur
- Running State
- Le processus est sur le processeur
- Il peut:
- Cèder sa place volontairement (Suspend). Il retourne en Ready State.
- Terminer son exécution à la fin de sa tâche (Run to completion)
- Se mettre en attente d’un évènement (Idle State)
- Idle State
- Le processus attend un évènement spécifique (Wait for External Event)
- Dead State
- Le processus s’est terminé lui-même (Self Termination)
- Le processus a été tué par le Kernel (Killed)
- Le processus a terminé son travail (Run to completion)
Il existe 4 priorités (une file
FIFO/priorité) de processus afin d’en favoriser certains par rapport à d’autres
:
- Critical
- High
- Medium
- Low
#show list | inc Sched 8 650F2910 0/- Sched Preemptive 9 650F2310 0/- Sched Critical 10 650F21F0 0/- Sched High 11 650F1C10 2/- Sched Normal 12 650F1C60 0/- Sched Low 13 650F1E10 0/- Sched Preemptive ION 14 650F2180 262/- Sched Idle 15 650F0800 0/- Sched Dead 16 6535B660 0/- Sched Normal (Old) 17 6535B6C0 0/- Sched Low (Old)On se rend compte qu’il existe une file appelée « Sched Preemptive ». Cette liste va à l’encontre du fait que l’IOS est non préemptif ! (Mes sources sont peut-être aussi un peu anciennes !) La commande permet aussi de bien visualiser les files et notamment le nombre de processus présents respectivement dans chacune d’elles. J’ai donc 262 processus en Idle State et 2 processus de priorité « Normal » en Ready State. Un processus passant à l’état « Dead » ne voit pas automatiquement ses ressources libérées, ceci explique sans doute la nécessité de garder une trace des processus « Dead » dans une file du même nom. Dans mon prochain post, j’expliquerai le fonctionnement du scheduler IOS.