système d`exploitation

publicité
Système d’exploitation
1)
2)
3)
4)
5)
6)
7)
Généralités sur les OS
Rappels sur les interruptions
Processus et threads
Gestion de la mémoire
Les entrées / sorties E/S
Aperçu de la gestion de fichiers SGF
Problématique du parallélisme
1. Généralités sur les OS
1.1.
Introduction
1.1.1. Présentation
-
-
Un système d’exploitation (SE) ou Operating System (OS) c’est :
o un ensemble de programme
o qui se charge de tous les problèmes liés à l’exploitation de la machine
Ayant pour objectifs
o de faciliter la tâche des utilisateurs de la machine
o d’optimiser l’utilisation des composants de la machine
1.1.2. Point de vue externe
Applications
Bibliothèque
Utilitaires
SE
Noyau (protection de la couche matériel)
Matériel
Noyau = couche qui rend transparent au applicatif ce qu’il y a en dessous
Il s’agit :
- de masquer à l’utilisateur les problèmes de gestion interne des ressources
- de lui présenter une machine virtuelle plus simple à exploiter que la machine réelle
- et qui lui offre des services
1.1.3. Point de vue interne
Il s’agit
- de gérer au mieux les unités fonctionnelles qui composent la machine
- d’offrir un ensemble d’opération de bas niveau que les programmes applicatifs
peuvent invoquer
Cours de jc.bouriez
DUT info 2eme année
page 1
Système d’exploitation
Trois unités fonctionnelles
- Processeur
- Mémoire centrale
- Entrée/Sortie
Traiter
Mémoriser
Communiquer
Réaliser à l’aide de composants électroniques
Constitués eux-mêmes à partir de circuits logiques
- circuits séquentiels
- et circuits combinatoires
- construits d’après une technologie (ex HCMOS)
CPU
Mémoire centrale
Interface d’E/S
Architecture Von Neumann
schéma détaillé PC ; CPU ; mémoire
Phase de déroulement d’une instruction
- Fetch
- Decode
- Execute
- Store
Travail par un paradigme séquentiel
1.1.4. Architecture machine
L’architecture d’une machine représente l’organisation de ses unités fonctionnelles
On ne retient dans un premier temps qu’une architecture d’interconnexion classique dans
laquelle un processeur, une mémoire centrale et des dispositifs d’E/s sont reliés par un bus
 L’OS doit donc optimiser l’utilisation des ressources et gérer les problèmes liés au partage
de ces ressources.
Cours de jc.bouriez
DUT info 2eme année
page 2
Système d’exploitation
1.1.5. Architecture technique
1.1.6. Vision d’un OS
Finalement la vision d’un OS dépend du niveau d’observation :
- pour l’utilisateur il s’agit d’un ensemble de fonctionnalités offertes soit grâce à un
langage de commandes, soit à travers une interface graphique.
- pour le développeur l’OS n’est qu’un ensemble d’appels système qui fournit des
services de bas niveau (ex API Win 32)
- et pour l’administrateur l’OS est un ensemble complexe de ressources à gérer et à
configurer (espace disque, comptes utilisateurs, droits et protections, etc…)
Quid du cours système ?
Le cours système en 2e année du département a pour objectif de présenter les grands principes
qui président au fonctionnement des OS modernes :
 pas d’étude approfondie des mécanismes internes d’un système particulier
…
1.2.
Définitions
1.2.1. Processus
Un processus est une suite d’instructions chargée totalement ou partiellement en mémoire
centrale, et constituant un ensemble logique en cours d’exécution ou susceptible de s’exécuter.
La notion de processus est dynamique : un processus naît lors du chargement d’un programme
et meurt à la fin de l’exécution du programme.
Un processus est donc caractérisé par un état à un instant donné.
1.2.2. Programme
Un programme est une entité composée de séquences d’instructions agissant sur un ensemble
de données.
C’est du code obtenu par compilation d’un fichier source suivie d’une phase d’édition des
liens.
La notion de programme est essentiellement statique car c’est un fichier stocké sur disque.
Des processus distincts peuvent exécuter un même programme (programme réentrant).
1.2.3. Thread
Un processus peut être parfois décomposé en unités d’activité distinctes appelées thread et
qui :
- s’exécutent de façon parallèle ou concurrente
Cours de jc.bouriez
DUT info 2eme année
page 3
Système d’exploitation
-
partagent l’espace d’adresse du processus
Le processus représente donc pour ses threads une unité d’encapsulation des ressources
utilisées
T1
T2
T3
Processus
Et le thread est un sous ensemble d’exécution du processus sur cet ensemble de ressources.
1.2.4. Tâche
Nous conviendrons que la tâche représente la plus petite unité sémantique d’exécution au
niveau macroscopique.
Donc suivant les systèmes :
- une tâche = un processus sur les systèmes multi-processus
- une tâche = un thread sur les système multi-thread
1.2.5. Topologie des systèmes
1.2.5.1.Système en monoprogrammation
Système dans lequel, une seul tâche est exécuté à la fois
Une tâche ne peut être exécutée que lorsque la précédante a été terminé
1.2.5.2.Système multi-tâches
Plusieurs tâches résident en mémoire centrale
Le système d’exploitation doit alors gérer l’attribution et le partage des ressources les
différentes tâches
 pose les problèmes liés à la programmation concurrente
 pose le problème de protection du code et des données
1.2.5.3.Système multi-threads
Supporte l’exécution d’un processus en unités indépendantes
Implémente au niveau du noyau la gestion des threads
L’ordonnancement se fait alors sur des threads et non plus des processus
Possibilité d’ordonnancer les threads sur plusieurs processeurs dans une architecture parallèle
1.2.5.4.Système mono-utilisateur
Système où un seul utilisateur dispose de toutes les ressources de la machine
Cours de jc.bouriez
DUT info 2eme année
page 4
Système d’exploitation
1.2.5.5.Systèmes multi-utilisateurs
Système où plusieurs utilisateurs se partagent les ressources de la machine
 le système est alors multi-tâches
1.2.5.6.Système temps réel
Système dans lequel il existe des interactions entre le système et des équipements (capteurs,
actionneurs, etc…)
Avec des contraintes de temps fortes d’origine matérielle entre l’occurrence d’un évènement
et la réponse appropriée du système à cet évènement.
1.2.6. Transactionnel et temps réel
Un système temps réel est un système déterministe par opposition au système transactionnel
de l’informatique de gestion.
Dans un système temps réel le temps de fin d’exécution d’une tâche est contraint
Dans un système transactionnel le temps d’exécution d’une tâche dépend de l’activité
du système et du temps de réponse de l’utilisateur.
 Ceci impacte les stratégies d’ordonnancement des tâches suivant la nature du système
1.2.7. Modes d’utilisation
1.2.7.1.Mode différé
Il s’agit d’un traitement par lots (Batch Processing)
Un lot = ensemble de programmes préparés avec leurs données
Les lots sont placés en file d’attente et exécutés séquentiellement
Il n’y a pas d’intervention de l’utilisateur
On peut aussi exécuter dans ce mode des fichiers de commandes
1.2.7.2.Mode interactif
Dans ce mode toute action de l’utilisateur est traitée immédiatement par le système
On distingue de 2 types
Le time sharing : les utilisateurs ont accès simultanément à l’ensemble des ressources
et le système gère l’allocation cyclique des ressources
Le transactionnel : c’est le principal mode d’utilisation en info de gestion : il s’agit
d’application qui gèrent le dialogue homme machine suivant une logique liée aux
fonctionnalités attendues.
1.3.
Les fonctions d’un OS
1.3.1. Le chargement
-
-
-
Le système comprend généralement
o une partie toujours résidente en mémoire centrale et qui se nomme le noyau
(kernel)  aux pages de la mémoire non swapper (protégé)
o une partie chargée dynamiquement à l’exécution de la fonction demandée
Le chargement à la mise sous tension s’effectue grâce à un programme chargeur
simplifié appelé BOOTSTRAP
Principe du chargement
o le chargeur est automatiquement appelé au démarrage de la machine
Cours de jc.bouriez
DUT info 2eme année
page 5
Système d’exploitation
o pour cela il doit être stocké à une adresse disque convenu (exemple le MBR =
Master Boot Record)
o ce petit programme une fois chargé et lancé a pour rôle de charger le noyau du
système en mémoire centrale
o il est possible de changer de chargeur sur un système
1.3.2. La génération de système
-
-
Il s’agit du paramétrage d’un certain nombre d’éléments gérés par le système comme
o la taille de la zone de swap (gestion de la mémoire virtuelle)
o la taille de la pagination (taille des bloques pour un processus donné)
o la taille des tampons utilisés pour les E/S
o les noms symboliques de périphériques
o les protocoles d’échange
o …
Permet de configurer le système (sous unix nécessite de régénérer le noyau !)
1.3.3. Gestion de l’UC (unité centrale : processeur)
-
La gestion de l’unité centrale par le système d’exploitation consiste à :
o planifier l’exécution des différentes tâches suivant une stratégie
d’ordonnancement
o assurer un mécanisme de commutation entre les tâches
1.3.4. Gestion de la mémoire centrale
-
Il s’agit essentiellement :
o d’allouer de l’espace mémoire aux tâches naissantes
o de charger les tâches à des adresses valides
o d’assurer une non violation de l’espace mémoire alloué de chaque tâche
o et de libérer l’espace mémoire des tâches terminées
1.3.5. Gestion des E/S
-
Pour le système d’exploitation, traiter les E/S c’est desservir les demandes de transfert
d’information en
o gérant des matériels divers (CPU, interface d’E/S, contrôleur de périphérique,
DMA, périphérique)
o en s’appuyant sur la mise en mode noyau pour les opérations de bas niveau.
1.3.6. Autres fonctions
-
-
La gestion des fichiers
o l’organisation des supports (logique et physique)
o les accès aux fichiers
o la protection et les droits d’accès aux fichiers
La gestion des utilisateurs
o les comptes utilisateurs et leurs droits
o les sessions de travail
o le dialogue homme-machine
Les utilitaires de service
- Les outils d’administration
o configuration
Cours de jc.bouriez
DUT info 2eme année
page 6
Système d’exploitation
-
-
o exploitation
Les outils d’aide à la production de programme
o développement et mise au point
o gestion de bibliothèques
Les outils de sécurité
o mesure et surveillance
o droits et quotas
o gestion des sauvegardes
1.4.
Comparatif des OS
1.4.1. Quelques OS
-
-
Les windows 9X, NT, 2000, XP, CE de microsoft
MacOS d’Apple
La famille UNIX
o HP/UX (HP)
o AIX (IBM)
o SunOS/Solaris (SUN)
o SCO (santa croze opérétion)
Les UNIX-Like : LINUX et FreeBSD
OS/390 et Z/OS pour les MainFrame d’IBM
1.4.2. Panorama des OS du marché
diapo publique
2. Rappels sur les interruptions
2.1.
-
-
Qu’est ce qu’une interruption ?
Une interruption (ou IT) consiste à :
o suspendre la tâche en cours d’exécution
o pour exécuter autre chose
On appelle système d’interruption la composante système qui prend en charge les
réponses appropriées aux demandes d’interruptions
On distingue 2 familles d’interruptions
2.1.1. Les IT externes
-
Une IT externe est une IT asynchrone provoquée par un évènement sans relation avec
les instructions de la tâche en cours d’exécution
Il s’agit d’une interruption matérielle générée par un dispositif externe
On distingue
o les défauts externes pour le traitement des erreurs matérielles
o l’horloge utilisée pour le temps partagé
o les E/S avec les périphériques
2.1.2. Les IT internes
-
Une interruption interne est une IT synchrone provoquée par l’exécution même de
l’instruction en cours de la tâche active
On distingue
o les exceptions (ou déroutements) : une exception est déclenchée par une
anomalie lors de l’exécution d’une instruction (exemple division par 0)
Cours de jc.bouriez
DUT info 2eme année
page 7
Système d’exploitation
o les interruptions logicielles (ou appels système) : une interruption logicielle est
déclenchée lorsque la tâche en cours fait appel aux services du noyau
2.2.
Interruption Externe
2.2.1. Principe général
-
-
Arrivée d’un évènement asynchrone
o identification de la source = qui est l’émetteur de la demande ?
o autorisation = prise en compte ou non de la demande
Attendre un point interruptible, c'est-à-dire la fin de l’exécution de l’instruction en
cours.
Sauvegarde du contexte d’exécution de la tâche interrompue
Chargement du contexte de la tâche à exécuter suivant la source de la demande
Schéma PUBLIC
-
On voit apparaître plusieurs notions
o identification de la source (par la vectorisation)
o autorisation (masquable ou non)
o contexte d’une tâche (sauvegarde processeur minimum, le noyau s’occupe du
reste)
o Commutation de contextes
 Notion de rupture de séquence
2.2.2. Identification de la source
-
-
-
-
Sur un système multi-tâches
o plusieurs demandes d’interruption peuvent être émises en même temps
o et d’autres demandes peuvent survenir alors qu’une interruption est déjà en
cours de traitement
Il faut donc pouvoir
o identifier l’émetteur d’une demande d’interruption pour exécuter la routine
d’IT voulues
o Mais aussi établir un ordre de priorité s’il y a plusieurs demandes
d’interruption en même temps
Une interruption externe est émise sur un niveau
Généralement sur les systèmes le nombre de niveaux disponibles sur le CPU pour les
IT externes est très inférieur au nombre de sources possibles d’IT (un seul sur les
micro processeur)
Il faut alors un mécanisme supplémentaire pour permettre à la CPU d’identifier la
source
Broche du CPU x 2 :
 Sur NMI exception des défaut matériel (IT externe)  non masquable
 Sur INT interruption masquable !!
-
Identifier par scrutation : l’unité centrale va interroger les différentes sources possibles
sur un niveau pour savoir de laquelle il s’agit
Cours de jc.bouriez
DUT info 2eme année
page 8
Système d’exploitation
-
Technique par vectorisation : toute demande d’interruption est accompagnée par une
information (le vecteur d’interruption) permettant de mettre en œuvre le programme
de gestion d’interruption approprié
SCH PUBLIC
-
La demande d’IT est émise sur la patte INT
Tous les équipements sont reliés à une ligne unique par un OU logique
Pour connaître la routine adéquate, le processeur interroge les différents éléments
connectés à la ligne unique
-
La vectorisation
o La demande d’interruption est émise sur la pate INT
o Elle est accompagnée d’un vecteur d’IT présenté dur le bus de donnés
2.2.3. Hiérarchie des IT externes
-
-
Hiérarchiser les IT c’est établir un ordre de traitement entre les différentes demandes
d’interruption
o pour éviter les interruptions cycliques
o parce qu’il existe des demandes plus prioritaires que d’autres (exemple :
l’horloge)
On associe une priorité par niveau d’interruption
2.2.4. Le contrôleur d’interruption
-
Il s’agit d’un circuit dédié à la gestion matérielle des interruptions externes
Fonctions d’un contrôleur d’interruption
o identifier les sources d’IT en fournissant autant de niveaux nécessaires que de
sources possibles
o attribuer une priorité à chaque niveau, donc à chaque source
o permettre la modification par programmation de la hiérarchie des IT
o affecter un vecteur d’interruption à chaque niveau
o d’autoriser ou non les IT sur un niveau (masquage)
SCH Public
2.2.5. Autorisation des interruptions
-
-
Interruption masquable
o Interruption dont la prise en compte peut-être différée mais pas ignorée
o lorsqu’un niveau est masqué, toute demande émise sur ce niveau est mise en
attente et sera traitée ultérieurement (lorsque le niveau sera démasqué)
o lorsqu’un niveau est démasqué, toute demande émise sur ce niveau est prise en
compte
o le fait de pouvoir masquer à un moment donné les interruptions au niveau de la
CPU permet de définir des séquences de code critique c'est-à-dire non
interruptibles (cf cours de programmation système)
o le masquage – démasquage se fait par des instructions particulières (STI et CLI
sur un PC)
o Correspond généralement à la patte INT sur un microprosseur
Interruption non masquable
o interruption dont la demande ne peut être inhibée
Cours de jc.bouriez
DUT info 2eme année
page 9
Système d’exploitation
o correspond à la plus haute priorité
o toujours prise en compte et sert au traitement des pannes matérielles (failure)
o correspond toujours généralement à la patte NMI sur un microprocesseur
-
Sur certaines machines, il est possible également :
o de désarmer un niveau : dans ce cas toutes les demandes d’interruption émises
sur ce niveau sont perdues
o de réarmer un niveau : dans ce cas les demandes d’interruption sont à nouveau
autorisées sur ce niveau
o grâce à des instructions particulières
SCH public
2.3.
-
-
2.4.
-
-
-
Interruption interne
Les interruptions internes (les déroutements et les interruptions logicielles) sont
déclenchées par une instruction de la tâche en cours d’exécution.
Elles fonctionnent selon un principe identique aux interruptions matérielles
Dans le cas d’un déroutement le processeur se branche lui-même au traitement
approprié suivant l’exception qu’il a détectée
Une interruption logicielle est générée par une instruction particulière de type INT Y
où Y est une information permettant de connaître la routine à exécuter (par exemple
une entrée dans la table des vecteurs d’IT)
Les appels système de l’OS qui permettent à une tâche d’invoquer les services du
noyau s’appuient sur le mécanisme des interruptions logicielles
Conclusion
Une interruption peut-être soit
o une interruption externe (exemple l’horloge)
o un appel système (exemple une demande d’E/S)
o ou encore un déroutement en cas de plantage du programme
Toute interruption génère une commutation lors de laquelle le noyau reprend la main
pour assurer
o la sauvegarde du contexte de la tâche suspendue
o la restauration du contexte à exécuter
La gestion des interruptions par le noyau de l’OS s’appuis donc le niveau matériel (le
système d’interruption du processeur)
Le noyau représente un ensemble de services uniquement accessibles par le biais des
interruptions et des appels système
Il est toujours résident en mémoire et sa taille, doit être aussi petite que possible pour
laisser suffisamment de mémoire aux applications
Les appels système :
o s’exécutent en mode noyau (mode protégé)
o sont non interruptibles (intégrité du noyau)
o permettent d’accéder sous le contrôle du noyau hors de l’espace d’adressage
de la tâche
o assurent les grandes fonctionnalités du système
 gestion des E/S
 gestion de la mémoire
 gestion de la communication inter-processus
 gestion des fichiers et des répertoires
Cours de jc.bouriez
DUT info 2eme année
page 10
Système d’exploitation

gestion du temps
3. Processus et Threads
3.1.
Gestion des processus
3.1.1. Description d’un processus
-
-
-
-
Problématique d’un système multitâche
o plusieurs processus sont présents simultanément en mémoire centrale
o il faut donc partager la ressource CPU entre ces différents processus
Ceci implique que chaque processus
o possède un certain nombre de caractéristiques propres
o passe au cours de son « existence » par plusieurs états
Caractéristique d’un processus
o l’identification ou PID :
 entier attribué par le noyau du système
 au moment de la création
 unique
o la priorité
 indique le caractère d’urgence du processus
 sert à déterminer l’ordre d’allocation de la CPU
Espace d’adressage d’un processus
o ensemble des objets (instructions et données) qui est propre au processus
o comprend 3 zones
 zone programme : code et constante (en lecture)
 zone données : variables globales et variables locales déclarées static
(en lecture et écriture)
 zone pile : informations temporaire (paramètres d’appel, adresse de
retour, variables locales)
 zone tas : allocation dynamique de mémoire
SCH public
-
-
Mode d’exécution d’un processus
o mode utilisateur
 le processeur n’accède qu’à son espace d’adressage
 exécution d’instructions ordinaires
o mode noyau
 accès à des données externe à l’espace adressable du processus
 permet d’isoler l’applicatif du système
 s’appuie sur les mécanismes de protection du processeur (instructions
privilégiées)
 concerne les appels systèmes, les routines d’interruptions, la
commutation de tâches
Contexte d’un processus
o représente l’ensemble des informations qui doivent être sauvegardées lors
d’une commutation afin de garantir une reprise ultérieure correcte de
l’exécution du processus
o s’appuie sur le mécanisme des interruptions
o informations sauvegardées
 les registres processeurs
Cours de jc.bouriez
DUT info 2eme année
page 11
Système d’exploitation

-
-
informations sur les zones mémoires associées au processus (voir
chapitre sur la MC)
Descripteur d’un processus (PCB)
o structure système en mémoire centrale qui contient les informations
nécessaires à la connaissance exacte du processus à un instant t
 identificateur (PID)
 état et priorité du processus
 contexte utilisateur (zone code, zone données, zone pile)
 compteurs de temps d’exécution
Table des descripteurs = table système
o localisé à une adresse fixe en zone mémoire non swappée
o constitue le point d’entrée à l’ensemble des descripteurs des processus présents
sur le système
o les descripteurs sont chaînés entre eux par des pointeurs
o chaque descripteur est représenté par une structure
o il y a un descripteur par processus
SCH public exemple table des descripteurs
Cours de jc.bouriez
DUT info 2eme année
page 12
Système d’exploitation
Téléchargement