Chapitre 2 Flashcards
Quels sont les caractéristiques d’un processus?
– Un numéro d’identification unique (PID);
– Un espace d’adressage (code, données, piles d’exécution);
– Un état principal (prêt, en cours d’exécution (élu), bloqué, …);
– Les valeurs des registres lors de la dernière suspension (CO, PSW, Sommet de Pile…) contexte d’exécution;
– Une priorité;
– Les ressources allouées (fichiers ouverts, mémoires,
périphériques …);
– Les signaux à capter, à masquer, à ignorer, en attente et les actions associées;
– Autres informations indiquant le processus père, les processus fils, le groupe, les variables d’environnement, les statistiques et les limites d’utilisation des ressources….
Quelle partie du système d’exploitation garde en mémoire les processus?
La table des processus.
une entrée par processus: Bloc de controle de processus (PCB)
Comment deux process, A et B, se partage t’il le processeur?
- A est en cours d’exécution
- A est suavegarder dans PCB A
- B est charger
- B est en cours d’exécution
- B est sauvegarder dans PCB B
- A est chargé
- Etc
Quels sont les éléments majeurs d’un processus?
- ELF header
- Program header table
- Other information
- Text segment
- Data segment
- Other information
Comment est séparé l’espace d’adressage virtuel
- Stack (grandit vers le bas)
- Mémoire libre (se fait gruger)
- Heap (grandit vers le haut)
- Data
- Code
À quoi ressemble l’états d’un processus sur linux?
Voir ch2-pg10
A quoi sert le BIOS
(Basic Input/Output System). Se trouve dans la carte mère. exécute des
opérations de vérification de l’intégrité du système, charge et lance
l’exécution du programme d’amorçage MBR
A quoi sert le MBR
MBR (Master Boot Record) charge une partie du système d’exploitation puis lance son exécution.
Cette partie détermine les caractéristiques du matériel, effectue un certain
nombre d’initialisations et crée le processus 0.
- Quel est l’opération pour attendre l’execution du processus fils?
- Quel est l’opération pour créer un processu fils?
- Quel est l’opération pour modifier le code exécutable du processus?
- wait
- fork
- exec
Que fait fork, en détail?
Créer un processus fils. Créer un PCB. Associe un PID unique au nouvel processus.
Initiliase le PCB. Copie certaine données du processu parent (répertoire de travail courant)
Duplique l’espace d’adressage du processus parent en effectuant l’appel à fork. Principe Copy-on-write
Duplique la table des descripteurs de fichiers
Que signifie les valeurs de retour de fork?
0 : Nous somme dans le processus fils
-1 : Fork a échoué
autre : Nous somme dans le processus parent
Le processu parent et fils partagent t’ils le même espace d’adressage?
non
Qu’arrive t’il lorsque le processus remplace son code avec un appel exec?
Le processus conserve, notamment, son PID, l’espace mémoire
alloué, sa table de descripteurs de fichiers et ses liens parentaux
(processus fils et père).
● En cas de succès de l’appel système exec, l’exécution de l’ancien
code est abandonnée au profit du nouveau.
● En cas d’échec, le processus poursuit l’exécution de son code à
partir de l’instruction qui suit l’appel (il n’y a pas eu de
remplacement de code)
Quel sont les appels pour attendre la fin d’un processus fils?
– pid_t wait (int * status); // attendre après n’importe lequel des fils
– pid_t waitpid( int pid, int * status, int options);//attendre pid spécifié
– pid_t waitpid( int pid, int * status, WNOHANG); Verifie la terminaison du processus sans bloquer
Quels sont les appels permettant de récupéré le status du processus fils?
• WIFEXITED(status) : fin normale avec exit
• WIFSIGNALED(status) : tué par un signal
• WIFSTOPPED(status) : stoppé temporairement
• WEXITSTATUS(status) : valeur de retour du processus fils
( exit(valeur)).