Vous êtes sur la page 1sur 134

Ecole Nationale des Sciences Appliquées de

Berrechid – ENSAB
GI-S6

Système d’exploitation et UNIX

Prof : A.BENGAG
asmaebengag@gmail.com

Année universitaire : 2023/2024


Plan

◦ Chapitre 1 : Introduction – Généralité sur le système d’exploitation


◦ Chapitre 2 : Système de fichiers dans Unix
◦ Chapitre 3 : Gestion des utilisateurs
◦ Chapitre 4 : Processus
◦ Chapitre 5 : Ordonnancement
◦ Chapitre 6 : Gestion de la mémoire
◦ Chapitre 7 : Les scripts Shell

Prof : A.BENGAG 2
Prof : A.BENGAG 3
Système informatique
• Système informatique = le matériel + le logiciel

4
Organisation d’un système informatique

5
Système d’exploitation (SE)

• Système d’exploitation (SE), en anglais Operating System (OS), permet


d’exploiter des ressources matériels.
• Autrement dit, c’est un ensemble de logiciels qui gère le matériel d’un
ordinateur.

• Un ressource matériel :
– Regroupement des composants électronique - Portables
- Ordinateurs de borad (avion, train, etc..)
– Périphériques - Souris, impriment, clé USB, etc…

6
Système d’exploitation (SE)

• Caractéristiques des composants:


– Stocker une information.
– Exécuter un traitement , calculs, etc...
– Moyens de communiquer entre eux et d’interagir avec les humains

7
Historique des S.E
Porte ouverte(1945-1955):
- Les machines de la première génération étaient dépourvues de tout logiciel.
- Elles étaient énormes, couteuses, très peu fiables et beaucoup moins rapides car
le temps de cycle se mesurait en secondes.
- Les programmes étaient écrits directement en langage.
- Au début de 1950, la procédure s’est améliorée grâce à l’introduction de cartes
perforées.

Prof : A.BENGAG 8
Historique des S.E
- Chaque utilisateur, assurant le rôle d’opérateur:
- Placer les cartes du programme dans le lecteur de cartes.
- Initialiser un programme de lecteur des cartes.
- Lancer la compilation du programme utilisateur.
- Placer les cartes données s’il y en a, dans le lecteur de cartes.
- Initialiser l’exécution du programme compilé.
- Détecter les erreurs et imprimer les résultats.

Note: Si le programme s’exécute avec des erreurs, l’utilisateur doit refaire toutes
ces étapes.

Prof : A.BENGAG 9
Historique des S.E

Prof : A.BENGAG 10
Exemples d’un SE

• Windows, MacOS (1984), Linux, iOS, Android.

Tablettes, portables

D’autres SE moins connus :


• QNX (1982) : SE utilisé en robotiques ou dans les systèmes embarqués, tels
que les voitures et l’aspirateur
• VxWorks (1985) : SE charge le déploiement d’applications par le biais de
conteneurs
• Ouragan : SE utilisé dans les lignes des métros parisien

Prof : A.BENGAG 11
Exemples d’un SE

• Unix : Créé en 1974 rapidement multi-utilisateur, écrit en langage C.


• Linux (1991) : Clone gratuit d’UNIX pour les PC, open source
• MS-DOS (1981) (Microsoft disque operating system) : SE des premiers PC,
mono-utilisateur, mono-tâche, interface ligne de commande

Prof : A.BENGAG 12
Différents types de SE

Prof : A.BENGAG 13
Rôles du SE
Le système d’exploitation joue deux rôles :
1. Machine virtuelle (abstraite / étendue)
– Le SE présente au programmeur une interface d’accès aux ressources de l’ordinateur (sous
forme d’appels système).
– Il masque des éléments fastidieux liés au matériel, comme les interruptions, les horloges, la
gestion de la mémoire, etc.
– Cette interface est fondée sur des objets abstraits dont les plus importants sont les fichiers et les
processus. Par exemple, le programmeur voit un disque comme une collection de fichiers qui
peuvent être lus, écrits et fermés.

Prof : A.BENGAG 14
Rôles du SE
Le système d’exploitation joue deux rôles :

2. Gestionnaire de ressources
– Le SE gère l’utilisation des ressources par différents utilisateurs et les éventuels conflits. Il
contrôle l’accès et l’allocation des ressources (PC, MC et périphériques) aux différents
programmes avec les objectifs :
• Efficacité : utilisation maximale des ressources,
• Equité : pas de programme en attente,
• Protection : accès interdits.

Prof : A.BENGAG 15
Architecture – Principe de base d’un SE

Application

SE
Noyau ; Services
Utilisateurs

Matériel

