Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% ont trouvé ce document utile (0 vote)
13 vues139 pages

My OS tsr1

Télécharger au format pptx, pdf ou txt
Télécharger au format pptx, pdf ou txt
Télécharger au format pptx, pdf ou txt
Vous êtes sur la page 1/ 139

Introduction aux

Systèmes d‘Exploitation
Plan
• Définitions

• Structure d’un SE

• Classifications des SE

• Quelques définitions

• Modèle en couches

– Gestion de mémoire

– Gestion des processus

– Gestion des périphériques (Entrée/Sortie)

– Gestion des fichiers

• Comparaison entre Linux & Windows

2
Pourquoi étudier les S.E.?
• Logiciel très important…
– tout programme roule sur un SE
– interface usager-ordinateur

• Les SE utilisent beaucoup d ’algorithmes et structures de


données intéressants
– Les techniques utilisées dans les SE sont aussi utilisées dans
nombreuses autres applications informatiques
 il faut les connaître

3
Introduction
•Un ordinateur doit être capable de faire fonctionner un programme, Pour cela il faut
que la machine puisse effectuer un certain nombre d'opérations préparatoires afin
d'assurer les échanges entre l'unité centrale de traitement, la mémoire, et les
périphériques.

UCT Mémoire E/S

Opération des échanges

Ces opérations sont assurées par un ensemble de programmes appelé le système


d’exploitation OS (Operating System).

4
Introduction
• Définition :
• Un système d'exploitation est un ensemble de programmes permettant à son utilisateur
de disposer d'un ensemble de services élaborés à partir des ressources de la machine sur
laquelle il s'exécute.il doit assurer :
chargement et lancement des programmes.
gestion du (des) processeur(s)
gestion des périphériques et entrées/sorties.
gestion de la mémoire principale et secondaire.
Applications
...
OS

Bios

Matériel

5
Introduction
A savoir :
les périphériques varient d'un ordinateur à
un autre, en particulier sur un PC. On a OS
introduit donc la notion des pilotes de
périphériques (instructions servant à piloter
un périphérique, en anglais drivers)
Pilotes
différents selon les types d'ordinateurs et les
types de périphériques.

Matériel

6
Définitions
• angl. « Operating System (OS) »
• Qu'est-ce que c'est?
« Programme assurant la gestion de l'ordinateur et de ses périphériques »

