next up previous contents
Next: Programmation des processus Up: Fonctionnement d'un processus Previous: Vie et mort d'un   Contents

Initialisation du système

Nous avons décrit le moyen de créer un processus à partir d'un processus déjà existant. Mais que ce passe-t-il au démarrage du système (boot) ?

En fait, le système commence à aller chercher des informations sur les premiers blocs du disque de manière à constituer le noyau d'UNIX. Ce noyau est formé, à l'origine, du processus 0. Ce processus 0 n'a ni segment de texte, ni segment de données, ni pile utilisateur. Son code est en zone système et comporte sa structure U. Il dispose d'une entrée dans la table des processus et d'une pile système. Ce processus s'appelle le scheduler en système V et swapper en BSD. Comme son nom l'indique, il a un double rôle qui consiste à ordonnancer l'exécution des processus d'une part, et à swapper les processus sur le disque lorsqu'ils prennent trop de place en mémoire pour pouvoir être gérés tous ensembles.

Figure: a) Les états d'un processus b) Status possibles pour les processus
\begin{figure}
\begin{tabular}{cc}
a)\putfigurerotate{width=40mm}{etat_processus.eps} &
b)\putfigure{width=80mm}{etats_processus.eps}
\end{tabular}\end{figure}

La séquence de démarrage du système se déroule comme suit :

[linewidth=1pt,shadow=true](0,0)(12,-8)




Sous BSD, le fichier script /etc/rc est lancé. Selon les implémentations, il peut être constitué des fichiers /etc/rc.boot (démarrage), /etc/rc.local (démarrage des services locaux) et /etc/rc.inet (démarrage des services réseaux).

Sous système V, /etc/init utilise le fichier /etc/inittab qui fait appel aux différents fichiers /etc/rc0-6 (et S) correspondants aux différents modes de démarrage.


next up previous contents
Next: Programmation des processus Up: Fonctionnement d'un processus Previous: Vie et mort d'un   Contents
Arnaud Revel
2001-11-26