Prof : A.BENGAG 16
• Le noyau du SE :
– Gestion des processus (exécution des programmes) : allocation du processeur aux
différents programmes.
– Gestion de la mémoire (transfert de données nécessaire pour le programme) : 3 fonctions
segmentation et pagination. primordiales
– Gestion des fichiers (maintenir l’ordre de manière général arborescente de
l’ensemble des données utilisés par les applications)

– Gestion des Entrées / Sorties : accès aux périphériques, via les pilotes.
– Gestion des communication réseaux : échange de données entre machines
distantes.
– Interfaces graphiques, interface d’interaction avec les humains

Prof : A.BENGAG 17
• Un système d’exploitation joue le rôle de l’intermédiaire entre les
applications et le matériel de l’ordinateur tel que le processeur, la
RAM, disque dur,...

Prof : A.BENGAG 18
• Un système d’exploitation joue le rôle de l’intermédiaire entre les
applications et le matériel de l’ordinateur tel que le processeur, la
RAM, disque dur,...

Système d’exploitation

Prof : A.BENGAG 19
• Un système d’exploitation joue le rôle de l’intermédiaire entre les
applications et le matériel de l’ordinateur tel que le processeur, la
RAM, disque dur,...

Utilisateur

Application

Système d’exploitation

Matériels d’ordinateur

Prof : A.BENGAG 20
Fonctions du SE

A. Gérer des ressources matérielles de l'ordinateur et fournir aux applications une


interface simplifié avec toutes ces ressources :
• Processeur(s) ;
• Mémoire (RAM) ;
• Systèmes d'acquisition de données et de contrôle en temps réel,
• Reseau.

B. Superviser l‘exécution de l'ensemble de processus dans un environnement


• multi-tâche et multi-utilisateur.

Prof : A.BENGAG 21
Catégories d’un SE
Il est possible de classer les SE en deux catégories suivantes :
Les SE Mono utilisateur
SE mono-utilisateur mono-tâche
SE mono-utilisateur multi-tâche

Les SE Multi utilisateur

Prof : A.BENGAG 22
Catégories d’un SE
Il est possible de classer les SE en deux catégories suivantes :
Les SE Mono utilisateur
SE mono-utilisateur mono-tâche
- Un seul utilisateur est autorisé à effectuer une seul tâche à la fois.

Un seul utilisateur

Prof : A.BENGAG 23
Catégories d’un SE
Il est possible de classer les SE en deux catégories suivantes :
Les SE Mono utilisateur
SE mono-utilisateur mono-tâche
- Un seul utilisateur est autorisé à effectuer une seul tâche à la fois.
- Ce SE est conçu pour les téléphones sans fil et les appareils de messagerie
bidirectionnelle, exemple: MS-DOS

Un seul utilisateur

Prof : A.BENGAG 24
Catégories d’un SE
Il est possible de classer les SE en deux catégories suivantes :
Les SE Mono utilisateur
SE mono-utilisateur mono-utilisateur multi-tâche
- est développé spécialement pour un user, mais cet user unique est
capable d’effectuer plusieurs tâches exécutées en même temps.
Exemple: Windows 98

Un seul utilisateur

Prof : A.BENGAG 25
Catégories d’un SE
Il est possible de classer les SE en deux catégories suivantes :
Les SE Multi utilisateur
Ce type de SE supporte plusieurs sessions en même temps.

Prof : A.BENGAG 26
Définitions de base
Noyau : partie résidente du SE ; chargé en MEMOIRE CENTRALE (RAM) au démarrage de l’ordinateur
(anglais-kernel).
Interpréteur de commandes (anglais – shell, CLI) : programme interactif qui lit, interprète et lance l'exécutions
de commandes système (internes et externes) et de programmes de l'utilisateur (applications).
Schéma de l’architecture simplifiée d’un système d’exploitation
( CLI : Command Line Interface )

API : Application Programming


Interface )

Prof : A.BENGAG 27
Définitions de base
- Les applications s'exécutent en mode utilisateur, dans lequel les programmes ont un accès
restreint aux fonctionnalités du processeur – en se voyant limiter la liste d'instructions qu'il
peuvent exécuter.
- Les programmes utilisateurs peuvent accéder à ces différentes fonctionnalités à l’aide des
appels système (fonctions système)
Schéma de l’architecture simplifiée d’un système d’exploitation

( CLI : Command Line Interface )

API : Application Programming


Interface )

Prof : A.BENGAG 28
Définitions de base
- Fichier : ensemble de blocks/enregistrement de données stockés sur le disque.
- Processus : programme en cours d’exécution.
- Mémoire virtuelle : espace d’adressage artificiel dont la taille de celle de la mémoire
physique.
- Dispositifs d’E/S : toutes sortes de périphériques.
Schéma de l’architecture simplifiée d’un système d’exploitation

( CLI : Command Line Interface )

API : Application Programming


Interface )

Prof : A.BENGAG 29
Définitions de base

Prof : A.BENGAG 30
Système Unix

