Chapitre 2 Flashcards Preview

INF2610 - Noyau d'un systeme d'exploitation > Chapitre 2 > Flashcards

Flashcards in Chapitre 2 Deck (19):
1

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….

2

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)

3

Comment deux process, A et B, se partage t'il le processeur?

1. A est en cours d'exécution
2. A est suavegarder dans PCB A
3. B est charger
4. B est en cours d'exécution
5. B est sauvegarder dans PCB B
6. A est chargé
7. Etc

4

Quels sont les éléments majeurs d'un processus?

1. ELF header
2. Program header table
3. Other information
4. Text segment
5. Data segment
6. Other information

5

Comment est séparé l'espace d'adressage virtuel

1. Stack (grandit vers le bas)
2. Mémoire libre (se fait gruger)
3. Heap (grandit vers le haut)
4. Data
5. Code

6

À quoi ressemble l'états d'un processus sur linux?

Voir ch2-pg10

7

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

8

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.

9

1. Quel est l'opération pour attendre l'execution du processus fils?
2. Quel est l'opération pour créer un processu fils?
3. Quel est l'opération pour modifier le code exécutable du processus?

1. wait
2. fork
3. exec

10

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

11

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

12

Le processu parent et fils partagent t'ils le même espace d'adressage?

non

13

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)

14

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

15

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)).

16

Que se passe t'il lorsqu'un processus est terminé? (Appel exit ou kill)

– son état de terminaison est enregistré dans son PCB,
– la plupart des autres ressources allouées au processus sont
libérées.
– le processus passe à l’état zombie (). Son PCB et son
PID sont conservés jusqu’à ce que son processus père ait
récupéré cet état de terminaison. Il est alors détruit.

17

Un processus fils garde t'il les buffer tu pere? (ex. printf)

Oui, il faut donc les flushed avec fflush avant d'appeler le fork

18

Que signifie les parametres de
int main(int argc, const char *argv[]);

argc : nombre de paramètres
argv[] : les paramètres, y compris le nom de l'exécutable

19

Que fait le code suivant:
pid_t p = fork();
if (p != 0) {
execlp("./wait_child", "./wait_child", NULL);

Après le fork, le père
remplace son espace
d’adressage par celui du
programme wait_child.c