100% ont trouvé ce document utile (1 vote)
2K vues10 pages

Introduction au système Linux

Le document décrit le système d'exploitation Linux, y compris sa structure, la gestion des processus, l'ordonnancement, la gestion de la mémoire et les commandes shell. Il fournit des détails sur les concepts clés du noyau, la hiérarchie des processus, les algorithmes d'ordonnancement et les techniques d'allocation de mémoire.

Transféré par

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

Introduction au système Linux

Le document décrit le système d'exploitation Linux, y compris sa structure, la gestion des processus, l'ordonnancement, la gestion de la mémoire et les commandes shell. Il fournit des détails sur les concepts clés du noyau, la hiérarchie des processus, les algorithmes d'ordonnancement et les techniques d'allocation de mémoire.

Transféré par

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

3/18/2021

système d’exploitation Linux

Réalisé par :
 Amiri Adel Mohammed Nadjib
Année universitaire  : 2020/2021
Définition d’un système d’exploitation  :
Un système d’exploitation notée ‘SE ‘ est un intermédiaire entre la machine et
l’utilisateur par sa définition pratique c’est un ensemble de programmes
nécessaire au fonctionnement de l’ordinateur et indispensable à la mise en
œuvre des applications.
La fonction du SE est :
–Gestion des ressources (mémoire…)
–Gestion des entrées-sorties
–Gestion des fichiers
–Gestion des programmes
–Assurer l’interface avec l’utilisateur et la gestion
d’entrée/sortie.
Structure d’un système d’exploitation  :
Le SE est constitué par la structure :
Kernel en français le noyau d’un SE joue un rôle très important qui gère les
ressources de l'ordinateur et permet aux différents composant matériels et
logiciels de communiquer entre eux.
Le système d’exploitation Linux  :
Linux est un système d’exploitation au format libre créer par un étudiant
finlandais en coopération avec les fondateurs du système UNIX, c.-à-d. linux est
un noyau du système d’exploitation global UNIX développé essentiellement en
langage C par une large communauté de contributeurs qui a décidé de le mettre
gratuit et ‘open_source’.
Ce système est pour rôle de : - la gestion des processus – la gestion de la
mémoire – la gestion des systèmes de fichiers et la gestion d’entrée/sortie.
Un logiciel open-source met à disposition les sources du programme tandis que
le logiciel propriétaire se cantonne à distribuer la version compilée.
La gestion des processus  :
Un processus est une exécution de programme, sous Linux chaque processus est
identifié par son numéro appelée PID (processus identifier). Mais un processeur
qui est un composant dans le PC ne peut exécuter qu’une instruction.
Bloc de contrôle de processus :
« PCB » est une structure de données utilisé par les SE pour stocker toute les
informations sur un processus.
Le PCB stocke les données nécessaires à une gestion correcte et efficace des
processus, les éléments communs se répartissent en trois catégories
principales :
- identification des processus – état du processus et contrôle de processus.
Des tableaux d’état existent pour chaque entité patinent comme les informations
sur la gestion de mémoire, les périphériques d’E/S, les informations sur
l’ordonnancement.
Hiérarchie des processus  : Lorsqu’un processus est initialisé le système
d’exploitation créé un bloc de contrôle de processus les informations contenue
dans ce bloc sont mis à jour pendant la transition des états de processus.
Lorsque le processus se termine, son PCB est renvoyé dans le pool à partir
duquel les nouveaux PCB sont tirés.3
Exemple :
Si le processus A créé le processus B, A est le parent de B, B est le fils d’A (A
par défaut, exée le même code que B) B peut à son tour créer des processus. Un
processus avec tous ses descendants forme un groupe de processus représenté
par un arbre de processus.
Fork est le seul appel système de création de processus.
L’ordonnancement des processus  :
Pour gérer les processus durant leur séjour, le SE maintient plusieurs files
d’attente. On peut citer entre autres :
File d’attente des processus prêts - File d’attente de périphérique
Un processus a besoin d’un processeur pour exécuter des calculs. Donc on a
l’ordonnanceur qui est l'allocateur du processeur aux différent processus, il
alloue le processeur au processus en tête de file des Prêts. On un ordonnanceur
préemptif dont la transition de l’état élu vers l’état prêt est autorisé et autre non
préemptif dont la transition est interdite.
Les critères d’ordonnancement  :
L’utilisation maximale du processeur, l’équité dans les processus, la capacité
de traitement maximal, la durée du temps moyen de rotation, la diminution du
temps moyen d’attente et le temps moyen entre une fin d’entrée et le début de
sortie (réponse).
Les algorithmes d’ordonnancement  (scheduling algorithms)
L’algorithme " FCFS" (first come first serve) :il est plus facile à écrire et à
comprendre il alloue le processeur au premier processus qui le [Link] le
temps moyen d’attente sera calculé par : (la somme du temps d’attente des
processus / l’ensemble de processus)
L’algorithme" SJF" (shortest job first): affecte le processeur au processus
Possédant le temps d’exécution le plus court la différence entre lui et le FCFS
c’est que dans l’algorithme SJF on obtient un temps d’attente plus petit que
celle dans FCFS.
L’algorithme de Round Robin (Tourniquet) : il a été conçu pour des systèmes
à temps partagé. Il alloue le processeur aux processus à tour de rôle, pendant
une tranche de temps appelée quantum. Dans la pratique le quantum s’étale
entre 10 et 100 ms
Les performances de cette algorithme dépend largement de la taille du quantum
si elle est grande son performance est similaire au FCFS et si elle est très petit
la méthode ‘Tourniquet’ permettrait le partage du processeur mais on doit
choisissait une taille de quantum de sorte ne pas surcharger le système par de
fréquentes commutations de contexte.
L’ordonnancement avec priorité : ce dernier associé à chaque processus une
priorité, et ses processus seront activés en fonction de cette priorité (mode
décroissant) et ces priorités se définit en fonction des paramètres par exemple:
(le type de processus, les limites de mémoires, etc)
La fin de processus : il peut se terminer par : une sortie normale quand un
processus a terminé son exécution, une sortie à cause d’un erreur (/0),
libération des processus par le système d’exploitation, et dans le système’Linux’
on arrête un processus par la commande « kill » et on peut le tué sans
connaitre son ‘PID’ par la commande « killall ».
Le Shell Linux  : le Shell est un interpréteur de commande qui est l’interface
entre l’utilisateur et le système d’exploitation. Syntaxe d’une commande Shell :
Command [-option] [arguments]
Le Shell consiste à lire la ligne de commande, interpréter sa signification,
exécuter la commande, puis retourner le résultat sur les sorties.
Commande Shell de manipulation de processus  :
On a la commande ps -ef affiche la liste des processus qui sont en cours d’exécution sur
l’ordinateur et leurs informations détaillé.

