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

Structure d’un processus

2BSD
processus

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

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.