0% ont trouvé ce document utile (0 vote)
75 vues152 pages

Introduction au Système d'Exploitation Linux

Le document décrit le système d'exploitation Linux, y compris son histoire, sa structure et son processus de démarrage. Il explique également les concepts clés tels que les processus, l'ordonnancement des processus et la hiérarchie des processus.

Transféré par

Zouzou Mht
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
75 vues152 pages

Introduction au Système d'Exploitation Linux

Le document décrit le système d'exploitation Linux, y compris son histoire, sa structure et son processus de démarrage. Il explique également les concepts clés tels que les processus, l'ordonnancement des processus et la hiérarchie des processus.

Transféré par

Zouzou Mht
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Le système d’Exploitation Linux

• Qu’est-ce qu’un Système d’Exploitation?


• Histoire de Linux
• Présentation de Linux
• Structure de Linux
• Processus de démarrage de Linux
• Résumé

1
Qu’est-ce qu’un Système
d’Exploitation?

2
Définition formelle : Un Système d’Exploitation (S.E.) est une
machine abstraite conçue pour faciliter l’exploitation du
matériel (pilotes de périphériques) ou pour arbitrer l’accès au
matériel par les utilisateurs.

3
Définition pratique:
• Ensemble de programmes nécessaires au
fonctionnement de l’ordinateur, indépendant des
programmes d’applications mais indispensable à
leur mise en œuvre.
• Chargé en mémoire centrale au démarrage
• Fonctions
– Gestion des ressources (mémoire…)
– Gestion des entrées-sorties
– Gestion des fichiers
– Gestion des programmes
– Assurer l’interface avec l’utilisateur
4
Un chef d’orchestre 5
Les différentes classes de SE

Grande diversité suivant le type de matériel ou d’application :


• SE mono vs multi-tâche : partage du temps de calcul du processeur
entre plusieurs programme ;
• SE mono vs multi-utilisateur : plusieurs utilisateurs peuvent accéder
à l’ordinateur simultanément ;
• SE distribué : le SE gère plusieurs ordinateurs simultanément et
répartit l’utilisation des ressources sur le réseau ;
• SE embarqué : SE dédié à l’utilisation sur des ressources plus
limitées (mémoire, capacité de calcul) ;

6
Structure d’un SE

7
Histoire de Linux

8
Qu'est-ce qu'UNIX ?

UNIX est un système d'exploitation. Ce système est né, en 1969, de la volonté


de Ken Thompson et Dennis Ritchie de faire un système d'exploitation à la
fois multitâches et multi-utilisateurs. Il était aussi question de concevoir de
petits programmes, ne faisant qu'un nombre limité de tâches, mais pouvant
interagir entre eux. Depuis cette période, une grande quantité de systèmes
d'exploitations dérivés d'UNIX a vu le jour, certains payants, d'autres
gratuits.

9
Philosophie UNIX

Un ensemble de règles assurent le fonctionnement et le succès d'UNIX, à


commencer par le fameux paradigme « tout est fichier ».

Toutes, ou presque toutes, les fonctionnalités du système d'exploitation sont


accessibles via de simples fichiers : périphériques, processus, répertoires,
la mémoire, etc....

Mais c'est surtout au niveau des méthodes de programmation qu'UNIX


révolutionnera le mode de pensée de l'époque. Fini le développement isolé
d'une seule équipe de programmeurs.

10
Naissance de GNU/Linux
En 1991, un étudiant finlandais nommé Linus Torvalds décide de créer un
nouveau noyau basé sur Minix (un dérivé d’UNIX) afin de contourner ses
limitations et celles de MS-DOS. Ce nouveau noyau est distribué
gratuitement sur Internet en août 1991 sous le nom : Linux.

Richard Stallman, fondateur du projet GNU, persuade Linus Torvalds de


passer Linux sous licence GPL, ce qui permet d’utiliser ce noyau pour le
projet GNU. Un système d'exploitation complet est alors formé : il est
composé du noyau Linux et des outils GNU. Le nom complet de ce
système est GNU/Linux

11
Les distributions GNU/Linux
De part son esprit communautaire, Linux se décline en plus d'une
centaine de distributions. Toutes ces distributions possèdent un
noyau Linux, mais différent dans la composition des
programmes qui l'entourent.

Chaque distribution possède :


-Un noyau Linux
-Des programmes, de préférence Libres
-Un système de packages
-Des programmes d'installation

12
13
Logiciels open-sources et
propriétaires
Un logiciel peut être disponible sous différentes formes, la première
est la version source c'est à dire la version écrite dans un langage
de programmation et compréhensible par l'homme. L'autre est la
version compilée, c'est la traduction de la version source en
version compréhensible par la machine, on parle aussi de version
binaire.
Ainsi on distinguera un logiciel open-source d'un logiciel
propriétaire : le logiciel open-source met à disposition les sources
du programme tandis que le logiciel propriétaire se cantonne à
distribuer la version compilée

14
Structure de Linux

15
Structure de Linux
• Le noyau gère les tâches de base du système :
L'initialisation du système
La gestion des ressources
La gestion des processus
La gestion des fichiers
La gestion des Entrées/Sorties
• L’utilisateur communique avec le noyau par l'intermédiaire d'un SHELL. Les Shells sont aussi des
langages de commandes et de programmation.
• Les utilitaires sont des outils d'interfaçage avec le système, de programmation et de communication.