- Sur un système Unix, on trouve deux types de personnes :


- User utilisateur : celles qui vont utiliser le système. ont le droit d'exécuter certaines
commandes propres à leur environnement et leur travail, quelques commandes liées au
système leur sont interdites.
- Root administrateur : Celles qui vont administrer le système. Seuls les administrateurs
peuvent installer et configurer. Ils sont chargés de la bonne marche de la machine.

Prof : A.BENGAG 31
Prof : A.BENGAG 32
Le système de fichiers

- Fichier (an. file) – Ensemble de données (suite d'octets) identifiées par un nom,
physiquement stockées sur un support de mémoire de masse permanent (disque dur, CD,
DVD, ...)

- Le système de fichiers est géré par le noyau.


- Les fichiers sont organisés en répertoires (répertoire – ang. directory) et sous-répertoires
(subdirectory), formant une structure arborescente ou les répertoires sont les branches et
les fichiers – les feuilles.

Prof : A.BENGAG 33
Arborescence de fichiers

Une arborescence constituée de :


- Répertoires (ou dossiers)
- Fichiers
- …?

Prof : A.BENGAG 34
Système de fichiers dans Unix
• Le répertoire qui est à l'origine de cette arborescence est appelé répertoire racine (root
directory). Il est désigné par un nom standardisé : /
Exemple :

Prof : A.BENGAG 35
Système de fichiers dans Unix
Commande « pwd » (print working directory).
• Afficher le nom du répertoire courant

Commande « cd » (change directory).


• La commande interne cd permet de changer de
répertoire courant

Exemple

Prof : A.BENGAG 37
Système de fichiers dans Unix
Notes:

Répertoire courant, ou répertoire de travail (working directory) – c'est le répertoire par


défaut, dans lequel le système recherche un fichier si aucun chemin d'accès n'est spécifié.

Après l'ouverture d'une session c'est en général le répertoire personnel (home directory).
- Le répertoire peut être changé par la commande cd : change directory.
- Pour afficher le répertoire de travail actuel – commande pwd : print working directory.

Prof : A.BENGAG 38
Système de fichiers dans Unix

Prof : A.BENGAG 39
Système de fichiers dans Unix

Prof : A.BENGAG 40
Système de fichiers dans Unix

Exercice

Prof : A.BENGAG 41
Système de fichiers dans Unix
Les inodes
• sont des structures de données contenant des informations concernant les fichiers stockés dans
le système de fichiers.

• Répertoire (d=directory)
• Fichier régulier (f= regular file)
• Lien symbolique (l=symbolic link)
– B=bloc ; s=socket

Prof : A.BENGAG 42
Système de fichiers dans Unix
Les inodes
• Disque à l’arborescence

Prof : A.BENGAG 43
Système de fichiers dans Unix
Les inodes (suite)
A chaque fichier correspond un numéro (entier) d'inode (i-number) unique au volume sur lequel il est
situé. Ce i-number est un indice dans la tables d'inodes du volume.

Prof : A.BENGAG 44
Système de fichiers dans Unix
Permissions UNIX
Commande « ls » (list).
• permet de lister le contenu d'un répertoire. Syntaxe: $ ls [options] [file|dir]

option la description
lister tous les fichiers, y compris les fichiers cachés commençant
ls -a
par ‘.’

ls -d lister les répertoires - avec '* /'

ls -i liste le numéro d'index d'inœud du fichier

ls -ls liste au format long avec taille de fichier

ls -r liste dans l'ordre inverse

ls -R liste récursivement arborescence de répertoires

Prof : A.BENGAG 45
Système de fichiers dans Unix
Permissions UNIX
Exemple

.test

Prof : A.BENGAG 46
Système de fichiers dans Unix
Permissions UNIX
Exemple

.test

Prof : A.BENGAG 47
Système de fichiers dans Unix
Permissions UNIX

Exemple 1

Prof : A.BENGAG 48
Système de fichiers dans Unix
Permissions UNIX

Exemple 2

Prof : A.BENGAG 49
Système de fichiers dans Unix
Permissions UNIX

Exemple 2

Prof : A.BENGAG 50
Système de fichiers dans Unix
Permissions UNIX
Commande « chmod »
• Modifier les autorisations d’accès à un fichier.
• Le mode s’écrit en chaine (ugoat(+ - =)rwxtX) ou en numérique (421) ou en octet (777)
• -R modifie récursivement les droits sur tout une arborescence.

Exemples

test

Prof : A.BENGAG 51
Système de fichiers dans Unix
Permissions UNIX
Commande « chmod »
• Modifier les autorisations d’accès à un fichier.
• Le mode s’écrit en chaine (ugoat(+ - =)rwxtX) ou en numérique (421) ou en octet (777)
• -R modifie récursivement les droits sur tout une arborescence.

