ajouts dossier Processus, Calculabilité, Recherche textuelle. Avec images et exercices.

This commit is contained in:
2025-04-24 11:55:58 +02:00
parent f043365aac
commit ed6f9ebd47
16 changed files with 928 additions and 0 deletions

16
Processus/CORRIGE.md Normal file
View 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
View 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
View 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)
![ps_aux](assets/ps_aux.webp)
### 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 dUtilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International</a>.

BIN
Processus/assets/bo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

BIN
Processus/assets/etat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

BIN
Processus/assets/file.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
Processus/assets/top.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 MiB