16
Éléments d'administration de Linux
Linux supporte 2 modes d'administration :
À la main :
Édition (manuelle) des fichiers de configuration
Utilisation (manuelle) des commandes d'administration
Utilisation (manuelle) des gestionnaires de paquets
Édition de scripts de commande (langage : shell, perl, awk, ...)

Avec des logiciels d'administration (graphique ou mode caractère) :


Qui manipulent les fichiers de configuration
Qui utilisent des commandes d'administration standard ou spécifiques

17
Processus de démarrage de Linux

18
GESTION DES PROCESSUS

19
Les processus, à quoi ça sert?
• À faire plusieurs activités ”en même temps”.
• Exemples
• Faire travailler plusieurs utilisateurs sur la même machine.
Chaque utilisateur a l’impression d’avoir la machine à lui tout
seul.
• Compiler tout en lisant son mail

Problème: Un processeur ne peut exécuter qu’une seule instruction à la


fois.

BUT: Partager un (ou plusieurs) processeur entre différents processus.

Attention!!! Ne pas confondre processus et processeur 20


Concept de processus
Un processus est un programme en exécution

L’exécution d’un processus doit progresser séquentiellement, cad, à


n’importe quel moment une seule instruction au plus est exécutée au
nom du processus.

Processus ≠ Programme

21
États des processus

22
Bloc de contrôle de processus(1)
• Chaque processus est représenté dans le SE par un PCB
(process control block)

23
Bloc de contrôle de processus (2)
• L’état du processus : nouveau, prêt, en exéion, etc.
• Les registres du processeur : compteur d’instructions, pointeur de pile, etc. Ces
informations sont utilisées en cas d’interruption.
• des informations sur l’ordonnancement : information concernant la priorité du
processus.
• des informations sur la gestion mémoire : tables des pages, registres des
segments.
• des informations sur les E/S : liste des périphériques E/S allouées à ce
processus, une liste des fichiers ouverts, etc.
• des informations diverse : temps processeur, temps depuis le lancement,
numéro du processus, nom du fichier exéable, etc.

24
Hiérarchie de processus (1)
• Dans certains SE, lorsqu’un processus crée un autre processus, les
processus parent et enfant continuent d’être associés d’une certaine
manière. Le processus enfant peut lui même créer plusieurs processus,
formant une hiérarchie de processus.
• Un processus a un seul parent et peut avoir 0 ou plusieurs fils.
Linux/UNIX:
• Si le processus A crée le processus B, A est le parent de B, B est
le fils de A (A par défaut, exée le même code que B) B peut à
son tour créer des processus. Un processus avec tous ses
descendants forment un groupe de processus représenté par un
arbre de processus.
• fork est le seul appel système de création de processus.

25
Hiérarchie de processus (2)

26
L'ordonnancement des processus

Pour gérer les processus durant leur séjour, le SE maintient plusieurs files
d’attente. On peut citer entre autres :
• File d’attente des processus prêts.
• File d’attente de périphérique

Une fois qu’on a alloué le processeur au processus et que celui-ci est en cours
d’exéion, il pourrait se produire l’un des événements suivants :
• Le processus pourrait émettre une requête d’E/S et ensuite placé dans une
file d’attente d’E/S.
• Le processus pourrait créer un nouveau processus et attendre la fin de celui-
ci.
• Le processus pourrait être enlevé du processeur ;
• Le processus pourrait se terminer.
.
27
L'ordonnanceur (en anglais scheduler)

Un bon ordonnanceur doit :


• s’assurer que chaque processus reçoit ça part de temps CPU dans un délai
raisonnable ;
• utiliser le temps processeur le maximum.

Selon si l'opération de réquisition du processeur est autorisée ou non,


l'ordonnancement sera qualifié d'ordonnancement préemptif ou non préemptif :
• si l'ordonnancement est non préemptif, la transition de l'état élu vers l'état prêt
est interdite : un processus quitte le processeur si il a terminé son exéion ou si
il se bloque.
• si l'ordonnancement est préemptif, la transition de l'état élu vers l'état prêt est
autorisée : un processus quitte le processeur si il a terminé son exécution, si il
se bloque ou si le processeur est réquisitionné.

28
Les critères d'ordonnancement

Les critères les plus souvent utilisés sont :


• Utilisation du processeur : Un bon algorithme de scheduling sera celui qui
maintiendra le processeur aussi occupé que possible.
• L'équité : Tous les processus doivent avoir la possibilité d'utiliser le
processeur.
• Capacité de traitement (rendement): C’est la quantité de processus terminés
par unité de temps.
• La durée de rotation : C'est le délai moyen entre l'admission du processus et la
fin de son exécution.
• Le temps d'attente : C'est le temps moyen qu'un processus passe à attendre. Il
s'obtient en soustrayant la durée d'exécution du processus de sa durée de
rotation.

29
Les algorithmes
d’ordonnancement
" scheduling algorithms "

30
L’algorithme du Premier Arrivé Premier Servi (FCFS)

Avec cet algorithme, on alloue le processeur au premier processus qui le


demande.
Exemple :

Le temps moyen d’attente serait : (0+24+27)/3=17 unités.

31
:
L’algorithme du Plus Court d’abord (SJF)

affecte le processeur au processus possédant le temps d’exécution le plus


court.

Processus Durée d’exécution


P1 6
P2 8
P3 7
P4 3

Le temps moyen d’attente serait : (0+3+9+16)/4=7 unités.

32
L’algorithme de Round Robin (Tourniquet)