Méthode numérique
Chaque paramètre d’autorisation peut être représenté par une valeur numérique
r=4
w=2
w=1
-=0
Lorsque ces valeurs sont additionnées, le total est utilisé pour définir des autorisations précises.

Prof : A.BENGAG 52
Système de fichiers dans Unix
Permissions UNIX

Méthode numérique
Chaque paramètre d’autorisation peut être représenté par une valeur numérique
r=4
w=2
x=1
-=0
Exemple

7 5 5
rwx => 4+2+1 r-x => 4+0+1 r-x => 4+0+1

Prof : A.BENGAG 53
Système de fichiers dans Unix
Les liens
• A) Lien dur (lien physique, hard link) : deux ou plusieurs entrées de répertoires ont le
même i-number, c'est a dire pointent le même inode (partagent même contenu), donc le
même fichier physique.
• Cela permet de donner plusieurs noms au même fichier.

Prof : A.BENGAG 54
Système de fichiers dans Unix
Les liens
• A) Lien dur (lien physique, hard link)
– Pour créer un lien physique : commande ln (link)
– Syntaxe => ln fichier1 fichier2 (créer un lien physique de nom fichier2 pour fichier1)

Prof : A.BENGAG 55
Système de fichiers dans Unix
Les liens
• B) Lien symbolique (symbolic link, symlink) : C'est un fichier (Nom B) contenant le nom de chemin du
fichier (ou répertoire) Nom A.

• Autrement dit – c'est un raccourcis pointant vers un fichier ou un répertoire.

• Cette fois, on pointe vers le nom de fichier et non vers l’inode directement.

Prof : A.BENGAG 56
Système de fichiers dans Unix
Les liens
• B) Lien symbolique
– Pour créer un lien physique : commande ln (link) avec l’option -s
– Syntaxe => ln –s fichier1 fichier2 (Fichier2 est un lien symbolique de fichier1)

Prof : A.BENGAG 57
Système de fichiers dans Unix

Commande « rm »
Effacer des fichiers , attention – avec :
• L'option -r ou -R permet d'effacer toute une arborescence;
• L'option -i : demander à l’utilisateur de confirmer l’effacement de chaque fichier; (voir man pour les
détails);

Prof : A.BENGAG 58
Système de fichiers dans Unix

Commande « mv »
« mv » permet de changer le nom d'un fichier ou de le déplacer vers un autre répertoire.
Exemple : mv fic1 fic2 (fic1 n'existe plus)

Prof : A.BENGAG 59
Système de fichiers dans Unix

Commandes de base

Prof : A.BENGAG 60
Système de fichiers dans Unix

Commandes de base

Prof : A.BENGAG 61
Système de fichiers dans Unix

Commandes de base

Prof : A.BENGAG 62
Système de fichiers dans Unix

Commande « grep »
Elle permet de chercher des textes dans un fichiers

Prof : A.BENGAG 63
Système de fichiers dans Unix
1er utilisation
Commande « grep »
Elle permet de chercher des textes dans un fichiers.

Syntaxe:
grep texte nom_du_fichier = Recherche simple d’un texte dans un fichier
grep –i texte nom_du_fichier = Recherche sans distinction entre la majuscule et le minuscule
grep –v texte nom_du_fichier = Affiche les lignes qui ne contiennent pas le texte
grep –r texte nom_du_dossier = Recherche le texte dans tous les fichiers qui se trouvent dans le
dossier et les sous-dossier de nom_du_dossier

Note: Si le texte contient des espaces, il faut le mettre entre les guillaumes « »

Prof : A.BENGAG 64
Système de fichiers dans Unix
1er utilisation
Commande « grep »
Elle permet de chercher des textes dans un fichiers.

Exercice : Supposons qu’on a un fichier texte nommé « materiels.txt »; Souris


1) Rechercher le mot ‘sq’ Clavier
2) Donner le résultat de la commande précédente USB
3) Rechercher le mot ‘is’ DISQUE dur
4) Donner le résultat de la commande précédente Ecran
Casque
5) Afficher le mot qui ne contient pas ‘is’ Micro
6) Donner le résultat de la commande précédente
7) Rechercher le texte ‘Disque dur’

Prof : A.BENGAG 65
Système de fichiers dans Unix
1er utilisation
Commande « grep »
Elle permet de chercher des textes dans un fichiers.

Correction: Supposons qu’on a un fichier texte nommé ‘materiels.txt’; Souris


1) A) grep sq materiels ; B) grep –i sq materiels.txt Clavier
2) Résultat USB
1) Casque DISQUE dur
2) Casque DISQUE dur Ecran
3) grep is materiels.txt Casque
Micro
4) Souris
5) grep -v is materiels.txt
6) grep -i « disque dur » materiels.txt

