Systèmes d’Exploitation
Exercice 1 : Multi-programmation
On s’intéresse à l’exécution de trois tâches T 1, T2 et T3 :
– La tâche T 1 dure 200ms (hors E/S) et réalise une unique E/S au bout de 110ms ;
– La tâche T 2 dure 50ms et réalise une unique E/S au bout de 5ms ;
– La tâche T 3 dure 120ms sans faire d’E/S.
Les tâches T1 et T2 sont créées à l’instant 0, la tâche T 3 est créée à l’instant 140. Chaque E/S dure 10ms.
La valeur du quantum est de 100ms.
Question 1.1 : Représentez sur deux diagrammes des temps l’exécution des 3 tâches en batch et en
temps partagé. Calculez dans les deux cas le temps total d’exécution T ex et le taux d’occupation T oc du
processeur.
Exercice 2 : Processus
L’appel système f ork () crée un processus fils qui diffère de son père uniquement par ses numéros de
pid et de ppid. L’appel f ork() renvoi 0 pour le fils et le pid du fils créé pour le père. Juste après le f ork () , les
deux processus disposent des mêmes valeurs de données et de pile mais il n’y a pas de partage : chaque
processus a sa propre copie.
Soit le programme C suivant :
main( ) {
int pid ;
printf("Debut \ n") ;
pid=fork() ;
if (pid == 0) then
printf("execution 1 \ n") ;
else
printf("execution 2 \ n") ;
end if
printf("Fin \ n") ;
return (EXIT_SUCCESS) ;
}
Question 2.1 : Donnez les affichages effectués par le processus père et par le processus fils.
On considère maintenant le programme suivant :
int main(int argc, char * argv[]) {
int a, e ;
a = 10 ;
if (fork() == 0) then
a=a× 2 ;
if (fork() == 0) then
a=a+ 1 ;
exit(2) ;
end if
printf("% d \ n", a) ;
exit(1) ;
end if
wait(& e) ;
printf("a :% d, e :% d \ n", a, WEXITSTATUS(e)) ;
return (0) ;
}
Question 2.2 : Donnez le nombre de processus créés, ainsi que les affichages effectués par chaque
processus.
Question 2 .3 : On supprime l’instruction exit ( 2), reprenez la question précédente en conséquence.
Exercice
Q1) : Quel est le rôle d’un système d’exploitation ? Les interpréteurs de commandes et les
compilateurs font-ils parties du système d’exploitation ?
Q2) Qu’est-ce qu’un système multiprogrammé ? Un système de traitement par lots ?
Un système en temps partagé ?
Q3) Quelles sont les fonctions du système d'exploitation ?
Q4) Quelle est la différence entre un système mono-programmé (mono-tâche) et un système
multiprogrammé ? quels sont les avantages et les défis imposés par la multitâche ?
Q5) Qu'est-ce qui L’amorce (Bootstrap) ?
Q6) Pourquoi le partage de données pose des problèmes dans un système multiprogrammé en temps
partagé ? Le système UNIX permet-il de contrôler les
accès aux données partagées ? Qu’est-ce qu’une section critique ?
Q7) Dans le système UNIX, les véritables appels système sont effectués à partir - d’un programme
utilisateur - d’une commande shell - d’une procédure de la bibliothèque standard Sont-ils
exécutés en mode superviseur ou en mode utilisateur ?