ajouts dossier Processus, Calculabilité, Recherche textuelle. Avec images et exercices.
This commit is contained in:
16
Processus/CORRIGE.md
Normal file
16
Processus/CORRIGE.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# TD Gestion des processus et des ressources corrigé
|
||||
|
||||
------
|
||||
|
||||
## 1. QCM
|
||||
|
||||
1. a.
|
||||
2. a.
|
||||
3. c.
|
||||
4. c.
|
||||
5. c.
|
||||
|
||||
## 2. Questions
|
||||
|
||||
1. Grâce à l'ordonnancement et le découpage des programmes en processus.
|
||||
2. Un processus élu est en cours d'exécution, un prêt est en file d'attente dans l'ordonnanceur.
|
||||
46
Processus/EXERCICES.md
Normal file
46
Processus/EXERCICES.md
Normal file
@@ -0,0 +1,46 @@
|
||||
## 1. QCM
|
||||
|
||||
1. Le terminal, interpréteur de commande :
|
||||
|
||||
a. Exécuter les commandes
|
||||
|
||||
b. Est un tableau de bord de l'OS
|
||||
|
||||
c. Permet de saisir les données de l'utilisateur
|
||||
|
||||
2. Quelle commande permet sous linux d'afficher les processus :
|
||||
|
||||
a. ps
|
||||
|
||||
b. sh
|
||||
|
||||
c. echo
|
||||
|
||||
3. Un programme peut être exécuté :
|
||||
|
||||
a. Plusieurs fois à la suite par un même processus
|
||||
|
||||
b. Plusieurs fois en même temps par un même processus
|
||||
|
||||
c. Par plusieurs processus
|
||||
|
||||
4. L'ordonnancement permet de :
|
||||
|
||||
a. Exécuter le processus
|
||||
|
||||
b. Changer l'état des processus
|
||||
|
||||
c. Choisi le processus à exécuter
|
||||
|
||||
5. Un interblocage est :
|
||||
|
||||
a. Lorsqu'un programme est exécuté deux fois
|
||||
|
||||
b. Lorsqu'un processus est oublié, le programme est bloqué
|
||||
|
||||
c. Une mauvaise gestion des ressources, bloquant les processus
|
||||
|
||||
## 2. Questions
|
||||
|
||||
1. Expliquer comment cela se fait que l'utilisateur d'un ordinateur à l'impression que les programmes sont exécuté en même temps.
|
||||
2. Quels sont les différences entre les états prêt et élu.
|
||||
179
Processus/README.md
Normal file
179
Processus/README.md
Normal file
@@ -0,0 +1,179 @@
|
||||
# Gestion des processus et des ressources
|
||||
|
||||
------
|
||||
|
||||
Nous le savons, un ordinateur possède une architecture de Von Neumann [Rappel 1ère], il y a donc divers composant tels que la mémoire vive, la mémoire 'dure' (Disque dur, SSD...), de périphériques et d'un processeur.
|
||||
|
||||
Le processeur est le 'cerveau' de l'ordinateur et c'est lui qui exécute les tâche de celui-ci.
|
||||
|
||||
Mais alors comment expliquer que notre processeur arrive à ouvrir un navigateur web, un lecteur de musique, télécharger un jeu ou encore envoyer des messages le tout simultanément. (Sans parler des tâches de fond de l'ordinateur)
|
||||
|
||||
Tout ces programmes sont en réalité des lignes immenses de code et le processeur lui agit seul. Il exécute une à une les instructions de chaque programme, mais donne la sensation de tout gérer en même temps.
|
||||
|
||||
> Les processeurs multi-cœurs fonctionnent de la même façon à l'exception près qu'il n'y à pas 1 cœur, mais 4 voir 8 cœurs. Mais au vu des multitudes de programmes tournant en même temps sur la machine, le nombre de cœurs est nettement inferieur.
|
||||
|
||||
## 1. Notion de processus
|
||||
|
||||
Lorsqu'un programme est exécuté, il créer plusieurs processus. En effet, un programme est composé de diverses instructions (lignes de code) qui elles mêmes forment diverses parties (processus) de celui-ci.
|
||||
|
||||
Ces processus sont donc stocker dans une file (tout cela est géré par l'OS [Rappel 1ère]) et sont exécuté un à un.
|
||||
|
||||
*Exemple de répartition de deux programmes par l'OS :*
|
||||
|
||||
<img src="assets/file.png" alt="File" style="width:50%;" />
|
||||
|
||||
Chaque processus possèdent diverses informations stocké en mémoire (dans le PCB (*Process Control Block*)) comme :
|
||||
|
||||
| Nom | Description |
|
||||
| ---------- | ----------------------------------------------------- |
|
||||
| PID | Process ID, identifiant du processus |
|
||||
| Etat | Etat du processus |
|
||||
| Registre | Valeur des registres lors de la dernière interruption |
|
||||
| Mémoire | Emplacement mémoire, allouée par le processeur |
|
||||
| Ressources | Ressources utilisées par le processus. |
|
||||
|
||||
## 2. Gestion des processus
|
||||
|
||||
Nous l'avons vu chaque processus possèdent plusieurs informations. **L'état** d'un processus permet de comprendre comment la file d'exécution est créer et comment celle-ci perdure.
|
||||
|
||||
Il existe 3 états différent :
|
||||
|
||||
- Prêt : Le processus attend d'être exécuté. Il est dans la file d'exécution.
|
||||
- Elu : En cours d'exécution
|
||||
- Bloqué/En attente : Le processus nécessite une ressource non disponible. Tel qu'un emplacement mémoire, une entré/sortie.
|
||||
Lorsque la ressource sera disponible, le processus repassera en état prêt.
|
||||
- On peut imaginer que le processus attend l'intervention de l'utilisateur, ou le chargement d'une ressources (donc d'autres processus), etc.
|
||||
|
||||
Il existe aussi deux autres états :
|
||||
|
||||
- Nouveau : le processus vient d'être crée, il n'est pas encore dans la file d'exécution
|
||||
- Terminé : l'exécution du processus est finie.
|
||||
|
||||
<u>Voici un schéma des différents états :</u>
|
||||
|
||||
<img src="assets/etat.png" style="zoom:50%;" />
|
||||
|
||||
## 3. Interblocage :
|
||||
|
||||
L'interblocage intervient lorsque plusieurs processus sont bloqués les un aux autres.
|
||||
Imaginons deux programme.
|
||||
|
||||
```
|
||||
# Programme 1 :
|
||||
Accès à la ressource A
|
||||
Accès à la ressource B
|
||||
....
|
||||
Libération de ressource B
|
||||
Libération de ressource A
|
||||
```
|
||||
|
||||
```
|
||||
# Programme 2 :
|
||||
Accès à la ressource B
|
||||
Accès à la ressource A
|
||||
....
|
||||
Libération de ressource A
|
||||
Libération de ressource B
|
||||
```
|
||||
|
||||
### 3. 1. Un exemple d'ordonnancement
|
||||
|
||||
```
|
||||
# Programme 1 :
|
||||
Accès à la ressource A
|
||||
Accès à la ressource B
|
||||
```
|
||||
|
||||
- Le processus 1 à commencé, via un premier processus. Afin de faire tourner tous les programmes 'en même temps' il repasse dans la file d'exécution
|
||||
|
||||
```
|
||||
# Programme 2 :
|
||||
Accès à la ressource B
|
||||
....
|
||||
```
|
||||
|
||||
- Ici l'accès ne peut se faire, le programme 2 passe donc en état **Bloqué**
|
||||
|
||||
```
|
||||
# Programme 1 :
|
||||
....
|
||||
Libération de ressource B
|
||||
Libération de ressource A
|
||||
```
|
||||
|
||||
- Le programme 1 se termine et donc libère A et B
|
||||
|
||||
```
|
||||
# Programme 2 :
|
||||
Accès à la ressource B
|
||||
Accès à la ressource A
|
||||
....
|
||||
Libération de ressource A
|
||||
Libération de ressource B
|
||||
```
|
||||
|
||||
- Le programme 2 peut donc s'exécuter normalement
|
||||
|
||||
### 3. 2. Mauvais ordonnancement :
|
||||
|
||||
```
|
||||
# Programme 1 :
|
||||
Accès à la ressource A
|
||||
```
|
||||
|
||||
- Le programme 1 créer un premier processus, qui appelle la ressource A
|
||||
|
||||
```
|
||||
# Programme 2 :
|
||||
Accès à la ressource B
|
||||
```
|
||||
|
||||
- le programme 2 créer un premier processus, qui appelle la ressource B
|
||||
|
||||
```
|
||||
# Programme 1 :
|
||||
Accès à la ressource B
|
||||
```
|
||||
|
||||
- Le programme 1 attend la ressource B utilisée par le programme 2 et passe en état bloqué.
|
||||
|
||||
```
|
||||
# Programme 2 :
|
||||
Accès à la ressource A
|
||||
```
|
||||
|
||||
- Le programme 2 attend la ressource A utilisée par le programme 1 et passe en état bloqué.
|
||||
|
||||
Ici les deux programmes sont en état bloqué car chacun attend la ressource de l'autre. Il y a interblocage et donc aucuns des programmes ne peut s'exécuter.
|
||||
|
||||
## 4. En pratique
|
||||
|
||||
### 4. 1. Windows
|
||||
|
||||
Sous windows il est possible de voir les processus en cours d'exécution grâce au **gestionnaire de tâche**. Celui-ci est accessible grâce aux touches Ctrl+ Maj+Echap.
|
||||
Il suffit ensuite d'aller dans l'onglet détail et on obtient tous les processus.
|
||||
|
||||
<img src="assets/liste_processus_windows.png" style="width:60%;" />
|
||||
|
||||
Nous retrouvons bien, l'**état**, le **PID**, la **mémoire occupée**
|
||||
|
||||
### 4. 2. Linux
|
||||
|
||||
Sous linux, il suffit d'accéder au terminal. Et d'y écrire la commande **ps**, il est possible de voir les **PID** et **PPID** (processus parent)
|
||||
|
||||

|
||||
|
||||
### 4.3 MacOs
|
||||
|
||||
MacOs étant un système Unix, (dérivé de BSD ici) on retrouve les mêmes commandes que sous linux en grande partie.
|
||||
Pour voir les processus, ici, on utilisera plutôt **TOP** (dispo sous linux également donc).
|
||||
|
||||
<img src="assets/top.png" alt="top" style="zoom:50%;" />
|
||||
|
||||
---------
|
||||
|
||||
Auteurs : Florian Mathieu, Timothée Decoster, Enzo Frémaux
|
||||
|
||||
Licence CC BY NC
|
||||
|
||||
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Licence Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a> <br />Ce cours est mis à disposition selon les termes de la <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International</a>.
|
||||
BIN
Processus/assets/bo.png
Normal file
BIN
Processus/assets/bo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 96 KiB |
BIN
Processus/assets/etat.png
Normal file
BIN
Processus/assets/etat.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 103 KiB |
BIN
Processus/assets/file.png
Normal file
BIN
Processus/assets/file.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 100 KiB |
BIN
Processus/assets/liste_processus_windows.png
Normal file
BIN
Processus/assets/liste_processus_windows.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 211 KiB |
BIN
Processus/assets/ps_aux.webp
Normal file
BIN
Processus/assets/ps_aux.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 90 KiB |
BIN
Processus/assets/top.png
Normal file
BIN
Processus/assets/top.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.1 MiB |
Reference in New Issue
Block a user