Prof : A.BENGAG 66
Système de fichiers dans Unix
2ème utilisation : Grep avec des expressions régulières
Commande « grep »
Une expressions régulière appelée expression rationnelle (en anglais : regular expressions).
C’est une chaine de caractères ou motif qui représente un ensemble de chaînes de caractères.

Exemple: Bonjour |Salut (rechercher dans tous les lignes les deux mots ‘Bonjour’ ou ‘Salut’)
-Utilisées en shell et autres langages (PHP, Java,..) pour le traitement (recherche / remplacement)
de chaines de caractères.
- Vérifier si l’utilisateur a bien spécifié une adresse de messagerie de type gi_6@info.com
- Supprimer ou remplacer des caractères dans une phrase

Prof : A.BENGAG 67
Système de fichiers dans Unix
2ème utilisation : Grep avec des expressions régulières

Prof : A.BENGAG 68
Système de fichiers dans Unix
2ème utilisation : Grep avec des expressions régulières

Exemple : Utilisation d’un pipe


1) Combiner deux commandes, avec le pipe |
• ls | grep ‘[iI]nfo’ (affiche les fichier qui ont comme nom info ou Info)
2) Utiliser dans les expressions réguliers
• grep –E is\|ed fichier.txt (afficher les lignes avec ‘is’ ou ‘ed’)

Prof : A.BENGAG 69
Système de fichiers dans Unix
2ème utilisation : Grep avec des expressions régulières
Commande « grep »
expressions régulières (rationelles), en anglais : regular expressions

Prof : A.BENGAG 70
Système de fichiers dans Unix
2ème utilisation : Grep avec des expressions régulières

Commande « grep »
expressions régulières (rationelles), en anglais : regular expressions

Exercice : Supposons qu’on a un fichier texte nommé « materiels.txt »;


1) Afficher les lignes qui se terminent avec 1 suite à n’importe quel caractère.
2) Afficher les lignes qui ont le caractère ‘s’ comme 3ème caractère.
Souris 21
Clavier 11
USB 1b
DISQUE dur 1_
Ecran 91
Casque
Micro

Prof : A.BENGAG 71
Système de fichiers dans Unix
2ème utilisation : Grep avec des expressions régulières

Commande « grep »
expressions régulières (rationelles), en anglais : regular expressions

Correction : Supposons qu’on a un fichier nommé materiels;


1) Afficher les lignes qui se terminent avec 1 suite à n’importe quel caractère.
grep –E 1.$ materiels.txt
2) Afficher les lignes qui ont le caractère ‘s’ comme 3ème caractère. Souris 21
Clavier 11
grep –E ^..s materiels.txt USB 1b
DISQUE dur 1_
Ecran 91
Casque
Micro

Prof : A.BENGAG 72
Système de fichiers dans Unix
2ème utilisation : Grep avec des expressions régulières

- Rechercher une adresse IP :


- Exemple d’une adresse IP : 1.0.0.127
([0-9]{1,3}.\){3}[0-9]{1,3}

Prof : A.BENGAG 73
Système de fichiers dans Unix
Commande « grep » (suite)

Prof : A.BENGAG 74
Système de fichiers dans Unix
Commande « grep » (suite)

Prof : A.BENGAG 75
Système de fichiers dans Unix
Commande « grep » (suite)

Prof : A.BENGAG 76
Système de fichiers dans Unix
Commande « grep » (suite)

"mr[X-Z]?" mrX, mrY, mrZ, mr


toutes les chaines de trois lettres qui se terminent par "ac"
"[^f]ac"
et ne commencent pas par " f " ;

"..." toutes les chaines de trois lettres

"[+-][[:digit:]]{1,6}" nombres entiers avec signe, maximum 6 chiffres

\<[[:alpha:]]{3}\> tous les mots de 3 lettres

Prof : A.BENGAG 78
Système de fichiers dans Unix
Commande « find »
La commande find permet de retrouver des fichiers à partir de certains critères.

Syntaxe:
find <répertoire de recherche> <critères de recherche>

Prof : A.BENGAG 79
Système de fichiers dans Unix

Prof : A.BENGAG 80
Système de fichiers dans Unix
Commande « find »
La commande find permet de retrouver des fichiers à partir de certains critères.

Note:

1. Dans les tests le paramètre numérique n a la signification suivante :


• +n : plus grand que n
• -n : plus petit que n
• n : exactement n.

2. Le caractère ! avant le test inverse la condition.


Exemple: ! -type d veut dire "tous les fichiers qui ne sont pas des répertoires

Prof : A.BENGAG 81
Système de fichiers dans Unix
Commande « find »
La commande find permet de retrouver des fichiers à partir de certains critères.

Exemples:

find /usr -name toto –print = chercher un fichier dont le nom contient la chaîne de
caractères toto à partir du répertoire /usr,

= affiche tous les répertoires (option -type d) contenu dans