L’option –u permet d’afficher les tâches lancées par un utilisateur particulier.


Pour tuer un processus, on doit connaitre son « PID » et ecrice la commande
suivante kill -9<PID> mais cette commande elle ne sert pas seulement à tuer un
processus donc on utilise les commandes les plus courants ‘SIGTERM’ et
‘SIGKILL’ qui servent à terminer un processus.
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 et
d’offrir une mémoire virtuelle plus grande que la mémoire physique.
Mémoire/adresse physique et virtuelle  :
La différence entre la mémoire physique/virtuelle c’est que La mémoire
physique est limitée à la taille des puces de RAM installées sur l'ordinateur.
La mémoire virtuelle est limitée par la taille du disque dur, et les adresses
physiques sont les adresses de la mémoire physique et les adresse logique sont
les adresses générées par le CPU pendant l’exécution d’un programme.
Aspects du chargement  :
a) allocation contigüe : est l’une des méthodes d’allocation de mémoire
c’est lorsqu’un processus demande de la mémoire, une seule section
contiguë de blocs de mémoire est affectée au processus en fonction de ses
besoins, l’allocation contigüe elle peut être obtenue en divisons la
mémoire principale en partitions et affectent chaque partition a un seul
processus ,les partitions sont soit de même taille ou de taille inégale dont
on a une fragmentation externe(certain files seront vides) et la
fragmentation interne , et on a la partition dynamique dont chaque
processus est alloué exactement la même taille de mémoire requise.
-Technique d’allocation de la mémoire : le système d'exploitation
maintient une table de bits qui indique quelle partition de la mémoire est
libre et quelle est occupée par les processus, ou une liste chaînée dont les
membres sont (le type, la longueur, l’adresse et le pointeur sur l’élément)
- l’algorithme de placement : son but est de réduire l’utilisation de la
compression on a les choix : (1er emplacement, meilleur emplacement et
le pire emplacement).
- problème d’allocation contigüe c’est dans la fragmentation externe
l’espace inutilisé est entre les partitions et dans l’interne il est dans les
partitions, une solution pour la fragmentation externe c’est le
compactage qui est la juxtaposition sur le disque dur d'un ordinateur de
l'ensemble des fichiers sans préserver d'espace libre entre ces derniers,
parmi ses désavantages c’est le temps de transfert programmes.
b) Allocation non contigüe : A fin réduire le besoin de compression, le
prochain pas est d`utiliser l’allocation non contiguë qui réduit également
le gaspillage de mémoire dû à la fragmentation interne et externe.
Comme il utilise les trous de mémoire, créés lors de la fragmentation
interne et [Link] y’a deux techniques pour faire ceci : la pagination et
la segmentation.
Les segments sont des espaces d'adressages indépendants de différentes
longueurs et qui peuvent même varier en cours d'utilisation, et les tables
des segments contient la base et la limite, mais le problème avec la
segmentation c’est que le segment est de longueur variable et la
fragmentation externe n’est pas éliminé donc on a la pagination qui
utilise les unités d’allocation de mémoire fixe.
La technique de pagination: consiste organiser la mémoire en zones de
taille fixes ou identiques appelées cadres de page ou en anglais « page
frame ». L'espace d'adressage d'un processus est divisé en petites unités de
taille fixe appelées pages.
Les tables de pages : le SE doit maintenir pour chaque processus une
table de page et ce dernier est indexé par le numéro de la page, et chaque
entrée d’une table de pages contient le numéro de cadre où la page
correspondante est physiquement localisée.
La mémoire virtuelle : est une technique de gestion de la mémoire qui de ne
garder en mémoire centrale les parties qui sont en exécution les autres parties
sur la mémoire secondaire donc cela permet de faire tourner les processus
beaucoup plus grands que la mémoire physique.
Avantages du chargement partiel : Plus de processus peuvent être maintenus
en exécution en mémoire
Plusieurs pages ou segments rarement utilisés n’auront peut-être pas besoin
d`être chargés du tout. Et il est Possible d’exécuter un ensemble de processus
lorsque leur taille excède celle de la mémoire principale. Et donc la mémoire
physique appelé mémoire virtuelle et se trouve dans la RAM
Exécution d’un processus :
Le système d’exploitation met en œuvre les instructions d’un programme
Une interruption est générée lorsque l’adresse logique réfère à une pièce qui
n’est pas dans l’ensemble résident.
Remplacement de page  : un remplacement de page se produit quand un
processus demande une nouvelle page et il n’y a pas de cadre libre dans la
RAM utilisée. Pour résoudre ce problème on choisit une page déjà en mémoire
principale qui appartenant au même ou à un autre processus (page victime).
L’algorithme LRU : remplace la page qui n’a pas été utilisée depuis
longtemps.
Pour ce faire on peut utiliser un compteur ou un stack.
L’algorithme OPT : choisit pour page à remplacer celle qui sera référencée le
plus tardivement.
L’algorithme FIFO : Lorsque la mémoire est pleine, la plus vieille page est
remplacée.
Gestion de la mémoire sous GNU/Linux  : dans un système Linux différentes
mémoire existent sont : la mémoire ‘USED’ (utilisé par les processus et le
noyau), la mémoire ‘FREE’, la mémoire ‘SHARED’, la mémoire ‘cache’ et la
mémoire ‘SWAP’.
Le fonctionnement de la mémoire  : les processus peuvent se transférés dans le
SWAP et libérer la mémoire vive cela prend également le relais quand 60% est
utilisée.
La commande FREE : affiche la RAM utilisée sous Linux par : root@~~#free
free -M⇒ Pour afficher les résultats en Mo
free -k ⇒ Pour afficher les résultats en Ko
free -t ⇒ pour afficher le total swap +ram
Utilisation du Swap : le Swap est utilisé lorsque la mémoire RAM est presque
pleine les pages mémoire inactives seront transférer vers l’espace Swap.
Espace d’adressage d’un processus : est structuré en un ensemble d’unités
appelées pages ou segments qui peuvent être chargées séparément en mémoire.

