0% ont trouvé ce document utile (0 vote)
8 vues41 pages

Introduction aux systèmes d'exploitation

Le document fournit une introduction aux systèmes d'exploitation. Il discute du fait que le système d'exploitation agit comme un intermédiaire entre l'utilisateur et le matériel informatique en contrôlant et en coordonnant l'utilisation des ressources entre les applications et les utilisateurs. Il décrit les différents composants d'un système informatique, y compris le matériel, le système d'exploitation, les programmes applicatifs et les utilisateurs. Il expose également les objectifs et les perspectives d'un système d'exploitation du point de vue de l'utilisateur et du système.

Traduit par

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

Introduction aux systèmes d'exploitation

Le document fournit une introduction aux systèmes d'exploitation. Il discute du fait que le système d'exploitation agit comme un intermédiaire entre l'utilisateur et le matériel informatique en contrôlant et en coordonnant l'utilisation des ressources entre les applications et les utilisateurs. Il décrit les différents composants d'un système informatique, y compris le matériel, le système d'exploitation, les programmes applicatifs et les utilisateurs. Il expose également les objectifs et les perspectives d'un système d'exploitation du point de vue de l'utilisateur et du système.

Traduit par

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

Systèmes d'exploitation

Module I

INTRODUCTION AUX SYSTÈMES D'EXPLOITATION


Qu'est-ce qu'un système d'exploitation ?
Un système d'exploitation est un logiciel système qui agit comme un intermédiaire entre un utilisateur d'un ordinateur et le
matériel informatique.
Objectifs du système d'exploitation :

Rendez le système informatique pratique à utiliser. Il cache la difficulté de la gestion du


matériel.
Utilisez le matériel informatique de manière efficace
Fournir un environnement dans lequel l'utilisateur peut facilement interagir avec l'ordinateur.
C'est un allocateur de ressources
Structure des systèmes informatiques (Composants du système informatique)
Le système informatique peut être divisé en quatre composants :
Matériel – fournit les ressources informatiques de base CPU, mémoire, dispositifs d'entrée/sortie
Le système d'exploitation contrôle et coordonne l'utilisation du matériel entre diverses applications et
utilisateurs
Les programmes d'application – définissent les manières dont les ressources système sont utilisées pour résoudre le
problèmes informatiques des utilisateurs - Traitement de texte, compilateurs, navigateurs web, bases de données
systèmes, jeux vidéo
Users- People, machines, other computers

Le système d'exploitation contrôle et coordonne l'utilisation du matériel entre les différents programmes applicatifs (comme
compilateur, traitement de texte, etc.) pour divers utilisateurs.
Le système d'exploitation alloue les ressources entre les programmes de manière à ce que le matériel soit utilisé efficacement.

utilisé.
Le système d'exploitation est le programme qui fonctionne en permanence sur l'ordinateur. On l'appelle généralement
en tant que noyau.

OS Non Noyau (Fonctions nécessaires pour l'utilisateur)

Noyau Noyau du système d'exploitation (Fonctions nécessaires au système)

Dépt. d'ISE, APSCE 1


Systèmes d'exploitation

Les fonctions noyau sont toujours utilisées dans le système, donc toujours stockées en mémoire. Les fonctions non noyau
sont stockés sur le disque dur, et ils sont récupérés chaque fois que nécessaire.

Vues du système d'exploitation


Le système d'exploitation peut être vu sous deux angles -

User Views:-
La vue de l'utilisateur sur le système d'exploitation dépend du type d'utilisateur.
Si l'utilisateur utilise un système autonome, alors le système d'exploitation est conçu pour la facilité d'utilisation et une haute performance.
performances. Ici, l'utilisation des ressources n'est pas considérée comme importante.

ii. Si les utilisateurs sont à différents terminaux connectés à un ordinateur central ou à des mini-ordinateurs, en partageant
informations et ressources, ensuite le système d'exploitation est conçu pour maximiser l'utilisation des ressources. Le système d'exploitation est
conçu de manière à ce que le temps CPU, la mémoire et l'E/S soient utilisés de manière efficace et qu'aucun utilisateur unique ne prenne
plus que la ressource qui leur est attribuée.

iii. Si les utilisateurs sont sur des postes de travail, connectés à des réseaux et des serveurs, alors l'utilisateur a un
unité système à part entière et partage des ressources et des fichiers avec d'autres systèmes. Ici, le système d'exploitation est
conçu à la fois pour la facilité d'utilisation et la disponibilité des ressources (fichiers).

iv. Les utilisateurs de systèmes portables s'attendent à ce que le système d'exploitation soit conçu pour la facilité d'utilisation et la performance.
par quantité de durée de vie de la batterie.

[Link] systèmes comme les systèmes embarqués utilisés dans les appareils domestiques (comme les machines à laver) et les automobiles
il n'y a pas d'interaction utilisateur. Il y a des LED pour montrer l'état de son travail.

System Views:-
[Link] de ressources - Le système d'exploitation agit en tant que gestionnaire des ressources matérielles et logicielles. Le système d'exploitatio
attribue les ressources au programme demandeur en fonction de la priorité.
vii. Programme de contrôle – Le système d'exploitation est un programme de contrôle et gère l'exécution du programme utilisateur
pour prévenir les erreurs et l'utilisation incorrecte de l'ordinateur.

Organisation des systèmes informatiques


Fonctionnement du système informatique
Un ou plusieurs unités centrales, des contrôleurs de périphériques se connectent via un bus commun fournissant l'accès à
mémoire partagée. Chaque contrôleur de périphérique est responsable d'un type spécifique de périphérique.
Pour garantir un accès ordonné à la mémoire partagée, un contrôleur de mémoire est fourni dont
la fonction est de synchroniser l'accès à la mémoire.
Le processeur et d'autres appareils s'exécutent simultanément en compétition pour les cycles de mémoire.

Département d'ISE, APSCE 2


Systèmes d'exploitation

Lorsque le système est allumé, le programme 'Bootstrap' est exécuté. C'est le programme initial à exécuter dans.
le programme systè[Link]
. Initialise les registres, la mémoire et les dispositifs d'entrée/sortie
. Localise et charge le noyau dans la mémoire
. Commence avec le processus 'init'
. Attends une interruption de l'utilisateur.

Gestion des interruptions–


L'occurrence d'un événement est généralement signalée par une interruption. L'interruption peut soit
soit du matériel ou du logiciel.
Le matériel peut déclencher une interruption à tout moment en envoyant un signal au processeur.
Le logiciel déclenche une interruption en exécutant une opération spéciale appelée appel système.
appelé un appel de moniteur).
Lorsque le processeur est interrompu, il arrête ce qu'il fait et transfère immédiatement
exécution à un emplacement fixe. L'emplacement fixe (Table d'Interruption) contient le
adresse de départ où se trouve la routine de service pour l'interruption.
Après l'exécution de la routine de service d'interruption, le CPU reprend l'interruption
calcul

Dept. de ISE, APSCE 3


Systèmes d'exploitation

Structure de stockage
Les programmes informatiques doivent être dans la mémoire principale (RAM) pour être exécutés. La mémoire principale est
la grande mémoire à laquelle le processeur peut accéder directement. Elle est généralement mise en œuvre dans un
technologie des semi-conducteurs appelée mémoire vive dynamique (DRAM).
Les ordinateurs fournissent une mémoire morte (ROM), dont les données ne peuvent pas être modifiées.
Toutes les formes de mémoire fournissent un tableau de mots de mémoire. Chaque mot a sa propre adresse.
L'interaction est réalisée par une séquence d'instructions de chargement ou de stockage vers des spécifiques
adresses mémoire.
Un cycle d'exécution d'instructions typique, tel qu'il est exécuté sur un système avec une architecture de Von Neumann.
l'architecture, récupère d'abord une instruction de la mémoire et stocke cette instruction dans le
registre d'instructions.
L'instruction est ensuite décodée et peut provoquer le chargement des opérandes depuis la mémoire et
stocké dans un registre interne.
Après l'exécution de l'instruction sur les opérandes, le résultat peut être stocké à nouveau dans
mémoire.
Idéalement, nous voulons que les programmes et les données résident en permanence dans la mémoire principale.
l'arrangement n'est généralement pas possible pour les deux raisons suivantes :
1. La mémoire principale est généralement trop petite pour stocker tous les programmes et données nécessaires de manière permanente.
2. La mémoire principale est un dispositif de stockage volatile qui perd son contenu lorsque l'alimentation est coupée.
éteint.
Ainsi, la plupart des systèmes informatiques fournissent un stockage secondaire comme une extension de la mémoire principale.
mémoire. La principale exigence pour le stockage secondaire est qu'il doit être capable de contenir de grandes
quantités de données de manière permanente.
Le périphérique de stockage secondaire le plus courant est un disque magnétique, qui fournit du stockage
pour les deux programmes et données. La plupart des programmes sont stockés sur un disque jusqu'à ce qu'ils soient chargés dans
mémoire. De nombreux programmes utilisent alors le disque comme source et destination de la
information for their processing.

Département d'I.S.E, APSCE 4


Systèmes d'exploitation

La grande variété de systèmes de stockage dans un système informatique peut être organisée en une hiérarchie.
comme montré dans la figure, selon la vitesse, le coût et la capacité.
Les niveaux supérieurs sont coûteux, mais ils sont rapides. À mesure que nous descendons dans la hiérarchie, le
le coût par bit diminue généralement, tandis que le temps d'accès et la capacité de stockage
augmente généralement.
En plus de différer en vitesse et en coût, les différents systèmes de stockage sont soit volatils
ou non volatile.
Le stockage volatil perd son contenu lorsque l'alimentation de l'appareil est coupée.
absence de systèmes de batterie coûteux et de sauvegarde par générateur, les données doivent être écrites sur
stockage non volatil pour la conservation.
Dans la hiérarchie montrée dans la figure, les systèmes de stockage au-dessus du disque électronique sont
volatile, tandis que ceux ci-dessous sont non volatils.

Structure E/S
Une grande partie du code du système d'exploitation est dédiée à la gestion des entrées/sorties.
Chaque périphérique a un contrôleur de périphérique, maintient un tampon local et un ensemble de spéciales.
registre des objectifs.
Le contrôleur de périphérique est responsable du déplacement des données entre les périphériques.
les systèmes d'exploitation ont un pilote de périphérique pour chaque contrôleur de périphérique

Pour commencer une opération d'entrée/sortie, le pilote de périphérique charge les registres dans le contrôleur de périphérique.
Le contrôleur de périphérique examine le contenu de ces registres pour déterminer quelle action entreprendre.
prendre (comme "lire un caractère à partir du clavier").
Le contrôleur commence le transfert de données de l'appareil vers son tampon local.
Une fois le transfert de données terminé, le contrôleur de périphérique informe le pilote de périphérique (OS)
via un interrupt qui a terminé son opération.
Le pilote de périphérique rend ensuite le contrôle au système d'exploitation et renvoie également les données.
d'autres opérations, le pilote de périphérique renvoie des informations sur l'état

