cours/Systemes d'exploitation/Cours/1.md

165 lines
5.7 KiB
Markdown
Raw Normal View History

2017-01-16 09:39:32 +00:00
Cours 1 : Gestion de l'activité
===============================
### Processus
#### Notion de processus
2017-01-16 10:15:37 +00:00
##### 1. Définition:
2017-01-16 09:39:32 +00:00
- activité/programme en exécution
- aspect actif vs. passif (programme/fichier)
- unité de travail dans la plupart des sys.
2017-01-16 10:15:37 +00:00
##### 2. Objectif:
2017-01-16 09:39:32 +00:00
- exécution concurrente
- multiprogrammation
- temps partagé
2017-01-16 10:15:37 +00:00
#### Quelques aspects des processus
- les processus utilisent des ressources
- processeur
- mémoire
- I/O
- ..
- processus sys. vs. processus util.
- le S.E. est responsable de la gestion des processus:
- création
- destruction
- allocation de ressources
- ordonnancement
- synchronisation
- communication inter-processus
- ..
- processus à multiples flots de contrôle (threads)
2017-01-16 10:38:30 +00:00
Implantation d'un processus
---------------------------
2017-01-16 10:15:37 +00:00
##### 1. Eléments consistuants d'un processus:
|composante|description|
|--|--|
| section de texte |source en asm|
| compteur d'instructions |position actuelle dans le prog.|
| contenu des registres |dans le cache proc.|
| pile d'exécution |mémoire dynamique d'exécution|
| section des données |variables globales|
_Remarque_: 2 processus peuvent exécuter le même programme mais ils ne partagent rien.
##### 2. Bloc de contrôle d'un processus
+----------+--------------------+
2017-01-16 10:38:30 +00:00
| pointeur | état du processus |
2017-01-16 10:15:37 +00:00
+----------+--------------------+
| numéro de processus |
+-------------------------------+
| compteur de programme |
+-------------------------------+
| registres |
+-------------------------------+
| limites mémoire |
+-------------------------------+
| liste des fichiers ouverts |
+-------------------------------+
| ... |
+-------------------------------+
_PCB: Process Control Bloc_
2017-01-16 10:38:30 +00:00
###### Contenu d'un PCB
2017-01-16 10:15:37 +00:00
- état courant du processus
- compteur d'instructions: adresse de la prochaine exécution à exécuter
2017-01-16 10:38:30 +00:00
- registres de processeur: doivent être sauvegardés afin de revenir au processus après interruption
2017-01-16 10:15:37 +00:00
- ..
- informations sur la gestion de mémoire: valeur des registres de base et de limite, tables de pages ou de segments
- information de comptabilisatio: temps CPU et réel, limite de temps, etc
- information de statut I/O: listes des périphériques alloués
2017-01-16 10:38:30 +00:00
##### Etat d'un processus
2017-01-16 10:15:37 +00:00
2017-01-16 10:38:30 +00:00
![Diagramme d'états](/diagrammeetat.png)
2017-01-16 10:15:37 +00:00
_Remarque_: à un instant donné
- un processus au plus est en exécution par le processeur
- plusieurs processus peuvent être prêts ou en attente
2017-01-16 10:38:30 +00:00
##### Commutation de contexte
- c'est la sauvegarde de l'état du processus courant et le chargement de l'état sauvegardé d'un nouveau processus
- contexte = **PCB**
- cout de la commutation (temps perdu) varie d'une machine à l'autre (sur certaines machines: dispositifs spéciaux pour la copie des registres) : de 1 à 1000 us.
- aspect critique de l'efficacité d'un système !!
![Schéma de commutation](/commutation.png)
##### Threads
- implémentent les flots d'exécution multiples (processus _multithreadés_ - multithreaded processes)
- intérêt:
- contrôle centralisé des différentes tâches (un seul processus) par le programmeur
- économie de mém. (la plupart des informations du PCB sont communes aux différents threads)
##### Ordonnancement des processus
- Objectif: gérer l'accès concurrent aux ressources par les processus
- Gestion par files d'attentes
- file d'attente des travaux : tous les processus
- file d'attente des processus prêts (liste chainée de PCBs)
- file d'attente pour chaque périphérique
2017-01-16 11:14:32 +00:00
##### Ordonnanceurs
1. **ordonnanceur** : programme chargé pour gérer l'ordonnancement
2. **ordrdonnanceur à long terme** : dans un contexte de traitement par lots (mode batch)
3. **ordrdonnanceur à court terme** : gère l'allocation du processeur (classique)
4. **ordrdonnanceur à moyen terme** : pour le swap (quand plus assez de mém. dans la mémoire centrale, il retire un processus et le transfère dans le HDD)
##### Problèmes de systèmes interactifs
- sur certains systèmes interactifs comme Unix, il n'y a pas d'ordonnanceur long terme (logique)
- si trop de processus (en particulier si beaucoup d'util.) la mémoire ne peut plus les contenir tous
**Solutions**
- "Ejecter" des utilisateurs (bof bof)
- swap
##### Ordonnanceur à moyen terme
- Régule le _degré de multiprogrammation_ en implémentant un mécanisme de transfert de processus de la mém. vers les unités de stockage et inversement : _permutation_ ou _swap_
- Critères:
- taux d'utilisation de la mém. principale (majorité du temps)
- dosage entre les processus usant du processeur et processus usant des I/O
- Algorithme assez couteux et donc fréquence d'exécution faible (plusieurs sec)
##### Ordonnancement à court terme
- fréquence d'exécution élevée (`< 0.1s`)
- l'algorithme doit être efficace
**exemple**: si temps d'exécution = `0.01s`, alors `9%` du temps perdu dans l'ordonnancement.
##### Processus coopérants
- Intérêts:
- partage d'information
- accélération du calcul
- modularité
- commodité
- interactivité
- Requiert des mécanismes permettant aux processus de coopérer
- exemple: producteur/consommateur
##### Communication inter-processus
- Première solution: mémoire partagée
- pas évident dans le cadre général (implantation des mécanismes de protection mém. plus complexe)
- impossible dans un contexte distribué
- Seconde solution: fournir une fonctionnalité de communication interprocessus
(IPC: `InterProcess Communication`)
- communication + synchronisation
##### Implantation d'un IPC
- Par un système de passage de messages
- 2 primitives de base : `send` et `receive`
- Implantation logique vs. physique
- Implantation physique
- mémoire partagée
- bus matériel
- réseau