find . -type d -name "*s" -print l'arborescence du répertoire courant dont le nom se
termine par "s" ;

Prof : A.BENGAG 82
Système de fichiers dans Unix
Commande « find »
La commande find permet de retrouver des fichiers à partir de certains critères.
Syntaxe:
find <répertoire de recherche> <critères de recherche>

Prof : A.BENGAG 83
Prof : A.BENGAG 84
Prof : A.BENGAG 85
Système Unix
- Sur un système Unix, on trouve trois types de comptes:
- Root administrateur (super utilisateur)
- Comptes systèmes (bin, daemon, syns, apache…)
- Compte ordinaires (User utilisateur)

Prof : A.BENGAG 86
Système Unix
- Sur un système Unix, on trouve trois types de comptes:

- Root administrateur (super utilisateur): Celles qui vont administrer le système. Seuls
les administrateurs peuvent installer et configurer. Ils sont chargés de la bonne marche
de la machine. Son UID (user identifier) égal à 0 (zéro).

Prof : A.BENGAG 87
Système Unix
- Sur un système Unix, on trouve trois types de comptes:
- Comptes systèmes (bin, daemon, syns, apache…): servent à faciliter la gestion des
droits d’accès de certains application et démons. Ainsi en lançant le serveur web sous
l’identité du compte « apache », on pourra limiter ses droits d’accès à certains fichiers.
D’une façon générale, on ne lance jamais un service exposé aux attaques réseau
comme un serveur web sous l’identité de root. Les UID compris entre 1 et 999 sont
généralement utilisés pour ces comptes (selon le SE, avoir dans le TP).

Prof : A.BENGAG 88
Système Unix
- Sur un système Unix, on trouve trois types de comptes:
- Compte ordinaires (User utilisateur) : celles qui vont utiliser le système. ont le droit
d'exécuter certaines commandes propres à leur environnement et leur travail, quelques
commandes liées au système sont interdites. L’UID d’un utilisateur sera un nombre
supérieur ou égal à 1000 (selon le SE, avoir dans le TP).

Prof : A.BENGAG 89
Gestion des utilisateurs

Prof : A.BENGAG 90
Gestion des utilisateurs
Fichier /ect/passwd

Prof : A.BENGAG 91
Système de fichiers dans Unix (rappel)
• Le répertoire qui est à l'origine de cette arborescence est appelé répertoire racine (root
directory). Il est désigné par un nom standardisé : /
Exemple :

Prof : A.BENGAG 92
Gestion des utilisateurs
Fichier /etc/passwd

Prof : A.BENGAG 93
Gestion des utilisateurs
Fichier /etc/passwd

Prof : A.BENGAG 94
Gestion des utilisateurs
Commandes de gestion des utilisateurs

useradd: pour ajouter un compte utilisateur


usermod: pour modifier un compte utilisateur
userdel: pour supprimer un compte utilisateur

Prof : A.BENGAG 95
Gestion des utilisateurs
Commandes de gestion des utilisateurs

sudo: devenir root un instant