Cette forme d'E/S pilotée par interruptions est adaptée pour déplacer de petites quantités de données, mais très difficile pour
mouvement de données en vrac. Pour résoudre ce problème, l'accès direct à la mémoire (DMA) est utilisé.

Département d'ISE, APSCE 5


Systèmes d'exploitation

DMA est utilisé pour les périphériques d'E/S à haute vitesse, capables de transmettre des informations à proximité de la mémoire.
vitesses
Le contrôleur de périphérique transfère des blocs de données du stockage tampon directement vers la mémoire principale
sans intervention du processeur
Un seul interrupt est généré par bloc, plutôt qu'un interrupt par octet.
Architecture des systèmes informatiques
Catégorisés grossièrement selon le nombre de processeurs à usage général utilisés–

1. Systèmes à processeur unique –


La plupart des systèmes utilisent un seul processeur. La variété des systèmes à processeur unique va des assistants numériques personnels (PDA)
à travers les grands systèmes.

Dans un système à processeur unique, il y a un CPU principal capable d'exécuter des instructions de l'utilisateur
processus
Il contient des processeurs à usage spécial, sous la forme de processeurs spécifiques à des appareils, pour des appareils tels que
comme le disque, le clavier et les contrôleurs graphiques.
L'utilisation de microprocesseurs à usages spéciaux est courante et ne transforme pas un système à processeur unique en un
multiprocesseur. S'il n'y a qu'un seul processeur généraliste, alors le système est un système à processeur unique.

2. Systèmes multiprocesseurs (systèmes parallèles ou systèmes étroitement couplés)


Les systèmes qui ont deux processeurs ou plus en communication étroite, partageant le bus de l'ordinateur,
l'horloge, la mémoire et les périphériques sont des systèmes multiprocesseurs.

Les systèmes multiprocesseurs ont trois principaux avantages :


1. Augmentation du débit
2.Économie d'échelle
3. Fiabilité accrue - Dans les systèmes multiprocesseurs, les fonctions sont partagées entre plusieu
Les processeurs. Le travail du processeur défaillant est repris par d'autres processeurs.
Deux techniques pour maintenir une 'fiabilité accrue' - dégradation gracieuse et tolérance aux pannes
Dégradation gracieuse – Comme il y a plusieurs processeurs, lorsque un processeur
lorsque d'autres processus échouent, celui-ci prendra son travail et le système s'arrête lentement.
Tolérant aux pannes – Lorsqu'un processeur échoue, ses opérations sont arrêtées, le système
L'échec est alors détecté, diagnostiqué et corrigé.
Il existe deux types de systèmes multiprocesseurs–
Multiprocessing asymétrique
Multiprocessing symétrique

1) Multiprocessing asymétrique – (Architecture Maître/Esclave) Ici, chaque processeur est


assigné une tâche spécifique, par le processeur maître. Un processeur maître contrôle les autres
processeurs dans le système. Il planifie et attribue du travail aux processeurs esclaves.
2) Multiprocessing symétrique (SMP) – Tous les processeurs sont considérés comme des pairs.
il n'y a pas de relation maître-esclave. Tous les processeurs ont leurs propres registres et CPU, seulement
la mémoire est partagée.

Département d'I.S.E, APSCE 6


Systèmes d'exploitation

L'avantage de ce modèle est que de nombreux processus peuvent s'exécuter simultanément. Nprocesses peut
exécutez s'il y a des NCPUs—sans causer une détérioration significative des performances.
Les systèmes d'exploitation comme Windows, Windows XP, Mac OS X et Linux—fournissent maintenant
support pour SMP.
Une tendance récente dans la conception des processeurs est d'inclure plusieurs cœurs de calcul sur une seule puce.
la communication entre les processeurs à l'intérieur d'une puce est plus rapide que la communication entre
deux processeurs simples.

3. Systèmes groupés
Les systèmes en grappe sont deux ou plusieurs systèmes individuels connectés ensemble via un réseau.
et partage de ressources logicielles.
Le regroupement offre une haute disponibilité des ressources et des services.
Il existe deux types de systèmes en grappe.
I. Clustering asymétrique - un système est en mode veille chaude tandis que les autr
exécute les applications. La machine hôte en veille active ne fait rien d'autre que
surveiller le serveur actif. Si ce serveur échoue, l'hôte de secours en attente devient le
serveur actif.
II. clustering symétrique - deux systèmes ou plus exécutent des applications, et sont
se surveiller mutuellement. Ce mode est plus efficace, car il utilise toutes les ressources disponibles.
matériel. Si un système échoue, sa tâche est reprise par le système de surveillance.

D'autres formes de clusters incluent les clusters parallèles et le clustering sur un réseau étendu.
(WAN)
Les clusters parallèles permettent à plusieurs hôtes d'accéder aux mêmes données sur le stockage partagé.
La technologie des clusters évolue rapidement grâce aux SAN (réseaux de stockage).
L'utilisation des ressources SAN peut être partagée avec des dizaines de systèmes dans un cluster, qui sont
séparés par des miles.
Structure du système d'exploitation
L'un des aspects les plus importants des systèmes d'exploitation est la capacité à effectuer du multiprogramming.
Un seul utilisateur ne peut pas maintenir le processeur ou les dispositifs d'entrée/sortie occupés en tout temps.
Le multiprogrammation augmente l'utilisation du CPU en organisant les tâches, de sorte que le CPU
a toujours un à exécuter.
Le système d'exploitation garde plusieurs tâches en mémoire simultanément comme montré dans la figure.
Cet ensemble de travaux est un sous-ensemble des travaux conservés dans le pool de travaux.

Le système d'exploitation sélectionne et commence à exécuter l'un des travaux en mémoire.


Finalement, le travail devra peut-être attendre une tâche, comme une opération d'entrée/sortie, pour
complet.

Département des ISE, APSCE 7


Systèmes d'exploitation

Dans un système non multiprogrammé, le processeur resterait inactif. Dans un système multiprogrammé
système, le système d'exploitation bascule simplement vers, et exécute, un autre travail. Quand cela
le travail doit attendre, le processeur est basculé vers un autre travail, et ainsi de suite.

Finalement, le premier travail termine d'attendre et récupère le processeur. Ainsi, le processeur n'est jamais
inactif.

Le time-sharing (multitâche) est l'extension logique du multiprogrammation.


Ici, un seul processeur exécute plusieurs tâches en passant d'une à l'autre, dans laquelle le processeur
change de postes si fréquemment que les utilisateurs peuvent interagir avec chaque tâche pendant son exécution.
Le partage du temps nécessite un système informatique interactif (ou pratique), qui fournit
communication directe entre l'utilisateur et le système et le temps de réponse doit être
court—généralement moins d'une seconde.
Chaque utilisateur a au moins un programme en cours d'exécution en mémoire. Si plusieurs tâches sont prêtes à être exécutées en même temps.
le temps, si les processus ne tiennent pas en mémoire, l'échange les déplace pour les exécuter
La mémoire virtuelle permet l'exécution de processus non complètement en mémoire.

Fonctions du système d'exploitation


Les systèmes d'exploitation modernes sont basés sur des interruptions. S'il n'y a aucun processus à exécuter, un
le système d'exploitation attendra que des événements se produisent.
Les événements sont signalés par l'occurrence d'une interruption ou d'un piège.
Atrap (oranexception) est une interruption générée par le logiciel, provoquée soit par une erreur.
(Division par zéro, demande de service du système d'exploitation) ou par une demande d'un utilisateur
programme.
Pour chaque type d'interruption, une routine de service d'interruption est fournie, qui est responsable de
faire face à l'interruption.
Puisque le système d'exploitation et les programmes utilisateurs partagent le matériel et le logiciel
ressources du système informatique, il faut s'assurer qu'une erreur dans un programme utilisateur
ne peut pas causer de problèmes à d'autres programmes et au système d'exploitation en cours d'exécution dans le
système.
Le fonctionnement en mode double permet au système d'exploitation de se protéger et de protéger d'autres composants du système.
Fonctionnement en mode double
L'approche adoptée consiste à utiliser un support matériel qui nous permet de différencier parmi divers
modes d'exécution.
Le système peut être considéré comme fonctionnant dans deux modes d'opération séparés :
mode utilisateur
mode noyau (mode superviseur, mode système ou mode privilégié).

Département de ISE, APSCE 8


Systèmes d'exploitation

Un bit matériel de l'ordinateur, appelé bit de mode, est utilisé pour indiquer le mode actuel :
noyau (0) ou utilisateur (1).
Avec le bit de mode, nous sommes en mesure de distinguer entre une tâche exécutée par le système d'exploitation.
système et celui qui est exécuté par l'utilisateur.
When the computer system is executing a user application, the system is in user mode.
Lorsqu'une application utilisateur demande un service au système d'exploitation (via un appel système), le
la transition du mode utilisateur au mode noyau a lieu.

Au démarrage du système, le matériel démarre en mode noyau. Le système d'exploitation est ensuite
chargé et démarre les applications utilisateur en mode utilisateur.
Chaque fois qu'un piège ou une interruption se produit, le matériel passe du mode utilisateur au mode noyau
(c'est-à-dire, change le bit de mode de 1 à 0). Ainsi, chaque fois que le système d'exploitation acquiert
le contrôle de l'ordinateur, il est en mode noyau.
Le matériel permet d'exécuter des instructions privilégiées uniquement en mode noyau. Si un
une tentative d'exécution d'une instruction privilégiée en mode utilisateur est considérée comme illégale et
il le transmet au système d'exploitation.
Minuteur
Le système d'exploitation utilise un minuteur pour contrôler le CPU. Un programme utilisateur ne peut pas retenir le CPU longtemps.
le temps, cela est évité avec l'aide d'un minuteur.
Un minuteur peut être réglé pour interrompre l'ordinateur après une période spécifiée. La période peut être
Minuteur fixe – Après un temps fixe, le processus en cours d'exécution est interrompu.
Minuteur variable - L'interruption se produit après un intervalle variable.
Avant de passer au mode utilisateur, le système d'exploitation s'assure que le minuteur est réglé sur
interrompre. Si le minuteur interrompt, le contrôle est transféré automatiquement au système d'exploitation.

Département d'ISE, APSCE 9


Systèmes d'exploitation

Gestion des processus


Un programme en cours d'exécution est un processus. Un processus a besoin de ressources comme le temps CPU, la mémoire,
fichiers et périphériques d'E/S pour son exécution.
Ces ressources sont attribuées au processus lors de sa création ou à l'exécution.
When the process terminates, the operating system reclaims the resources.
Le programme stocké sur un disque est une entité passive et le programme en cours d'exécution est un
entité active.
Un processus à un seul thread a un compteur de programme spécifiant la prochaine instruction à
exécute. Le CPU exécute une instruction du processus après l'autre, jusqu'à ce que le processus
complètes.
Un processus multithread a plusieurs compteurs de programme, chacun pointant vers le suivant
instruction à exécuter pour un fil donné.
Le système d'exploitation est responsable des activités suivantes en rapport avec le processus
management:
Processus de planification et de fils d'exécution sur le CPU
Création et suppression des processus utilisateurs et systèmes
Suspension et reprise des processus
Fournir des mécanismes pour la synchronisation des processus
Fournir des mécanismes pour la communication des processus

Gestion de la mémoire
La mémoire principale est un grand tableau de mots ou d'octets. Chaque mot ou octet a sa propre adresse.
Au fur et à mesure que le programme s'exécute, le processeur central lit des instructions et lit et écrit également
data from main memory.
Pour améliorer à la fois l'utilisation du processeur et la rapidité de la réponse de l'ordinateur à son
Les utilisateurs, les ordinateurs polyvalents doivent garder plusieurs programmes en mémoire, créant un besoin
pour la gestion de la mémoire.
Le système d'exploitation est responsable des activités suivantes en rapport avec la mémoire.
management:
Suivre les parties de la mémoire qui sont actuellement utilisées par l'utilisateur.
Décider quels processus et données déplacer dans et hors de la mémoire.
Allouer et désallouer de l'espace mémoire selon les besoins.

Gestion du stockage
Il existe trois types de gestion de stockage i) Gestion du système de fichiers ii) Stockage de masse
iii) Gestion du cache.
Gestion du système de fichiers
La gestion des fichiers est l'un des composants les plus visibles d'un système d'exploitation.
Un fichier est une collection d'informations liées définies par son créateur. En général, les fichiers représentent
programmes et données.
Le système d'exploitation met en œuvre le concept abstrait de fichier en gérant le stockage de masse.
Les fichiers média sont normalement organisés dans des répertoires pour faciliter leur utilisation.