• A quoi ca sert?
– Fournit l’interface usager/machine:
– Masque les détails du matériel aux applications
– Le SE doit donc traiter ces détails
– Contrôle l’exécution des applications
– Le fait en reprenant périodiquement le contrôle de l’UCT
– Dit à l’UCT quand exécuter tel programme
– Il doit optimiser l`utilisation des ressources pour maximiser la
performance du système

7
Définitions
• Le système d’exploitation d’un système informatique est un
ensemble de programmes qui remplissent deux grandes
fonctions :
– gérer les ressources de l’installation matérielle en assurant leurs partages
entre un ensemble plus ou moins grand d’utilisateurs
– assurer un ensemble de services en présentant aux utilisateurs une
interface mieux adaptée à leurs besoins que celle de la machine physique

8
Abstraction
• Cacher la complexité des machines pour l'utilisateur afin
d'utiliser la machine sans savoir ce qui est derrière
• Abstraction du terme « Machine » selon Coy:
– machine réelle = Unité centrale + périphériques
– machine abstraite = machine réelle + système d'exploitation
– machine utilisable = machine abstraite + application

9
Vue abstraite d’un S.E.

10
Ressources et leur gestion
• Ressources:
– physiques: mémoire, unités E/S, UCT...
– Logiques = virtuelles: fichiers et bases de données partagés,
canaux de communication logiques, virtuels...
– les ressources logiques sont bâties par le logiciel sur les
ressources physiques

• Allocation de ressources: gestion de ressources, leur


affectation aux usagers qui les demandent, suivant
certains critères

11
Exigences à un système
d’exploitation
 Généralités
 Satisfaire les utilisateurs et les programmeurs
 Gérer 2D, 3D, vidéo, audio, réseau, CD, DVD, clé USB, ...
 Plusieurs utilisateurs (itinérants) --> multi-utilisateurs
 être extensible

 De plus en plus gros et complexe :


 Efficace, évolutif, maintenable

12
Exigences de l’utilisateur
 « Faut que ça marche ! »
(comme j'en ai envie ...)

 « Ça n’imprime pas ... »

 = Machine utilisable (machine étendu)

13
Exigences du programmeur
 Simplifier l'accès aux ressources de la machine :
 Mémoire, processeur, périphériques, fichiers, programmes,
réseaux, communication interne
 Modèle de programmation simple et unifié

 Efficacité dans tous les cas

 = Machine étendue

14
Historique des systèmes
d’exploitaion
• CP/M (depuis 1974), Digital Research
• UNIX (depuis 1969-1979), premier par AT&T
• MS-DOS (depuis 1981), Microsoft
• MacOS (depuis 1984), Apple
• Windows (depuis 1991), Microsoft
• Linux (depuis 1992), OpenSource

15
Structure d’un système
informatique
Applications
r s Ed
t eu ite
l a Système d’exploitation urs
pi
o m
C Langage machine
Dispositifs
physiques

Interpréteur de commandes

16
Classification des S.E.
• Par la méthode d’accès au système par l’usager :
– par session : ce sont les systèmes transactionnels ou
conversationnels (ex : réservation d’un billet ONCF)
– par requête : temps réel (ex: la voix sur IP)
– par travaux (batch) : traitement par lots (ex: mise à jour des
comptes bancaires la nuit)

• Par le genre d’applications des usagers :


– développement de programmes
– manipulation des données

17
Classification des S.E.
• Par la configuration matérielle :
– un seul processeur : système monoprocesseur
– plusieurs processeurs : système multiprocesseur
– basée sur un réseau : système réseau (système distribué)

• Par le nombre d’usagers simultanés


– système monoposte
– système multiposte

18
Classification des S.E.
• Par la politique de partage des ressources physiques et
logiques :
– partage de la mémoire entre plusieurs programmes : système
multiprogrammé
– partage du temps processeur entre les programmes en
exécution : temps partagé (partage par quantum de temps) ou
temps
– réel (partage par priorité des tâches)

19
Quelques définitions
• Noyau
• Processus
• Traitement par lots
• Systèmes Multi-tâche
• Systèmes Multi-utilisateurs
• Systèmes Multi-processeurs
• Systèmes temps réel
• Systèmes distribués
20
Définitions : le noyau
• Les fonctions principales du noyau sont :
– L’allocateur (dispatcher) du CPU : répartition du temps
disponible de l’unité de traitement entre les différents processus
– La gestion des interruptions : détermination de la source de
l’interruption et activation de la procédure de service
correspondante
– Le support de l’environnement des processus : synchronisation
des processus

21
Définitions : les processus
• Un processus est un programme qui s’exécute = un
programme exécutable + données + pile + compteur
ordinal …

P1
P6 P2

P5 P3
P4
22
Définitions : traitements par
lots (batch processing)
• Un utilisateurs donne plusieurs commandes (« Jobs »)
dans une queue d'éxécution de programmes
• Entièrement séquentielle
• p.ex. pour faire plusieurs calculs pendant la nuit

• p.ex. autoexec.bat

23
Définitions : Systèmes Multi-
tache (Multitasking)
• Assurer l'éxécution de plusieurs programmes en meme
temps (c-à-d. plusieurs processus)

• Chaque processus a besoin du processeur


– situation concurrente
– solution: « scheduling » ou ordonnancement

24
Définitions : Systèmes Multi-
processeurs
• système avec plusieurs processeurs
– parallèle
– vrai multi-tâches
– doit assurer qu'il y a l'exécution d'autant de processus que
processeurs en même temps

• contrairement: système avec un seul processeur


– quasi-parallèle
– arrêter et reprendre les différent processus
– Gestion avec le « scheduler » (ordonnancement des processus)

25
Définitions : Systèmes Multi-
utilisateurs (« time sharing »)
• permettre a différentes personnes de travailler avec un
ordinateur en même temps
• connexion par
– via le terminal de l'ordinateur lui-même
– à distance (telnet, ssh, ftp, ...)

• donner l'impression à chaque utilisateur qu'il est seul


• exige une gestion des droits
– de fichiers (pour éviter la destruction des fichiers etc.)
– de processus

26
Définitions : Multi-utilisateurs
• Login

• Type:
– Administrateur (« root »)
– Groupes
– Utilisateurs

• pour gérer les droits

27
Définitions : Systèmes Temps
réels
• Sert pour le pilotage et le contrôle des déroulements
externes (p.ex. centrale électrique)
• doit garantir des temps de réactions données pour des
signaux extérieur urgents
• plusieurs systèmes d'exploitations n'y arrivent pas car
l'interruption de certaines activités met le système dans
un état instable

28
Définitions : Systèmes distribués
• doit permettre l'éxecution d'un seul programme sur
plusieurs machines

• distribuer les processus et les remettre ensemble

• p.ex. Corba , RMI ou oracle

29
S.E. : Modèle en couches
Application (Logiciel, p.ex. Microsoft Word)

Gestion des fichiers

Gestion des périphériques (entrées/sorties)

Gestion des processus

Gestion de la mémoire

Noyau du Système d’exploitation


Pilote Pilote Pilote
Matériel

30
Gestion de la Mémoire

Dans cette partie nous verrons que,


pour optimiser l’utilisation de la
mémoire, les programmes sont
éparpillés en mémoire selon des
méthodes différentes:
Pagination, segmentation

31
Gestion de la Mémoire
Les mémoires
• Conservation de l’information
• Caractéristiques
– Situation, capacité, méthodes d’accès, performances
– Nature : magnétique, optique, semi-conducteurs
– Propriétés : volatile/non, effaçable/non, etc

• Organisation, hiérarchie
– CPU : registres, cache
– Mémoire centrale
– Mémoire secondaire : disque, CD, bande magnétique…
32
Gestion de la Mémoire

33
Gestion de la Mémoire
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


chargés de fois en fois dans positions différentes de mémoire
– Donc adresse physique ≠ adresse logique

34
Gestion de la Mémoire
• Le gestionnaire de mémoire est un sous-ensemble du
système d'exploitation. Son rôle est de partager la
mémoire entre l'OS et les diverses applications. Le terme
"mémoire" fait surtout référence à la mémoire principale,
c'est à dire à la RAM, mais la gestion de celle-ci
demande la contribution de la mémoire auxiliaire
(mémoire de masse, spacieuse mais lente) et à la
mémoire cache ( rapide mais de taille restreinte).

35
Gestion de la Mémoire
• Voici trois fonctions qu'on attend du gestionnaire de
mémoire :
• L'allocation de la mémoire aux processus

36
Gestion de la Mémoire
• La segmentation de l'espace d'adressage

37
Gestion de la Mémoire
• La mémoire virtuelle

38
Gestion de la Mémoire
La pagination est un système de gestion de mémoire. La pagination permet à un
processus d’être stocké dans une mémoire de manière non contiguë. Stocker le
processus d’une manière non-contiguë résout le problème de la fragmentation externe.
Pagination

Comme la pagination, la segmentation est également un schéma de gestion de


mémoire. Le processus est divisé en segments de taille variable et chargé dans l’espace
d’adressage mémoire logique.
L’espace d’adressage logique est la collection de segments de taille variable. Chaque
segment a son nom et sa longueur. Pour l’exécution, les segments de l’espace mémoire
logique sont chargés dans l’espace mémoire physique.
L’adresse spécifiée par l’utilisateur contient deux quantités le nom du segment et le
décalage. Les segments sont numérotés et référencés par le numéro de segment au lieu
du nom de segment. Ce numéro de segment est utilisé comme index dans la table de
segments et la valeur de décalage détermine la longueur ou la limite du segment. Le
Segmentation numéro de segment et le décalage génèrent conjointement l’adresse du segment dans
l’espace de mémoire physique.

39
Gestion de la Mémoire
• Les systèmes d'exploitation qui gèrent ces deux
techniques simultanément administrent une table
de segments et plusieurs tables de pages.
• Un segment peut contenir plusieurs pages mais
toutes ne doivent pas nécessairement être
présentes en mémoire à tout moment. On ne
garde en mémoire que celles qui sont réellement
utilisées. Chaque segment a sa propre table de
pages.

40
Gestion de la Mémoire
La mémoire virtuelle est très schématiquement un dispositif qui
permet de simuler la mémoire de l'ordinateur sur un disque (zone de
swap). Seules les informations nécessaires à l'activité immédiate
résident, à un instant donné, dans la vraie mémoire. Ceci permet
d'exécuter des programmes dont la taille est supérieure à la mémoire
réelle de la machine. Le mauvais côté de cette invention est qu'il faut
multiplier les échanges entre le disque et la mémoire pour la mettre à
jour. Il faut donc disposer de périphériques et de contrôleurs d'entrées-
sorties rapides.

41
Gestion des Processus

Application (Logiciel, p.ex. Microsoft Word)

Gestion des fichiers

Gestion des périphériques (entrées/sorties)

Gestion des processus

Gestion de la mémoire

Noyau du Système d’exploitation


Pilote Pilote Pilote
Matériel

42
Gestion des Processus
• Un processus comporte du code machine exécutable, une zone
mémoire (données allouées par le processus), une pile ou stack
(pour les variables locales des fonctions et la gestion des appels et
retour des fonctions) et un tas ou heap pour les allocations
dynamiques.

• Ce processus est une entité qui, de sa création à sa mort, est


identifié par une valeur numérique : le PID (Process IDentifier).

• Tous les processus sont donc associés à une entrée dans la table des
processus qui est interne au noyau.

• Chaque processus a un utilisateur propriétaire, qui est utilisé par le


système pour déterminer ses permissions d’accès aux fichiers.

• Remarques : Les commandes ps et top listent les processus sous


UNIX/Linux et, sous Windows on utilisera le gestionnaire de
tâches (taskmgr.exe).

43
Gestion des Processus
-Contexte d’un processus-
• Le contexte d’un processus (Process Control Block) est l’ensemble de :
1. son état
2. son mot d’état : en particulier la valeur des registres actifs et le compteur
ordinal
3. les valeurs des variables globales statiques ou dynamiques
4. son entrée dans la table des processus
5. les données privées du processus (zone u)
6. Les piles user et system
7. les zones de code et de données.

• L’exécution d’un processus se fait dans son contexte. Quand il y a changement de


processus courant, il y a une commutation ou changement de contexte. Le noyau
s’exécute alors dans le nouveau contexte.

• En raison de ce contexte, on parle de processus lourd, en opposition aux processus


légers que sont les threads (car ceux-ci partagent une grande partie du contexte où
ils s'exécutent).

44
Gestion des Processus
-Généalogie des processus-
• La création d'un processus étant réalisée par un appel système (fork sous
UNIX/Linux). Chaque processus est identifié par un numéro unique, le PID
(Processus IDentification).

• Un processus est donc forcément créé par un autre processus (notion père-
fils). Le PPID (Parent PID) d'un processus correspond au PID du processus
qui l'a créé (son père)

• Exemple sous UNIX/Linux :

45
Gestion des Processus
-Création dynamique de processus-
• Lors d'une opération fork, le noyau Unix crée un nouveau
processus qui est une copie conforme du processus père. Le code,
les données et la pile sont copiés et tous les fichiers ouverts par le
père sont ainsi hérités par le processus fils.

• Lors de l'initialisation du système (boot), le noyau crée plusieurs


processus spontanés dans l'espace de l'utilisateur. Ces processus sont
dits spontanés parce qu'ils ne sont pas créés par le mécanisme fork
traditionnel.

• Le nom et la nature des processus spontanés varient d'un système à


l'autre. init est le seul processus à part entière. Le PID d'init vaut
toujours 1 et c'est l'ancêtre de tous les processus utilisateurs et de
presque tous les processus système.

46
Gestion des Processus
-Attributs d’un processus-

47
Gestion des Processus
- Création de processus
Rappel
Un processus est forcément crée par un autre processus

Sous Unix
2 appels système :
•fork pour créer un processus à partir du processus courant
→ Le processus est dupliqué
•exec pour remplacer le processus courant par un autre processus

Sous Windows
•createprocess pour créer un processus (cf. exec Unix)
→ Le processus courant est conservé
48
Gestion des Processus

49
Gestion des Processus
Branchement et recouvrement

50
Gestion des Processus
- Notion de Thread-
Définition
La thread est l’unité de base du processus. Un processus peut avoir plusieurs
threads Les threads partagent le même code et les mêmes données Chaque
thread a sa propre pile

Exemple : serveur web


Rôle : traiter les requêtes HTTP et renvoyer les pages correspondantes Un seul
ensemble de donnés (fichiers HTML, PHP, . . . ) Un seul programme (traiter
les requêtes) Une nouvelle thread `a chaque requête

