164 lines
7.2 KiB
Markdown
164 lines
7.2 KiB
Markdown
<header><h1>
|
|
Introduction aux systèmes d'exploitation
|
|
</h1></header>
|
|
|
|

|
|
|
|
Le système d'exploitation virtualise la partie hardware pour :
|
|
- Simplifie l'utilisation
|
|
- Gère les ressources physiques
|
|
- Processeur
|
|
- Mémoire principale
|
|
- Entrées-sorties (disques, interfaces réseaux, ...)
|
|
|
|
L'OS gère les ressources à l'aide de technique de gestion des mémoires et de partage de ressources
|
|
partageable entre plusieurs utilisateurs (ex : threads).
|
|
Pour ce faire, il
|
|
- connait à tout moment l'utilisateur d'une ressource
|
|
- gère les accès à une ressource
|
|
- accorde l'usage d'une ressource
|
|
- évite les conflits
|
|
|
|
Les premiers systèmes d'exploitation étaient des systèmes à traitement par lots.
|
|
Les programmes étaient regroupés en lots et exécutés les uns après les autres.
|
|
Les programmes étaient chargés en mémoire et exécutés sans intervention de l'utilisateur.
|
|
|
|
## Machine à transistors
|
|
|
|
- Coûtent cher
|
|
- Les utilisateurs ne peuvent pas interagir avec le système
|
|
- Les utilisateurs écrivent leurs programmes en Fortran et en assembleur
|
|
|
|
<b><u>Fonctionnement :</b></u>
|
|
1. Programmation d'une carte perforée en Fortran ou en assembleur
|
|
2. L'opérateur prend les cartes perforées et les charge dans le compilateur
|
|
3. L'opérateur récupère les cartes perforées compilées et les charge dans "l'ordinateur"
|
|
4. L'ordinateur exécute le programme
|
|
5. S'il y a une erreur, l'opérateur imprime l'image de la mémoire sur un listing et doit tout recommencer.
|
|
|
|
## Systèmes à traitement par lots
|
|
Pour accélérer les opérations, deux méthodes sont utilisées :
|
|
- ***Le traitement par lots (batch processing) :*** Regroupe et traite à la suite les travaux similaires
|
|
- ***Le moniteurs d'enchaînement (linking monitor) :*** Les travaux sont automatiquement enchaîné et
|
|
executé par un programme spécialisé (ancêtre des systèmes d'exploitation)
|
|
- Une place mémoire lui est réservée dans la mémoire centrale qui se divise donc en une zone moniteur
|
|
et une zone utilisateur
|
|
|
|
## Sysèmes avec spooling
|
|
Les systèmes avec spooling permettent d'accéder simultanément à plusieurs périphériques d'entrée/sortie.
|
|
Les travaux sont stockés dans une file d'attente (spool) et sont traités par un programme spécialisé.
|
|
Le spooling permet de traiter plusieurs travaux en même temps.
|
|
|
|
La mémoire est partagée en quatre programmes :
|
|
- Le programme d'entrée
|
|
- Le programme d'enchaînement
|
|
- Le programme de l'utilisateur
|
|
- Le programme de sortie
|
|
|
|

|
|
|
|
## Système à multi-programmation
|
|
La multi-programmation permet de partager le processeur entre plusieurs programmes.
|
|
Chaque programme est chargé en mémoire et est exécuté en alternance.
|
|
Dès qu'un programme doit lire des données ou écrire des résultats, il est mis en attente et un autre
|
|
programme est exécuté afin d'optimiser l'utilisation du processeur.
|
|
|
|

|
|
|
|
La commutation de l'exécution d'un programme à un autre est assuré par l'**ordonnanceur** (scheduler).
|
|
|
|
*Inconvénients :* Les programmes cours, sont pénalisés, car leur temps d'exécution dépend aussi des autres
|
|
programmes en cours d'exécution.
|
|
|
|
|
|
## Système à temps partagé
|
|
Le système à temps partagé permet à plusieurs utilisateurs d'accéder simultanément à l'ordinateur.
|
|
Chaque utilisateur dispose d'un temps d'utilisation du processeur (time slice) qui est très court (ex. 40 msec).
|
|
|
|

|
|
|
|
## Système temps réel
|
|
Les systèmes temps réel doivent être capables réagire au rythme où les données arrivent et repartent.
|
|
Ils ont des contraîntes plus hautes ques les systèmes à temps partagé, qui peuvent se permettent d'attendre
|
|
alors qu'un système temps réel aurait des conséquences fâcheuses.
|
|
|
|
## Systèmes multi-processeur répartis
|
|
Dans un système multi-processeur répartis, chaque processeur dispose de son propre système d'exploitation.
|
|
Les systèmes d'exploitation communiquent entre eux pour partager les ressources.
|
|
|
|
|
|
# Mécanisme d'entrées-sorties
|
|
Pour accéder aux périphériques, le processeur utilise des mécanismes d'entrées sorties.
|
|
|
|
## Les registres d'un processeur
|
|
Les registres contenus dans le processeur sont regroupés selon leur fonctionnalités
|
|
- Registre généraux
|
|
- Registre spécialisés
|
|
- Le **registre d'instruction** IR (Instruction Register) contient l'instruction courante
|
|
- Le **compteur ordinal** PC (Program Counter) contient l'adresse de l'instruction courante
|
|
- Le **registre d'état** SR (Status Register) contient des informations sur l'état du processeur
|
|
|
|
Ces regstres caractérisent le contexte d'un programme. Il s'agit de la partie sauvegardée lors d'un
|
|
*switching context* (changement de contexte).
|
|
|
|
|
|
## Les registres d'un périphérique
|
|
Les périphériques disposent, pour comuniquer avec le processeur, d'un certain nombre de registres:
|
|
- **Registre de données** DR (Data Register) : Contient les données à lire ou à écrire
|
|
- **Registre d'état** SR (Status Register) : Contient des informations sur l'état du périphérique
|
|
- **Registre de commande** CR (Command Register) : Détermine les caractéristiques du périphérique
|
|
|
|
## Entrées-sorties en boucle d'attente
|
|
Dans ce mode, le processeur attend que le périphérique soit prêt pour effectuer une opération.
|
|
Le processeur effectue une boucle d'attente jusqu'à ce que le périphérique soit prêt.
|
|
|
|
1. Le processeur contrôle le registre d'état du périphérique
|
|
2. Si le périphérique n'est pas prêt, le processeur effectue une boucle d'attente. S'il est prêt :
|
|
3. Le processeur écrit les données dans le registre de données
|
|
4. Le processeur écrit la commande dans le registre de commande
|
|
5. Le périphérique effectue l'opération
|
|
6. Le périphérique met à jour le registre d'état
|
|
7. Le processeur lit les données dans le registre de données
|
|
|
|
Si le périphérique notifie le processeur :
|
|
1. Le périphérique va changer son statut
|
|
2. Le processeur va pouvoir aller chercher les données dans le registre de données
|
|
|
|
## Les interruptions
|
|
Les interruptions permettent de signaler au processeur qu'un événement s'est produit.
|
|
Le signal est la conséquence d'un évènement interne au programme et résultant de son exécution ou
|
|
externe et indépendant de son exécution. Toute l'information nécessaire pour traiter l'interruption
|
|
est regroupé en mémoire dans deux mots consécutis, appelés **vecteur d'interruption** (vector interrupt).
|
|
On y trouve :
|
|
- L'adresse de la routine de traitement de l'interruption
|
|
- Le registre d'état du processeur pour cette routine.
|
|
|
|
Lorsqu'une interruption se produit, le processeur effectue un switching context et exécute la routine.
|
|
|
|
On distingue en général au moins trois niveaux d'interruption :
|
|
- Les interruptions externes
|
|
- Les exceptions internes
|
|
- Les appels systèmes
|
|
|
|

|
|
|
|
## La DMA
|
|
La [DMA](/infotro/SEm/DMA) (Direct Access Memory) permet de faire des transferts vers la mémoire rapidement.
|
|
Le processeur laisse le controller DMA accéder au périphérique pour amener les données directement dans la
|
|
mémoire et éviter de perdre du temps en passant par le processeur qui doit faire une copie des données.
|
|
Elle est très utile lorsqu'il y a un grand nombre de données.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|