Département d'ISE, APSCE 10


Systèmes d'exploitation

Lorsque plusieurs utilisateurs ont accès à des fichiers, il peut être souhaitable de contrôler par qui et dans
de quelles manières (lire, écrire, exécuter) les fichiers peuvent-ils être accédés.
Le système d'exploitation est responsable des activités suivantes en rapport avec les fichiers
management:
Créer et supprimer des fichiers
Créer et supprimer des répertoires pour organiser des fichiers
Primitifs de support pour manipuler des fichiers et des répertoires
Mapper des fichiers sur le stockage secondaire
Sauvegarde des fichiers sur des supports de stockage stables (non volatils)
Gestion du stockage de masse
Comme la mémoire principale est trop petite pour accueillir toutes les données et programmes, et comme les données que
les données sont effacées lorsque l'alimentation est perdue, le système informatique doit fournir un stockage secondaire
sauvegarder la mémoire principale.
La plupart des systèmes informatiques modernes utilisent des disques comme moyen de stockage pour les programmes et les données.
La plupart des programmes - y compris les compilateurs, les assembleurs, les traitements de texte, les éditeurs, et
Les formatters sont stockés sur un disque jusqu'à ce qu'ils soient chargés en mémoire, puis utilisent le disque comme les deux.
source et destination de leur traitement.
Par conséquent, la gestion appropriée du stockage sur disque revêt une importance centrale pour un ordinateur.
Le système d'exploitation est responsable des activités suivantes en rapport avec
gestion des disques
Gestion de l'espace libre
Attribution de stockage
Planification de disque

Mise en cache
Le cache est un principe important des systèmes informatiques. Les données fréquemment utilisées sont copiées.
système de stockage plus rapide—le cache—comme données temporaires. Lorsqu'une pièce particulière de
des informations sont requises, nous vérifions d'abord dans le cache.
Parce que les caches ont une taille limitée, la gestion des caches est un problème de conception important.
Une sélection soigneuse de la taille du cache et de la politique de remplacement de pages peut entraîner une amélioration considérable.

performance accrue.
Le transfert de données du cache vers le processeur et les registres est généralement une fonction matérielle implicite.
sans intervention du système d'exploitation.
En revanche, le transfert de données du disque à la mémoire est généralement contrôlé par le système d'exploitation.
système-explicite.
Dans une structure de stockage hiérarchique, les mêmes données peuvent apparaître à différents niveaux de la
système de stockage. Par exemple, supposons de récupérer un entier A à partir d'un disque magnétique.
programme de traitement. L'opération commence par émettre une opération d'E/S pour copier le disque
block on which A resides to main memory. This operation is followed by copying A to the cache
et dans un registre interne. Ainsi, la copie de A apparaît à plusieurs endroits : sur le disque magnétique, dans
mémoire principale, dans le cache, et dans un registre interne.

Dept. d'ISE, APSCE 11


Systèmes d'exploitation

Dans un environnement multiprocesseur, en plus de maintenir les registres internes, chacun des CPU
also contains a local cache. In such an environment, a copy of A may exist simultaneously in
plusieurs caches. Comme les différents processeurs peuvent tous s'exécuter de manière concurrente, toute mise à jour effectuée sur le
La valeur de A dans un cache est immédiatement reflétée dans tous les autres caches où A réside. Cela
La situation est appelée cohérence de cache, et c'est généralement un problème matériel (géré ci-dessous
niveau du système d'exploitation).

Systèmes I/O
L'un des objectifs d'un système d'exploitation est de cacher les particularités d'un matériel spécifique
les dispositifs de l'utilisateur. Le sous-système d'E/S se compose de plusieurs composants :
Un composant de gestion de la mémoire qui inclut le tamponnage, la mise en cache et
mise en file d'attente
Une interface générale de pilotes de périphériques
Pilotes pour des appareils matériels spécifiques
Seul le pilote de périphérique connaît les particularités du périphérique spécifique auquel il est assigné.

Protection et Sécurité
Protection - tout mécanisme de contrôle d'accès des processus ou des utilisateurs aux ressources définies par le système d'exploitation
La protection améliore la fiabilité. Un système axé sur la protection fournit un moyen de distinguer entre
utilisation autorisée et non autorisée
Sécurité – défense du système contre les attaques internes et externes. De telles attaques se répandent sur un énorme
étendue et inclure des virus et des vers, des attaques par déni de service, etc.
La protection et la sécurité exigent que le système soit capable de distinguer parmi tous ses utilisateurs. La plupart
les systèmes d'exploitation maintiennent

User identities (user IDs, security IDs) include name and associated number, one per user
L'ID utilisateur est alors associé à tous les fichiers et processus de cet utilisateur afin de déterminer le contrôle d'accès.
L'identifiant de groupe (ID de groupe) permet de définir un ensemble d'utilisateurs et de gérer les contrôles.
également associé à chaque processus, fichier.
L'escalade de privilèges permet à un utilisateur de changer son ID effectif pour obtenir des droits supplémentaires.
autorisations pour une activité.
Systèmes Distribués
Un système distribué est un ensemble de systèmes interconnectés pour fournir aux utilisateurs un
accès aux diverses ressources dans le réseau.
L'accès à une ressource partagée augmente la vitesse de computation, la fonctionnalité, la disponibilité des données,
et fiabilité.
Un réseau est un chemin de communication entre deux systèmes ou plus. Les réseaux varient selon le
protocoles utilisés (TCP/IP, UDP, FTP, etc.), les distances entre les nœuds et le transport
media(copper wires, fiber-optic,wireless).
Les réseaux sont caractérisés en fonction des distances entre leurs nœuds. Un réseau local
Un réseau local (LAN) connecte des ordinateurs dans une pièce, un étage ou un bâtiment.
Un réseau étendu (WAN) relie généralement des bâtiments, des villes ou des pays.
Un réseau de zone métropolitaine (MAN) connecte des bâtiments dans une ville.
Les dispositifs BlueTooth et 802.11 utilisent une technologie sans fil pour communiquer sur une distance de

Département d'ISE, APSCE 12


Systèmes d'exploitation

plusieurs pieds, créant essentiellement un réseau de petite zone tel qu'on peut en trouver dans une maison.
Les supports de transport pour véhiculer les réseaux sont également variés. Ils comprennent des fils en cuivre, de la fibre
brins, et transmissions sans fil entre satellites, platines micro-ondes et radios.

Systèmes à usage spécial


Il existe différentes classes de systèmes informatiques, dont les fonctions sont plus limitées et spécifiques.
et il traite des domaines de calcul limités.
Systèmes embarqués en temps réel
Les ordinateurs embarqués sont la forme d'ordinateurs la plus répandue qui existe. Ces dispositifs
se trouvent partout, des moteurs de voitures et des robots de fabrication aux DVD et
les micro-ondes. Ils ont tendance à avoir des tâches très spécifiques.
Les systèmes sur lesquels ils fonctionnent sont généralement primitifs, et donc les systèmes d'exploitation fournissent
fonctionnalités limitées. En général, ils ont peu ou pas d'interface utilisateur, préférant passer leur temps
surveillance et gestion des dispositifs matériels, tels que les moteurs automobiles et les bras robotiques.
Systèmes portables
inclure des assistants numériques personnels (ADN), tels que Palm et Pocket-Pes, et des cellulaires
téléphones, dont beaucoup utilisent des systèmes d'exploitation embarqués à usage spécial.
Les développeurs de systèmes et d'applications portables sont confrontés à de nombreux défis, dont la plupart sont
en raison de la taille limitée de tels dispositifs. Par exemple, un PDA mesure généralement environ 5 pouces dans
hauteur et 3 pouces de large, et il pèse moins d'une demi-livre. En raison de leur taille,
la plupart des appareils portables ont de petites quantités de mémoire, des processeurs lents et de petits affichages
écrans. Nous examinons maintenant chacune de ces limitations.
3. Systèmes multimédias
La plupart des systèmes d'exploitation sont conçus pour gérer des données conventionnelles telles que des fichiers texte,
programmes, documents de traitement de texte et tableurs. Cependant, une tendance récente dans
la technologie est l'incorporation de données multimédia dans les systèmes informatiques.
Les données multimédias consistent en des fichiers audio et vidéo ainsi que des fichiers conventionnels. Ces données
diffère des données conventionnelles en ce sens que les données multimédia - telles que les images vidéo - doivent être
livré (diffusé) selon certaines restrictions de temps (par exemple, 30 images par
deuxième).
Environnements de calcul
Les différents environnements de calcul sont–
1. Informatique traditionnelle
Des PC connectés à un réseau, des terminaux reliés à un mainframe ou à des mini-ordinateurs fournissant
traitement par lots et partage du temps