51
Gestion des Processus
- Notion de Thread-
Principe

52
Gestion des Processus
- États d’un processus-
• Lors de son exécution, un processus est caractérisé par un état :

– lorsque le processus obtient le processeur et s'exécute, il est dans l'état élu. L'état élu est
l'état d'exécution du processus.

– lors de cette exécution, le processus peut demander à accéder à une ressource (réalisation
d'une entrée/sortie, accès à une variable protégée) qui n'est pas immédiatement disponible :
le processus ne peut pas poursuivre son exécution tant qu'il n'a pas obtenu la ressource (par
exemple, le processus doit attendre la fin de l'entrée/sortie qui lui délivre les données sur
lesquelles il réalise les calculs suivants dans son code) : le processus quitte alors le
processeur et passe dans l'état bloqué.

L'état bloqué est l'état d'attente d'une ressource autre que le processeur.

53
Gestion des Processus
- États d’un processus-
– lorsque le processus a enfin obtenu la ressource qu'il attendait, celui-ci peut
potentiellement reprendre son exécution. Cependant, nous nous sommes placés
dans le cadre de systèmes multiprogrammés, c'est-à-dire qu'il y a plusieurs
programmes en mémoire centrale et donc plusieurs processus.. Lorsque le
processus est passé dans l'état bloqué, le processeur a été alloué à un autre
processus. Le processeur n'est donc pas forcément libre. Le processus passe alors
dans l'état prêt. L'état Prêt est l'état d'attente du processeur.

– Le passage de l'état prêt vers l'état élu constitue l'opération d'élection. Le passage
de l'état élu vers l'état bloqué est l'opération de blocage. Le passage de l'état
bloqué vers l'état prêt est l'opération de déblocage.

54
Gestion des Processus
- États d’un processus-
Un processus est toujours crée dans l'état prêt. Un processus se termine toujours à
partir de l'état élu (sauf anomalie).

55
Gestion des Processus
- États d’un processus-
• Le processus est une activité dynamique et possède un état qui
évolue au cours du temps. Ce processus transitera par différents états
selon que :
– il s'exécute (ACTIF ou Élu)
– il attend que le noyau lui alloue le processeur (PRET)
– il attend qu'un événement se produise (ATTENTE ou Bloqué)

• C'est l'ordonnanceur (scheduler) qui contrôle l'exécution et les états


des processus.

56
Gestion des Processus
- Critères d’évaluation des performances-

• Rendement
– Nombre de travaux exécutés par unité de temps.

• Temps de service
– Temps qui s’écoule entre le moment où un travail est soumis et où il est exécuté(temps
d’accès mémoire + temps d’attente dans la file des processus éligibles + temps d’exécution
dans l’unité centrale + temps d’attente + temps d’exécution dans les périphériques
d’entrée/sortie).

• Temps d’attente
– Temps passé dans la file des processus éligibles.

• Temps de réponse
– Temps qui s’écoule entre la soumission d’une requête et la première réponse obtenue.

57
Gestion des Processus
- Ordonnancement-
• La figure précédente schématise le fonctionnement d'une machine multiprocessus. Plusieurs processus sont
présents en mémoire centrale. P1 est élu et s'exécute sur le processeur. P2 et P4 sont dans l'état bloqué car ils
attentent tous les deux une fin d'entrée/sortie avec le disque. Les processus P3, P5 et P6 quant à eux sont dans
l'état prêt : ils pourraient s'exécuter (ils ont à leur disposition toutes les ressources nécessaires) mais ils ne le
peuvent pas car le processeur est occupé par P1. Lorsque P1 quittera le processeur parce qu'il a terminé son
exécution, les trois processus P3, P5 et P6 auront tous les trois le droit d'obtenir le processeur. Mais le
processeur ne peut être alloué qu'à un seul processus à la fois : il faudra donc choisir entre P3, P5 et P6 : c'est le
rôle de l' ordonnancement qui élira un des trois processus .

58
Gestion des Processus
- Ordonnancement-
• Définition : Ordonnancement

La fonction d'ordonnancement gère le partage du


processeur entre les différents processus en attente
pour s'exécuter, c'est-à-dire entre les différents
processus qui sont dans l'état prêt. L'opération
d'élection consiste à allouer le processeur à un
processus.

59
Gestion des Processus
- Ordonnancement-
• But de l’ordonnancement :

Les buts de l' ordonnancement diffèrent en fonction du type de systèmes.


– Systèmes de traitements par lots. Le but est de maximiser le débit du
processeur ; c'est-à-dire le nombre moyen de processus traités par unité
de temps.
– Systèmes interactifs. Les buts principaux de l'ordonnancement sont
premièrement de maximiser le taux d'occupation du processeur, c'est-à-
dire le rapport entre le temps où le processeur est actif et le temps total.
– Systèmes temps réel. Le but principal est d'assurer le respect des
contraintes de temps liées aux processus.

60
Gestion des Processus
- Ordonnancement préemptif et non préemptif 1/2-
• La figure suivante reprend le graphe d'états concernant les processus.
Une transition a été cependant ajoutée entre l'état élu et l'état prêt :
c'est la transition de préemption. La préemption correspond à une
opération de réquisition du processeur, c'est-à-dire que le processeur
est retiré au processus élu alors que celui-ci dispose de toutes les
ressources nécessaires à la poursuite de son exécution. Cette
réquisition porte le nom de préemption .

61
Gestion des Processus
- Ordonnancement préemptif et non préemptif 2/2-

Définition : Préemption
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écution 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é.
62
Gestion des Processus
- Politiques d’ordonnancement -
1/ Politique Premier Arrivé, Premier Servi (First come First Served)

• C'est une politique à l'ancienneté, sans réquisition ; l'unité centrale


est allouée selon l'ordre de soumission des processus.

• Dans cette politique, des processus de faible temps d'exécution


peuvent être pénalisés parce qu'un processus de longue durée les
précède dans la file.

63
Gestion des Processus
- Politiques d’ordonnancement -
1/ Politique Premier Arrivé, Premier Servi (First come First Served)

2
1

64
Gestion des Processus
- Politiques d’ordonnancement -
2/ Politique plus court d’abord (Shortest Job first)

• Cette politique tente de remédier à l'inconvénient mentionné pour la politique


précédente. Maintenant, l'unité centrale est allouée au processus de plus petit temps
d'exécution.

• Cette politique est également une politique sans réquisition. Elle a la propriété de
minimiser le temps de réponse moyen pour l'ensemble des algorithmes
d'ordonnancement sans réquisition. Elle pénalise les travaux longs. Elle impose
également d'estimer la durée des processus ce qu'on ne connaît pas habituellement.

• Il existe une version avec réquisition de cette politique appelée "temps restant le plus
court d'abord" : dans ce cas, le processus en exécution restitue le processeur lorsqu'un
nouveau processus de temps d'exécution inférieur à son temps d'exécution restant
devient prêt.

65
Gestion des Processus
- Politiques d’ordonnancement 2/3-
2/ Politique plus court d’abord (Shortest Job first)

66
Gestion des Processus
- Politiques d’ordonnancement -
3/ Politique d'ordonnancement par tourniquet (Round Robin)

• On définit une tranche de temps appelée quantum qui peut varier de 10 ms à 100 ms.
Chaque processus présent dans la file des processus prêts acquiert le processeur à tour
de rôle, et ce pour au maximum un temps égal au quantum de temps.

• Si le processus a terminé son exécution avant la fin du quantum, il libère le processeur


et le processus suivant dans la file des processus prêts est élu.

• Si le processus n'a pas terminé son exécution avant la fin du quantum, il perd le
processeur et est réinséré en fin de file des processus prêts.

• Cette politique du tourniquet est usuellement utilisée dans les systèmes en temps
partagé.

• Sa performance dépend largement de la taille du quantum. Un quantum trop grand


augmente les temps de réponse alors qu'un quantum trop petit multiplie les
commutations de contexte jusqu'à les rendre non négligeables.

67
Gestion des Processus
- Politiques d’ordonnancement -
3/ Politique d'ordonnancement par tourniquet (Round Robin)

68
Gestion des Processus
- Politiques d’ordonnancement -
4/ Politique par priorité

• Un niveau de priorité constant est affecté à chaque processus et à un instant donné, le


processus élu est toujours celui de plus forte priorité.

• Cet algorithme présente une version sans réquisition et une version avec réquisition.

• Le défaut de cette politique est le risque de famine encouru par le processus de faible
priorité. Une solution à ce problème est de faire "vieillir" la priorité des processus en
attente, c'est-à-dire d'augmenter celle-ci en fonction du temps d'attente. La priorité des
processus devient ainsi variable.

Complément :
La famine est la situation où un processus ne peut disposer d'une ressource qu'il
demande (ici le processeur)
69
Gestion des Processus
- Politiques d’ordonnancement -
4/ Politique par priorité

70
Gestion des Processus
- Communication inter- processus-
Communications unidirectionnels:

71
Gestion des périphériques
(E/S)
Application (Logiciel, p.ex. Microsoft Word)

Gestion des fichiers

Gestion des périphériques (entrées/sorties)

Gestion des processus

Gestion de la mémoire

Noyau du Système d’exploitation


Pilote Pilote Pilote
Matériel

72
Gestion des périphériques (E/S)
-Structure générale d’un système d’E/S-

• Eléments mis en œuvre

 Périphérique : dispositif mécanique, électromagnétique ou électronique


assurant physiquement le transfert ou le stockage d'information (disque,
clavier, imprimante, etc)

 Interface de contrôle : circuits assurant la liaison entre le processeur et


