Programmes et processus
Programme : fichier qui contient des instructions.
Lancer un programme revient à charger son contexte d’évolution dans la mémoire, c’est le processus
Processus : structure de donnée en mémoire du système qui contient un espace mémoire et un contexte d’exécution.
Structure d’un programme
2BSD : format .out (\neq ELF sous Linux)
Structure d’un processus
2BSD
Temps partagé et ordonnancement
Temps partagé
Chaque processus attend un time slice entre chaque processus, il y a également un temps d’attente quand on change de processus. Il faut donc un time slice ni trop grand ni trop petit.
Ordonnancement
Appel système
spawn
:fork
+exec
fork
: duplique un processus avec le nouveau processus a comme valeur de retour 0
_exit
: termine un processus, transformation en zombie qui contient un code qui sera récupérer quand on tuera le zombie
exit
:fflush(NULL); _exit
execve
: Exécute un programme, le processus est remplacé par le programme appelé
wait
: Permet de se synchroniser avec un autre processus en attendant qu’il meure
En principe, on fait fork
+ exec
dans le fils.