Maintenant, des portails permettant aux systèmes en réseau et distants d'accéder aux mêmes ressources
Les réseaux domestiques étaient autrefois un système unique, puis des modems. Maintenant, ils sont protégés par un pare-feu et mis en réseau.
2. Informatique Client-Serveur
Les terminaux muets remplacés par des PC intelligents
De nombreux systèmes maintenant des serveurs, répondant aux requêtes générées par des clients.
Le serveur de calcul fournit une interface au client pour demander des services (c'est-à-dire une base de données)
Le serveur de fichiers fournit une interface pour que les clients stockent et récupèrent des fichiers

Département d'ISE, APSCE 13


Systèmes d'exploitation

3. Informatique pair à pair


Un autre modèle de système distribué
Le P2P ne distingue pas les clients et les serveurs. Au lieu de cela, tous les nœuds sont considérés comme des pairs.
Chaque acte peut servir de client, de serveur ou des deux. Le nœud doit rejoindre le réseau P2P.
Enregistre son service avec le service de recherche central sur le réseau, ou
Diffuser une demande de service et répondre aux demandes de service via le protocole de découverte
Des exemples incluent Napster et Gnutella

4. Informatique basée sur le Web


Le Web est devenu omniprésent, les PC étant les dispositifs les plus répandus.
De plus en plus d'appareils deviennent connectés pour permettre l'accès au web
Nouvelle catégorie de dispositifs pour gérer le trafic web entre des serveurs similaires : équilibreurs de charge
L'utilisation de systèmes d'exploitation comme Windows 95, côté client, a évolué vers Linux et
Windows XP, qui peut être clients et serveurs
5. Systèmes d'exploitation open source
Les systèmes d'exploitation disponibles sous forme de code source plutôt qu'en simple binaire fermé.
Contre le mouvement de protection contre la copie et de gestion des droits numériques (DRM)
Commencé par la Free Software Foundation (FSF), qui a la licence publique générale GNU « copyleft ».
(GPL) Les exemples incluent GNU/Linux, BSD UNIX (y compris le noyau de Mac OS X) et Sun
Solaris
Structures de système d'exploitation

Services du système d'exploitation


Un système d'exploitation fournit un environnement pour l'exécution des programmes. Il offre certains services.
aux programmes et aux utilisateurs de ces programmes.

Département d'ISE, APSCE 14


Systèmes d'exploitation

Les systèmes d'exploitation fournissent des services aux utilisateurs du système, y compris :
[Link] utilisateur. Presque tous les systèmes d'exploitation ont une interface utilisateur. Cette interface peut prendre plusieurs formes.

L'interface de ligne de commande utilise des commandes textuelles et une méthode pour les saisir (c'est-à-dire, un
programme permettant de saisir et de modifier des commandes).
batch dans lequel des commandes et des directives pour contrôler ces commandes sont entrées dans des fichiers,
et ces fichiers sont exécutés.
L'interface graphique utilisateur est un système de fenêtres avec un dispositif de pointage pour diriger l'entrée/sortie, choisir
à partir des menus, et faites des sélections et un clavier pour saisir du texte.
Certains systèmes offrent deux ou trois de ces variations.
[Link]écution du programme. Le système doit être capable de charger un programme en mémoire et de l'exécuter.
programme. Le programme doit être capable de terminer son exécution, soit normalement, soit anormalement
(indiquant une erreur).
3. Manipulation du système de fichiers. Le système de fichiers est d'un intérêt particulier. Évidemment, les programmes ont besoin
to read and write files and directories.
4. Communications. Il existe de nombreuses circonstances dans lesquelles un processus doit échanger
des informations avec un autre processus. Une telle communication peut se produire entre des processus qui sont
s'exécutant sur le même ordinateur ou entre des processus s'exécutant sur des ordinateurs différents
systèmes.
Les communications peuvent être mises en œuvre via un réseau partagé ou par le biais de l'envoi de messages.
5. Détection des erreurs. Le système d'exploitation doit être constamment conscient des erreurs possibles. Les erreurs
peut se produire dans le matériel du processeur et de la mémoire (tel qu'une erreur de mémoire ou une panne de courant), dans
Périphériques I/O
Les outils de débogage peuvent grandement améliorer les capacités de l'utilisateur et du programmeur à utiliser le système.
efficacement.
Un autre ensemble de fonctions du système d'exploitation existe non pas pour aider l'utilisateur mais plutôt pour garantir que
fonctionnement efficace du système lui-même. Les systèmes avec plusieurs utilisateurs peuvent gagner en efficacité en partageant le
ressources informatiques parmi les utilisateurs
[Link] des ressources - Ressources telles que les cycles CPU, la mémoire principale, l'espace de stockage et l'E/S
les dispositifs doivent être attribués à plusieurs utilisateurs et plusieurs tâches en même temps.
[Link]é – Il existe des services dans le système d'exploitation pour suivre l'activité du système et les ressources.
utilisation, soit à des fins de facturation, soit pour la tenue de dossiers statistiques qui peuvent être utilisés pour
optimiser la performance future.
3. Protection et Sécurité - Les propriétaires des informations (fichiers) dans un environnement multi-utilisateurs ou réseau
le système informatique peut vouloir contrôler l'utilisation de ces informations. Lorsque plusieurs séparés
les processus s'exécutent de manière concurrente, un processus ne doit pas interférer avec un autre ou avec le système d'exploitation.
La protection consiste à s'assurer que tout accès aux ressources du système est contrôlé. La sécurité de
le système des étrangers doit également être effectué, par le biais d'un mot de passe.

Interface Utilisateur du Système d'Exploitation

Il existe plusieurs façons pour les utilisateurs d'interagir avec le système d'exploitation.
[Link] en ligne de commande, ou interpréteur de commandes
permet aux utilisateurs d'entrer directement des commandes à exécuter par le système d'exploitation.
Les interprètes de commandes sont utilisés pour donner des commandes au système d'exploitation.

Département d'ISE, APSCE 15


Systèmes d'exploitation

Il existe plusieurs interprètes de commandes connus sous le nom de shells. Dans UNIX et Linux
systèmes, il existe plusieurs shells différents, comme le shell Bourne, le shell C, Bourne-
Encore shell, Korn shell, et d'autres
La fonction principale de l'interpréteur de commandes est d'obtenir et d'exécuter les spécifications de l'utilisateur.
commande. Beaucoup des commandes manipulent des fichiers : créer, supprimer, lister, imprimer, copier, exécuter,
et ainsi de suite.

Les commandes peuvent être mises en œuvre de deux manières générales -


Je. L'interpréteur de commandes contient lui-même le code pour exécuter la commande.
II. Le code pour implémenter la commande se trouve dans une fonction dans un fichier séparé.
Interface Graphique Utilisateur
L'interface graphique permet aux utilisateurs d'interagir avec le système d'exploitation à l'aide d'un dispositif de pointage et
système de menu.
plutôt que de saisir des commandes directement via une interface en ligne de commande, les utilisateurs emploient un
système de fenêtres et de menus basé sur la souris.
Les interfaces graphiques sont apparues pour la première fois sur l'ordinateur Xerox Alto en 1973.
La plupart des systèmes modernes permettent aux utilisateurs individuels de sélectionner leur interface souhaitée, et de
personnaliser son fonctionnement, ainsi que la capacité de passer d'une interface à une autre.
nécessaire.

Interpréteur de commandes Bourne Shell 1 L'interface graphique Mac OS X 1

Département des ISE, APSCE 16


Systèmes d'exploitation

Appels système
System calls is a means to access the services of the operating system.
Généralement écrits en C ou C++, bien que certains soient écrits en assembleur pour des performances optimales.

La figure ci-dessous illustre la séquence des appels système nécessaires pour copier le contenu d'un fichier d'un
fichier (fichier d'entrée) vers un autre fichier (fichier de sortie).

La plupart des programmeurs n'utilisent pas directement les appels système de bas niveau, mais préfèrent utiliser un
Interface de Programmation d'Application, API.
Les API au lieu des appels système directs permettent une plus grande portabilité des programmes entre différents
systèmes.
Les trois API les plus courantes sont l'API Win32 pour Windows et l'API POSIX pour les systèmes basés sur POSIX.
(y compris pratiquement toutes les versions de UNIX, Linux et Mac OS X), et l'API Java pour Java
machine virtuelle (JVM)

Exemple d'API Standard


Considérez la fonction ReadFile() dans l'API Win32—une fonction pour lire à partir d'un fichier

A description of the parameters passed to ReadFile() HANDLE file—the file to be read


LPVOID tampon—un tampon où les données seront lues et écrites.
DWORD bytesToRead—le nombre d'octets à lire dans le tampon
LPDWORD bytesRead—the number of bytes read during the last read
LPOVERLAPPED ovl—indique si l'E/S superposée est utilisée

Département d'ISE, APSCE 17


Systèmes d'exploitation

L'API effectue ensuite les appels système appropriés via l'interface d'appels système, en utilisant un
table d'appels système pour accéder à des appels système numérotés spécifiques, comme montré dans la figure.
Chaque appel système a un appel système numéroté spécifique. La table des appels systèmes (consistant en
le numéro d'appel système et l'adresse du service particulier) invoque une routine de service particulière
pour un appel système spécifique.
L'appelant ne doit rien savoir sur la manière dont l'appel système est implémenté ni sur ce qu'il fait.
pendant l'exécution.

Passage des paramètres d'appel système


Souvent, plus d'informations sont nécessaires que simplement l'identité de l'appel système désiré. Type exact et quantité de
les informations varient en fonction du système d'exploitation et de l'appel

Trois méthodes générales utilisées pour passer des paramètres au système d'exploitation Plus simple : passer les paramètres dans
dans certains cas, il peut y avoir plus de paramètres que de registres
Paramètres stockés dans un ablock, ou tableau, en mémoire, et l'adresse du bloc passée en tant que paramètre dans un
enregistrer Cette approche adoptée par Linux et Solaris
Les paramètres placés, ou poussés, sur la pile par le programme et retirés de la pile par le
système d'exploitation
Les méthodes de bloc et d'empilement ne limitent pas le nombre ou la longueur des paramètres passés.

Transmission de paramètres via le tableau 1

Département d'ISE, APSCE 18


Systèmes d'exploitation

Types d'appels système


Les appels système peuvent être classés en six grandes catégories :

a) Contrôle de Processus
Les appels de système de contrôle de processus incluent fin, annuler, charger, exécuter, créer un processus, terminer
process, get/set process attributes, wait for time or event, signal event, and allocate and free
mémoire.
Des processus doivent être créés, lancés, surveillés, mis en pause, repris et finalement arrêtés.
Quand un processus fait une pause ou s'arrête, alors un autre doit être lancé ou repris.
Les attributs de processus tels que la priorité du processus, le temps d'exécution maximal autorisé, etc. sont définis et
récupéré par OS.
After creating the new process, the parent process may have to wait (wait time), or wait for
un événement à se produire (attendre l'événement).

Le processus renvoie un signal lorsque l'événement s'est produit (événement de signal).

Département d'ISE, APSCE 19


Systèmes d'exploitation

b) Gestion des fichiers


Les fonctions de gestion de fichiers de l'OS sont–
Les appels de système de gestion de fichiers incluent créer un fichier, supprimer un fichier, ouvrir, fermer, lire, écrire,
repositionner, obtenir les attributs de fichier et définir les attributs de fichier.

Après avoir créé un fichier, le fichier est ouvert. Les données sont lues ou écrites dans un fichier.
Le pointeur de fichier peut devoir être repositionné à un point.
Les attributs du fichier comme le nom du fichier, le type de fichier, les autorisations, etc. sont définis et récupérés à l'aide de
appels système.
Ces opérations peuvent également être prises en charge pour les répertoires ainsi que pour les fichiers ordinaires.

c) Gestion des appareils