Systèmes de gestion de fichiers  :


Un système de fichier est une collection d’informations permet de stocker les
informations et les organiser sur les mémoire [Link] y’a des différents
types : (donnée [binaire, numérique, caractère…], ou des programmes).
Attributs d’un fichier : Constituent les propriétés du fichier et sont stockés
dans un fichier spécial appelé répertoire (directory).

Structure de répertoires :
Une collection de structures de données contenant infos sur les fichiers, ils sont
stockés dans une structure de dossiers appelée la racine.
Il y’a des types de structure du répertoire : répertoire à un niveau, deux niveau
et répertoire à arborescence.
La gestion de l’organisation de l’espace disque : les fichiers et le disque de
stockage sont découpés en un ensemble de blocs, on distingue trois méthodes
d’allocation des fichiers :

a) Allocation contigüe : chaque fichier occupe un ensemble de blocs


contigus sur disque

Les problèmes ; - fragmentation externe, les fichiers ne peuvent pas grandir


alors on a souvent besoin de réallouer l’espace disque du fichier.

b) Allocation enchaîné : c’est d’allouer des blocs chainés entre eux au


[Link] chaque bloc permet de retrouver le bloc suivant.
Avantages : aucune limitation de taille, élimination de la fragmentation externe.
Inconvénient : accès du fichier est totalement séquentiel, les pointeurs se
trouvent sur les blocs donc le parcours du fichier implique une lecture de tous
les blocs sur disque.
c) Allocation non contigüe indexée : suit le même principe que la pagination
pour la mémoire chaque fichier possède son propre bloc d’index, tableau
d’adressage de blocs disque.