Il alloue le processeur aux processus à tour de rôle, pendant une tranche de temps
appelée quantum.
Exemple :

Le temps moyen d’attente est de : (6+4+7)/3 = 17/3 = 5.66 unités.

33
L'ordonnancement avec priorité

Cet algorithme associe à chaque processus une priorité, et le processeur


sera affecté au processus de plus haute priorité.

Processus Durée d’exécution Priorité


P1 10 2
P2 1 4
P3 2 2
P4 1 1
P5 5 3

Le temps moyen d’attente est = (0+1+6+16+18)/5=8.2 unités de temps.

34
La fin d’un processus
• Un processus peut se terminer suite à l’un des 4 événements :
• Sortie normale, lorsque le processus a terminé sa tâche (sous Linux
par l’appel système exit)
• Sortie suite à une erreur (e.g. division par 0, inexistence d’un
fichier passé en paramètre)
• Tué par un autre processus (sous Linux par l’appel système kill)
• Toutes les ressources du processus sont libérées par le SE.

35
Le Shell Linux
Le Shell est un programme (application), qui assure l'interface entre les différents
programmes et la machin
A quoi cela sert-il ?
- Administrer.
- Tuer des processus
- Sur une machine multiprocesseur, avoir une idée de son occupation.
- Automatiser des traitements
- Savoir se connecter à une machine Linux distante
Syntaxe d’une commande Shell
Syntaxe :
command [ -options ] [ arguments ]
• Le nom de la commande est le plus souvent le premier mot.
• Une option précise un fonctionnement particulier de la commande.
• Les arguments désignent les objets sur lesquels doit s’exécuter la commande.

36
Commandes shell de
manipulation de processus
La commande ps (process) liste les processus de l'utilisateur. L'option -e
affiche tous les processus en cours d'exécution sur un ordinateur et -f
affichent des informations détaillées. Ainsi, la commande produit une
sortie semblable à :

37
Commandes shell de
manipulation de processus
L’utilisation de l’option u permet d’afficher les processus lancés par un
utilisateur particulier.

38
Commandes shell de
manipulation de processus
Pour tuer un processus, on doit connaître son PID, et écrire la commande
suivante : kill -9 <PID>

39
Gestion de la mémoire

40
Gestion de mémoire: objectifs
• Connaître les zones libre de mémoire physique
• Allouer de la mémoire aux processus (sans gaspillage et avec sécurité)
• Transformer les adresses virtuelles référencées dans un programme en
adresses réelles de la mémoire physique
• Offrir une mémoire virtuelle plus grande que la mémoire physique
• Récupérer la mémoire qui se libère lorsqu'un processus se termine

41
Mémoire/Adresses physiques et
logiques
• Mémoire physique:
– la mémoire principale RAM de la machine
• Adresses physiques: les adresses de cette mémoire
• Mémoire logique: l’espace d’adressage d’un programme
• Adresses logiques: les adresses dans cet espace
• Il faut séparer ces concepts car normalement, les
programmes sont à chaque fois chargés à des positions
différentes dans la mémoire
Donc adresse physique ≠ adresse logique

42
Aspects du chargement

n Trouver de la mémoire libre pour un


module de chargement:
I—contiguë
II—non contiguë

43
I—Affectation contiguë de
mémoire
Affectation de tout le processus en un
seul morceau en mémoire SE

• Nous avons plusieurs programmes


à exécuter programme 1
• Nous pouvons les charger en
mémoire les uns après les autres programme 2

disponible

programme 3

44
Partitions fixes

Première organisation de
l’allocation contiguë
Mémoire principale subdivisée
en régions distinctes: partitions
Les partitions sont soit de
même taille ou de tailles
inégales
N’importe quel programme
peut être affecté à une partition
qui soit suffisamment grande

45
Algorithme de placement pour
partitions fixes
Partitions de tailles inégales:
utilisation de plusieurs queues
assigner chaque processus
à la partition de la plus
petite taille pouvant le
contenir
1 file par taille de partition
tente de minimiser la
fragmentation interne
Problème: certaines files
seront vides s’il n’y a pas
de processus de cette taille
(fragemantation externe) 46
Algorithme de placement pour
partitions fixes
Partitions de tailles
inégales: utilisation d’une
seule file
On peut affecter une
partition de grande taille
a une petite tache
fragmentation interne

47
Partitions dynamiques

Partitions en nombre et tailles variables


Chaque processus est alloué exactement la taille de mémoire
requise
Probablement des trous inutilisables se formeront dans la
mémoire: c’est la fragmentation externe

48
Partitions dynamiques: exemple

(d) Il y a un trou de 64K après avoir chargé 3 processus: pas


assez d’espace pour autre processus P4=128K

49
Partitions dynamiques: exemple

(e-f) P2 est suspendu, P4 est chargé. Un trou de 224-128=96K est créé (fragmentation
externe)
(g-h) P1 se termine ou il est suspendu, P2 est chargé à sa place: produisant un autre
trou de 320-224=96K...
Nous avons 3 trous petits et probablement inutiles. 96+96+64=256K de fragmentation
externe
50
COMPACTAGE pour en faire un seul trou de 256K
Technique d’allocation de la
mémoire
• Le système garde la trace des emplacements occupés de la
mémoire par l’intermédiaire :
– D’une table de bits ou bien
– D’une liste chaînée.

La mémoire étant découpée en unités, en blocs, d’allocation

51
Tables de bits
On peut conserver l’état des blocs de mémoire grâce à
une table de bits. Les unités libres étant notées par 0 et
ceux occupées par un 1.