Les appels du système de gestion des appareils incluent demander un appareil, libérer un appareil, lire, écrire,
repositionner, obtenir/définir les attributs de l'appareil, et attacher ou détacher logiquement les appareils.
Lorsqu'un processus a besoin d'une ressource, une demande de ressource est faite. Ensuite, le contrôle est accordé.
au processus. Si la ressource demandée est déjà attachée à un autre processus, la demande
le processus doit attendre.
Dans les systèmes de multiprogrammation, après qu'un processus a utilisé le périphérique, il doit être renvoyé au système d'exploitation, donc
that another process can use the device.
Les dispositifs peuvent être physiques (par exemple, des disques durs) ou virtuels / abstraits (par exemple, des fichiers, des partitions, et
disques RAM ).

d)Maintenance des informations


Les appels du système de maintenance des informations incluent des appels pour obtenir/définir l'heure, la date, les données système et
attributs de processus, de fichiers ou de dispositifs.
Ces appels système sont utilisés pour transférer les informations entre l'utilisateur et le système d'exploitation.
Informations telles que l'heure et la date actuelles, le nombre d'utilisateurs actuels, le numéro de version du système d'exploitation, la quantité de libre

memory, disk space etc. are passed from OS to the user.


e)Communication
Les appels du système de communication créent/suppriment des connexions de communication, envoient/reçoivent
messages, informations sur le statut de transfert, et attacher/détacher des dispositifs distants.
Le modèle de passage de message doit prendre en charge les appels à :
o Identifiez un processus et/ou un hôte distant avec lequel communiquer.
o Établissez une connexion entre les deux processus.
o Ouvrez et fermez la connexion selon les besoins.
o Transmettre des messages le long de la connexion.
o Attendez les messages entrants, dans un état bloquant ou non-bloquant.
o Supprimez la connexion lorsqu'elle n'est plus nécessaire.
Le modèle de mémoire partagée doit prendre en charge les appels à :
o Créer et accéder à une mémoire partagée entre les processus (et les threads).
o Libérez la mémoire partagée et/ou allouez-la dynamiquement selon les besoins.
Le passage de messages est plus simple et plus facile, (en particulier pour les communications entre ordinateurs), et est
généralement approprié pour de petites quantités de données. Il est facile à mettre en œuvre, mais il y a des appels systèmes pour chaque
processus de lecture et d'écriture.

Dept. d'ISE, APSCE 20


Systèmes d'exploitation

Programmes Système
Une collection de programmes qui offrent un environnement pratique pour le développement et l'exécution de programmes
(autres que le système d'exploitation) sont appelés programmes système ou utilitaires système. Ce n'est pas une partie du noyau ou de la commande
interprètes.
Les programmes système peuvent être divisés en cinq catégories :
1. Gestion de fichiers - programmes pour créer, supprimer, copier, renommer, imprimer, lister et généralement
manipuler des fichiers et des répertoires.
[Link] sur l'état - Services publics à vérifier à la date, à l'heure, au nombre d'utilisateurs, aux processus en cours d'exécution,
enregistrement de données, etc. Les enregistrements système sont utilisés pour stocker et rappeler des informations de configuration pour
applications particulières.
3. Modification de fichier - par exemple, les éditeurs de texte et d'autres outils qui peuvent changer le contenu des fichiers.
[Link] aux langages de programmation - Par exemple : Compilateurs, éditeurs de liens, débogueurs, profileurs, assembleurs,
gestion des archives de bibliothèques, interprètes pour les langues courantes, et support pour la fabrication.
5. Chargement et exécution du programme - chargeurs, chargeurs dynamiques, chargeurs de superposition, etc., ainsi que
débogueurs interactifs.
6. Communications - Programmes pour fournir une connectivité entre les processus et les utilisateurs,
y compris le courrier électronique, les navigateurs Web, les connexions à distance, les transferts de fichiers et l'exécution de commandes à distance.

Conception et mise en œuvre des systèmes d'exploitation


Objectifs de conception
Tout système à concevoir doit avoir ses propres objectifs et spécifications. De même, le système d'exploitation à construire
aura ses propres objectifs en fonction du type de système dans lequel il sera utilisé, le type de
matériel utilisé dans le système, etc.
Les exigences définissent les propriétés que le système final doit avoir, et constituent une étape nécessaire dans
la conception de tout système complexe large. Les exigences peuvent être de deux groupes de base :
[Link] goals (User requirements).
met en avant des éléments que les utilisateurs aiment et comprennent, comme un système qui doit être pratique à utiliser, facile.
apprendre, fiable, sûr et rapide
2. Objectifs du système (exigences du système)
sont écrits pour les développeurs, c'est-à-dire les personnes qui conçoivent le système d'exploitation. Leurs exigences sont comme faciles à
concevoir, mettre en œuvre et maintenir, flexible, fiable, sans erreur et efficace.

Mécanismes et Politiques
Policies determinewhatis to be done. Mechanisms determinehowit is to be
mis en œuvre.
Dans le temporisateur, le compteur et le compteur qui décrémente est le mécanisme et décide comment
longtemps, le temps doit être fixé selon les politiques.
Les politiques changent avec le temps. Dans le pire des cas, chaque changement de politique nécessiterait une
changement dans le mécanisme sous-jacent.
Si elles sont correctement séparées et mises en œuvre, les modifications de politique peuvent être facilement ajustées sans ré-
écrire le code, juste en ajustant des paramètres ou éventuellement en chargeant de nouvelles données
fichiers de configuration.

Dept. D'ISE, APSCE 21


Systèmes d'exploitation

Mise en œuvre
Traditionnellement, les systèmes d'exploitation étaient écrits en langage d'assemblage.
Ces dernières années, les systèmes d'exploitation sont écrits en C ou en C++. Des sections critiques de code sont toujours écrites en
langage d'assemblage.
Le premier système d'exploitation qui n'a pas été écrit en langage d'assemblage était le Programme de Contrôle Maître
(MCP)
Les avantages d'utiliser un langage de haut niveau pour la mise en œuvre des systèmes d'exploitation sont :
Le code peut être écrit plus rapidement, de manière plus compacte, plus facile à porter sur d'autres systèmes et est plus facile à
comprendre et déboguer.
Les seuls inconvénients de la mise en œuvre d'un système d'exploitation dans un langage de haut niveau sont
vitesse réduite et besoins de stockage accrus.

Structure du système d'exploitation


La structure du système d'exploitation doit être soigneusement conçue. La tâche du système d'exploitation est divisée en petits composants et ensuite
interfacés pour travailler ensemble.

Structure Simple
De nombreux systèmes d'exploitation n'ont pas de structures bien définies. Ils ont commencé comme petits, simples et
systèmes limités puis ont dépassé leur portée d'origine.
MS-DOS - écrit pour offrir le maximum de fonctionnalités dans le moindre espace, non divisé en modules. Bien que
MS-DOS a une certaine structure, ses interfaces et niveaux de fonctionnalité ne sont pas bien séparés.

Approche par couches


Le système d'exploitation est divisé en plusieurs couches (niveaux), chacune construite sur des couches inférieures.
la couche inférieure (couche 0) est le matériel ; la plus haute (couche N) est l'interface utilisateur.
Avec la modularité, les couches sont sélectionnées de manière à ce que chacune utilise les fonctions (opérations) et les services uniquement des niveaux inférieurs.
niveaux couches
Le système d'exploitation UNIX se compose de deux parties séparables : le noyau et les programmes système. Le noyau est à son tour
séparé en une série d'interfaces et de pilotes de périphériques. Le noyau fournit le système de fichiers, le CPU
planification, gestion de la mémoire et autres fonctions du système d'exploitation via des appels système.

Structure du système UNIX

Structure de Couche MS-DOS

Département d'ISE, APSCE 22


Systèmes d'exploitation

Approche par couches


Le système d'exploitation est divisé en plusieurs couches (niveaux). Chaque couche repose sur la couche en dessous d'elle, et
s'appuie sur les services fournis par la couche inférieure suivante.
La couche inférieure (couche 0) est le matériel et la couche supérieure est l'interface utilisateur.
Une couche typique est composée de structures de données et de routines qui peuvent être invoquées par des niveaux supérieurs.
couche.
L'avantage de l'approche par couches est la simplicité de la construction et du débogage.
Les couches sont sélectionnées de manière à ce que chacune utilise des fonctions et des services uniquement des couches de niveau inférieur. Donc
simplifie le débogage et la vérification du système.
Les couches sont déboguées une par une à partir de la plus basse et si une couche ne fonctionne pas, alors l'erreur est due
à cette couche seulement, car les couches inférieures sont déjà déboguées. Ainsi, la conception et l'implémentation sont
simplifié.
Une couche n'a pas besoin de savoir comment ses couches inférieures sont implémentées. Ainsi, elle cache les opérations de
couches supérieures.

Inconvénients de l'approche en couches :


Les différentes couches doivent être définies de manière appropriée, car une couche ne peut utiliser que des niveaux inférieurs.
couches.
Moins efficace que d'autres types, car toute interaction avec la couche 0 est requise de la couche supérieure.
L'appel système doit passer par toutes les couches et enfin atteindre la couche 0. C'est une surcharge.
Micro-noyaux
L'idée de base derrière les micro-noyaux est de supprimer tous les services non essentiels du noyau.
rendant ainsi le noyau aussi petit et efficace que possible.
Les services supprimés sont implémentés en tant qu'applications système.
La plupart des micro-noyaux fournissent une gestion de base des processus et de la mémoire, ainsi que le passage de messages
entre d'autres services.
L'avantage du micro-noyau - L'expansion du système peut également être plus facile, car elle ne nécessite que l'ajout de plus.
applications système, ne pas reconstruire un nouveau noyau.
Mach était le premier et le micro-noyau le plus largement connu, et constitue maintenant un élément majeur de Mac
OSX.
L'inconvénient du micro-noyau est qu'il souffre d'une réduction des performances en raison de l'augmentation du système.
fourniture de fonctions.

Département d'ISE, APSCE 23


Systèmes d'exploitation

Structure de MAC OS X

Modules
Le développement moderne des systèmes d'exploitation est orienté objet, avec un noyau central relativement petit et un ensemble de modules.
qui peut être lié dynamiquement.
Chaque composant principal est séparé
Chaque composant communique avec les autres via des interfaces connues. Chacun est chargeable selon les besoins au sein du noyau.
Globalement, similaire aux couches mais avec plus de flexibilité

Approche Modulaire Solaris

Machines Virtuelles
L'idée fondamentale derrière une machine virtuelle est d'abstraire le matériel d'un seul ordinateur (le CPU,
mémoire, disques durs, cartes d'interface réseau, etc.) dans plusieurs environnements d'exécution différents,
créant ainsi l'illusion que chaque environnement d'exécution séparé fonctionne de manière privée.
ordinateur.
Le système d'exploitation hôte est le principal système d'exploitation installé dans le système et les autres systèmes d'exploitation installés dans le système sont appelés
système d'exploitation invité.

Département d'I.S.E, APSCE 24


Systèmes d'exploitation

System modes. (A) Nonvirtual machine (b) Virtual machine

Les machines virtuelles sont apparues pour la première fois en tant que système d'exploitation VM pour les ordinateurs centraux IBM en 1972.

Avantages
Capable de partager le même matériel et d'exécuter plusieurs environnements d'exécution différents (OS).
Le système hôte est protégé des machines virtuelles et les machines virtuelles sont protégées.
les uns des autres. Un virus dans le système d'exploitation invité corrompra ce système d'exploitation mais n'affectera pas l'autre invité.
systèmes et systèmes hôtes.
Bien que les machines virtuelles soient séparées les unes des autres, les ressources logicielles peuvent être
partagé entre eux. Deux manières de partager une ressource s/w pour la communication sont : a) Partager un
système de fichiers volume (partie de la mémoire). b) Développer un réseau de communication virtuel pour
communiquer entre les machines virtuelles.
Le système d'exploitation fonctionne sur et contrôle l'ensemble de la machine. Par conséquent, le système actuel
doit être arrêté et retiré de l'utilisation pendant que des changements sont effectués et testés. Cette période est
communément appelé le temps de développement du système. Dans les machines virtuelles, ce problème est éliminé.
Les programmes utilisateur s'exécutent dans une machine virtuelle et le développement système est effectué dans
un autre environnement.
Plusieurs systèmes d'exploitation peuvent fonctionner simultanément sur le système du développeur. Cela aide à une rapide
portage et test du code des programmeurs dans différents environnements.
Consolidation des systèmes – deux systèmes ou plus sont intégrés pour fonctionner dans un seul système.