Système de gestion de fichier : les fichiers sont indexé par le système linux par
Inode.

Gestion de fichier sous linux  : le système de fichier de Linux est tout entier
organisé à l’intérieur d’une seule arborescence.

Les diverses catégories de fichiers :

- Les fichiers ordinaires : texte, images, audio, scripts, base de données…


- Les fichiers catalogues : répertoires, dossiers, directories.
- Les fichiers spéciaux : située dans la répertoire /dev, ils présentent des
périphériques.

Les chemins d’accès sous Linux  :

- Chemin absolu : identifie une référence se fait par la liste des répertoires
en commencent par la racine /.
- Chemin relatif : identifie une référence se fait par un répertoire courant.

Commandes Shell de manipulation des fichiers  :

- $touch mon-fichier>>création d’un fichier vide.


- $more mon-fichier>>visualisation d’un fichier page à page.
- $rm mon-fichier>>suppression d’un fichier.
- $mv mon-fichier répertoire-accueil>>déplacement d’un fichier.
- $mv mon-fichier nouveau-nom>>changement de nom de fichier.
- $cp mon-fichier répertoire-accueil/autre-nom>>copie de fichier.
- $file mon-fichier>>pour savoir si on a un fichier binaire ou fichier texte.

Gestion des utilisateurs et groupes  :

- Chmod 664 [Link] : utilisé pour régler un trait d’accès de tous les
ensembles d’usager, le premier chiffre fixe l’accès de l’usager
propriétaire, le deuxième fixe l’accès du groupe propriétaire et le dernier
fixe l’accès des ‘autre’.

Gestion des entrées/sorties  :

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


ordinateur, il existe deux types de périphériques :

- Périphérique caractère : on peut accède à l’information caractère par


caractère (clavier, imprimante, souris…).
- Périphérique bloc : on accède à l’information que par bloc ayant son
propre adresse.

L’unité d’échange  :

Sert à permettre les échanges d’informations entre l’unité centrale et les


différents périphériques de l’ordinateur.

Constitution d’une unité d’échange  :

- Registres d’état : indique si l’échange est bien déroulé.


- Registres de données : contient les informations échangées entre les
périphérique et la mémoire centrale.
- Registres de commande : c’est le processeur qui précise le travail à faire.

Ils existent trois méthodes de gestion d’entrée/sortie :

a) Entrée/sortie programmées : le microprocesseur va périodiquement lire


l’état des périphériques d’E/S et modifie l’état des ports de sortie.
b) Interruption : on utilise cette technique quand Le processeur doit scruter
le registre RE pour savoir si l'unité d'échange est prête pour un nouveau
transfert, on ajoute un mécanisme qui permette à l‘UE de signaler son
état par les interruptions.
c) Technique DMA (direct memory Access) : est une technique qui permet
que les mouvements de données entre la mémoire et les périphériques se
fassent sans intervention de CPU.

Les flux de redirection : constituent une composante essentielle de la console


sous Linux et ce, depuis l’époque d’Unix.

Vous aimerez peut-être aussi