0 0 1 1 0 0

La technique des tables de bits est simple à implanter,


mais elle est peu utilisée.

plus l’unité d’allocation est petite, moins on a


de pertes lors des allocations, mais en
revanche, plus cette table occupe de place en
mémoire. 52
Listes chaînées
On peut représenter la mémoire par une liste chaînée de structures dont les
membres sont :
• le type (libre ou occupé),
• l’adresse de début,
• la longueur, et
• un pointeur sur l’élément suivant.
0 5 8 10 15 20

L P P

0 5 8
5 3 2

On peut légèrement modifier ce schéma en prenant deux listes : l’une


53
pour les processus et l’autre pour les zones libres.
Algorithmes de Placement
pour décider de l’emplacement du
prochain processus
But: réduire l’utilisation de la
compression (prend du temps...)
Choix possibles:
“First-fit”: choisir le 1er
emplacement à partir du début
“Best-fit”: choisir
l’emplacement dont la taille est
la plus proche
“Worst-fit”: choisir
l’emplacement dont la taille est Worst
Fit

la plus loin

54
Fragmentation: mémoire non
utilisée
• Un problème majeur dans l’affectation
contiguë:
– Il y a assez d’espace pour exécuter un
programme, mais il est fragmenté de façon non
contiguë
• externe: l’espace inutilisé est entre partitions
• interne: l’espace inutilisé est dans les partitions

55
Compactage
• Une solution pour la fragmentation externe
• Les programmes sont déplacés en mémoire de façon à
réduire à 1 seul grand trou plusieurs petits trous
disponibles
• Effectuée quand un programme qui demande d’être
exécuté ne trouve pas une partition assez grande, mais sa
taille est plus petite que la fragmentation externe existante
• Désavantages:
– temps de transfert programmes
– besoin de rétablir tous les liens entre adresses de différents
programmes
56
II—Allocation non contiguë
• A fin réduire le besoin de compression, le prochain pas est d`utiliser
l’allocation non contiguë
– diviser un programme en morceaux et permettre l`allocation
séparée de chaque morceau
– les morceaux sont beaucoup plus petits que le programme entier et
donc permettent une utilisation plus efficace de la mémoire
• les petits trous peuvent être utilisés plus facilement

• Il y a deux techniques de base pour faire ceci: la pagination et la


segmentation

57
Les segments comme unités
d’alloc mémoire
0

3
0

2 1
3

espace usager mémoire physique

Étant donné que les segments sont plus petits que les programmes entiers,
cette technique implique moins de fragmentation (qui est externe dans ce cas)
58
Détails
• le tableau des segments contient:
– la base
– la limite
• Dans le PBC du processus il y aura un pointeur à l’adresse
en mémoire du tableau des segments
• Il y aura aussi là dedans le nombre de segments dans le
processus

59
emacs

VI

72773

60
Évaluation de la segmentation simple

Désavantage: le problème des partitions dynamiques:


La fragmentation externe n’est pas éliminée:
trous en mémoire, compactage?
Une autre solution est d`essayer à simplifier le mécanisme
en utilisant unités d`allocation mémoire de tailles égales

PAGINATION

61
Segmentation contre pagination

• Le problème avec la segmentation est que


l’unité d’allocation de mémoire (le
segment) est de longueur variable
• La pagination utilise des unités d’allocation
de mémoire fixe, éliminant donc ce
problème

62
Pagination simple
La mémoire est partitionnée en petits morceaux de même
taille: les pages physiques ou ‘cadres’ ou ‘frames’
Chaque processus est aussi partitionné en petits morceaux
de même taille appelés pages (logiques)
Les pages logiques d’un processus peuvent donc être
assignés aux cadres disponibles n’importe où en mémoire
principale

63
Exemple de chargement de processus

Supposons que le processus B se termine ou est suspendu

64
Exemple de chargement de processus
Nous pouvons maintenant
transférer en mémoire un
processus D, qui demande
5 cadres
bien qu`il n’y ait pas 5
cadres contigus
disponibles

65
Tableaux de
pages

Le SE doit maintenir une table de pages pour chaque processus


Une table de pages est indexée par le numéro de la page afin
d’obtenir le numéro du cadre
Chaque entrée d’une table de pages contient le numéro de cadre
où la page correspondante est physiquement localisée
Une liste de cadres disponibles est également maintenue (free
frame list)
66
Tableaux de pages

67
La mémoire virtuelle

• À fin qu’un programme soit exécuté, il ne doit pas


nécessairement être tout en mémoire centrale!
• Seulement les parties qui sont en exécution ont besoin
d’être en mémoire centrale
• Les autres parties peuvent être sur mémoire secondaire
([Link]. disque), prêtes à être amenées en mémoire centrale
sur demande
– Mécanisme de va-et-vient ou swapping
• Ceci rend possible l’exécution de programmes beaucoup
plus grands que la mémoire physique
– Réalisant une mémoire virtuelle qui est plus grande que la
68
mémoire physique
Pages en RAM ou sur disque
Page A en RAM et
sur disque

Page E seulement
sur disque

69
Avantages du chargement partiel
Plus de processus peuvent être maintenus en exécution en mémoire
Car seules quelques pièces sont chargées pour chaque processus
L’usager est content, car il peut exécuter plusieurs processus et faire
référence à des gros données sans avoir peur de remplir la mémoire
centrale
Avec plus de processus en mémoire principale, il est plus probable
d’avoir un processus dans l’état prêt, meilleure utilisation d’UCT
Plusieurs pages ou segments rarement utilisés n’auront peut être pas
besoin d`être chargés du tout
Il est maintenant possible d’exécuter un ensemble de processus lorsque
leur taille excède celle de la mémoire principale
Il est possible d’utiliser plus de bits pour l’adresse logique que le
nombre de bits requis pour adresser la mémoire principale
Espace d’adressage logique > > esp. d ’adressage physique