Simulation–
Ici, le système hôte a une architecture système et le système invité est compilé dans
une architecture différente. Les programmes du système invité compilés peuvent être exécutés dans un émulateur qui
traduit chaque instruction du programme invité en instructions natives de l'ensemble du système hôte.

Paravirtualisation
Cela présente à l'invité un système qui est similaire mais pas identique à celui préféré par l'invité.
Le système. L'invité doit être modifié pour fonctionner sur le matériel para-virtualisé.

Dépt. D'ISE, APSCE 25


Systèmes d'exploitation

Exemples
VMware
VMware fonctionne comme une application sur un système d'exploitation hôte tel que Windows ou Linux et permet
ce système hôte pour exécuter simultanément plusieurs systèmes d'exploitation invités différents de manière indépendante
machines virtuelles.

Dans le scénario ci-dessous, Linux fonctionne comme le système d'exploitation hôte ; FreeBSD, Windows NT, et
Windows XP fonctionne en tant que systèmes d'exploitation invités. La couche de virtualisation est le cœur de
VMware, car il abstrait le matériel physique en machines virtuelles isolées fonctionnant en tant qu'invités
systèmes d'exploitation. Chaque machine virtuelle a son propre processeur virtuel, sa mémoire, ses disques durs, son réseau
interfaces, et ainsi de suite.

La machine virtuelle Java


Java a été conçu dès le départ pour être indépendant de la plateforme, en exécutant Java uniquement sur un
Java Virtual Machine, JVM, dont différentes implémentations ont été développées pour
de nombreuses plateformes matérielles sous-jacentes différentes.

Le code source Java est compilé en bytecode Java dans des fichiers .class. Le bytecode Java est binaire.
instructions qui s'exécuteront sur la JVM.
La JVM implémente la gestion de la mémoire et la collecte des ordures.
La JVM se compose d'un chargeur de classes et d'un interpréteur Java. Le chargeur de classes charge les fichiers .class compilés.
à la fois du programme Java et de l'API Java pour l'exécution de l'interpréteur Java. Ensuite, il vérifie le
.class fichier pour validité.

Département d'ISE, APSCE 26


Systèmes d'exploitation

GÉNÉRATION DE SYSTÈME D'EXPLOITATION


Les systèmes d'exploitation sont conçus pour fonctionner sur n'importe quelle machine d'une classe ; le système doit être configuré.
pour chaque site informatique spécifique
Le programme SYSGEN obtient des informations concernant la configuration spécifique du système matériel.
Démarrage - démarrer un ordinateur en chargeant le noyau
Programme de démarrage – code stocké dans la ROM qui est capable de localiser le noyau, de le charger en mémoire, et
commence son exécution

DÉMARRAGE DU SYSTÈME
Le système d'exploitation doit être mis à la disposition du matériel afin que le matériel puisse le démarrer.
Petit morceau de code – chargeur bootstrap, localise le noyau, le charge en mémoire et le démarre
Parfois, un processus en deux étapes où le bloc de démarrage à un emplacement fixe charge le chargeur de démarrage.
Lorsque l'alimentation est activée sur le système, l'exécution commence à un emplacement mémoire fixe utilisé pour contenir le microprogramme.
code d'amorçage initial

GESTION DES PROCESSUS


Concept des processus
Un système d'exploitation exécute une variété de programmes : Système par lots – travaux, Systèmes à temps partagé – utilisateur
Les termes programmes ou tâches peuvent être utilisés presque de manière interchangeable.
Un processus est un programme en cours d'exécution ; l'exécution du processus doit progresser de manière séquentielle. Un processus
comprend : compteur de programme, pile, section de données

Le Processus
La mémoire du processus est divisée en quatre sections
La pile est utilisée pour stocker des variables locales, des fonctions
{"parameters":"paramètres","function return values":"valeurs de retour de fonction","return address":"adresse de retour"}

etc.
Le tas est utilisé pour l'allocation dynamique de mémoire.
La section des données stocke des variables globales et statiques.
La section de texte comprend le programme compilé
code.
Veuillez noter qu'il y a un espace libre entre la pile et le
tas. Lorsque la pile est pleine, elle grandit vers le bas et quand
le tas est plein, il grandit vers le haut

Département d'ISE, APSCE 27


Systèmes d'exploitation

Process State
Lorsqu'un processus s'exécute, son état change. Un processus a 5 états. Chaque processus peut être dans l'un des
états suivants–

Nouveau - Le processus est en cours de création.


Prêt - Le processus dispose de toutes les ressources nécessaires pour s'exécuter. Il attend d'être assigné à le
processeur.
Exécution – Les instructions sont en cours d'exécution..
En attente - Le processus attend qu'un événement se produise. Par exemple, le processus peut être en attente
pour l'entrée du clavier, la demande d'accès au disque, les messages inter-processus, un minuteur à déclencher ou un processus enfant
pour finir.
Terminé - Le processus a terminé son exécution.



Bloc de contrôle de processus
Pour chaque processus, il existe un bloc de contrôle de processus (PCB), qui stocke des informations spécifiques au processus.
information.
Process State–The state of the process may be new, ready, running, waiting, and so on.
Compteur de programme - Le compteur indique l'adresse de l'instruction suivante à exécuter pour
ce processus.
Les registres de l'UC - Le nombre et le type de registres varient en fonction de l'architecture de l'ordinateur.
Ils incluent des accumulateurs, des registres d'index, des pointeurs de pile et des registres à usage général. En outre
avec le compteur de programme, ces informations d'état doivent être sauvegardées lorsqu'une interruption se produit, pour permettre
le processus doit être poursuivi correctement par la suite.
Informations sur la planification du CPU - Ces informations incluent une priorité de processus, des pointeurs vers
files d'attente de planification et tout autre paramètre de planification.
Informations sur la gestion de la mémoire - Cela inclut des informations telles que la valeur de la base
et les registres de limite, les tables de pages ou les tables de segments.
Informations comptables – Ces informations incluent la quantité de CPU et le temps réel utilisés.
limites de temps, numéros de compte, numéros de travail ou de processus, etc.
I/O status information–This information includes the list of I/O devices allocated to the
processus, une liste de fichiers ouverts, etc.

Le PCB sert simplement de réservoir pour toute information qui peut varier d'un processus à l'autre.

Dept. D'ISE, APSCE 28


Systèmes d'exploitation

Planification des processus


The objective of multiprogramming is to have some process running at all times, to
maximiser l'utilisation du CPU.
L'objectif du partage du temps est de changer le processeur entre les processus si fréquemment que les utilisateurs
peut interagir avec chaque programme pendant son exécution.
Pour atteindre ces objectifs, le planificateur de processus sélectionne un processus disponible (possiblement à partir de
un ensemble de plusieurs processus disponibles) pour l'exécution du programme sur le CPU.
L'objectif principal de la planification des processus est de garder le CPU occupé en tout temps.

Files d'attente de planification des processus


1. File d'attente des travaux – ensemble de tous les processus dans le système
2. File d'attente prête - ensemble de tous les processus résidant dans la mémoire principale, prêts et attendant à s'exécuter
3. Files d'appareils - ensemble de processus attendant un dispositif I/O. Les processus migrent entre les.
différentes files d'attente

Ces files d'attente sont généralement stockées sous forme de liste chaînée de PCB.
. A queue header will contain two pointers - thehead pointerpointing to the first PCB and thetail
pointeur pointant vers le dernier PCB de la liste.
Chaque PCB a un champ de pointeur qui pointe vers le prochain processus dans la file d'attente.
Une représentation courante de la planification des processus est un diagramme de files d'attente. Chaque boîte rectangulaire dans
le diagramme représente une file d'attente.
Deux types de files d'attente sont présentes : la file d'attente prête et un ensemble de files d'attente de périphériques.
Les cercles représentent les ressources qui servent les files d'attente, et les flèches indiquent l'écoulement de
processus dans le système.

Département d'ISE, APSCE 29


Systèmes d'exploitation

Un nouveau processus est d'abord placé dans la file d'attente prête. Il attend dans la file d'attente prête jusqu'à ce qu'il soit sélectionné pour
exécution et se voit attribuer le CPU.
Une fois que le processus est attribué au CPU et est en cours d'exécution, l'un des plusieurs événements pourrait se produire :
 Le processus pourrait émettre une demande d'E/S, puis être placé dans une file d'attente d'E/S.
 Le processus pourrait créer un nouveau sous-processus et attendre sa terminaison.
 Le processus pourrait être retiré de force du CPU, à la suite d'une interruption, et être mis
de retour dans la file d'attente prête.
Dans les deux premiers cas, le processus passe finalement de l'état d'attente à l'état prêt, et
est ensuite remis dans la file d'attente prête.
Un processus continue ce cycle jusqu'à ce qu'il se termine, moment auquel il est retiré de toutes les files d'attente.