le périphérique, et constituent le seul moyen d'accès au périphérique

 Gestionnaire de périphérique (driver) : gère les entrées/sorties


physiques en utilisant l'interface de contrôle.

73
Gestion des périphériques (E/S)
-Périphérique (Device)-
Types de périphériques :

• Type bloc : stockage de l'information par blocs de taille fixe, chacun


ayant sa propre adresse.
 Un bloc peut être lu/écrit indépendamment des autres.
 Exemple : disques, disquettes, CD-rom, etc.

• Type caractère : accepte ou délivre un flot de caractères sans


structure de bloc.
 Il n'est pas adressable et n'a pas d'opérations de positionnement.
 Exemple : terminaux, imprimantes, interfaces réseau, souris. Essayez ls -l /dev

74
Gestion des périphériques (E/S)
-Les interruptions-

• L’interruption est un signal déclenché par un événement interne ou


externe à la machine, provoquant l'arrêt d'un programme en cours
d'exécution à la fin de l'opération courante, au profit d’un
programme plus prioritaire appelé programme d'interruption.

• Ensuite, le programme interrompu reprend son exécution à l'endroit


où il avait été interrompu.

75
Gestion des périphériques (E/S)
-Les interruptions-
Utilisation:

On utilise les interruptions principalement

dans deux buts:

– afin de permettre des communications non bloquantes avec

des périphériques externes;

– afin de commuter entre les tâches dans un ordonnanceur.

76
Gestion des périphériques (E/S)
-Les interruptions-

• Les interruptions peuvent par ailleurs être hiérarchisées suivant des


priorités. Une interruption de priorité supérieure est prise en compte
lors du traitement d'une autre interruption, mais une interruption de
priorité inférieure est mise en attente .

77
Gestion des périphériques (E/S)
-Les interruptions-
• Types d’interruptions

78
Gestion des périphériques
(E/S)
Application (Logiciel, p.ex. Microsoft Word)

Gestion des fichiers

Gestion des périphériques (entrées/sorties)

Gestion des processus

Gestion de la mémoire

Noyau du Système d’exploitation


Pilote Pilote Pilote
Matériel

79
Gestion des fichiers
-Introduction-

• Le volume des données traitées par les applications informatiques


atteignant plusieurs Méga et Giga octets, ces données ne peuvent pas
être stockées dans la mémoire centrale. On souhaite également
disposer d'un stockage à long terme qui ne disparaisse pas lorsqu'on
éteint la machine. Le principe consiste à stocker ces données dans
des mémoires secondaires sous forme de fichiers, c'est-à-dire de
suites de blocs (la plus petite unité que le périphérique de stockage
est capable de gérer). Le contenu de ces blocs, simple suite de
chiffres binaires, peut être interprété selon le format de fichier
comme des caractères, des nombres entiers ou flottants, des codes
d'opérations machines, des adresses mémoires, etc... L’échange entre
les deux types de mémoires se fait ensuite par transfert de blocs.

80
81
Gestion des fichiers
-Système de gestion des fichiers-
• Un fichier est une collection logique d’information.

• Un système de fichiers est une collection de fichiers.

• Une des fonctions d'un SE est de masquer les spécificités des disques et des
autres périphériques d'entrées/sorties et d'offrir au programmeur un modèle
de manipulation des fichiers agréable et indépendant du matériel utilisé.

• Les appels système permettent de créer des fichiers, de les supprimer, de lire
et d'écrire dans un fichier. Il faut également ouvrir un fichier avant de
l'utiliser, le fermer ultérieurement. Les fichiers sont regroupés en répertoires
arborescents; ils sont accessibles en énonçant leur chemin d'accès (chemin
d'accès absolu à partir de la racine ou bien chemin d'accès relatif dans le
cadre du répertoire de travail courant).

• Le SE gère également la protection des fichiers.

82
Bienvenue dans la
section du système
Linux
Gestion des fichiers
-Désignation des partitions (sous Linux) 1/2-
• Un disque dur est généralement organisé de la façon suivante :

Master Boot Record (MBR) Partition système Partition données

• Le Master Boot Record (MBR) est situé dans les premiers secteurs du
disque.

Dans ce modèle, une zone de 512 octets appelée le Master Boot Record
(MBR) est réservée en début de disque pour contenir l'information relative à
un maximum de 4 partitions.

• Le MBR est constitué de 2 parties :