70
Mémoire Virtuelle

La mémoire logique est donc appelée mémoire virtuelle


Est maintenue en mémoire secondaire
Les pièces sont amenées en mémoire principale seulement quand
nécessaire, sur demande
Pour une meilleure performance, la mémoire virtuelle se trouve souvent
dans une région du disque qui est n’est pas gérée par le système de
fichiers
Mémoire va-et-vient, swap memory
La mémoire physique est celle qui est référencée par une adresse
physique
Se trouve dans le RAM

71
Exécution d’un Processus
Le SE charge la mémoire principale de quelques pièces (seulement)
du programme
Chaque entrée de la table de pages (ou segments) possède un bit
présent qui indique si la page ou segment se trouve en mémoire
principale
L’ensemble résident (résident set) est la portion du processus se
trouvant en mémoire principale
Une interruption est générée lorsque l’adresse logique réfère à une
pièce qui n’est pas dans l’ensemble résident
défaut de pagination (page fault)

72
Exécution d’un défaut de page:
va-et-vient plus en détail

73
Remplacement de pages
• Quoi faire si un processus demande une nouvelle page et il
n’y a pas de cadres libres en RAM?
• Il faudra choisir une page déjà en mémoire principale,
appartenant au même ou à un autre processus, qu’il est
possible d’enlever de la RAM
– la victime!
• Un cadre de mémoire sera donc rendu disponible

74
Quand la RAM est pleine mais
nous avons besoin d`une page pas
en RAM

75
La page victime...

76
Algorithmes de remplacement
pages
• Choisir la victime de façon à minimiser le
taux de défaut de pages
– pas évident!!!
• Page dont nous n`aurons pas besoin dans le
futur? impossible à savoir! OPT
• Page pas souvent utilisée? LRU
• Page qui a déjà séjournée longtemps en
mémoire?? FIFO
77

• etc.
Explication et évaluation des
algorithmes
• Nous allons expliquer et évaluer les algorithmes en utilisant
la chaîne de référence suivante :

2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2

• L’évaluation sera faite sur la base de cet exemple


