Beruflich Dokumente
Kultur Dokumente
Droulement de l'enseignement
Le systme en ligne de commande (Jesse Himmelstein) Le systme en C (Jesse Himmelstein) Conception interne d'un systme (Philippe Quinnec)
Contrle des processus Mmoire virtuelle Systme de chiers
2 / 38
Plan
1
3 4
Dnition Notion d'interface Systme d'exploitation Appels systme Concepts Processus Mmoire : protection et isolation Fichiers vnements Ralisation Conclusion
3 / 38
Interfaces
Un service est caractris par son interface
L'interface est l'ensemble des fonctions accessibles aux utilisateurs du service Chaque fonction est dnie par son format (la description de son mode d'utilisation) - sa syntaxe sa spcication (la description de son eet) - sa smantique Ces descriptions doivent tre prcises, compltes (y compris les cas d'erreur) et non ambigus Les descriptions de l'interface d'un service doivent tre totalement indpendantes du mode de ralisation du service Facilite la portabilit Permet de remplacer une ralisation du service par une autre, condition qu'elle ralise la mme interface
4 / 38
Dnition
Qu'est-ce qu'un systme d'exploitation ? Le systme d'exploitation est l'intermdiaire entre l'ordinateur matriel et les applications qui l'utilisent.
emacs
compilateur
navigateur
Interface
Systme d'exploitation
Matriel
5 / 38
Rles
Adaptation d'interface Le systme fournit une interface plus commode utiliser que celle du matriel : plus haut niveau d'abstraction dissimulation des limitations physiques et du partage des ressources entre utilisateurs Gestion de ressources Gre les ressources matrielles : mmoire, processeurs, disques. . . Gestion = allocation, partage, protection
6 / 38
Un mal ncessaire
Le systme d'exploitation est indispensable : pour grer ecacement l'excution des programmes pour assurer le connement des erreurs en cours d'excution pour grer ecacement les ressources : processeurs, mmoires. . . pour orir une interface d'utilisation agrable aux usagers pour garantir une protection des donnes entre usagers
7 / 38
8 / 38
Histoire
utilisable depuis des programmes s'excutant sur le systme ensemble d'appels systmes utilisable par un usager humain ensemble de commandes textuelles (exemple : rm foo.*) graphiques (exemple : dplacer l'icne d'un chier vers la corbeille)
Interface graphique de commande Slectionner l'icne de fic1, appuyer sur la touche ctrl + dplacer l'icne vers le dossier destination
11 / 38
Appels systme
Le systme d'exploitation implante une machine abstraite systme Tout programme excutable peut faire appel aux instructions du noyau durant son excution : appels systme ou primitives du noyau Ces primitives implantent une machine systme permettant d'utiliser des concepts de haut niveau : processus, exceptions, mmoire virtuelle, chiers, pipes, sockets, etc Ces primitives dnissent une machine abstraite indpendante de la conguration matrielle sous-jacente Portabilit des programmes Ces primitives sont du code partag par tout programme qui s'excute
12 / 38
Appels systme
Application
open(...)
interface systme
13 / 38
Appels systme
Eectuer des oprations contrles, qu'une application ne peut pas faire en mode utilisateur Droits dirents entre mode applicatif et mode privilgi Similaire un appel de procdure, mais vers du code noyau Interface noyau prdnie Support processeur pour basculer en mode privilgi (trap) Gnralisation : anneaux de protection Distinguer les appels systmes (open, write...) et les fonctions de plus haut niveau construites avec (en C : fopen, printf...)
14 / 38
Plan
1
3 4
Dnition Notion d'interface Systme d'exploitation Appels systme Concepts Processus Mmoire : protection et isolation Fichiers vnements Ralisation Conclusion
15 / 38
Processus
Dnition Un processus est l'entit dynamique reprsentant l'excution d'un programme. Programme = description statique = processus = activit dynamique Intrt abstraction de la notion d'excution squentielle, indpendance de la disponibilit eective d'un processeur reprsentation des activits parallles unit d'allocation des ressources unit de protection et d'isolation unit comptable
17 / 38
...
Segment de code
Image en mmoire
Segment de donnes non initialises Segment de donnes initialialises
...
Table de relocation
18 / 38
P1
P2
P1
P2
P1 P2 P1 P2
19 / 38
(Pseudo-)paralllisme
Faire s'excuter plusieurs processus la fois Ne pas bloquer le systme quand un processus se bloque (entre/sortie) Se protger contre un processus qui boucle indniment sans librer le processeur Premption Communiquer avec l'environnement Flot de donnes Se protger contre un processus qui lit ou crit n'importe o en mmoire (donnes d'un autre processus ou donnes du systme) Protection mmoire Donner l'illusion que chaque processus a autant de mmoire qu'il le souhaite Mmoire virtuelle
20 / 38
Premption
Ordonnanceur
admission cr slection prt en excution interruption ralisation de l'E/S bloqu E/S ou attente d'vnement fin termin
partage du temps processeur interruption force du processus en cours pour librer le processeur ncessit de sauvegarder le contexte d'excution du processus politique d'allocation / slection
21 / 38
Un processus communique avec son environnement : par interruptions ou droutements : signaux directement par ots de donnes entre processus (tube ou pipe) indirectement par ots de donnes lis des donnes rmanentes : chiers
22 / 38
Besoin d'une cl passe-partout Ncessit d'interdire la programmation des verrous et du registre cl : Modes d'excution Solution actuelle : les Units de Gestion Mmoire (MMU : Memory Management Unit)
23 / 38
Mmoire virtuelle
Mmoire virtuelle d'un processus Ensemble des emplacements accessible ce processus, via une adresse dite virtuelle. Fentre sur l'ensemble des informations accessibles (le processeur ne peut adresser qu'un espace limit) Gestion conomique des ressources : l'espace disque est beaucoup moins cher que la mmoire RAM Indpendance et protection des processus : chaque processus a sa propre mmoire virtuelle
24 / 38
Mmoire virtuelle
Fichiers
Fichier Ensemble d'informations regroupes en vue de leur conservation et de leur utilisation ultrieure Systme de gestion de chiers (SGF/FS) Partie du systme d'exploitation qui conserve les chiers et permet d'y accder Conservation permanente des chiers = indpendamment de l'excution des programmes et de l'intgrit de la mmoire principale Organisation logique et dsignation Partage et protection des chiers
26 / 38
Organisation du SGF
Dsignation Interfaces systme langage C
noms symboliques noms symboliques descripteurs de fichier inodes adresses sur disque
libc
27 / 38
Dsignation symbolique
Organisation hirarchique Les noms forment une arborescence Nuds intermdiaires = rpertoires/directories (ce sont aussi des chiers) Nuds terminaux = chiers simples (toto.c) Nom absolu = chemin d'accs depuis la racine (/home/queinnec/toto.c) Nom relatif = chemin relatif au rpertoire courant (../queinnec/toto.c)
28 / 38
Flot de donnes
Tout accs l'information chier est faite exclusivement par des ots de donnes : squence d'octets non structurs lire = consomme dans le ot / crire = ajoute dans le ot s'oppose un accs mmoire (RAM = accs alatoire ) ou un accs structur (base de donnes) exemple de ots = entre clavier / chier sur disque / lien rseau des bibliothques utilisateur peuvent fournir des interfaces plus adaptes (e.g. lignes de caractres)
29 / 38
Flots de donnes
... proc.
Processus
cran fichier ?
Un processus peut ouvrir/fermer dynamiquement des connexions des sources ou puits de donnes, via la notion de canal de communication = descripteur de chier. Un processus hrite sa cration d'un environnement de communication standard
30 / 38
vnements
Interruptions Interruptions externes : n d'E/S, horloge. . . Interruptions internes : division par zro, branchement illgal. . . droutement vers une routine Traitement interne au noyau : p.e. dfaut de page mmoire utilisateur synchrone : p.e. E/S bloquante utilisateur asynchrone : p.e. signal
31 / 38
Plan
1
3 4
Dnition Notion d'interface Systme d'exploitation Appels systme Concepts Processus Mmoire : protection et isolation Fichiers vnements Ralisation Conclusion
32 / 38
Dmarrage / boot
Si le systme d'exploitation est un programme qui permet le dmarrage et l'excution des programmes, qui dmarre le systme ? 1 la mise sous tension, un programme en ROM s'excute (le BIOS sur PC) ; 2 Ce programme consulte les priphriques permanents (disque dur en gnral), charge en mmoire le premier bloc (master boot record) du premier priphrique prsent et excute le code contenu dans ce bloc ( 400 octets) ; 3 Ce code contient l'emplacement + le code pour charger un second chargeur (de taille arbitraire) : aprs chargement, il transfre le contrle ce chargeur ; 4 Ce second chargeur peut prsenter un menu de slection entre plusieurs OS, charge en mmoire l'image de l'OS choisi (ou par dfaut), et lui transfre le contrle ; 5 L'OS rcupre la mmoire utilise par les chargeurs initiaux. 33 / 38
Les processus
La machine processus 1 couche contexte d'excution 2 couche pseudo-parallle (coroutine = contexte indpendant du matriel) 3 couche parallle (processus) 4 ordonnanceur Mmoire virtuelle 1 principe 2 lien avec l'ordonnanceur
34 / 38
Systme de chiers
Les couches 1 couche physique : accs blocs disque 2 couche gestion des blocs (allocation/libration) 3 couche buerisation des blocs en mmoire 4 couche inodes 5 couche accs chier : descripteur de chier 6 couche dsignation/nommage
35 / 38
Plan
1
3 4
Dnition Notion d'interface Systme d'exploitation Appels systme Concepts Processus Mmoire : protection et isolation Fichiers vnements Ralisation Conclusion
36 / 38
Conclusion
Un systme d'exploitation... est un (ensemble de) logiciels qui fournit : des units d'excution et d'allocation de ressources (processus) la gestion des donnes temporaires (mmoire virtuelle) la gestion des donnes rmanentes (chiers) en masquant le plus possible les dtails matriels.
37 / 38