– La table de partition ;
– Le programme d’amorçage qui charge le noyau du système d’exploitation.

Sous Linux, le pointeur spécial /dev permet l’accès aux disques.

84
Gestion des fichiers
-Désignation des partitions (sous
Linux) 2/2-
• Pour dénommer les disques, un format est adopté : /dev/XXYZ où
XX désigne le type de bus :
– hd pour les périphériques de type IDE
– sd pour les périphériques de type SATA
– Y désigne la lettre de périphérique :
– "a" pour le maître de la nappe IDE primaire
– "b" pour l'esclave de la nappe IDE primaire
– "c" pour le maître de la nappe IDE secondaire
– "d" pour l'esclave de la nappe IDE secondaire
– Z désigne le numéro de la partition

• Exemples :
– /dev/hda1 : partition 1 sur le 1er disque IDE
– /dev/sdb2 : partition 2 sur le 2ème disque SATA
85
Gestion des fichiers
-Systèmes de fichiers 1/6-
• Les données sont normalement présentées à l'utilisateur et aux
programmes selon une organisation structurée, sous la forme de
répertoires et de fichiers. Pour pouvoir stocker ces données
structurées sur un périphérique, il faut utiliser un format qui les
représente sous la forme d'une succession de blocs de données : c'est
ce qu'on appelle un système de fichiers.

86
Gestion des fichiers
-Systèmes de fichiers 2/6-
• RAPPEL: Sous Windows, les systèmes de fichiers disponibles sont :

• FAT : Développé par Microsoft, ce système de fichiers se rencontre


moins fréquemment aujourd'hui. Il reste néanmoins utilisé sur les
disquettes 3½ formatées sous Windows et devrait être utilisé sous
Linux si une disquette doit aussi être lue sous Windows. Il est aussi
utilisé par plusieurs constructeurs comme système de fichiers pour
cartes mémoires (memory sticks), car, bien documenté, ce système de
fichiers reste le plus universellement utilisé et accessible.

87
Gestion des fichiers
-Systèmes de fichiers 3/6-
• FAT32 : Ce système de fichiers, aussi créé par Microsoft, est une
évolution de son prédécesseur. Depuis ses versions 2000 SP4 et XP,
Windows ne peut pas formater (ou bloque volontairement le
formatage) une partition en FAT32 d'une taille supérieure à 32 Go.
Cette limitation ne s'applique pas sous Linux, de même qu'avec des
versions antérieures de Windows. Une partition FAT32 d'une taille
supérieure à 32 Go déjà formatée pourra être lue par Windows, peu
importe sa version.

88
Gestion des fichiers
-Systèmes de fichiers 4/6-
• NTFS : Ce système de fichiers a aussi été développé par Microsoft,
et il reste très peu documenté. L'écriture depuis Linux sur ce système
de fichiers est stable à l'aide du pilote ntfs-3g.

• extFAt : Ce système de fichiers a aussi été développé par Microsoft.


L'écriture depuis Linux sur ce système de fichiers est stable à l'aide
du pilote exfat-fuse.

• Linux utilise également FAT, FAT32, NTFS et extFat ainsi que


plusieurs autres systèmes de fichiers, nous citons :

89
Gestion des fichiers
-Systèmes de fichiers 5/6-

• ext2fs : Extended File System est le système de fichiers natif de Linux.


Les versions 1 et 2 de ce système ne disposent pas de la journalisation.
Ext2 peut tout de même s'avérer utile sur des disquettes 3½ et sur les
autres périphériques dont l'espace de stockage est restreint, car aucun
espace ne doit être réservé à un journal.

• ext3fs : ext3 est essentiellement ext2 avec la gestion de la journalisation.


Il est possible de passer une partition formatée en ext2 vers le système de
fichiers ext3 (et vice versa) sans formatage.

• ext4fs : ext4 est considéré par ses propres concepteurs comme une
solution intermédiaire en attendant le vrai système de nouvelle
génération que sera Btrfs.

90
Gestion des fichiers
-Systèmes de fichiers 6/6-
• ReiserFS : Développé par Hans Reiser et la société Namesys,
ReiserFS est reconnu particulièrement pour bien gérer les fichiers de
moins de 4 ko. Un avantage du ReiserFS, par rapport à ext3, est qu'il
ne nécessite pas une hiérarchisation aussi poussée: il s'avère
intéressant pour le stockage de plusieurs fichiers temporaires
provenant d'Internet. Par contre, ReiserFS n'est pas recommandé
pour les ordinateurs portables, car le disque dur tourne en
permanence, ce qui consomme beaucoup d'énergie.

91
Gestion des fichiers
-Arborescence 1/7-
• Une arborescence est une organisation logique de fichiers sur un ou plusieurs
systèmes de fichiers. Il s’agit d’une structure de données hiérarchique de type
arbre. Le système qui gère les fichiers sous Linux est un peu déroutant au début,
surtout quand on est habitué à celui de Windows. En effet, sous Windows, il y a
en fait plusieurs racines.C:\est la racine du disque dur, E:\est la racine de votre
lecteur CD (par exemple).

• Sous Linux, il n'y a qu'une et une seule racine : « / ». Il n'y a pas de lettre de
lecteur car justement, Linux ne donne pas de nom aux lecteurs comme le fait
Windows. Il dit juste « La racine, c'est/ ». Au lieu de séparer chaque disque dur,
lecteur CD, lecteur de disquettes, lecteur de carte mémoire… Linux place en gros
tout au même endroit sous une seule racine.

92
Gestion des fichiers
-Arborescence 2/7-

L’arborescence typique d’un système Linux est


comme suit :

93
Gestion des fichiers
-Arborescence 3/7-
• etc : répertoire contenant les fichiers de configuration. Ce répertoire
contient des fichiers de données ainsi que des programmes réservés pour
la maintenance du système.

Ces fichiers conditionnent notamment le démarrage du système, les


entrées en session, etc… Ce répertoire contient notamment le fichier
passwd qui est un fichier texte contenant la liste des noms utilisateurs
avec les mots de passe cryptés, leur identification (uid et gid), leurs
répertoires initiaux et leurs Shells. On y retrouve également le fichier
group qui est un fichier texte contenant la liste des groupes d'utilisateurs,
leurs identificateurs et les listes d'utilisateurs par groupe.

94
Gestion des fichiers
-Arborescence 4/7-
• 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. Lorsque vous êtes connecté sous Unix, vous vous
retrouvez chez vous à savoir votre home directory qui a été assigné
par l'administrateur système ( Ex : /home/amine ). Tous les fichiers
ou répertoires que vous allez créer, le seront sous votre home
95
directory.
Gestion des fichiers
-Arborescence 5/7-

• root : répertoire personnel du super-utilisateur ;

• usr : Ce répertoire est réservé pour l'utilisation du système. Il est


essentiellement utilisé comme répertoire racine pour de nombreux sous
répertoires, notamment pour représenter les répertoires personnels des
utilisateurs (home directories). Par exemple, l’administrateur du système
réservera le plus souvent pour un utilisateur nommé « amine » un
répertoire personnel /usr/amine. De plus, des sous répertoires
additionnels sont créés et réservés pour Unix. Ces sous répertoires sont
généralement les suivants :

96
Gestion des fichiers
-Arborescence 6/7-
• /usr/bin est un répertoire composé essentiellement de fichiers contenant le code
exécutable des principales commandes sous linux. Si un de ces fichiers est
supprimé ou change de nom, la commande correspondante ne sera plus reconnue.

• /usr/include est un répertoire qui contient les fichiers référencés en tête (*.h)
d'un programme source en langage C.

• /usr/lib est un répertoire qui comprend généralement des bibliothèques ou


fichiers de données supplémentaires à l'usage de linux.