• Exemple: Un processus de 5 pages s’il n`y a que 3 cadres
disponibles.

78
Algorithmes pour la politique de remplacement

L’algorithme optimal (OPT) choisit pour


page à remplacer celle qui sera référencée
le plus tardivement
produit le + petit nombre de défauts de page
impossible à réaliser (car il faut connaître le
futur) mais sert de norme de comparaison pour
les autres algorithmes.

79
Algorithmes pour la politique de
remplacement
Algorithme LRU (Least Recently Used) remplace la page
dont la dernière référence remonte au temps le
plus lointain (le passé utilisé pour prédire le
futur)
Il s’agit de la page qui a le moins de chance d’être
référencée
performance presque aussi bonne que l’algorithme
OPT

80
Algorithmes pour la politique de
remplacement
• Premier arrivé, premier sorti (FIFO)
Logique: une page qui a été longtemps en mémoire a eu
sa chance pour s’exécuter
• Lorsque la mémoire est pleine, la plus vieille page est
remplacée. Donc: “first-in, first-out”
• Simple à mettre en application
• Mais: Une page fréquemment utilisée est souvent la plus
vielle, elle sera remplacée par FIFO!

81
Note sur le comptage des défauts de page

Lorsque la mémoire principale est vide, chaque


nouvelle page que nous ajoutons est le résultat d’un
défaut de page

Mais pour mieux comparer les algorithmes, il est


utile de garder séparés ces défauts initiaux
car leur nombre est le même pour tous les
algorithmes

82
Gestion de la mémoire
sous GNU/Linux

83
les différentes mémoires d’un système LINUX

• Used : la mémoire utilisée par les processeurs et le noyau.


• Free : la mémoire qui est disponible.
• Shared : la mémoire qui est partagée par plusieurs processus en même
temps. Elle est inclue dans la mémoire "used".
• Bufered/cache : elle accélère les accès disques et fichiers.
• SWAP : Si des processus sont inoccupés, ils peuvent être transférés
dans le SWAP et libérer de la mémoire vive

84
Le fonctionnement de la mémoire

Les processus basculent sur la SWAP quand la valeur configurée dans la


swapiness est atteinte (en %).
Utilisateur1:~/$ cat /proc/sys/vm/swappiness
60
• Dans cet exemple dès qu’il restera 60 % de RAM de disponible, les
processus basculeront sur la SWAP.

85
La commande FREE
La commande free affiche un résultat tel que : root@~~:/#free

free -M⇒ Pour afficher les resultats en Mo


free -k ⇒ Pour afficher les résultats en Ko
free -t ⇒ pour afficher le total swap +ram

86
Éléments du langage (2)
Par exemple, sur un serveur disposant de 7,5 Go de mémoire, la commande
free -m donne :

On peut forcer l'O.S. à vider ses caches, via la commande :

87
Utilisation du swap

88
Espace d'adressage d'un processus
Les fichiers /proc/PID/status donnent des informations intéressantes sur
les processus en cours d'exécution.

89
Systèmes de gestion de fichiers

90
Que c’est qu’un fichier

• Collection nommée d’informations apparentées,


enregistrée sur un stockage secondaire
– Nature permanente
• Les données qui se trouvent sur un stockage
secondaires doivent être dans un fichier
• Différents types:
– Données (binaire, numérique, caractères….)
– Programmes
Attributs d’un fichier
Constituent les propriétés du fichiers et sont stockés dans un fichier spécial appelé
répertoire (directory). Exemples d’attributs:
Nom:
pour permet aux personnes d’accéder au fichier
Identificateur:
Un nombre permettant au SE d’identifier le fichier
Type:
Ex: binaire, ou texte; lorsque le SE supporte cela
Position:
Indique le disque et l’adresse du fichier sur disque
Taille:
En octets ou en blocs
Protection:
Détermine qui peut écrire, lire, exécuter…
Date:
pour la dernière modification, ou dernière utilisation
Autres… 92
Structures de répertoires (directories)
Une collection de structures de données contenant infos sur les
fichiers.

Répertoires

Fichiers
F1 F2 F4
F3
Fn

Tant les répertoires, que les fichiers, sont sur disques


À l’exception d’un rép. racine en mém. centrale
93
Structure à un niveau
• Un seul rép. pour tous les usagers

94
Répertoires à deux niveaux
• Rép. séparé pour chaque usager
• `path name`, nom de chemin
• même nom de fichier pour usagers différents est permis
• recherche efficace
• Pas de groupements

95
Répertoires à arbres (normal
aujourd’hui)

96
La gestion de l’organisation de
l’espace disque
Trois méthodes d’allocation de fichiers :

Allocation contiguë
Allocation enchaînée
Allocation indexée

97
Allocation contiguë sur disque
répertoire

98
Allocation contiguë disque
Chaque fichier occupe un
ensemble de blocs contigu sur
disque
Simple: nous n’avons besoin
que d’adresses de début et
longueur

Pour toutes les méthodes, la


mise à jour peut être compliquée

99
Allocation contiguë
Application des problèmes
et méthodes vus dans le
chapitre de l’alloc de
mémoire contiguë
Les fichiers ne peuvent pas
grandir
Impossible d’ajouter au
milieu
Exécution périodique
d’une compression
(compaction) pour
récupérer l’espace libre

100
Allocation enchaînée
répertoire

101
Allocation enchaînée disque
• Le répertoire contient
l ’adresse du premier et
dernier bloc, possibl. le
nombre de blocs
• Chaque bloc contient un
pointeur à l’adresse du
prochain bloc:

bloc = pointeur

données

102
Avantages - désavantages
• Pas de fragmentation externe - allocation de
mémoire simple, pas besoin de compression
• L’accès à un fichier est totalement
séquentiel
• La perte d’un chainage

103
Allocation indexée: semblable à la
pagination

• il suffit de retirer les pointeurs des blocs et


de les placer dans une structure de données
gardée en mémoire centrale
• La plus part des systèmes actuels appliquent
ce mode.

104
Allocation indexée

-1: pointeur nul


105
Tableau d’allocation de fichiers FAT
(en mémé principale ou secondaire)

bloc 217

bloc 618

La position N dans la liste fait référence au bloc N 106


dans le disque
Le système de gestion de fichier
NTFS
• NTFS (New Technology File System)
• Le système de fichiers NTFS est basé sur une structure différente, appelée table
de fichiers maître (MFT), contenant des enregistrements sur les fichiers et les
répertoires de la partition.
• Un enregistrement de la MFT occupe une taille de 1 à 4Ko,

107
UNIX – LINUX inode
C’est une structure contenant les informations suivantes:
la taille,
l’identité du propriétaire et du groupe : un fichier en Unix est créé par un
propriétaire, qui appartient à un groupe,
Les droits d’accès : pour chaque fichier, Unix définit trois droits d’accès
(lecture (r), écriture (w) et exécution (x)
les dates de création, de dernière consultation et de dernière modification,
le nombre de références existant pour ce fichier dans le système,

108
Inode: Système fichiers indexé à niveaux:
UNIX et Linux

109
Gestion de l’espace libre

Les systèmes d’exploitation utilisent essentiellement


deux approches pour mémoriser l’espace libre :
▪ statique
▪ dynamique.

110
Gestion d’espace libre
Solution 1: vecteur de bits
Vecteur de bits (n blocs)

0 1 2 n-1

0  block[i] libre
bit[i] = 
1  block[i] occupé

Exemple d’un vecteur de bits où les blocs 3, 4, 5, 9, 10, 15, 16


sont occupés: 00011100011000011…

111
Gestion d’espace libre
Solution 2: Liste liée de mémoire libre

Tous les blocs de mémoire libre sont liés


ensemble par des pointeurs

112
GESTION DE FICHIERS
SOUS LINUX

113
Arborescence

114
Arborescence typique de Linux

• etc : répertoire contenant les fichiers de configuration.


• bin : répertoire contenant les principales commandes disponibles pour
les utilisateurs ;
• boot : répertoire contenant les fichiers de démarrage du système
contenant le noyau ;
• home : répertoire contenant les répertoires personnels des utilisateurs.
• root : répertoire personnel du super-utilisateur ;
• usr : Ce répertoire est réservé pour l'utilisation du système
• var : répertoire contenant les journaux systèmes.
• dev : point d’entrée vers les périphériques.
• proc : pseudo-système contenant des informations sur les processus en
exécution
115
Les divers types de fichiers
1. Les fichiers ordinaires ou réguliers: Ce sont des fichiers tout à fait
classiques qui contiennent des données .
· texte ;
· image ;
· audio ;
· programme binaire compilé ;
· script ;
· base de données ;
· bibliothèque de programmation ;
· etc.
2. Les catalogues: Les fichiers catalogues sont les répertoires, dossiers ou
directory.
3. Les fichiers spéciaux: Le troisième type de fichier est le fichier spécial. Il
existe plusieurs genres de fichiers spéciaux. Ils se trouvent principalement
dans le répertoire /dev s’ils représentent des périphériques.

116
Les chemins d’accès sous Linux

Chemin absolu : la référence absolue d'un objet (fichier ou répertoire) se


fait par la liste des répertoires traversés pour atteindre cet objet, en
commençant par la racine /.
Ex: /home/amine/iset/cours référence le fichier cours qui est sous le
répertoire iset lui-même sous amine qui lui est sous la racine ce qui est
indiqué par le premier /.

Chemin relatif : la référence relative d'un objet (fichier ou répertoire) se


fait par la liste des répertoires traversés pour atteindre cet objet,
relativement au répertoire courant de travail.
Ex : TP/tp2.c indique qu'à partir du répertoire de travail, on doit
trouver un sous répertoire TP contenant le fichier tp2.c

117
Commandes shell de manipulations de
fichiers
La commande cd (change directory):
Cette commande permet de changer le répertoire courant. Sans argument
cd permet de se déplacer vers le répertoire de connexion.
cd [chemin]
Exemples :
cd ~ et cd ramènent dans le répertoire de connexion.
cd . : ne change pas le répertoire courant.
cd .. : permet de se déplacer vers le répertoire parent.
cd / : il permet de se déplacer vers la racine.

118
119
Commandes shell de manipulations de
fichiers
La commande ls (list files) : La commande Ls permet de lister le contenu
d’un répertoire
ls [-options] chemin

120
Commandes shell de manipulations de
fichiers
La commande ls (list files)

• 1 : le type de fichier (– : ordinaire, d : répertoire, l : lien symbolique…) ; les


autres, par blocs de trois, les droits pour l’utilisateur (rw-), le groupe (r–) et
tous (r–).
• 2 : Un compteur de liens.
• 3 : Le propriétaire du fichier, généralement celui qui l’a créé.
• 4 : Le groupe auquel appartient le fichier.
• 5 : La taille du fichier en octets.
• 6 : La date de dernière modification.
• 7 : L’heure de dernière modification
• 8 : Le nom du fichier ou du dossier. 121
Commandes shell de manipulations de
fichiers
La commande cat : La commande cat affihe les fichiers l’un après l’autre
sur la sortie standard (écran).

Exemple:
cat [Link] : cette commande permet d’afficher sur l’écran le contenu du
fichier [Link]

La commande more [fichier...] permet d’afficher le contenu d’un fichier


page à page.

122
Commandes shell de manipulations de
fichiers
La commande touch : La commande touch permet de créer des fichiers
vides.
Exemple:
touch [Link] [Link] : Créer les fichiers [Link] et [Link] sous votre répertoire
de travail.

La commande mkdir (make directory): Cette commande permet de créer


un répertoire mkdir [-options] répertoire
Le chemin peut être :
relatif (par exemple mkdir ../iset)
absolu (par exemple mkdir /home/imene/iset /cours)
Une option de mkdir qui est souvent utile est mkdir –p elle permet de
créer une suite de répertoires.
Exemple mkdir –p cours/tp/rsi21
123
Commandes shell de manipulations de
fichiers
La commande rm (remove directory ): La commande "rm" permet de supprimer
un fichier ou un répertoire. rm [-options] fichier(s)
rm -r : agit de façon récursive, c’est à dire détruit aussi les répertoires (pleins
ou vide) et leurs sous-répertoires.

La commande cp (copy): La commande cp copie un ou plusieurs fichiers vers un


autre fichier ou vers un répertoire.
cp fichier1 fichier2 … fichiern Destination

La commande mv: La commande "mv" (move) permet de déplacer un fichier


dans un dossier. Par exemple un "mv [Link] titi" déplacera le fichier
"[Link]" dans le répertoire "titi" (attention on parle bien de déplacement pas
de copie).

124
Gestion des utilisateurs et des groupes
Les fichiers et les répertoires possèdent 3 types de droits :
• les droits en lecture (symbolisés par la lettre r)
• les droits en écriture (symbolisés par la lettre w)
• les droits en exécution (symbolisés par la lettre x)

Il existe 3 types d'utilisateurs pour un fichier ou un répertoire :


• le propriétaire du fichier, il est symbolisé par la lettre u.
• un fichier est associé à un groupe. Le groupe est symbolisé par la lettre g
• tous les autres utilisateurs. Ces utilisateurs sont symbolisés la lettre o .

125
Gestion des utilisateurs et des groupes
La commande chmod : permet de modifier les permissions d'un fichier ou d'un
dossier.
• les symboles liés aux utilisateurs : "u" correspond au propriétaire, "g"
correspond au groupe lié au fichier (ou au répertoire), "o" correspond aux
autres utilisateurs et "a" correspond à "tout le monde" (permet de modifier
"u", "g" et "o" en même temps)
• les symboles liés à l'ajout ou la suppression des permissions : "+" on ajoute
une permission, "-" on supprime une permission, "=" les permissions sont
réinitialisées (permissions par défaut)
• les symboles liés aux permissions : "r" : lecture, "w" : écriture, "x" :
exécution.
chmod [u g o a] [+ - =] [r w x] nom_du_fichier

126
Gestion des utilisateurs et des groupes
Exemple1:
chmod o+w [Link]
Il est possible de combiner les symboles :
chmod g-wx [Link]

Exemple2:
chmod a=r [Link] autorise uniquement l'ensemble des utilisateurs à accéder
au fichier toto en lecture seule.

127
Gestion des utilisateurs et des groupes
La syntaxe chiffrée peut être utilisée pour régler d'un trait l'accès de tous les
ensembles d'usagers. Par exemple, la commande
chmod 664 [Link]
est équivalente à
chmod ug=rw [Link]
chmod o=r [Link]
Le premier chiffre de la valeur numérique fixe l'accès de l'usager propriétaire, le
deuxième fixe l'accès du groupe propriétaire et le dernier fixe l'accès des
« autres ». Chaque chiffre est la somme d'un ou plusieurs chiffres
correspondant à des accès différents :
• 4 : lecture
• 2 : écriture
• 1 : exécution
• 0 : aucun
128
GESTION DES
ENTREES/SORTIES

129
Introduction(1)

Un périphérique est un matériel électronique pouvant être


raccordé à un ordinateur
périphériques de sortie
périphériques de stockage
Périphériques d’entrée

130
Introduction(2)
Il existe deux grandes catégories de périphériques
Les périphériques caractères : on accède bien sur à
l’information caractère par caractère (exemple : le clavier,
imprimante)
Les périphériques blocs : on ne peut accéder à
l’information que par blocs et chaque bloc possède une
adresse (exemple : le disque).

131
L’unité d’échange

Rôle de l ’unité d’échange


connexion des unités
périphériques au bus
gestion des échanges
entre le processeur et les
périphériques
(adaptation)

132
Constitution d’une unité
d’échange
Un registre de commande dans
lequel le processeur décrit le travail
à effectuer
Un registre de données qui contient
les mots à échanger entre le
périphérique et la mémoire centrale
Un registre d ’état qui indique si l
’unité d ’échange est prête, si
l’échange s’est bien déroulé, etc...

133
Gestion des Entrées/Sorties
Dans un système d’exploitation, cette
fonction est réalisée par un ensemble de
services appelé gestionnaire d’entrée-sortie.

134
Gestion des Entrées/Sorties
Trois méthodes de gestion des entrées/sorties:
❑ La liaison programmée
❑ Les entrées-sorties pilotées par les
interruptions
❑ L’utilisation d’un dispositif permettant
des accès directs à la mémoire, DMA

135
Entrées/Sorties programmées
Par défaut, une unité d'échange :
ne sait pas accéder à la mémoire
centrale
ne sait pas délivrer son état
➢ 1. Le processeur doit lire chaque
mot depuis la mémoire centrale et
le placer dans RD (ou vice versa)
➢ 2. Le processeur doit scruter le
registre RE pour savoir si l'unité
d'échange est prête pour un
nouveau transfert

136
137
Entrées/Sorties par interruption
Par défaut, une unité d'échange :
ne sait pas délivrer son état
➢ 1. Le processeur doit scruter le
registre RE pour savoir si l'unité
d'échange est prête pour un
nouveau transfert
Solution: Il faut ajouter un mécanisme
qui permette à l‘UE de signaler son
état par elle même : les interruptions

138
Entrées/Sorties par interruption

Une interruption est un signal asynchrone


pouvant être émis par tout dispositif
externe au processeur, qui interrompt le
travail courant du processeur pour forcer
l'exécution d'un programme traitant la
cause de l'interruption : la routine
d'interruption
139
140
Entrées/Sorties par DMA
Par défaut, une unité d'échange :
ne sait pas accéder à la mémoire
centrale
➢ Le processeur doit lire chaque mot
depuis la mémoire centrale et le
placer dans RD (ou vice versa)
Solution: Il faut permettre à L'UE
d’accéder à la mémoire centrale sans
recourir au processeur : DMA
(DIRECT MEMORY ACCESS)

141
142
Les flux de redirection

143
> et >> : rediriger le résultat
dans un fichier
Cut [Link]

144
> : rediriger dans un nouveau
fichier

cut -d , -f 1 [Link] > [Link]


145
>> : rediriger à la fin d'un
fichier

Le double chevron >> sert lui aussi à rediriger le résultat dans


un fichier, mais cette fois à la fin de ce fichier.
cut -d , -f 1 [Link] >> [Link]

146
2>, 2>> et 2>&1 : rediriger les
erreurs
Il faut savoir que toutes les commandes produisent deux flux de données
différents, comme le montre la figure suivante :
• la sortie standard : pour tous les messages (sauf les erreurs) ;
• la sortie d'erreurs : pour toutes les erreurs.

147
Rediriger les erreurs dans un
fichier à part

Faisons une seconde redirection à la fin de cette commande cut :

148
Fusionner les sorties

Il faut utiliser le code suivant : 2>&1.

149
< : lire depuis un fichier

cat < [Link]

150
| : chaîner les commandes

151
Le pipe effectue la connexion entre la sortie de cut (des noms dans le
désordre) et l'entrée de sort, comme l'illustre la figure suivante.

cut -d , -f 1 [Link] | sort > noms_tries.txt

152

Vous aimerez peut-être aussi