Département d'ISE, APSCE 30


Systèmes d'exploitation

Planificateurs
Schedulers are software which selects an available program to be assigned to CPU.
1. Un planificateur à long terme ou planificateur de tâches – sélectionne des tâches dans le pool de tâches (de la mémoire secondaire,

disque) et les charge dans la mémoire. Il est invoqué très rarement (secondes, minutes). Le
le planificateur à long terme contrôle le degré de multiprogrammation
2. Le planificateur à court terme, ou Planificateur CPU - sélectionne les tâches dans la mémoire et assigne le CPU à
Le planificateur à court terme est invoqué très fréquemment (millisecondes) Þ (doit être rapide)
Le planificateur à moyen terme - sélectionne le processus dans la file d'attente des prêts et le réintroduit dans le
mémoire.
Les processus peuvent être décrits comme étant soit :
1. Processus limité par I/O - passe plus de temps à effectuer des E/S qu'à faire des calculs,
2. Processus lié au CPU - passe plus de temps à effectuer des calculs et peu d'opérations d'E/S.

Un système de planification efficace sélectionnera un bon mélange de processus liés au CPU et d'E/S.
processus liés.
Si le planificateur sélectionne davantage de processus liés à l'E/S, alors la file d'attente des E/S sera pleine et la file d'attente prête.
sera vide.
Si le planificateur sélectionne davantage de processus liés au CPU, alors la file d'attente prête sera pleine et la file d'attente I/O.
sera vide.

Les systèmes de partage de temps emploient un planificateur à moyen terme


Il remplace le processus de la file d'attente prête et échange le processus dans la file d'attente prête.
Lorsque la charge du système augmente, ce planificateur échangera un ou plusieurs processus hors de l'état prêt.
attendre quelques secondes, afin de permettre aux petites tâches plus rapides de se terminer rapidement et de dégager le
système.
Ce processus s'appelle l'échange.

Changement de contexte
La tâche de passer d'un processus à un autre avec un CPU s'appelle le changement de contexte.
Lorsque le CPU passe à un autre processus, le système doit enregistrer l'état de l'ancien processus et
charger l'état enregistré pour le nouveau processus via un changement de contexte
Le contexte d'un processus est représenté dans le PCB
Le temps de changement de contexte est une surcharge ; le système ne fait aucun travail utile pendant le changement de temps
dépendant du support matériel

Opérations sur les processus


1. Process Creation
Un processus peut créer plusieurs nouveaux processus.
Le processus de création s'appelle un processus parent, et les nouveaux processus s'appellent les enfants.
de ce processus.
Chacun de ces nouveaux processus peut à son tour créer d'autres processus. Chaque processus a une unique
ID de processus.

Dépt. de ISE, APSCE 31


Systèmes d'exploitation

Sur les systèmes Solaris typiques, le processus en haut de l'arbre est le processus 'sched' avec un PID de
0.
Le processus 'sched' crée plusieurs processus enfants –init, pageout et fsflush. Pageout et
fsflush est responsable de la gestion de la mémoire et des systèmes de fichiers.
Le processus init avec un PID de 1 sert de processus parent pour tous les processus utilisateur.

Un processus aura besoin de certaines ressources (temps CPU, mémoire, fichiers, périphériques d'E/S) pour accomplir sa
tâche.
Lorsqu'un processus crée un sous-processus, le sous-processus peut être en mesure d'obtenir ses ressources de deux
façons
directement à partir du système d'exploitation.
Le sous-processus peut prendre les ressources du processus parent.
La ressource peut être prise du parent de deux manières –
Le parent peut être amené à répartir ses ressources entre ses enfants
Partagez les ressources entre plusieurs enfants.
Il y a deux options pour le processus parent après avoir créé l'enfant :
Attendez que le processus enfant se termine puis continuez l'exécution. Le parent fait un
appel système wait()
Exécutez en parallèle avec l'enfant, en continuant à exécuter sans attendre.
Deux possibilités pour l'espace d'adresses de l'enfant par rapport au parent :
Le processus enfant est un duplicata du processus parent (il a le même programme et les mêmes données
en tant que parent).
Le processus enfant a un nouveau programme chargé dans celui-ci.

Département d'ISE, APSCE 32


Systèmes d'exploitation

Exemple UNIX
l'appel système fork crée un nouveau processus
L'appel execsystem utilisé après un fork pour remplacer l'espace mémoire du processus par un nouveau
programme
Création de processus

Programme C de fork de processus séparé


int main()
{
pid_t pid;
/* forker un autre processus */
pid = fork();
si (pid < 0)
{
/* une erreur s'est produite */ fprintf(stderr, "Échec du fork");
sortie(-1);
}
sinon si (pid == 0)
{ /* processus enfant */
execlp("/bin/ls", "ls", NULL);
}
sinon
{
/* processus parent */
/* le parent attendra que l'enfant termine */
attendre (NULL);
printf ("Enfant terminé"); exit(0);
}
}

Exemple Windows
dans Windows. Les processus sont créés dans l'API Win32 en utilisant la fonction CreateProcess()
. qui est similaire à fork()
Deux paramètres passés à CreateProcess () sont des instances de STARTUPINFO et
Structures PROCESS_INFORMATION.
STARTUPINFO spécifie de nombreuses propriétés du nouveau processus, telles que la taille de la fenêtre et

Département d'ISE, APSCE 33


Systèmes d'exploitation

apparence et gestion des fichiers d'entrée et de sortie standards.


La structure PROCESS_INFORMATION contient un descripteur et les identifiants du nouveau
proces créé et son fil.
La fonction ZeroMemory() pour allouer de la mémoire pour chacune de ces structures
Les deux premiers paramètres passés à CreateProcess () sont le nom de l'application et la ligne de commande
paramètres. Si le nom de l'application est NULL (comme c'est le cas ici), le paramètre de ligne de commande
spécifie l'application à charger.
WaitForSingleObject() reçoit un handle du processus enfant - [Link] - et attend cela
processus à compléter. Une fois que le processus enfant se termine, le contrôle revient de WaitForSingleObject ()
fonction dans le processus parent

#include <stdio.h>
#include <windows.h>
int principal(VIDE)
{
STARTUPINFO si;
INFORMATIONS_DE_PROCESSUS pi;
}
J'alloue de la mémoire
ZeroMemory(&si, sizeof(si));
[Link] = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
Je crée un processus enfant
si (!CreateProcess(NULL, J'utilise la ligne de commande
"C:\WINDOWS\system32\[Link]", II ligne de commande
NULL, je n'hérite pas de la poignée de processus
{
}
NULL, Je n'hérite pas de la poignée de thread
FAUX, je désactive l'héritage des poignées
0, II pas de drapeaux de création
NULL, j'utilise le bloc d'environnement du parent
NULL, j'utilise le répertoire existant du parent
&oui,
&pi))
fprintf(stderr, "Échec de la création du processus");
retourner -1;
Le parent attendra que l'enfant termine
AttendreUnObjetUnique([Link], INFINI);
printf("Enfant Complété");
Je ferme les poignées
FermerHandle([Link]);
FermezHandle([Link]);

Département d'ISE, APSCE 34


Systèmes d'exploitation

2. Terminaison de processus
Un processus se termine lorsqu'il a fini d'exécuter sa dernière instruction et demande au système d'exploitation
système pour le supprimer, en utilisant l'appel système exit( ).
Toutes les ressources assignées au processus, comme la mémoire, les fichiers ouverts et les tampons d'entrée/sortie, sont
désalloué par le système d'exploitation.
Un processus peut provoquer la terminaison d'un autre processus en utilisant un appel système approprié.
Le processus parent peut terminer ses processus enfants en connaissant le PID de l'enfant.
Un parent peut mettre fin à l'exécution des enfants pour diverses raisons, telles que :
L'enfant a dépassé son utilisation des ressources qui lui ont été attribuées.
La tâche assignée à l'enfant n'est plus nécessaire.
Le parent est en train de sortir, et le système d'exploitation termine tous les enfants. Cela est
appelé résiliation en cascade.

