Académique Documents
Professionnel Documents
Culture Documents
1re anne du cycle dingnieurs Ecole Nationale des Sciences Appliques de Kenitra
A. EL Bourichi 1
Chapitre 1
Introduction
A. EL Bourichi
Un systme dexploitation est un logiciel qui permet de grer tous ces composants
A. EL Bourichi 4
Systme dexploitation
Le systme d'exploitation (SE, en anglais Operating System ou OS) est un ensemble de programmes servant dinterface entre les ressources matrielles d'un ordinateur et les applications de l'utilisateur (traitement de texte, compilateurs, navigateurs web )
A. EL Bourichi
Le concept dabstraction
Figure 1-2. Un systme dexploitation donne une belle image une ralit complexe et hideuse
A. EL Bourichi
Rles du SE
Le matre dorchestre: essentiel pour utiliser les ressources de la machine
gestion de la mmoire centrale gestion des processeurs: diviser le temps de calcul entre plusieurs programmes qui sexcutent simultanment gestion des priphriques: E/S gestion des fichiers: sur les mmoires de masses gestion des ressources: attribution des ressources ncessaires gestion des utilisateurs: pas dinterfrence entre eux
A. EL Bourichi
Noyau (kernel)
Le noyau assure ces fonctionnalits :
gestion des priphriques (au moyen de pilotes) gestion des files d'excution (aussi nomme processus) :
attribution de la mmoire chaque processus ordonnancement des processus (rpartition du temps d'excution sur le ou les processeurs) synchronisation et communication entre processus (services de synchronisation, d'change de messages, mise en commun de segments de mmoire, etc.)
gestion des fichiers (au moyen de systmes de fichiers) gestion des protocoles rseau (TCP/IP, .. etc.)
A. EL Bourichi
Noyau
Au lancement:
Boot: le programme qui initialise lordinateur Permet aux premiers services daccder aux applications systme : gestion de la mmoire, accs aux disques durs et accs aux priphriques
A. EL Bourichi
11
Le systme de fichiers
Un systme de fichiers est une structure de donnes permettant de stocker les informations et de les organiser dans des fichiers sur des mmoires secondaires (disque dur, CD-ROM )
E.g. une structure hirarchique C:\ensa\ginfo\bourichi\SE\polycopie.pdf
Une telle gestion des fichiers permet de traiter, de conserver des quantits importantes de donnes ainsi que de les partager entre plusieurs programmes informatiques Il offre l'utilisateur une vue abstraite sur ces donnes et permet de les localiser partir d'un chemin d'accs
A. EL Bourichi
12
Interface utilisateur
Via ligne de commande
shell, MSDos
Interface graphique
Xterm, Linux, Windows, Macintosh GUI (Graphical User Interface)
A. EL Bourichi
13
Shell
Shell (coquille par opposition au noyau) = L'interprteur de commandes permettant la communication avec le SE par l'intermdiaire d'un langage de commandes Permet l'utilisateur de piloter les priphriques en ignorant tout des caractristiques du matriel qu'il utilise, de la gestion des adresses physiques, etc.
E.g. sur Unix/Linux: bash, csh, tcsh,
ls : lister les rpertoires et les fichiers du rpertoire courant mv x y : changer le nom du fichier/rpertoire x en y
A. EL Bourichi
14
A. EL Bourichi
15
Historique
1969: Ken Thompson (Bell labs / MIT).
1973: criture en C -> systme portable
Linux
Proprits
multi-tches multi-utilisateurs Libre et gratuit
Logout:
commande logout dans la console
A. EL Bourichi
Rpertoire de connexion
A chaque utilisateur connu du systme est associ un rpertoire de connexion (home directory).
Le rpertoire de connexion contient aussi certains fichiers de configuration permettant l'utilisateur de personnaliser son environnement de travail. Ces fichiers sont normalement invisibles (car leur nom commence par un point, voir la commande ls). A tout moment, on peut revenir au rpertoire de connexion grce la commande cd.
A. EL Bourichi
Initiation au shell
Le Shell = interprteur de commandes
interface utilisateur de base (interlocuteur avec le syst.) interprtation ligne ligne plusieurs shells: sh, csh, tcsh, bash, ksh, zsh, ... langage de programmation
A. EL Bourichi
A. EL Bourichi
# echo $PATH
/bin:/usr/ucb:/usr/bin:/usr/bin/X11:/net/bin:/net/X/bin:/net/pack/frame/ bin
Cette variable contient tous les chemins o le systme peut trouver les commandes les plus utilises par le demandeur.
A. EL Bourichi
Le point dinterrogation: ?
remplace 1 seul caractre alphanumrique
A. EL Bourichi
cat [-v] [fichier...] : affichage du contenu dun fichier Loption -v permet dafficher les caractres non visibles. La commande cat permet aussi de concatner des fichiers: cat fichier1 fichier2 > fichier3 cette opration permet de crer un fichier (fichier3) en concatnant les fichiers fichier1 et fichier2. Le seul inconvnient de cet outil est quil affiche le contenu du fichier dans sa totalit (sans possibilit simple de contrler le dfilement par pages).
A. EL Bourichi
A. EL Bourichi
La commande ps
On peut visualiser les processus qui tournent sur une machine avec la commande : ps (options), les options les plus intressantes sont -e (affichage de tous les processus) et -f (affichage dtaille). La signification des diffrentes colonnes est la suivante:
UID nom de l'utilisateur qui a lanc le process PID correspond au numro du process PPID correspond au numro du process parent C au facteur de priorit : plus la valeur est grande, plus le processus est prioritaire STIME correspond l'heure de lancement du processus TTY correspond au nom du terminal TIME correspond la dure de traitement du processus COMMAND correspond au nom du processus.
A. EL Bourichi
Chacun de ces flux de donnes est identifi par un numro descripteur, 0 pour l'entre standard, 1 pour la sortie standard et 2 pour la sortie standard des messages d'erreur.
A. EL Bourichi
A. EL Bourichi
A. EL Bourichi
A. EL Bourichi
A. EL Bourichi
A. EL Bourichi
Le rsultat de la commande1 sera considr comme argument pour la commande2. |: indique un tube.
A. EL Bourichi
1: Liste des fichiers dans le rpertoire courant 2: Recherche des noms de fichiers qui contiennent la chane de caractres pome. 3: Met le rsultat de la commande prcdente dans fichier1 4: compte le nombre de lignes ramens par grep.
A. EL Bourichi
A. EL Bourichi
Redirige le rsultat intermdiaire de commande1 vers fichier1. Ce mme rsultat sera trait par la commande commande2.
A. EL Bourichi
1: Liste des fichiers dans le rpertoire courant 2: Recherche des noms de fichiers qui contiennent la chane de caractres pome. 3: Met le rsultat de la commande prcdente dans fichier1 4: compte le nombre de lignes ramens par grep.
A. EL Bourichi
3 types de fichiers:
fichiers ordinaires rpertoires fichiers spciaux (priph., )
A. EL Bourichi
Larborescence
A. EL Bourichi
Larborescence
rpertoire racine
/
bin tmp home
le rpertoire de login: ~ le rpertoire courant: . le rpertoire suprieur: .. connatre le rp. courant: pwd lister le contenu: ls
(voir man ls)
ensak
.cshrc cours tp1.txt docs
Larborescence
pwd retourne: /home/ensak/cours se dplacer: cd [/home/ ensak/cours]$ cd .. [/home/ ensak]$ [/home/ ensak]$ cd /tmp [/tmp]$ chemin relatif chemin absolu
/
tmp home ensak cours docs
Test .cshrc
crer un rpertoire: mkdir [/tmp]$ mkdir Test tp1.txt supprimer un rpertoire: rmdir rpertoire courant [/tmp]$ rmdir Test
A. EL Bourichi
3 types de permissions
lecture (r) criture (w) excution (x) afficher le contenu afficher le contenu modifier excuter crer/supp fichiers traverser
fichier
A. EL Bourichi
rpertoire
nb liens
propritaire
taille
type
group
date
nom
-rw-r--r-user
A. EL Bourichi
others
op:
perm:
Exemples:
A. EL Bourichi
A. EL Bourichi
Changement de propritaire
Commande chown
-Syntaxe: $ Chown utilisateur fichier 1 [fichier2]
A. EL Bourichi
A. EL Bourichi
La commande find
Permet de chercher dans un rpertoire et ses sousrpertoires des fichiers prsentant certaines caractristiques. Syntaxe: find chemin expression Principales options:
-name fich: recherche le fichier fich. -print: crit le nom du fichier. -type: d: rpertoire, f: fichier symbolique. -exec: permet lexcution dune commande sur le fichier reprsent par {}.
A. EL Bourichi
Exemple
Rechercher tous les fichiers nomms hello.txt partir du rpertoire racine. find / -name hello.txt -print. Afficher tous les fichiers .h partir du rpertoire courant. find . -name *.h -print Affiche lcran le contenu de tous les fichiers .c. find . -name *.c -exec cat {} \;
A. EL Bourichi
La commande grep
Permet de rechercher un certain motif dans un fichier. Le motif est dcrit par une expression rgulire.
grep [option] motif fichier Affiche les lignes de fichier qui contiennent le motif motif. -l: naffiche que le nom des fichiers.
grep define stdio.h: recherche le mot "define" dans le fichier stdio.h. grep hello *: recherche le mot "hello" dans tous les fichiers du rpertoire.
A. EL Bourichi
Exemple:
La programmation shell
A. EL Bourichi
50
Introduction
Plus qu'une invite de commande Langage de programmation Interprt
Non compil Traduit au fur et a mesure de son excution
Permet:
L'encapsulation de suites de commandes dans un mme programme Simplification de certaines tches quotidiennes ou rptitives
A. EL Bourichi
Machine
A. EL Bourichi
52
A. EL Bourichi
54
Le caractre (simple quote) Tous les caractres entre simple quotes perdent leur aspect spcia
Le caractre " (double quote) Les caractres $, \, et gardent leur rle de mta-caractres. $ echo "Mon repertoire courant : \"$PWD\"" Mon repertoire courant : "/home/omip/info/wattez"
Le caractre ` (anti quote) Une chane entre anti quotes est interprte comme une commande. $ echo "Mon repertoire courant : \"`pwd`\"" Mon repertoire courant : "/home/omip/info/wattez"
A. EL Bourichi 55
criture du script
Un script est un fichier texte dont la premire ligne contient le chemin du Shell par lequel il doit tre excut Fichier script.bash :
Le nom du fichier n'a pas d'importance, par contre, il doit tre excutable :
A. EL Bourichi
criture du script - Premier Script L'excution se fait en tapant le nom du fichier comme l'appel d'une commande. Par contre :
Si l'on est pas dans le rpertoire dans lequel est le fichier, Il faut donner le chemin absolue Mme si l'on est dans le mme rpertoire, suivant la configuration de l'environnement, il faut parfois prcder le nom du fichier de ./
A. EL Bourichi
A. EL Bourichi
Le shell - Paramtres
Variables concernant les paramtres
* # 0 1, ... n liste des paramtres de la commande nombre de paramtres de la commande nom de la commande valeur des paramtres 1, ... n
de parametres $#" la commande $0" des parametres 1 et 2 $1 $2" test"
$ testParam aa bbb cccc nombre de parametres 3 nom de la commande ./testParam valeur des parametres 1 et 2 aa bbb fin du test $
A. EL Bourichi 59
La commande test
Sert vrifier des conditions. Ces conditions portent sur des fichiers (le plus souvent), ou des chanes ou une expression numrique Syntaxe:
test expression [ expression ] attention aux espaces autour de expression
A. EL Bourichi
A. EL Bourichi
A. EL Bourichi
Structures de Contrle - IF
Tester une chane
A. EL Bourichi
A. EL Bourichi
A. EL Bourichi
Structures de Contrle - IF -
A. EL Bourichi
67
68
Dans ce cas, variable prend pour valeurs successives chacun des paramtr du script
commande2 peut ne pas tre effectue, aussi bien dans la forme while que dans la forme until.
A. EL Bourichi
70
Oprateurs boolens
Et : && Ou : || Non : !
A. EL Bourichi
Passage d'Arguments
Les paramtres sont passs sur la ligne d'appel du script, comme fait pour les commandes Les paramtres sont accessibles sous forme de variables portant le numro du paramtre, $1, $2 et $3 dnotent respectivement les paramtres 1, 2 et 3 passs au script La variable $# contient le nombre de paramtres passs au script La variable $* contient l'ensemble des paramtres sous forme de liste La variable $0 contient le nom du script
A. EL Bourichi
A. EL Bourichi
73
Gestion de Processus
Un processus est un programme en excution LOS est responsable des activits suivantes en relation avec la gestion des processus
Cration et suppression de processus Suspension et relance du processus Mcanismes pour:
Synchronisation entre processus Communication entre processus Traitement des interblocages
Un processus a besoin de certaines ressources; CPU, mmoire, fichiers, les priphriques dE/S, pour accomplir sa tche
A. EL Bourichi
74
Notion de processus
Dfinition
Un processus est un programme en cours dexcution auquel est associ un environnement processeur (CO, PSW, RSP, registres gnraux) et un environnement mmoire appels contexte du processus. Un processus est linstance dynamique dun programme et incarne le fil dexcution de celui-ci dans un espace d'adressage protg(objets propres : ensemble des instructions et donnes accessibles) Un programme rentrant est un programme pour lequel il peut exister plusieurs processus en mme temps.
A. EL Bourichi
Processus
Systmes monoprocesseurs: pseudo-paralllisme Multiprogrammation: basculement entre processus Un processus possde: - son propre espace dadressage: programme, donnes - Une entre dans la Table des Processus: sert pour la reprise aprs suspension Un processus est cr par un autre processus, le processus parent.
UNIX: fork cration dun clone et execve modifier limage du processus Windows: CreateProcess
Processus
Dmons (daemon) ou en arrire-plan, exemples: courriers lectroniques, pages web Premier-plan
A. EL Bourichi
77
A. EL Bourichi
78
Processus
Fin de Processus
Volontaire: arrt normal (Unix: exit, Windows: ExitProcess) ou arrt pour erreur (le fichier compiler nexiste pas) Involontaire: arrt pour erreur fatale (division par 0) ou arrt par un autre processus (Unix: kill, Windows: TerminateProcess)
Hirarchie de Processus
Existe sous UNIX, arborescence de parent-enfants, un processus peut crer un autre processus par lappel systme fork Nexiste pas sous Windows, CreateProcess retourne un HANDLE utilis pour contrler le processus
Implmentation de Processus
Un processus possde son propre espace dadressage: programme, donnes, pile. Le changement de contexte (changement de processus) Table de processus, avec une entre/ processus contenant registres, identificateur, ptr vers le segment texte, ptr vers segment de donnes, ptr vers le segment de pile, tat
A. EL Bourichi 79
Etats de Processus
Elu (En cours dexcution)
(1) Bloqu (4) (2) (3) Prt
1- Le processus est bloqu, en attente dune donne, vnement 2- Lordonnanceur choisit un autre processus 3- Lordonnanceur choisit ce processus 4- La donne devient disponible
A. EL Bourichi 80
Terminaison de processus
Un processus excute sa dernire instruction
pourrait passer des donnes son parent ses ressources lui sont enleves
En UNIX, le fork cr un processus identique au pre, except son pid exec peut tre utilis pour excuter un nouveau programme
A. EL Bourichi 82
A. EL Bourichi
83
Registres UCT
A. EL Bourichi
84
Commutation de processeur
Aussi appl commutation de contexte ou context switching
Quand lUCT passe de lexcution dun processus 0 lexcution d`un proc 1, il faut
mettre jour et sauvegarder le PCB de 0 reprendre le PCB de 1, qui avait t sauvegard avant remettre les registres dUCT tels que le compteur dinstructions etc. dans la mme situation qui est dcrite dans le PCB de 1
A. EL Bourichi
86
Il se peut que beaucoup de temps passe avant le retour au processus 0, et que beaucoup dautres processus soient excut A. EL Bourichi 87 entre temps
A. EL Bourichi
88
Donnes A
Donnes P PILE
A. EL Bourichi 89
Pile de contrle
A. EL Bourichi
90
Notion dinterruptions
Une interruption est un mcanisme permettant de stopper lexcution du programme en cours afin daller excuter une tche.
Elle est caractrise par un numro et un traitement associ (la routine ou traitant dinterruption) On distingue principalement deux types dvnements :
Les interruptions externes ou matrielles. Les interruptions internes ou logicielles (traps).
A. EL Bourichi
UCT termine linstruction courante et dtecte interruption Registres dUCT sont sauvegards dans la pile des interr. UCT saute ladresse trouve dans le vecteur dinterruption
dispatcher
Files dattente
Les ressources dordinateur sont souvent limites par rapport aux processus qui en demandent Chaque ressource a sa propre file de processus en attente un moment donn, un proc ne peut se trouver que dans une seule des diffrentes files du SE En changeant dtat, les processus se dplacent d une file l`autre
File prt: les processus en tat prt=ready Files associs chaque unit E/S etc.
A. EL Bourichi
93
Ce sont les PCBs qui sont dans les files dattente (dou le besoin d un pointeur dans le PCB)
file prt
Nous ferons lhypothse que le premier processus dans une file est celui qui utilise la ressource: ici, proc7 excute, proc3 utilise disque 0, etc.
A. EL Bourichi 94
Ordonnanceur (Scheduler)
A. EL Bourichi
Ordonnanceur (Scheduler)
Election: allocation du processeur
A. EL Bourichi
Ordonnancement
Ordonnanceur (scheduler): partie du SE qui slectionne les processus. Algorithme dordonnancement (scheduling algorithm) - non-premptif: slectionne un processus, puis le laisse sexcuter jusqu ce quil se bloque (E/S, wait) ou se termine. - premptif: slectionne un processus et le laisse sexcuter pendant un quantum, premption par linterruption horloge Comportement de Processus: - Processus de traitement - Processus dE/S
A. EL Bourichi 100
Algo dordonnancement
1er arriv, 1er servi (first come first served) Le job le plus court en premier (shortest job first)
Dlais dexcution connus
Par Priorits
Prvenir contre les situations de famine en diminuant la priorit du processus chaque interruption ou priorit gale linverse de la fraction dutilisation du dernier quantum...
Politiques d'ordonnancement
Premier arriv, premier servi
FIFO, sans rquisition
A. EL Bourichi
A. EL Bourichi
103
Besoins en mmoire
Premier ordinateurs disposaient de moins d'1Ko de RAM Aujourd'hui 4Go Tout va bien, pas besoin de grer la mmoire? Non! Besoins toujours croissants (multimdia)
A. EL Bourichi
104
Hirarchisation de la mmoire
A. EL Bourichi
105
Monoprogrammation simple
Figure 4.1 pg 203 Tanen
A. EL Bourichi
106
A. EL Bourichi
107
Problmes de la multiprogrammation
Rallocation Protection mmoire
A. EL Bourichi
108
Rallocation (relocation)
On ne sais pas o commence le programme 2 solutions: 1) Relocation software 2) Relocation hardware Adresse relle = Reg. de base + Reg. Dplacement (80x86)
A. EL Bourichi
109
Structure excutable
Le
compilateur gnre un fichier excutable. Qu'est-ce qu'il y a dans un fichier excutable? (un .exe par exemple)
A. EL Bourichi
110
Structure excutable
Le code machine On
Adresses points d'entrs (fonction main en C ou les mthodes public static en Java )
A. EL Bourichi 111
Structure excutable
Module1.exe Code
main = 0FFH
A. EL Bourichi
112
Loader
Il
faut maintenant charger (to load) le programme en mmoire. Loader = programme de l'OS qui va charger l'excutable en mmoire et transfrer le contrle au point d'entre principal.
A. EL Bourichi
113
Chargement programme
OS 20000H
OS
20000H
Mm Libre Module1
Mem Libre
Module1.exe main = 0FFH
A. EL Bourichi 114
Chargement programme
1)
Copier code de Module1.exe partir de l'adresse 2000H 2) Faire un jmp l'adresse du main() de Module1. Oui mais elle vaut combien cette adresse?
A. EL Bourichi
115
Chargement programme
1)
Copier code de Module1.exe partir de l'adresse 2000H 2) Faire un jmp l'adresse du main() de Module1. Oui mais elle vaut combien cette adresse? Elle vaut 2000H + 00FFH = 20FFH
A. EL Bourichi
116
Relocation
La
relocation est le fait de corriger l'adresse d'un symbole pour avoir son adresse relle en mmoire.
A. EL Bourichi
117
Protection mmoire
Solution 1: Block ID (IBM 360) Mmoire divise en blocs de 2Ko Chaque bloc un ID de 4 bit (pas forcment unique) Chaque processus un ID mmoire de 4 bits Seul lOS peut changer les blocs et process IDs Si processus ID = bloc ID alors on peut lire et crire Si ID's non compatibles => erreur (interruption)
A. EL Bourichi 118
Protection mmoire
Solution 2: Base + limite On a deux registres protgs (seuls l'OS peut les changer) On peut accder les adresses [Base, Base+limite] Si on sort: erreur (segmentation fault) => interrupt
A. EL Bourichi
119
A. EL Bourichi
120
A. EL Bourichi
121
Va-et-vient
On va permettre de retirer (swap-out) des processus de la mmoire pour les y remettre plus tard (swap-in). La mmoire devient une ressource premptible (cad qu'on peut confisquer)
A. EL Bourichi
122
Va-et-vient
A rentre Swap-in
A. EL Bourichi
123
Va-et-vient
B rentre Swap-in
A. EL Bourichi
124
Va-et-vient
C rentre Swap-in C Veut rentrer D
A. EL Bourichi
125
Va-et-vient
Swap-out A
A. EL Bourichi
126
Va-et-vient
Swap-in D
Veut faire revenir A
A. EL Bourichi
127
Va-et-vient
Swap-out B
A. EL Bourichi
128
Va-et-vient
Swap-in A
A. EL Bourichi
129
Va-et-vient
A. EL Bourichi
130
Fragmentation
A force, on risque de voire apparatre des trous trop petits pour pouvoir y mettre un processus Il faut compacter ou tasser les zones mmoire pour faire de la place. Lent! Ex: 256Mo RAM copier 4 octets prend 40ns => 2,7 sec pour copier toute la mmoire!
A. EL Bourichi 131
A. EL Bourichi
132
A. EL Bourichi
133
A. EL Bourichi
134
A. EL Bourichi
135
Mmoire virtuelle
C'est le mme principe que les overlays sauf que c'est gr par l'OS L'OS dcoupe le processus en petites parties. On conserve les parties les plus utilises en RAM Les autres sont stockes sur disque Au besoin on sort des parties non utilises et charge de nouvelles parties en RAM => processus bloqu en E/S lors du chargement de la partie manquante
A. EL Bourichi 137
A. EL Bourichi
138
Mmoire virtuelle multiple: chaque processus a son propre espace dadressage virtuel, il est donc (virtuellement) tout seul dans la mmoire.
A. EL Bourichi 140
A. EL Bourichi
141
A. EL Bourichi
142
A. EL Bourichi
143
A. EL Bourichi
144
A. EL Bourichi
145
A. EL Bourichi
148
Segmentation
Avec la pagination, on a un espace d'adressage par processus. Or on peut (veut) en avoir plusieurs. Ex:?
A. EL Bourichi
152
Segmentation
Dans le pentium on a des registres de segment qui dfinissent des espaces d'adressage propre. Combinaison avec la pagination?
A. EL Bourichi
153
Segmentation
Dans le pentium on a des registres de segment qui dfinissent des espaces d'adressage propre. Combinaison avec la pagination? Navement: Segment + offset = adresse virtuelle Pas si simple!!! On a une indirection en plus: Le registre de segment (appel slecteur) pointe vers un descripteur de segment.
A. EL Bourichi
154
Segmentation
Reg segment = selector
A. EL Bourichi
155
Segmentation et pagination
Ensuite on traduit l'adresse
A. EL Bourichi
156
Descripteur de segment
A. EL Bourichi
157
Slecteur de segment
A. EL Bourichi
158
A. EL Bourichi
159
A. EL Bourichi
Concept de fichier
Dfinition : Un fichier est une unit de stockage logique de linformation.
Abstraction des proprits physiques des dispositifs de stockage la correspondance est tablie par le SE
A. EL Bourichi
Constituent les proprits du fichiers et sont stocks dans un fichier spcial appel rpertoire (directory). Exemples dattributs:
Nom: pour permet aux personnes daccder au fichier Identificateur: Un nombre permettant au SE didentifier le fichier Type: Ex: binaire, ou texte; lorsque le SE supporte cela Position: Indique le disque et ladresse du fichier sur disque Taille: En bytes ou en blocs Protection: Dtermine qui peut crire, lire, excuter Date: pour la dernire modification, ou dernire utilisation A. EL Bourichi Autres
A. EL Bourichi
A. EL Bourichi
A. EL Bourichi
A. EL Bourichi
Pour un meilleur compromis: temps d'accs et capacit de stockage certains SGF organisent l'espace du disque en blocs de secteurs Les oprations de lecture et d'criture du SGF se font bloc par bloc
A. EL Bourichi
Mthode d allocation
Mthodes d'allocation
Allocation contigu (squentielle simple) Allocation par blocs chans Allocation indexe
A. EL Bourichi
Allocation Contigu
Allocation contigu : chaque fichier occupe un nombre de blocs contigus sur le disque
A. EL Bourichi
Allocation contigu
0
5 10 15 20
1
6 11 16 21
2
7 12 17 22
3
8 13 18 23
4
9 14 19 24
dbut 0 7
longueur 2 5
temp
16
A. EL Bourichi
A. EL Bourichi
Problme de fragmentation
A. EL Bourichi
Allocation Contigu
Avantages :
Simple implmenter Accs direct aux blocs en temps constant Adapt aux supports Write Once
Inconvnients :
Problme : Extension dun fichier Problme : Fragmentation Blocs libre: Ncessite de connatre lavance de la taille du fichier
A. EL Bourichi
Allocation chane
Un fichier occupe une liste chane de blocs sur le disque Chaque bloc contient une partie des donnes et un pointeur sur le bloc suivant
A. EL Bourichi
Allocation chane
fichier
0 5 1 6 2 18 3 7 8 4 9 16
dbut 9
fin 22
10 2 11
15 20
12
13
14
16 10 17 21
18 22 19 24
22 -1 23
A. EL Bourichi
Allocation chane
Avantages
Possibilit dtendre un fichier Allocation par bloc individuel
Inconvnients
Solution non adapte laccs direct Laccs un bloc quelconque ncessite l accs tous les blocs qui le prcdent Les pointeurs.
A. EL Bourichi
A. EL Bourichi
FAT - Exemple
A. EL Bourichi
Inconvnients
Occupation de la mmoire centrale par la FAT Une table pour un disque de 1Go en blocs de 1Ko occuperait 4 Mo (+ 4Mo pour la FAT ombre )
A. EL Bourichi
Allocation indexe
Ide:
clater la FAT en plusieurs petites tables appeles nuds dinformations ( i-node) A chaque fichier est associ un nud d information Chaque table contient les attributs et les adresses sur le disque des blocs du fichier
A. EL Bourichi
Structure d un i-node
A. EL Bourichi
Exemple 1
A. EL Bourichi
Exemple 2
A. EL Bourichi
Exemple 3
Supposons que l'on cherche le fichier /usr/ast/courrier;
A. EL Bourichi
Allocation indexe
Avantages:
Seuls les i-nodes des fichiers ouverts sont chargs en mmoire centrale Allocation par bloc individuel Accs direct facile
ncessite au maximum 4 accs disque
A. EL Bourichi
A. EL Bourichi
Vecteur de bits
La liste d'espace libre est reprsente par un vecteur binaire, dans lequel chaque bloc est figur par un bit.
Bloc libre : bit 0 Bloc allou : bit 1
A. EL Bourichi
Liste chaine
La liste d'espace libre est reprsente par une liste chaine des blocs libres
A. EL Bourichi
A. EL Bourichi
A. EL Bourichi
A chaque fichier est associ une liste d'accs, spcifiant pour chaque utilisateur, les types d'accs qui lui sont autoriss
A. EL Bourichi
A. EL Bourichi
A. EL Bourichi
193
Dfinition
Un fichier est un ensemble structur de donnes stock sur un support externe (disquette , disque dur, ). Un fichier structur est compos dune suite denregistrements homognes qui regroupent le plus souvent plusieurs composantes appeles champs.
Buts
Garantir la persistance des donnes (les donnes sont prserves aprs lexcution) Volume de donnes variable et plus grand que pour les structures de donnes statiques (tableaux).
Caractristiques
Les fichiers sont caractriss par deux notions : le mode dorganisation : est la mthode choisie pour ranger les donnes dans le fichier (squentiel, index,...) ;
Index
Squentiel
Index
le mode daccs : est la mthode choisie pour rechercher un enregistrement en cas de lecture ou pour rechercher son emplacement en cas dcriture (squentiel, direct, binaire, ...). A. EL Bourichi 194
On distingue gnralement deux types d'accs : Accs squentiel : Pas de cellule vide. On accde une cellule en se dplaant, depuis la cellule de dpart. On ne peut pas dtruire une cellule. On peut ajouter une cellule la fin. Accs direct (RANDOM I/O) Cellule vide possible. On peut directement accder une cellule. On peut modifier n'importe quelle cellule.
Fichier dit binaire , les informations sont codes en brut sans aucune transformation. Ils ne sont pas ditables.
en ASCII : Fichier dit texte , les informations sont codes en ASCII. Ces fichiers sont ditables. Le dernier octet de ces fichiers est EOF.
A. EL Bourichi 195
Pointeur La dclaration dun tel pointeur se fait par : FILE *pointeur ; /* majuscules obligatoires pour FILE */ Ouverture Permet dassocier le pointeur dclar de type FILE avec le fichier manipuler et de prciser les possibilits daccs (lecture, criture ou lecture/criture). Louverture se fait par : PointeurFILE = fopen (nomFichier, mode) ; Avec : NomFichier Mode
: Nom du fichier figurant sur le disque, exemple: "C :\Etudiants.dat" : chane de caractres qui dtermine le mode daccs
A. EL Bourichi 196
Mode
Fichier Texte
r w
Fichier Binaire
rb wb
Description lecture seule. Le fichier doit exister. Pointeur au dbut criture seule (destruction de l'ancienne version si elle existe, cration du fichier si non). Pointeur au dbut criture d'un fichier existant, pas de cration d'une nouvelle version. Pointeur la fin du fichier. lecture/criture d'un fichier existant (mise jour), pas de cration d'une nouvelle version. Pointeur au dbut lecture/criture (destruction ancienne version si elle existe, sinon cration du fichier). Pointeur au dbut.
ab
r+
rb+
w+
wb+
lecture/criture d'un fichier existant (mise jour), pas de a+ ab+ cration d'une est cr version. Pointeur la fin Remarque : fopen renvoie ladresse du flux sil nouvellesi non elle renvoie NULL du fichier.
Fermeture: Permet de supprimer le flux associ au fichier ouvert aprs avoir achever les transferts de donnes survenus. La fermeture dun fichier ouvert se fait par :
fclose(Pointeurfichier); FcloseAll();
A. EL fermer /* pour Bourichi tous les flux ouverts*/ 197
Ecriture
Fichiers texte Ecrire un caractre
Ecrit lentier n, le pointeur avance du nombre de cases correspondant la taille d'un entier. Retourne n si lcriture sest bien passe sinon retourne EOF. Ecrire une chane de caractres
int fputs(char *S, FILE *Pointeurfichier); Ecrit la chane de caractres S, le pointeur avance de la longueur de la chane Retourne le dernier caractre crit sinon retourne EOF en cas derreur. Ecrire de donnes formates
198
Ecrit des donnes formates (caractre %c, entier %d, rel %f, chane %s), le pointeur avance du nombre doctets crits. Retourne le nombre doctets crits ou EOF en cas derreur. Fichiers binaire int fwrite(void *p,int taille_bloc,int n,FILE *Pointeurfichier);
Ecrit partir de la position courante du pointeur Pointeurfichier n blocs de taille taille_bloc lus partir de l'adresse p. Le pointeur Pointeurfichier avance d'autant doctets crits. Retourne le nombre de blocs crits.
Lecture
Fichiers texte Lire un caractre int getc(FILE *fichier); renvoie le caractre situ la position pointe par Pointeurfichier ou EOF si erreur ou fin de fichier; le pointeur avance d'un octet. Lire un entier int getw(FILE *Pointeurfichier); Renvoie lentier situ la position pointe par Pointeurfichier ou EOF en cas A. EL Bourichi derreur ou fin du fichier; le pointeur avance de la taille d'un entier
199
Lire une chane de caractres char *fgets(char *S,int n,FILE *Pointeurfichier); Lit n-1 caractres partir de la position du pointeur et les range dans S en ajoutant '\0'. Retourne NULL en cas derreur Ecrire de donnes formates int fscanf(FILE *Pointeurfichier, char *format, liste d'adresses); Lit des donnes depuis la position du pointeur PointeurFchier dans des variables dont les adresses sont indiques. Les donnes lues sont convertie en fnction des format indiqus par format. La fonction retourne le nombre de champs lus. Fichiers binaire int fread(void *p,int taille_bloc,int n,FILE *Pointeurfichier); lit partir de la position courante du pointeur Pointeurfichier n blocs de taille taille_bloc et les place dans l'adresse p. Le pointeur Pointeurfichier avance d'autant doctets lus. Retourne le nombre de blocs lus.
A. EL Bourichi 200
TP
crire un programme C qui fait la mme chose que la commande Linux
cat fic1>>fic2
A. EL Bourichi
202
A. EL Bourichi
203
Priphriques dE/S
Les priphriques dE/S consistent:
du priphrique lui-mme dun contrleur (avec des registres)
A. EL Bourichi
204
Pilotes de priphrique
Comment est-ce quils communiquent avec les priphriques?
Ils crivent dans la mmoire mappe aux registres du priphrique (memory mapped I/O) ne requiert aucune instructions spciales crit aux ports mappes au registres (nutilisent pas despace dadresses mais ce mode requiert des instructions spciales)
A. EL Bourichi
205
A. EL Bourichi
206
A. EL Bourichi
208
Le flux du programme change pour le gestionnaire des interruptions Quand le gestionnaire a finis, le flux normal du programme reprend.
A. EL Bourichi
209
A. EL Bourichi
210
Chapitre 7 Interblocages
A. EL Bourichi
211
Ressources
Exemples de ressources
imprimantes graveur de CD-ROM fichiers tables internes du systme
L'ordre dans lequel les ressources sont attribues est important Supposons qu'un processus possde une ressource A et demande une ressource B
au mme moment un autre processus possde B et demande A les deux sont bloqus de faon permanente
A. EL Bourichi 212
Ressources (1)
Un interblocage peut se produire lorsque
les processus se voient attribuer un accs exclusif des ressources.
Ressources (2)
Squence d'vnements ncessaires pour utiliser une ressource:
1. Solicitation de la ressource 2. Utilisation de la ressource 3. Libration de la ressource
Ressources (3)
Figure 1 : Utiliser un smaphore pour protger les ressources. (a) Une ressource. (b) Deux ressources typedef int semaphore; semaphore resource_1; void process_A(void){ down(&resource_1); use_resource_1( ); up(&resource_1); } typedef int semaphore; semaphore resource_1; semaphore resource_2; void process_A(void) { down(&resource_1); down(&resource_2); use_both_resources( ); up(&resource_2); up(&resource_1); } (b)
(a)
A. EL Bourichi
215
Figure 2 : (a) Code exempt dinterblocage. (b) Code contenant un interblocage potentiel typedef int semaphore; semaphore resource_1; semaphore resource_2; void process_A(void) { down(&resource_1); down(&resource_2); use_both_resources( ); up(&resource_2); up(&resource_1); } } void process_B(void) { down(&resource_1); down(&resource_2); use_both_resources( ); up(&resource_2); up(&resource_1); } (a)
Ressources (4)
semaphore resource_1; semaphore resource_2; void process_A(void) { down(&resource_1); down(&resource_2); use_both_resources( ); up(&resource_2); up(&resource_1);
L'vnement attendu est habituellement la libration d'une ressource Aucun de ces processus ne peut
s'excuter librer de ressources tre rveill
A. EL Bourichi
217
2.
3.
Pas de rquisition
les ressources dj dtenues ne peuvent tre retires de force un processus
4.
La ressource R est dtenue par le processus A Le processus B attend aprs la ressource S Les processus C and D sont en interblocage
A. EL Bourichi 219
220
Ignorer les problmes (la politique de lautruche) Les dtecter et y remdier Les viter de manire dynamique en allouant les ressources avec prcaution Les prvenir en empchant l'apparition d'une des 4 conditions de leur existence.
A. EL Bourichi 222
2.
3.
4.
La politique de l'autruche
Ignorer le problme Raisonnable si
les interblocages se produisent rarement le cot de la prvention est lev
Ressources existantes
Ressources disponibles
A. EL Bourichi
228
Exemple: 2 processus
A. EL Bourichi
229
tats sr et non sr
On dit d'un tat qu'il est sr s'il n'est pas bloqu et qu'il existe un ordonnancement selon lequel chaque processus peut s'excuter jusqu'au bout, mme si tous demandent d'un seul coup leur nombre maximum de ressources.
A. EL Bourichi
230
A. EL Bourichi
233
C
A. EL Bourichi
R
234
1. 2.
3.
Rechercher une range R dont les demandes de ressources non satisfaites sont infrieur ou gales A Marquez le processus R comme achev et ajouter toutes ses ressources au vecteur A Recommencer les tapes 1 et 2 jusqu' ce que tous les processus soient termins (tat sr) o jusqu' ce qu'un interblocage se produise (tat non sr). Si B demande un scanner, on ne peut le lui accorder Par contre, on peut servir D Si E en demande un aussi alors on ne peut pas lui accorder et A. EL Bourichi 235 il devra patienter.
Certains priphriques (tel que l'imprimante) peuvent tre spools (traits en diffr)
seul le dmon d'imprimante peut directement utiliser l'imprimante cela limine les interblocages
Exige que les processus demandent toutes ses ressources avant l'excution
le processus n'attend jamais aprs une ressource
Problmes
peut ignorer le nombre de ressources qu'il aura besoin (sinon on pourrait utiliser lalgorithme du banquier) les ressources ne sont pas utilises de manire optimale
Variation:
un processus doit librer toutes les ressources qu'il dtient il obtient ensuite tout ce dont il a besoin en une seule fois
A. EL Bourichi 237