su: changer l’utilisateur (Exemple : #su user1)

Prof : A.BENGAG 96
Gestion des utilisateurs
Commandes de gestion des utilisateurs
Commande « useradd »
Les options:

Exemple: #useradd –u 3000 ahmed (ajouter l’utilisateur ahmed avec l’UID 3000)
- Fichier /etc/login.defs (consulter le nombre des utilisateur)

Prof : A.BENGAG 97
Gestion des utilisateurs
Commandes de gestion des utilisateurs

Commande « useradd »
Les options:

Note: Consulter les groupes dans le fichier « /etc/groupe »

- Pour créer un compte en précisant le groupe, taper la commande suivante :


#useradd –u 3000 –g 2000 mohamed (3000 l’id de nouveau compte et 2000 l’id de groupe)

Prof : A.BENGAG 98
Gestion des utilisateurs
Commandes de gestion des utilisateurs

Commande « useradd »
Les options:

Exemple: Cette option permet d’ajouter un commentaire (Par exemple, de savoir le rôle de
compte).
#useradd –c ’’ce compte de test’’ test1

Prof : A.BENGAG 99
Gestion des utilisateurs
Commandes de gestion des utilisateurs

Commande « useradd »
Les options:

Prof : A.BENGAG100
Gestion des utilisateurs
Commandes de gestion des utilisateurs

Commande « passwd »
Permet à un utilisateur de créer ou changer son mot de passe ou à d’autre
personne.
Syntaxe : #passwd nom_user

Prof : A.BENGAG101
Prof : A.BENGAG102
Prof : A.BENGAG103
Introduction

Dans un système multi-tâche, la ressource la plus importante d’une machine est le


processus. Cette ressource est alloué à un processus sélectionné parmi un ensemble des
processus éligibles.

Par conséquent, il convient a bien gérer ce dernier afin le rendre plus productifs. En effet, un
système d’exploitation dispose d’un module qui s’occupe de l’allocation du processus en
l’occurrence le Dispatcheur.

Ce module est exécuté chaque fois qu’un processus se termine ou se bloque dans le but de
réquisitionner le processeur pour un autre processus.

Prof : A.BENGAG104
Programme

Exemples :

Prof : A.BENGAG105
Notion de processus

Un processus est un entité dynamique qui matérialise un programme en cours d’exécution


avec propres ressources physiques (mémoire, processus, entrée/sortie, …) et logiques
(données, variables, …). Contrairement à un programme (texte exécutable) qui a une
existante statique.

Le système d’exploitation manipule deux types de processus :


- Processus système: processus lancé par le système (init processus père des tous les
processus du système).
- Processus utilisateur: processus lancée par l’utilisateur (commande utilisateur).

Prof : A.BENGAG106
Processus
Un programme qui s’exécute et possède un compteur (pour indiquer à quelle instruction il
est rendu) des registres, des variables, une pile d’exécution, un espace d’adressage, un
pointeur vers les fichiers ouverts et connexions réseaux.
Son exécution est, en général, une alternance de calculs effectués par le processeur et de
requêtes d’Entrée/Sortie effectuées par les périphériques.

Il s’agit d’un programme en cours d’exécution + un contexte


Appelé parfois tâche

Prof : A.BENGAG107
Processus
Un processus est caractérisé par :
- PID: identificateur du processus (numéro unique),
- PPID : identificateur du processus père,
- UID : identificateur de l’utilisateur qui a lancé le processus,
- GID : identificateur du groupe de l’utilisateur qui a lancé le processus,

- Un espace d’adressage (code, données, piles d’exécution),


- Un état principal (prêt, en cours d’exécution (élu), bloqué…),
- Les valeurs des registres lors de la dernière suspension,
- Autres informations indiquant, notamment, ses processus fils, ses variables
d’environnement, les statistiques et les limites d’utilisation des ressources…

Prof : A.BENGAG108
Processus - PID
Un numéro de processus unique PID (Process ID)

Chaque processus Unix est numéroté afin de pouvoir être différencié des autres.
Le premier lancé par le système est 1 et il s’agit d’un processus appelé généralement init.
Le PID est utilisé quand on travaille avec un processus, exemple:
Lancer 10 fois le même programme (même nom) produit 10 PID différents.

Prof : A.BENGAG109
Processus - PPID
Un numéro de processus parent PPID (Parent Process ID)

Chaque processus peut être lui-même lancer d’autre processus, des processus enfants (child
processus).
Chaque enfant reçoit parmi les informations le PID du processus père qui l’a lancé.
Tous les processus ont un PPID sauf le processus 0 qui est pseudo-processus représentant le
démarrage du système (crée le 1 init).

Prof : A.BENGAG110
Gestion des processus
Diagramme d’états d’un processus (ordonnancement avec préemption, système mono
processeur)

*La préemption est la possibilité qu'a le système de


reprendre une ressource (p.ex. le processeur) à un processus
sans que celui-ci ait libéré cette ressource.

Prof : A.BENGAG111
Processus – Table des processus

Le SE maintient dans une table appelée « table des processus » les informations sur

tous les processus crées (une entrée par processus : Bloc de Contrôle de Processus

PCB), Cette table permet au SE de localiser et gérer tous les processus.

Prof : A.BENGAG112
Gestion des processus
Hiérarchie (UNIX)

Prof : A.BENGAG113
Gestion des processus
Hiérarchie (UNIX)
- Au démarrage, le programme d’amorçage charge une partie du SE à partir du disque
(disquette ou CD) pour lui donner le contrôle. Cette partie détermine les caractéristiques du
matériel, effectue un certain nombre d’initialisations et crée le processus 0.
- Le processus 0 réalise d’autres initialisations (ex. le système de fichier) puis crée deux
processus :
- init de PID 1
- Daemon (Disk And Execution MONitor) des pages de PID 2 : Ce processus est
en activité et fournit des services au système.
- Ensuite, d’autres processus sont crées à partir du processus init.

Prof : A.BENGAG114
Gestion des processus

Exemple : les Démons / Daemons

Prof : A.BENGAG115
Gestion des processus

Prof : A.BENGAG116
Gestion des processus - Commandes
Commande « top »
• La commande « top » fournit une vue dynamique temps réel du processus/système en
cours d'exécution.

Prof : A.BENGAG117
Gestion des processus - Commandes
Commande « ps » : Liste statique des processus
• Pour afficher ses propres processus en cours d’exécution, on utilise la commande ps

• Le premier processus « bash » est le shell s’exécutant au sein du terminal.


• Le second est l’instance de la commande « ps » en cours d’exécution.
• La première colonne « PID » indique l’identifiant de chacun des processus.
• La seconde colonne « TTY » : Le terminal de contrôle du processus

NOTE: La liste n’est pas actualisé en temps réel, contrairement à ce qui fait top.

Prof : A.BENGAG118
Gestion des processus - Commandes
Commande « ps » : Liste statique des processus (suite)

• Pour afficher les informations des processus en détail, on utilise la commande ps avec
l’option aux
#ps -aux

Prof : A.BENGAG119
Gestion des processus - Commandes
Commande « kill » : Arrêt d’un processus / signaux

• Tuer un processus en cours d’exécution grâce à la commande kill, en envoyant des


signaux.
• Spécifier tout simplement sur la ligne de commande d’identifiant du processus à tuer.
#kill (-l) –Num_signal PID
L’option -l permet d’obtenir la liste des signaux.

Prof : A.BENGAG120
Gestion des processus - Commandes
Commande « kill » : Arrêt d’un processus / signaux

Exemple : La liste des signaux.

Prof : A.BENGAG121
Gestion des processus - Commandes
Commande « kill » : Arrêt d’un processus / signaux

• Exemple:

Prof : A.BENGAG122
Gestion des processus
Création d’un processus sous UNIX / clônage (1)
- La création de processus sous UNIX est réalisée au moyen de l’appel système : fork()
(c’est le seul moyen de créer des processus par duplication);
L’appel système fork :
– associe un numéro d’identification (le PID du processus);
– ajoute puis initialise une entrée dans la table des processus (PCB).

Prof : A.BENGAG123
Gestion des processus
Création d’un processus sous UNIX / clônage (1)

Prof : A.BENGAG124
Gestion des processus
Création d’un processus sous UNIX / clônage (1)
- Certaines entités comme les descripteurs de fichiers ouverts, le répertoire de travail
courant, les limites des ressources sont copiées du processus parent;
- Duplique l’espace d’adressage du processus effectuant l’appel à
fork(pile+données);
- Duplique la table des descripteurs....
-Exemple :
- Les deux processus père et fils exécutent alors le même
code.
- Pb : Comment distinguer alors le processus père du
processus fils ?

Prof : A.BENGAG125
Gestion des processus
Création d’un processus sous UNIX / clônage (1)
-Exemple 1 :

Lequel des deux messages « printf » sera affiché en premier ?


Prof : A.BENGAG126
Gestion des processus
Création d’un processus sous UNIX / clônage (1)
- La primitive sleep()

Il faut synchroniser le déroulement des processus père et fils.

Endormir un processus et lancer processus. La primitive sleep() peut assurer une


synchronisation et exécution entre processus et ordonner le déroulement du programme.

Prof : A.BENGAG127
Gestion des processus
Création d’un processus sous UNIX / clônage (1)
-Exemple 2 :

Note: Supposons que le 1er PID père égale à 23706

Prof : A.BENGAG128
Gestion des processus
Création d’un processus sous UNIX / clônage (1)
-Exécution de l’exemple 2 :

Prof : A.BENGAG129
Gestion des processus
Création d’un processus sous UNIX / clônage (1)
-Exécution de l’exemple 2 sans l’appel sleep :

Prof : A.BENGAG130
Gestion des processus
Création d’un processus sous UNIX / clônage (1)

Prof : A.BENGAG131
Gestion des processus
Fin d’un processus
Un processus peut se termine suite à l’un des 3 événements suivants :
1. Sortie normale, lorsque le processus a terminé sa tâche.
2. Sortie suite à une erreur , exemples : division par 0 , inexistence d’un fichier passé en
paramètre
3. Tué par un autre processus (sous Unix par l’appel au système « kill »).

Toutes les ressources du processus sont libérées par le SE.

Prof : A.BENGAG132
Gestion des processus
Notes:
Dans un système mono processeur, un seul processus peut être ACTIF. Les autres sont
placé dans diverses files d'attente et attendent le temps du processeur :
- File d'attente des processus : tous les processus du système ;
- File des processus PRETS ;
- Files pour les différents périphériques ...
- Autre files (attente de différent événements, ex. terminaison d'un processus fils) ;
Les processus avec le temps se "déplacent" entre ces différentes files.

Prof : A.BENGAG133
Prof : A.BENGAG134
Gestion des processus
-Exercice 1 :
1. Créer le dossier « processus_1 ». Puis dans ce dernier, créer un fichier nommé
« fork.c »
2. Modifier le code par le programme suivant :

Prof : A.BENGAG135
Gestion des processus
Création d’un processus sous UNIX / clônage (1)
-Exercice 1 (suite)

3. Exécuter le programme par les commandes suivantes :


# gcc fork.c –o fork
# ./fork
Justifier le résultat obtenu.

Prof : A.BENGAG136

Vous aimerez peut-être aussi