• /usr/spool est un répertoire contenant une variété de sous répertoires utiles pour
y conserver les fichiers en attente d'impression.

97
Gestion des fichiers
-Arborescence 7/7-
• var : répertoire contenant les journaux systèmes. Il contient une
hiérarchie de fichiers système qui évoluent durant le fonctionnement
de la machine. Ex : /var/spool/ est le répertoire contenant les files
d'attente pour les sous-systèmes du courrier, de l'impression,

• dev : point d’entrée vers les périphériques. Ce répertoire contient des


fichiers spéciaux qui assurent le contrôle des accès aux différents
dispositifs d'entrée/sortie. Ces fichiers sont indispensables et ne
peuvent en aucun cas être détruits sous peine de rendre impossible
l'accès aux unités correspondantes. Il est donc utilisé pour les
périphériques, terminaux, etc. …

• proc : pseudo-système contenant des informations sur les processus


en exécution

98
Gestion des fichiers
-Chemins relatifs et chemins
absolus 1/2-
• Sous Linux le disque est organisé en une structure hiérarchique, c'est-à-dire en
une arborescence de répertoires. Chaque répertoire contient des noms de fichiers
ou de sous répertoires qui contiennent eux-mêmes des noms de fichiers et de sous
répertoires, etc. …

• Pour retrouver un répertoire ou un fichier, il sera donc nécessaire d'énumérer la


séquence de répertoires à traverser pour aboutir au répertoire ou au fichier
souhaité. Cette séquence est appelée chemin d'accès ou "pathname".

• Sous Linux, un chemin d'accès se compose d'une suite de mots séparés par des /.
Il faudra cependant faire la distinction entre les chemins d'accès absolus et
relatifs.

99
Gestion des fichiers
-Chemins relatifs et chemins
absolus 2/2-
• 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/etige/cours référence le fichier
cours qui est sous le répertoire etige 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

Tout chemin qui ne commence pas par un caractère / (slash) est


interprété comme un chemin relatif au répertoire courant. On peut
ainsi accéder aux fichiers du répertoire courant en donnant
simplement leur nom.
100
Gestion des fichiers
-Types de fichiers sous Linux-
• Il existe deux grands types de fichiers sous Linux :

 les fichiers classiques : ce sont les fichiers que nous connaissons, ça


comprend les fichiers texte (.txt,.doc,.odt…), les sons
(.wav,.mp3,.ogg), mais aussi les programmes. Bref, tout ça, ce sont
des fichiers retrouvables dans Windows ;

 les fichiers spéciaux : certains autres fichiers sont spéciaux car ils
représentent quelque chose. Par exemple, le lecteur CD est un fichier
pour Linux. Là où Windows fait la distinction entre ce qui est un
fichier et ce qui ne l'est pas, Linux, lui, dit que tout est un fichier.
C'est une conception très différente, un peu déroutante comme je
vous l'ai dit, mais pas de panique, vous allez vous y faire.

101
Gestion des fichiers
-Catégorie des fichiers sous Linux
1/3-
• La commande ls –l donne un tel résultat :
Nom du
Autorisations propriétaire Taille du fichier Nom du fichier

Nbr de liens Nom du groupe Date de la dernière


modification
Type du fichier

102
Gestion des fichiers
-Types de fichiers sous Linux 2/3-
• Il existe 4 catégories de fichiers :

 Les fichiers normaux (-) : comme les fichiers textes, courrier,


sources de programmes(c, java…), scripts, configuration,
exécutables, programmes en code binaire.

 Les fichiers répertoires (directories en Anglais) (d) : ce sont des


fichiers conteneurs qui contiennent des références à d'autres fichiers.
Ils permettent d'organiser les fichiers par catégories.

 Les fichiers liens symboliques (l) : ce sont des fichiers qui ne


contiennent qu'une référence (un pointeur) à un autre fichier. Cela
permet d'utiliser un même fichier sous plusieurs noms sans avoir à le
dupliquer sur le disque.

103
Gestion des fichiers
-Types de fichiers sous Linux 3/3-

 Les fichiers spéciaux : situés sous /dev, ce sont les points d'accès
préparés par le système aux périphériques. Le montage va réaliser
une correspondance de ces fichiers spéciaux vers leur répertoire
"point de montage". Par exemple, le fichier /dev/hda permet l'accès
et le chargement du 1er disque IDE.

104
Gestion des fichiers
- I- nodes des fichier 1/2-

• Un fichier possède plusieurs informations, telles que le nom, le


contenu et d’autres informations comme les permissions et les dates
des dernières modifications. Ces informations sont sauvegardées
dans l’INODE du fichier (noeud d’index) avec d’autres données. Un
i-node est une structure de quelques dizaines d’octets décrite dans
/usr/include/sys/inode.h qui contient généralement les champs
suivants :

105
Gestion des fichiers
- I- nodes des fichier 2/2-
 le type du fichier (fichier ordinaire, spécial, répertoire,...).

 les droits d’accès.

 UID : le propriétaire du fichier.

 GID : le group à le quel il appartient le propriétaire.

 la date de dernière modification, la date du dernier accès, la date de création.

 la taille du fichier en octets.

 le nombre de liens (un lien d'un fichier est un autre nom de ce fichier),

 les éléments d'identification du propriétaire et de son groupe,

 l'adresse physique d'implantation sur disque.

Remarques :
•Tout fichier possède son unique i-node.
•L'i-node contient la totalité des informations sur le fichier, sauf le nom.
•Les i-nodes sont tous de même taille. 106
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 1/30-

• Une commande, dans le sens plus général, est un fichier exécutable.

 La commande pwd (print working directory)

Lorsqu'un utilisateur se connecte à une station Unix, il est placé dans un


répertoire personnel, en général situé dans le répertoire /home. La
commande pwd affiche le chemin d'accès au répertoire courant.

 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.


107
• cd . : ne change pas le répertoire courant.
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 2/30-

 La commande ls (list files)

• ls [-options] chemin

• Le chemin est un nom de fichier ou de répertoire. Si c’est un fichier, ls permet


d’afficher sa description. Si c’est un répertoire, elle affiche son contenu. Sans
arguments, le répertoire courant est traité. Les options de ls sont :

• -l : format long (types de fichier, droits, nombre de liens, propriétaire, groupe,


taille en octets, date de la dernière modification, nom du fichier).

• -a : liste tous les fichiers (y compris les fichiers qui commencent par le point :
fichiers cachés).

• -F : format court avec indication du type de fichier (ajoute * si exécutable, / si


répertoire).

• -i : affiche les numéros d’Inode des fichiers.

• -R : récursif, génère la liste de tout les fichiers du sous-arbre tout entier. 108
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 3/30-

Remarque
Certains caractères, appelés méta caractères, sont interprétés spécialement par
le Shell avant de lancer la commande entrée par l’utilisateur.
Par exemple, si l’on entre ls *.c, le Shell remplace l’argument *.c par la liste
des fichiers du répertoire courant dont le nom se termine par .c.
Les métacaractères permettent donc de spécifier facilement des ensembles de
fichiers, sans avoir à rentrer tous leurs noms. Voici les plus utilisés :
•* remplacé par n’importe quelle suite de caractères.
• ? remplacé par un seul caractère quelconque.
•[ ] remplacé par l’un des caractères mentionnés entre les crochets. On peut
spécifier un intervalle avec - : [a-z] spécifie donc l’ensemble des lettres
minuscules.

Exemple
ls *.[a-z].*

109
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 4/30-

 La commande cat

• La commande cat affihe les fichiers l’un après l’autre sur la sortie standard
(écran). Si aucun argument n’est spécifié, lit sur l’entrée standard (clavier)
jusqu’à rencontrer un caractère fin de fichier CTRL^D.

– Exemple
– cat fich.txt : cette commande permet d’afficher sur l’écran le contenu du fichier fich.txt
– cat fich1 fich2 : cette commande permet d’afficher sur écran le contenu des deux fichiers
fich1 et fich2 (Concaténer deux fichiers).

 La commande more

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


page à page.
110
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 5/30-

 La commande touch (créer des fichiers vides)

• Créer les fichiers f1.txt et f2.txt sous votre répertoire de travail en utilisant la
commande suivante :

• touch f1.txt f2.txt

 La commande file (type de fichier)

• Il est possible sous Unix de connaître aussi le type de fichier sur lequel on
travaille. Tous les fichiers ont un entête permettant de déterminer leur type
(répertoire, exécutable, texte ASCII, programme C, document...). La
commande file permet de visualiser le type du fichier en question.

• file nom_de_fichier t vérifier que les fichiers sont vides ?


– Exemple:
– file toto.c 111
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 6/30-

 La commande mv (move)

• Cette commande permet de déplacer un fichier mv [–i] source destination

• Si « destination » est un répertoire, la commande mv déplace le fichier de


nom source vers « destination ». Si « destination » est un nom de fichier, la
commande mv renomme le fichier de nom source.

• L’option mv -i permet de demander confirmation en cas d’écrasement de la


destination.

 La commande cp

• cp [-options] source destination

• Si « destination » est un répertoire, la commande cp copie le ou les fichier(s)


source vers « destination ». Si « destination » est un nom de fichier, la
commande cp renomme le fichier de nom source. 112
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 7/30-

• Si on effectue une copie d'un fichier sur un fichier qui existe déjà, celui-ci
sera écrasé et remplacé par le nouveau fichier, certaines options de cp
peuvent nous éviter de pareilles situations. On site dans ce qui suit quelques
options :

• cp -i : avertit l'utilisateur de l'existence d'un fichier du même nom et lui


demande s'il peut ou non remplacer son contenu.

• cp -b : permet également de s'assurer que la copie n'écrase pas un fichier


existant : le fichier écrasé est sauvegardé, seul le nom du fichier d'origine est
modifié et cp ajoute une tilde (~) à la fin du nom du fichier.

• cp -p : permet lors de la copie de préserver toutes les informations


concernant le fichier comme le propriétaire, le groupe, la date de création.

• cp -r : permet de copier de manière récursive un répertoire et ses sous-


répertoires.

113
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 8/30-

 La commande rm (remove file)

• La commande rm est utilisée pour supprimer un fichier : rm [-options]


fichier(s)

• Ses principales options sont :

• rm -i : permet de demander à l'utilisateur s'il souhaite vraiment supprimer le


ou les fichiers en question.

• 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.

• rm -f : permet de supprimer les fichiers protégés en écriture et répertoires


sans que le prompt demande une confirmation de suppression.

114
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 9/30-

 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 ../etige)