Remarque : Les processus qui essaient de se terminer mais qui ne le peuvent pas parce que leur parent ne l'est pas.
Les processus en attente sont appelés zombies. Ceux-ci sont finalement hérités par init en tant qu'orphelins et
tués. (Les shells UNIX modernes ne produisent pas autant d'orphelins et de zombies que les anciens)
systèmes utilisés pour.

Communication interprocessus
Les processus en cours d'exécution peuvent être des processus coopératifs ou des processus indépendants.

Processus indépendants – processus qui ne peuvent pas affecter d'autres processus ou être affectés par d'autres.
processus s'exécutant dans le système.
Processus de coopération – processus qui peuvent affecter d'autres processus ou être affectés par d'autres processus
exécution dans le système.
La coopération entre les processus est autorisée pour les raisons suivantes–
Information Sharing - There may be several processes which need to access the same file. So
l'information doit être accessible en même temps à tous les utilisateurs.
Computation speedup - Often a solution to a problem can be solved faster if the problem can
être décomposé en sous-tâches, qui sont résolues simultanément (en particulier lorsque plusieurs
des processeurs sont impliqués.)
Modularité - Un système peut être divisé en modules coopérants et exécuté en envoyant
informations entre eux.
Commodité - Même un seul utilisateur peut travailler sur plusieurs tâches en partageant des informations.
Les processus coopérants nécessitent une certaine forme de communication inter-processus. Cela est permis par deux
models : 1(Shared Memory systems 2)Message Passing systems.

Dans le modèle de mémoire partagée, une région de mémoire qui est partagée par des processus coopérants est
établi. Les processus peuvent alors échanger des informations en lisant et en écrivant des données sur le partagé
région.
Dans le modèle de passage de messages, la communication se fait par le biais de messages échangés.
entre les processus coopérants. Les deux modèles de communication sont contrastés dans la Figure

Dépt. d'ISE, APSCE 35


Systèmes d'exploitation

N° Mémoire Partagée Passage de message

1. Une région de mémoire est partagée par L'échange de messages se fait entre les processus
processus de communication, dans lesquels le en utilisant des objets.
l'information est écrite et lue

2. Useful for sending large block of data Utile pour envoyer de petites données.

3. L'appel système est utilisé uniquement pour créer un partagé L'appel système est utilisé lors de chaque lecture et écriture
mémoire opération.
4. Le message est envoyé plus rapidement, car il n'y a pas de Le message est communiqué lentement.
appels système
Systèmes à Mémoire Partagée
Une région de mémoire partagée est créée au sein de l'espace d'adresses d'un processus, qui doit
communiquer. D'autres processus qui ont besoin de communiquer utilisent cette mémoire partagée.
Le processus doit veiller à ce que les deux processus n'écrivent pas les données dans la mémoire partagée à
en même temps.
Considérez un problème de producteur-consommateur. Un processus de production produit des informations qui sont
consommé par un processus de consommation. Par exemple, un compilateur peut produire du code assembleur, qui est
consumé par un assembleur. L'assembleur, à son tour, peut produire des modules d'objet, qui sont
consommé par le chargeur.
Une solution au problème du producteur-consommateur utilise la mémoire partagée où un tampon d'éléments que
peut être rempli par le producteur et vidé par le consommateur, est disponible dans une région de mémoire qui
est partagé par les processus producteurs et consommateurs.
Deux types de tampons peuvent être utilisés
Le tampon sans limites pratiquement aucune limite sur la taille du tampon
le tampon borné suppose qu'il y a une taille de tampon fixe
Le tampon partagé est implémenté comme un tableau circulaire avec deux pointeurs logiques : entrée et sortie.
la variable pointe vers la prochaine position libre dans le tampon ; out pointe vers la première position pleine dans le
le tampon. Le tampon est vide lorsque in == out ; le tampon est plein lorsque ((in + 1) % TAILLE_TAMPON) ==
dehors

Département d'ISE, APSCE 36


Systèmes d'exploitation

#define TAILLE_D_BUFFER 10
typedef struct
{
...
} élément;
élément tampon[BUFFER_SIZE];
int in = 0;
int sortie = 0;

Le processus du producteur a une variable locale nextProduced dans laquelle le nouvel article à produire est
stocké. Le processus consommateur a une variable locale next Consumed dans laquelle l'élément à être
les consommés sont stockés. Ce schéma permet au maximum BUFFER_SIZE - 1 éléments dans le tampon au même
temps.

Processus de production
tant que (vrai) {
/* Produire un article */
tant que (((in = (in + 1) % TAILLE DU BUFFER count) == out)); /* ne rien faire -- pas de buffers libres */
buffer[in] = élément;
in = (in + 1) % TAILLE DU BUFFER;
}

Processus de consommation
tant que (vrai)
{
pendant que (in == out); // ne rien faire -- rien à consommer
// supprimer un élément du tampon
item = tampon[out];
out = (out + 1) % TAILLE DU BUFFER;
retourner l'article;

2. Systèmes de passage de messages


Mécanisme permettant aux processus de communiquer et de synchroniser leurs actions.
Le système de messagerie - les processus communiquent entre eux sans recourir à des variables partagées
L'installation IPC fournit deux opérations :
osend(message)–taille du message fixe ou variable
recevoir(message)
Si deux processus P et Q souhaitent communiquer, ils doivent :
établir un lien de communication entre eux
Échanger des messages via l'envoi/réception Mise en œuvre du lien de communication : physique
(par exemple, mémoire partagée, bus matériel) logique (par exemple, propriétés logiques)

Département d'ISE, APSCE 37


Systèmes d'exploitation

plusieurs méthodes pour implémenter logiquement un lien et les opérations send 0 et receive() :
Communication directe ou indirecte
Communication synchrone ou asynchrone
Mise en mémoire tampon automatique ou explicite
Les problèmes suivants sont liés à chacun de ces facteurs

1. Naming
Les processus qui souhaitent communiquer doivent avoir un moyen de se référer les uns aux autres. Ils peuvent utiliser soit un moyen direct, soit
communication indirecte.
i. Communication directe - chaque processus qui souhaite communiquer doit explicitement nommer le
destinataire ou expéditeur du
envoyer(P, message)–envoyer un message au processus P
recevoir(Q, message)–recevoir un message du processus Q
Propriétés du lien de communication utilisé dans ce schéma
oLiens sont établis automatiquement
Un lien est associé à exactement une paire de processus de communication. Entre chaque paire.
il existe exactement un lien
Le lien peut être unidirectionnel, mais est généralement bidirectionnel
Ce schéma présente de la symétrie dans l'adressage ; c'est-à-dire que le processus d'envoi et le récepteur
le processus doit nommer l'autre pour communiquer.
osend(P, message) -Envoyer un message au processus P.
oreceive (id, message) -Recevoir un message de n'importe quel processus ; la variable id est définie sur le
nom du processus par lequel la communication a eu lieu.
ii. Communication indirecte-
Les messages sont dirigés et reçus des boîtes aux lettres (également appelées ports) Chaque
la boîte aux lettres a un identifiant unique.
Les processus ne peuvent communiquer que s'ils partagent une boîte aux lettres. Propriétés du lien de communication.
oLink établi uniquement si les processus partagent une boîte aux lettres commune Un lien peut être associé à
de nombreux processus
Chaque paire de processus peut partager plusieurs liens de communication. Un lien peut être unidirectionnel.
ou bidirectionnel
Opérations
Maintenant supposons que les processus P1, P2 et P3 partagent tous la boîte aux lettres A. Le processus P1 envoie un message à
A, alors que P2 et P3 exécutent tous deux un receive() de A. Quel processus recevra le message ?
envoyé par P1 ? La réponse dépend de la méthode que nous choisissons parmi les suivantes.
Autoriser un lien à être associé à au maximum deux processus.
Autoriser au maximum un processus à la fois à exécuter une opération de réception 0.
Autoriser le système à sélectionner arbitrairement quel processus recevra le message (c'est-à-dire,
soit P2 ou P3, mais pas les deux, recevra le message.
Une boîte aux lettres peut être possédée soit par un processus, soit par le système d'exploitation. Si la boîte aux lettres est
possédé par un processus, nous faisons ensuite la distinction entre le propriétaire et l'utilisateur
Puisque chaque boîte aux lettres a un propriétaire unique, il ne peut y avoir aucune confusion sur quel processus
devrait recevoir un message envoyé à cette boîte aux lettres.

Département d'ISE, APSCE 38


Systèmes d'exploitation

Une boîte aux lettres qui appartient au système d'exploitation a une existence propre. Elle est
indépendant et n'est attaché à aucun processus particulier.
Le système d'exploitation doit alors fournir un mécanisme qui permet à un processus de faire le
suivant
Créer une nouvelle boîte aux lettres.
Envoyer et recevoir des messages via la boîte aux lettres.
Supprimer une boîte aux lettres.

2. Synchronisation
Le passage de messages peut être soit bloquant, soit non bloquant
Le blocage est considéré comme synchrone
Le blocage de l'envoi empêche l'expéditeur de continuer tant que le message n'est pas reçu
Le blocage de la réception fait que le récepteur reste bloqué jusqu'à ce qu'un message soit disponible. Non-bloquant est
considéré comme asynchrone
L'envoi non-bloquant permet à l'expéditeur d'envoyer le message et de continuer
La réception non bloquante permet au récepteur de recevoir un message valide ou null

3. Mise en mémoire tampon

File de messages attachée au lien ; mise en œuvre de l'une des trois manières
La capacité de la file d'attente Zero est de 0 messages. Ainsi, le lien ne peut pas avoir de messages.
attendre à cela. Dans ce cas, l'expéditeur doit se bloquer jusqu'à ce que le destinataire reçoive le message.
Capacité bornée La file d'attente a une longueur finie n ; ainsi, au maximum n messages peuvent y résider.
Si la file d'attente n'est pas pleine lorsqu'un nouveau message est envoyé, le message est placé dans la file d'attente et
l'expéditeur peut continuer l'exécution sans attendre. La capacité du lien est toutefois finie. Si
le lien est plein, l'expéditeur doit bloquer jusqu'à ce qu'il y ait de l'espace disponible dans la file d'attente.
Capacité non bornée - La longueur de la file d'attente est potentiellement infinie ; ainsi, n'importe quel nombre de
les messages peuvent attendre dedans. L'expéditeur ne bloque jamais

Dépt. d'ISE, APSCE 39


Systèmes d'exploitation

Questions
{"definition":"1) Définissez un système d'exploitation. Quel est le point de vue du système sur un système d'exploitation ?"}

2) What is OS? Explain multiprogramming and time sharing systems.


3) Expliquer le fonctionnement en mode double dans le système d'exploitation avec un schéma bloc soigné
4) Qu'est-ce que les appels système ? Expliquez brièvement ses types. Écrivez la séquence d'appels système pour copier un fichier depuis la source.
à destination
5) Qu'est-ce que les machines virtuelles ? Expliquez avec un diagramme en blocs. Indiquez ses avantages.
6) Expliquez les avantages de l'approche par couches, avec un diagramme.
7) Expliquez les types de systèmes multiprocesseurs et les types de cluster. Qu'est-ce que les systèmes tolérants aux pannes ?
8) Quelles sont les activités dont le système d'exploitation est responsable, en rapport avec :
i. Process management ii) File management
9) Faites la distinction entre le multiprogrammation et le multiprocesseur.
10) Quelles sont les différentes manières dont le Pthread se termine
11) Expliquez deux facilités fournies pour mettre en œuvre un processus d'interaction dans un langage de programmation et
système d'exploitation.
12) 1Quelles sont les propriétés essentielles des systèmes d'exploitation par lots, en temps réel et distribués
13) La séparation du mécanisme et de la politique est-elle souhaitable lors de la conception d'un système d'exploitation ? Discutez avec

exemple.
14) Expliquez comment un système d'exploitation peut être vu comme un gestionnaire de ressources.
15) Qu'est-ce qu'un système d'exploitation distribué ? Quels sont les avantages du système d'exploitation distribué ?
16) Qu'est-ce que les appels systèmes ? Avec des exemples, expliquez les différentes catégories d'appels systèmes.
17) Briefly explain the clustered systems and real time systems.
18) Expliquez la 'dégradation gracieuse' et la 'tolérance aux pannes' dans un système multiprocesseur
19) Qu'est-ce qu'une 'machine virtuelle'? Expliquez le compilateur just-in-time (JIT), utilisé dans une machine virtuelle Java.
20) Define: (i) Micro Kernel (ii) Bootstrap program (iii) Caching (iv) trap (v) Job Pool
21) Quelles sont les opérations du système d'exploitation ? Expliquez. (6)

22) ) Donnez les caractéristiques des systèmes de multiprocession symétriques et asymétriques. (4)
23) Give the features ofsymmetricandasymmetricmultiprocessing systems.
24) Listez et expliquez les avantages d'un système multimultiprocesseur.
25) Différenciez la communication inter-processus directe et indirecte
26) Décrivez les actions qu'un système d'exploitation effectue pour changer de contexte entre les processus.
{"question":"27) Qu'est-ce qu'un processus ? Avec un diagramme d'état, expliquez les états d'un processus. Écrivez également la structure d'un processus."}

bloc de contrôle (8)


28) Définir IPC (Communication entre processus). Quelles sont les différentes méthodes utilisées pour la logique ?
mise en œuvre d'un système de passage de messages ?
29) Décrivez la mise en œuvre de la communication inter-processus (IPC) en utilisant la mémoire partagée et le passage de messages.

30) Expliquez brièvement les classes de services communs fournis par les différents systèmes d'exploitation pour aider le
utilisateur et pour garantir le bon fonctionnement du système.

Dept. d'ISE, APSCE 40


Systèmes d'exploitation

Département d'ISE, APSCE 41

Vous aimerez peut-être aussi