Term NSI Gestion des processus et des ressources par un système d’exploitation
AD : Gestion des processus et des ressources par un
système d’exploitation
Extrait de pixees, Ouvrage Ellipses et Nathan, vidéo formation ICN
Ex1 : Appliquer la méthode du tourniquet, le plus court d’abord puis FIFO au 3 process,
au 3 process ci-dessous, hypothèse : chaque instruction à la même durée d’exécution
Exécution le microprocesseur
Process1 Exécution le microprocesseur
Instruction 1 Tourniquet Le plus court d’abord FIFO
Instruction 2
Instruction 3
Instruction 4
Instruction5
Instruction6
Process2
Instruction 1
Instruction 2
Instruction 3
Process3
Instruction 1
Instruction 2
Instruction 3
Instruction 4
Instruction 5
2- Document1 1/7
Ex2 : Schématiser l’ordonnancement des tâches d’impression soumît par des ordinateurs
d’un réseau local sur une imprimante connectée et partagée sur un réseau
Liste d’impression P1
P1-fichier_1 10h55 Liste d’impression F3
P1-fichier_2 11h55 F3-fichier_1 10h51
Liste d’impression F2
F2-fichier_1 11h01
Liste d’impression P2
P2-fichier_1 10h54
P2-fichier_2 11h56
P2-fichier_3 11h57
Ex3 : Écrire en python, un programme correspondant aux l’ordonnancement effectué
dans l’exercice 1
Pour la modélisation des 3 processus, nous créons une structure de données adaptées : les
processus seront stockés dans une liste ( liste_processus ), chaque élément de
liste_processus (liste_processus[i_processus]) est la liste des instructions du process et
chaque élément de liste_processus[i]), (liste_processus[i_processus] [i_instruction])
est la liste des instructions du process i_processus
3-a créer le programme python Pour l’algorithme de l’ordonnancement FIFO
Algo ordonnancement FIFO
liste_processus = (processus_1, processus_2, processus_3)
(avec processus_1 = instruction-1 à i, processus_2 = instruction-1 à j, processus_3 =
instruction-1 à k )
2- Document1 2/7
3-b créer le programme python Pour l’algorithme de l’ordonnancement du tourniquet
Algo ordonnancement tourniquet
liste_processus = (processus_1, processus_2, processus_3)
(avec processus_1 = instruction-1 à i, processus_2 = instruction-1 à j, processus_3 =
instruction-1 à k )
tant qu’il existe des instructions (utiliser un compteur)
i_processus =0
i_instruction = 0
tant qu’il existe des processus
if il existe encore une instruction pour le processus courant
afficher instruction i_instruction du process i_processus
i_processus = i_processus +1
i_instruction = i_instruction + 1
3-c créer le programme python Pour l’algorithme de l’ordonnancement le plus court
d’abord
Ex4 : Processus sur linux. Utilisation de la machine [Link] voir doc
Démarrer puis la machine
rappel : cette machine est en live (sans installation), minimale et uniquement avec un
clavier Qwerty
Depuis la vmware pour revenir à Windows Ctrl + Alt
À faire vous-même 1 lancer la commande who puis pwd et expliquer les fonctions de
ces 2 commandes
La commande who _(zho qwerty)____________________________________________
la commande pwd _(pzd qwerty) ______________________________________
2- Document1 3/7
Donner puis expliquer ce que représente le PID (en partant du principe qu'il est créé juste
après init) , le PPID et l’utilisateur ayant initié le process "init". Voir pour cela le
document Sous Linux il existe des commandes permettant de visualiser les processus.
Vous aurez besoin de lancer un terminal puis puis ps -
aef ( ps )qef qwerty )
Ici init : PID= __________________________________________________
Puis top (pour stopper, utilisez la touche q ( a qwerty ) )
Processus init (/sbin/init) :
- PID = __________________________________________________
- PPID = __________________________________________________
- ____________ (utilisateur ayant lancé le process)
À faire vous-même 2 expliquer la différence entre la commande ps et top
__________________________________________________
__________________________________________________
. Pour en savoir plus sur la commande top, consultez la page [Link]
[Link]/doc:systeme:top
__________________________________________________
__________________________________________________
À faire vous-même 3 : Ouvrez un deuxième terminal, placez-les 2 terminaux l'un à côté
de l'autre.
Dans le terminal de gauche : nous allons créer un utilisateur exemple avec les
commandes suivantes
2- Document1 4/7
sudo adduser toto ( sudo qdduser toto qzerty )
(sudo permet de lancer une commande en root (super administrateur) au leu de la lancer avec
l’utilisateur tc)
newpassword toto
password toto
Toujours dans le terminal de droite : nous allons nous « logger » avec l’utilisateur toto
et lancer la commande ps
login toto
Pasword toto
pwd (pzd qwerty)
who (zho qwerty)
Quels sont les utilisateurs connectés sur la machine, dans quel terminal et à quelle
heure ?
Terminal de gauche : utilisateur ___________________________________________
Terminal de droite: utilisateur ___________________________________________
À faire vous-même 4 :
depuis le terminal de droite (loggé en toto) lancer les commandes ps-aef puis top
depuis le terminal de gauche (loggé en tc) lancer les commandes top
donner les PID et les PPID des processus crée par l’utilisateur tc lancé par le processus
init et les commenter
Utilisateur tc
Processus wbar : PID = _____________________,
PPID Processus flum_topside : PID= _____________________,
2- Document1 5/7
PPID = _____________________,
depuis le terminal de droite (loggé en toto) lancer les commandes ps-aef puis top
depuis le terminal de gauche (loggé en tc) lancer la commande top
donner les PID et les PPID des processus crée par l’utilisateur toto et pour chacun trouver
le processus parent , commenter :
Utilisateur toto
Processus -sh : PID=_____________________,PPID =___________________________
Processus top : PID=_____________________,PPID =___________________________
À faire vous-même 5 : compléter l’arborescence simplifiée des processus avec les
PID
Processus PID= ___
Processus init PID= ___
Login tc
Processus wbar PID= ___
Processus sh PID= ___
Processus aterm PID= ___ Terminal de droite
Login toto
Processus sh PID= ___ Processus -sh PID= ___
Terminal de droite
Processus top PID= ___
2- Document1 6/7
À faire vous-même 6 : Utilisez la commande kill afin de supprimer le (ou les) processus
lié(s) à l’utilisateur toto. Que se passe-t-il ?
Sur internet trouvez la fonction de la commande kill
Dans les systèmes Unix et apparentés (linux), kill permet d'envoyer des messages simples
aux processus en cours d'exécution. Par défaut, le message est un signal ______________
demandant la fin ________________________
Depuis le depuis le terminal de gauche (loggé en tc) lancer la commande kill puis ps
pour vérifier les conséquences de ces commandes
utiliser sudo kill -1 PID (de top de toto) soit ________________________
________________________
utiliser sudo kill -1 PID (de -sh de toto) soit ________________________
________________________________________________________________________
________________________________________________________________________
Lancer la commande (terminal de gauche) sudo kill -1 1733, remplacer 1733 par le PPID
de parent du processus précédent parent de toto
Le terminal de droite se________________________…..
2- Document1 7/7