– absolu (par exemple mkdir /home/amine/etige /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
– #crée le sous-répertoire rsi21 qui se trouve dans le sous-répertoire tp qui se trouve dans le 115
répertoire #cours.
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 10/30-

 La commande rmdir (remove directory)

• Cette commande permet de supprimer un répertoire vide rmdir [-options]


répertoire(s)

• L’options -i permet de demander à l'utilisateur s'il souhaite vraiment


supprimer le ou les répertoires en question.

116
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 11/30-

 La commande ln (link)

• Cette commande permet de créer des liens sur des fichiers. Les liens sont
des fichiers spéciaux permettant d'associer plusieurs noms (liens) à un seul
et même fichier. Ce dispositif permet d'avoir plusieurs instances d'un même
fichier en plusieurs endroits de l'arborescence sans nécessiter de copie, ce
qui permet notamment d'assurer un maximum de cohérence et d'économiser
de l'espace disque. On distingue deux types de liens :

 Les liens symboliques représentant des pointeurs virtuels (raccourcis) vers


des fichiers réels. En cas de suppression du lien symbolique le fichier pointé
n'est pas supprimé. Les liens symboliques sont créés à l'aide de la commande
ln -s selon la syntaxe suivante :

– ln -s nom-du-fichier-reel nom-du-lien-symbolique

117
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 12/30-

ln –s fichier1 /titi/lien

ls –i fichier1 /titi/lien

 6341 fichier1 4230 /work/liensym

ls -l /titi/lien

4230 lrwxrwxrwx 1 …………. /titi/liensym  fichier1

• Si on supprime le fichier de nom fichier1 : rm fichier1

Puis on fait ls -i fichier1 /titi/lien on aura :


fichier1 not found
4230 /titi/lien
Si on fait cat /titi/lien on aura : 118
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 13/30-

 Les liens physiques (ou liens durs) représentent un nom alternatif


pour un fichier c’est la création de deux ou plusieurs noms vers une
inode unique au moyen de la commande ln. Ainsi, lorsqu'un fichier
possède deux liens physiques, la suppression de l'un ou l'autre de ces
liens n'entraîne pas la suppression du fichier.

• Plus exactement, tant qu'il subsiste au minimum un lien physique, le


fichier n'est pas effacé mais lorsque l'ensemble des liens physiques
d'un même fichier est supprimé, le fichier est aussi supprimé. Il faut
noter toutefois qu'il n'est possible de créer des liens physiques qu'au
sein d'un seul et même système de fichiers. Les liens physiques sont
créés à l'aide de la commande ln selon la syntaxe suivante :
ln nom-du-fichier-reel nom-du-lien-physique

119
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 14/30-

• Lors de la création d’un lien physique il n'y a ni copie du fichier, ni création


d'un nouvel i-node, mais simplement augmentation du compteur de
référence du fichier dans un répertoire.

ls -li fichier1
6341 -rw-rw-r-- 1 …………. fichier1
ln fichier1 /titi/liendur
$ls –li fichier1 /titi/ liendur
6341 -rw-rw-r-- 2 …………. fichier1
6341 -rw-rw-r-- 2 …………. /titi/ liendur

120
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 15/30-

• Les deux fichiers partent vers le même numéro d’index (numéro d’inode), ce
qui veut dire qu’il y a un seul espace disque associé aux deux noms.

• Si on déplace le fihier1 :

mv fichier1 fichier2

puis on fait :
ls -li fichier2

on aura :
6341 -rw-rw-r-- 2 …………. fichier2

Si on supprime fichier2 :
rm fichier2

puis on fait :
ls -li fichier2 /titi/liendur 121
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 16/30-

 Droits d’accès et la commande « chmod »

• Parmi les informations contenues dans l’inode de tout élément de


l’arborescence, on trouve les droits d’accès. La protection d’un élément
repose sur trois droits d’accès qui contrôlent les trois opérations de lecture
(droit r pour read), d’écriture (droit w pour write) et d’exécution (droit x
pour execute). Ces trois droits (rwx) sont appliqués à trois catégories
d’utilisateurs qui sont le propriétaire (user : u) de l’élément, son groupe
(group : g) et les autres utilisateurs (others : o).

• La notion de groupe correspond simplement à un ensemble d’utilisateurs


auxquels on peut attribuer les mêmes droits d’accès aux fichiers. Ainsi,
chaque utilisateur appartient à un groupe et son identité qui sert pour les
contrôles d’accès est définie par un numéro d’utilisateur (UID : User
IDentification) et un numéro de groupe (GID : Group IDentification).

122
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 17/30-

• Tout système a besoin de comptes spécialisés, avec des droits importants,


pour des tâches d’administration. Sous UNIX, il existe un compte root dit
compte de super-utilisateur, caractérisé par son numéro d’utilisateur (l’UID
zéro) qui lui confère les pleins pouvoirs.

• La signification des droits diffère selon le type de l’élément : répertoire ou


fichier

123
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 18/30-

• La commande chmod possède deux formes : numérique et symbolique.

• Forme symbolique

• chmod [ugoa] [+|-|=] [rwx] fichier

• La syntaxe symbolique précise au moyen d'une simple lettre la catégorie des


utilisateurs concernés par la nouvelle protection :

• u pour user, propriétaire du fichier,

• g pour group, les utilisateurs du même groupe que le propriétaire,

• o pour others pour les autres utilisateurs,

• a pour all, pour les 3 catégories des utilisateurs. Cette option est utile quand
une même protection doit être définie vis-à-vis des 3 catégories des
utilisateurs.
124
• La syntaxe symbolique utilise l’opérateur + pour ajouter et - pour enlever ou
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 19/30-

• La syntaxe symbolique exige après l'opérateur que soient énumérées


des lettres précisant les types d'accès à autoriser ou interdire. Le
débutant se contentera d'utiliser r pour la lecture, w pour l'écriture et
x pour l'exécution.

• Exemples

• chmod g+w titi permet aux utilisateurs du groupe du propriétaire du


fichier titi d'accéder en plus à l'écriture.

• chmod a=r toto autorise uniquement l'ensemble des utilisateurs à


accéder au fichier toto en lecture seule. Si l'accès en écriture était
autorisé, ce droit est supprimé.

• chmod ug-w tata interdit dorénavant au propriétaire et son groupe


de tenter une modification du fichier tata.
125
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 20/30-

• Forme numérique
• chmod mode fichier
• La commande chmod peut être utilisée avec un masque
composé de 3 chiffres en octal. Les bits de ce masque
autorisent les types d'accès correspondants avec la même
relation entre poids des bits et types d'accès.
• Le bit de poids 4 autorise les accès en lecture,
• le bit de poids 2 autorise les accès en écriture
• le bit de poids 1 autorise les accès en exécution.

126
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 21/30-

• Exemple :

• chmod 750 toto

• permet, pour le fichier toto, d'autoriser n'importe quel type d'accès de la part
du propriétaire, de limiter les accès des utilisateurs du même groupe que le
propriétaire en lecture et exécution, d'interdire tout type d'accès émanant des
autres utilisateurs.

• Exemples

• chmod 644 titi permet d’allouer les droits d’accès suivants : -rw-r—r—

• chmod 622 tata permet d’allouer les droits d’accès suivants : -rw—w-w-
127
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 22/30-

 La commande umask

• La commande umask permet de définir un masque de protection des fichiers lors


de leur création. Cette commande se trouve dans le fichier .bashrc et elle peut
être exécutée à tout moment. Le masque défini doit être codé en base 8.

• Quand vous créer un fichier, par exemple avec la commande touch, ce fichier par
défaut possède certains droits. Ce sont 666 pour un fichier (-rw-rw-rw-) et 777
pour un répertoire (-rwxrwxrwx), ce sont les droits maximum. Vous pouvez faire
en sorte de changer ces paramètres par défaut. La commande umask est là pour
ça.

• Pour un fichier :

• Si vous tapez umask 022, vous partez des droits maximum 666 et vous
retranchez 022, on obtient donc 644, par défaut les fichiers auront comme
droit644 (-rw-r-r--).
128
• Si vous tapez umask 244, vous partez des droits maximum 666 et vous
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 23/30-

• umask n'est utilisatable que si on est propriétaire du fichier.

129
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 24/30-

 La commande chown

• Change le propriétaire des fichiers spécifiés en argument. Seuls le


propriétaire et l’administrateur peuvent effectuer cette opération.

• chown login fichiers

• Exemples

ls -l TP.doc
-rw-r--r-- 1 amine etige 432 Feb 22 12:42 TP.doc
chown mohamed TP.doc
ls –l TP.doc
-rw-r--r-- 1 mohamed etige 432 Feb 22 12:42 TP.doc 130
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 25/30-

 La commande chgrp

• Cette commande permet d’attribuer les fichiers donnés en argument à un


nouveau groupe d’utilisateurs.

• chgrp groupe fichiers

• Exemples :

ls –l tp.doc
-rw-r--r-- 1 amine enit 432 Feb 22 12:42 tp.doc
chgrp etige tp.doc
ls –l tp.doc
-rw-r--r-- 1 amine etige 432 Feb 22 12:42 tp.doc 131
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 26/30-

 La commande find

• La commande find parcourt les répertoires et les sous-répertoires de manière


récursive à la recherche de fichiers. find doit disposer de 3 indications :

• - à partir de quel répertoire la recherche doit-elle commencer ? (obligatoire)

• - quels sont les critères de recherche à mettre en oeuvre ? (non obligatoire)

• - que doit-il se passer si un fichier répond à ce(s) critère(s) ? (obligatoire)

• Syntaxe

• find répertoire(s) critère_de_sélection option(s)

132
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 27/30-

• Si on n’indique pas un critère de recherche, l’ensemble des fichiers placés


sous le répertoire de départ sera considéré comme répondant à la recherche
et sera donc sélectionné. Le critère_de_sélection permet d’extraire une
partie de ces fichiers à partir de l’ensemble.

• La commande find a de nombreuses options de sélection qui permettent de


rechercher les fichiers qui vérifient certains critères. En voici quelques
unes :

• Tableau: Critères de sélection de la commande find

133
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 28/30-

134
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 29/30-

 La commande grep

• La commande grep permet de rechercher une chaîne de caractères dans un


fichier. Les options sont les suivantes :

• -v affiche les lignes ne contenant pas la chaîne

• -c compte le nombre de lignes contenant la chaîne

• -n chaque ligne contenant la chaîne est numérotée

• -x ligne correspondant exactement à la chaîne

• -l affiche le nom des fichiers qui contiennent la chaîne


135
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 29/30-

• Exemple avec le fichier carnet adresse :

• olivier:29:0298333242:Brest

• marcel:13:0466342233:Gardagnes

• myriam:30:0434214452:Nimes

• yvonne:92:013344433:Palaiseau

• On peut utiliser les expressions régulières avec grep. Si on tape la


commande :grep ^[a-d] carnet-adresse On va obtenir tous les lignes
commençant par les caractères compris entre a et d. Dans notre exemple, on
n'en a pas, d'où l'absence de sortie.

• grep Brest carnet-adresse Permet d'obtenir les lignes contenant la chaîne


de caractère Brest, soit :olivier:29:0298333242:Brest

136
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 30/30-

• Remarque

• On a vu auparavant ce qu'étaient les méta caractères. Les expressions régulières sont aussi des suites de caractères
permettant de faire des sélections. Elles fonctionnent avec certaines commandes comme grep. Les différentes
expressions régulières sont :

• - ^ début de ligne

• - . un caractère quelconque

• - $ fin de ligne

• - x* zéro ou plus d'occurrences du caractère x

• - x+ une ou plus occurrences du caractère x

• - x? une occurrence unique du caractère x

• - [...] plage de caractères permis

• - [^...] plage de caractères interdits


137
Gestion des fichiers
- PATH: variable d’environnement-

• Quand nous voulons exécuter une commande, en général, nous ne voulons pas donner
le chemin entier (correspondant à son emplacement).

• Exemple: Nous faisons seulement ls et non /bin/ls

• En sachant que la commande ls est dans le répertoire bin.

• Pour pouvoir faire cela la variable d’environnement PATH doit être établie.

• La variable d’environnement PATH garde les répertoires où les exécutables doivent


être cherchés (pour simplifier la tâche de l’utilisateur)

• Pour voir ce que vous avez dans PATH:


– echo $PATH

• Le SE cherche un exécutable dans les répertoires de PATH et s’arrête dès qu’il le


trouve (il ne cherche pas dans les répertoires suivants).

138
Merci de votre
attention

Vous aimerez peut-être aussi