0% ont trouvé ce document utile (0 vote)
29 vues16 pages

Chapitre 2 Système D'exploitation PDF

Le document fournit un aperçu des systèmes d'exploitation, décrivant leur rôle dans la gestion du matériel informatique et des ressources pour fournir un environnement aux programmes d'application. Il aborde les systèmes d'exploitation du point de vue de l'utilisateur et du système. Pour les utilisateurs, les systèmes d'exploitation sont conçus pour la facilité d'utilisation, la performance ou l'allocation des ressources en fonction du contexte. En tant que programme système, le système d'exploitation alloue des ressources telles que le temps CPU et la mémoire pour contrôler les dispositifs et gérer l'exécution des programmes. Le document décrit également les composants de base d'un système informatique et comment les systèmes d'exploitation initialisent le système et gèrent les interruptions.

Transféré 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)
29 vues16 pages

Chapitre 2 Système D'exploitation PDF

Le document fournit un aperçu des systèmes d'exploitation, décrivant leur rôle dans la gestion du matériel informatique et des ressources pour fournir un environnement aux programmes d'application. Il aborde les systèmes d'exploitation du point de vue de l'utilisateur et du système. Pour les utilisateurs, les systèmes d'exploitation sont conçus pour la facilité d'utilisation, la performance ou l'allocation des ressources en fonction du contexte. En tant que programme système, le système d'exploitation alloue des ressources telles que le temps CPU et la mémoire pour contrôler les dispositifs et gérer l'exécution des programmes. Le document décrit également les composants de base d'un système informatique et comment les systèmes d'exploitation initialisent le système et gèrent les interruptions.

Transféré 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

Chapitre 2 : Système d'exploitation

2.1 Introduction
Un système d'exploitation (SE) est un programme qui gère le matériel de l'ordinateur. Il fournit également une base pour
programmes d'application et sert d'intermédiaire entre l'utilisateur de l'ordinateur et l'ordinateur
matériel. Un aspect incroyable des systèmes d'exploitation est la variété qu'ils offrent pour accomplir ces tâches.
Les systèmes d'exploitation de mainframe sont conçus principalement pour optimiser l'utilisation du matériel. Personnel
Les systèmes d'exploitation informatiques (PC) prennent en charge des jeux complexes, des applications professionnelles et tout le reste.

entre. Les systèmes d'exploitation pour ordinateurs portables sont conçus pour fournir un environnement dans lequel
un utilisateur peut facilement interagir avec l'ordinateur pour exécuter des programmes. Ainsi, certains systèmes d'exploitation sont

conçu pour être pratique, d'autres pour être efficaces, et d'autres une combinaison des deux.

Parce qu'un système d'exploitation est vaste et complexe, il doit être créé pièce par pièce. Chacune de ces
les pièces devraient être une portion bien délimitée du système, avec des entrées et sorties soigneusement définies, et
Fonctions. Dans ce chapitre, un aperçu général des principaux composants d'un système d'exploitation sera
discuté.

Objectif d'un système d'exploitation

Un système informatique peut être divisé grossièrement en quatre composants : le matériel / le système d'exploitation,
les programmes d'application et les utilisateurs.

Le matériel, l'unité centrale de traitement (UC), la mémoire et les dispositifs d'entrée/sortie (E/S) fournissent
les ressources informatiques de base pour le système. Les programmes d'application tels que les traitements de texte,
tableurs, compilateurs et navigateurs Web - définissent les manières dont ces ressources sont utilisées pour résoudre
les problèmes informatiques des utilisateurs. Le système d'exploitation contrôle le matériel et coordonne son utilisation entre
les différents programmes d'application pour les différents utilisateurs.

Nous pouvons également considérer un système informatique comme constitué de matériel, de logiciels et de données. Le système d'exploitation

le système fournit les moyens d'une utilisation appropriée de ces ressources dans le fonctionnement du système informatique.
Un système d'exploitation est similaire à un gouvernement. Comme un gouvernement, il n'exécute aucune fonction utile par
elle-même. Elle fournit simplement un environnement dans lequel d'autres programmes peuvent effectuer un travail utile.

Pour comprendre plus pleinement le rôle des systèmes d'exploitation, nous allons ensuite explorer les systèmes d'exploitation sous deux angles.

points de vue : celui de l'utilisateur et celui du système.

Vue de l'utilisateur

La vue de l'utilisateur sur l'ordinateur varie en fonction de l'interface utilisée. La plupart des utilisateurs d'ordinateurs sont assis dans

devant un PC, composé d'un moniteur, d'un clavier, d'une souris et d'une unité centrale. Un tel système est conçu pour

Chapitre 2 du cours computationnel Page 1


un utilisateur pour monopoliser ses ressources. L'objectif est de maximiser le travail (ou le jeu) que l'utilisateur est
effectuer. Dans ce cas, le système d'exploitation est principalement conçu pour la facilité d'utilisation avec une certaine attention
payé pour la performance et non payé pour l'allocation des ressources c'est-à-dire comment divers matériels et logiciels
les ressources sont partagées. La performance est, bien sûr, importante pour l'utilisateur ; mais de tels systèmes sont optimisés
pour l'expérience d'un seul utilisateur plutôt que pour les exigences de plusieurs utilisateurs.

Dans d'autres cas, un utilisateur est assis à un terminal connecté à un mainframe ou à un mini-ordinateur. D'autres utilisateurs sont
accéder au même ordinateur via d'autres terminaux. Ces utilisateurs partagent des ressources et peuvent échanger
information. Le système d'exploitation dans de tels cas est conçu pour maximiser l'utilisation des ressources - pour assurer
que tout le temps CPU disponible, la mémoire et les entrées/sorties soient utilisés efficacement et qu'aucun utilisateur individuel ne prenne plus

que sa part équitable.

Dans d'autres cas, les utilisateurs sont assis à un poste de travail connecté à des réseaux d'autres postes de travail et serveurs.
Ces utilisateurs ont des ressources dédiées à leur disposition, mais ils partagent également des ressources telles que
réseautage et serveurs - serveurs de fichiers, de calcul et d'impression. Par conséquent, leur système d'exploitation est conçu
pour trouver un compromis entre l'utilisabilité individuelle et l'utilisation des ressources.

Récemment, de nombreuses variétés d'ordinateurs portables sont à la mode. La plupart de ces appareils sont
unités autonomes pour utilisateurs individuels. Certaines sont connectées à des réseaux, soit directement par câble soit (plus
souvent) par le biais de modems sans fil et de réseaux. En raison des limitations de puissance, de vitesse et d'interface,
ils effectuent relativement peu d'opérations à distance. Leurs systèmes d'exploitation sont principalement conçus pour
l'utilisabilité individuelle, mais la performance par unité d'autonomie de batterie est également importante.

Certains ordinateurs ont peu ou pas de vue utilisateur. Par exemple, des ordinateurs intégrés dans des appareils domestiques et
Les automobiles peuvent avoir des claviers numériques et peuvent allumer ou éteindre des feux clignotants pour indiquer leur statut, mais elles

et leurs systèmes d'exploitation sont conçus principalement pour fonctionner sans intervention de l'utilisateur.

Vue du système

Du point de vue de l'ordinateur, le système d'exploitation est le programme le plus intimement impliqué avec
le matériel. Dans ce contexte, nous pouvons considérer un système d'exploitation comme un allocateur de ressources. Un ordinateur
Le système dispose de nombreuses ressources qui peuvent être nécessaires pour résoudre un problème : temps CPU, espace mémoire, fichier -

espace de stockage, périphériques d'E/S, etc. Le système d'exploitation agit en tant que gestionnaire de ces ressources.
Faisant face à de nombreuses demandes, éventuellement conflictuelles, de ressources, le système d'exploitation doit décider comment
les attribuer à des programmes et utilisateurs spécifiques afin de faire fonctionner le système informatique de manière efficace
et de manière équitable. Comme nous l'avons vu, l'allocation des ressources est particulièrement importante lorsque de nombreux utilisateurs accèdent au

même système central ou minordinateur.

Une vue légèrement différente d'un système d'exploitation met l'accent sur la nécessité de contrôler les différents périphériques d'E/S.
et les programmes utilisateur. Un système d'exploitation est un programme de contrôle. Un programme de contrôle gère l'exécution
des programmes utilisateurs pour prévenir les erreurs et l'utilisation incorrecte de l'ordinateur. Il concerne particulièrement
l'opération et le contrôle des dispositifs d'entrée/sortie.

Chapitre 2 du cours de calcul Page 2


Définir les systèmes d'exploitation

Nous avons examiné le rôle du système d'exploitation du point de vue de l'utilisateur et du système. Comment,
Cependant, pouvons-nous définir ce qu'est un système d'exploitation ? En général, nous n'avons pas de définition complètement adéquate.

définition d'un système d'exploitation. Les systèmes d'exploitation existent parce qu'ils offrent une manière raisonnable de résoudre
le problème de la création d'un système informatique utilisable. L'objectif fondamental des systèmes informatiques est de
exécuter des programmes utilisateur et faciliter la résolution des problèmes des utilisateurs. Dans ce but, le matériel informatique
est construit. Étant donné que le matériel nu seul n'est pas particulièrement facile à utiliser, les programmes d'application sont
développés. Ces programmes nécessitent certaines opérations communes, telles que celles contrôlant les E/S
Les fonctions communes de contrôle et d'allocation des ressources sont ensuite rassemblées dans
un morceau de logiciel : le système d'exploitation.

De plus, nous n'avons pas de définition acceptée universellement de ce qui fait partie du système d'exploitation. Un simple
le point de vue est qu'il inclut tout ce qu'un vendeur expédie lorsque vous commandez "le système d'exploitation." Le
Les fonctionnalités incluses, cependant, varient énormément d'un système à l'autre. Certains systèmes occupent moins d'un mégaoctet de
espace et manquent même d'un éditeur plein écran, tandis que d'autres nécessitent des gigaoctets d'espace et sont entièrement
basé sur des systèmes graphiques de fenêtres. Une définition plus courante, et celle que nous suivons généralement,
c'est que le système d'exploitation est le programme qui fonctionne en tout temps sur l'ordinateur - généralement appelé le
noyau. (Avec le noyau, il existe deux autres types de programmes : les programmes système qui sont
associés au système d'exploitation mais ne font pas partie du noyau, et les programmes d'application qui
inclure tous les programmes non associés au fonctionnement du système.)

Organisation des systèmes informatiques

Un système informatique généraliste moderne se compose d'un ou plusieurs processeurs et d'un certain nombre de dispositifs.

des contrôleurs connectés via un bus commun qui permet l'accès à une mémoire partagée (Figure 1.2). Chaque
le contrôleur de périphérique est responsable d'un type spécifique de périphérique (par exemple, des disques durs, des périphériques audio, et
les écrans vidéo). Le processeur et les contrôleurs de périphérique peuvent s'exécuter en concurrence, se disputant la mémoire
cycles. 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.

Pour qu'un ordinateur commence à fonctionner - par exemple, lorsqu'il est sous tension ou redémarré - il doit disposer d'un
programme initial à exécuter. Ce programme initial, ou a tendance à être simple. En général, il est stocké en lecture seule
mémoire (ROM) ou mémoire morte électriquement effaçable et programmable (EEPROM) connue par le
terme général du firmware dans le matériel informatique. Il initialise tous les aspects du système, du CPU
les registres des contrôleurs de périphériques vers le contenu de la mémoire. Le programme de démarrage doit savoir comment charger le

système d'exploitation et comment commencer à exécuter ce système. Pour atteindre cet objectif, le bootstrap
le programme doit localiser et charger dans la mémoire le noyau du système d'exploitation. Le système d'exploitation ensuite
commence l'exécution du premier processus, tel que "init", et attend qu'un événement se produise.

L'occurrence d'un événement est généralement signalée par une interruption provenant soit du matériel, soit du logiciel.
Le matériel peut déclencher une interruption à tout moment en envoyant un signal au processeur, généralement par le biais de la

Chapitre 2 du cours computationnel Page 3


bus système. Le logiciel peut déclencher une interruption en exécutant une opération spéciale appelée appel système (également
appelé une cellule de moniteur). Lorsque le CPU est interrompu, il arrête ce qu'il est en train de faire et transfère immédiatement
exécution à un emplacement fixe. L'emplacement fixe contient généralement l'adresse de départ où le service
la routine de l'interruption est située. La routine de service d'interruption s'exécute ; à l'achèvement, le CPU
reprend le calcul interrompu

Les interruptions sont une partie importante de l'architecture des ordinateurs. Chaque conception d'ordinateur a sa propre interruption.

mécanisme, mais plusieurs fonctions sont communes. L'interruption doit transférer le contrôle à l'approprié
routine de service d'interruption.

2.2 Types de système d'exploitation

Tâches simples et multitâches

Un système à tâche unique ne peut exécuter qu'un seul programme à la fois, tandis qu'un système d'exploitation multitâche
permet à plusieurs programmes de s'exécuter en concurrence. Cela est réalisé par le partage du temps, divisant
le temps processeur disponible entre plusieurs processus qui sont chacun interrompus à plusieurs reprises dans le temps
tranches par un sous-système de planification des tâches du système d'exploitation. Le multitâche peut être caractérisé par
types préemptifs et coopératifs. Dans le multitâche préemptif, le système d'exploitation découpe le CPU
temps et consacre un créneau à chacun des programmes. Les systèmes d'exploitation de type UNIX, par exemple,
Solaris, Linux, ainsi queAmigaOSprendre en charge le multitâche préemptif. Le multitâche coopératif est réalisé
en comptant sur chaque processus pour fournir du temps aux autres processus de manière définie. Versions 16 bits de
Microsoft Windows utilisait le multitâche coopératif. Les versions 32 bits de Windows NT et Win9x,
utilisé le multitâche préemptif.

Utilisateur unique et multi-utilisateur

Les systèmes d'exploitation monousagers n'ont pas de fonctionnalités pour distinguer les utilisateurs, mais peuvent permettre à plusieurs programmes de

fonctionnent en tandem. Un système d'exploitation multi-utilisateur étend le concept de base du multitâche avec des installations
qui identifient les processus et les ressources, comme l'espace disque, appartenant à plusieurs utilisateurs et au système
permet à plusieurs utilisateurs d'interagir avec le système en même temps. Les systèmes d'exploitation à temps partagé
planifier des tâches pour une utilisation efficace du système et peut également inclure un logiciel de comptabilité pour le coût
allocation du temps processeur, du stockage de masse, de l'impression et d'autres ressources à plusieurs utilisateurs.

Distribué

Un système d'exploitation distribué gère un groupe d'ordinateurs distincts et les fait apparaître comme un tout.
un ordinateur unique. Le développement des ordinateurs en réseau qui pouvaient être reliés et communiquer avec
l'un l'autre a donné naissance à l'informatique distribuée. Les calculs distribués sont effectués sur plus de
une machine. Lorsque des ordinateurs en groupe travaillent en coopération, ils forment un système distribué.

Modélisé

Chapitre 2 du cours de calcul Page 4


Dans un contexte de système d'exploitation, d'informatique distribuée et de cloud computing, le templating fait référence à la création d'une seule machine virtuelle.

image en tant que système d'exploitation invité, puis en la sauvegardant comme un outil pour plusieurs machines virtuelles en cours d'exécution. Le

la technique est utilisée à la fois dans la virtualisation et la gestion du cloud computing, et est courante dans les grandes
entrepôts de serveurs.

Intégré

Les systèmes d'exploitation intégrés sont conçus pour être utilisés dans des systèmes informatiques embarqués. Ils sont
conçu pour fonctionner sur de petites machines comme les PDA avec moins d'autonomie. Ils sont capables de fonctionner avec un
nombre limité de ressources. Ils sont très compacts et extrêmement efficaces par conception. Windows CE et
Minix 3 est un exemple de systèmes d'exploitation embarqués.

Temps réel

Un système d'exploitation temps réel est un système d'exploitation qui garantit de traiter des événements ou des données dans un
une certaine période de temps. Un système d'exploitation en temps réel peut être mono-tâche ou multitâche, mais lorsque
le multitâche, il utilise des algorithmes de planification spécialisés afin qu'une nature déterministe du comportement soit
réalisé. Un système piloté par des événements bascule entre les tâches en fonction de leurs priorités ou d'événements externes
tandis que les systèmes d'exploitation à temps partagé changent de tâches en fonction des interruptions d'horloge.

Bibliothèque

Un système d'exploitation de bibliothèque est celui dans lequel les services qu'un système d'exploitation typique fournit, tels que
le réseautage, sont fournis sous forme de bibliothèques. Ces bibliothèques sont composées avec l'application et
code de configuration pour construire des unikernels —qui sont des espaces machine spécialisés à adresse unique
images qui peuvent être déployées dans des environnements cloud ou intégrés.

2.3 Fonctions du système d'exploitation

Gestion des processus

Le microprocesseur (ou unité centrale de traitement (CPU), ou simplement processeur) est le composant central de la
ordinateur, et est d'une manière ou d'une autre impliqué dans tout ce que l'ordinateur fait. Un programme informatique
se compose d'une série d'instructions en code machine que le processeur exécute une à la fois. Cela signifie
qu'un système informatique peut, à tout moment donné, n'exécuter que
autant d'instructions de programme qu'il y a de processeurs. Dans un système à processeur unique, donc, seul un
un programme peut être en cours d'exécution à tout moment. Le fait qu'un ordinateur de bureau moderne puisse télécharger
fichiers d'Internet, lecture de fichiers musicaux et exécution de diverses applications tout à (apparemment) la même
le temps est dû au fait que le processeur peut exécuter plusieurs millions d'instructions de programme par
deuxièmement, permettant au système d'exploitation d'allouer un certain temps de processeur à chaque programme de manière transparente
manière. Ces dernières années, l'accent dans la fabrication de processeurs a été mis sur la production de processeurs multi-cœurs

Chapitre 2 du cours de calcul Page 5


processeurs qui permettent à l'ordinateur d'exécuter plusieurs processus ou threads de traitements en même temps
afin d'augmenter la rapidité et les performances.

Qu'est-ce qu'un processus ?

Essentiellement, un processus est ce qu'un programme devient lorsqu'il est chargé en mémoire à partir d'un secondaire.
média de stockage comme un disque dur ou un lecteur optique. Chaque processus a son propre espace d'adresses, ce qui
contient généralement à la fois des instructions de programme et des données. Malgré le fait qu'un processeur individuel ou
Le cœur du processeur ne peut exécuter qu'une seule instruction de programme à la fois, un grand nombre de processus peuvent être
exécuté sur une période relativement courte en attribuant brièvement chaque processus au processeur dans
tourner. Pendant qu'un processus s'exécute, il a le contrôle complet du processeur, mais à un certain moment, le
le système d'exploitation doit reprendre le contrôle, par exemple lorsqu'il doit attribuer le processeur au suivant
Le processus. L'exécution d'un processus particulier sera suspendue si ce processus demande une opération d'entrée/sortie, si
une interruption se produit, ou si le processus dépasse le délai.

Lorsqu'un utilisateur démarre un programme d'application, le planificateur de haut niveau (HLS) du système d'exploitation charge tout ou
une partie du code du programme depuis le stockage secondaire dans la mémoire. Il crée ensuite une structure de données dans
mémoire appelée un bloc de contrôle de processus (PCB) qui sera utilisée pour stocker des informations sur le processus,
tels que son état actuel et l'endroit où il est situé dans la mémoire. Le système d'exploitation maintient également un
table des processus séparée en mémoire qui répertorie tous les processus utilisateur actuellement chargés. Lorsqu'un nouveau processus
est créé, il se voit attribuer un numéro d'identification de processus unique (PID) et un nouvel enregistrement est créé pour lui dans
la table des processus qui inclut l'adresse du bloc de contrôle de processus en mémoire. Ainsi que
allocation d'espace mémoire, chargement du processus et création des structures de données nécessaires, le système d'exploitation
le système doit également allouer des ressources telles que l'accès aux périphériques d'entrée/sortie et à l'espace disque si le processus le nécessite

Les informations sur les ressources allouées à un processus sont également conservées dans le contrôle du processus.
bloc. Le planificateur de bas niveau du système d'exploitation (LLS) est responsable de l'allocation du temps CPU à chaque
traiter à tour de rôle.

États de processus

Le diagramme d'état du processus simple ci-dessous montre trois états possibles pour un processus. Ils sont montrés
comme prêt (le processus est prêt à s'exécuter lorsqu'un processeur devient disponible), en cours d'exécution (le processus est
actuellement exécuté par un processeur) et bloqué (le processus attend qu'un événement spécifique se produise
avant qu'il puisse avancer). Les lignes reliant les états représentent des transitions possibles d'un état à
un autre. À tout instant, un processus existera dans l'un de ces trois états. Sur un ordinateur à processeur unique,
seul un processus peut être en état d'exécution à un moment donné. Les processus restants seront soit
soyez prêt ou bloqué, et pour chacun de ces états, il y aura une file d'attente de processus attendant quelque chose
événement.

Chapitre 2 du cours computationnel Page 6


Un diagramme d'état de processus simple à trois états

Notez que certaines règles s'appliquent ici. Les processus entrant dans le système doivent d'abord passer dans l'état prêt. Un
un processus ne peut entrer dans l'état d'exécution qu'à partir de l'état prêt. Un processus ne peut normalement quitter que
système à partir de l'état d'exécution, bien qu'un processus en état prêt ou bloqué puisse être annulé par le
système (en cas d'erreur, par exemple), ou par l'utilisateur. Bien que le modèle à trois états montré
ce qui précède est suffisant pour décrire le comportement des processus en général, le modèle doit être étendu pour permettre
pour d'autres possibilités, telles que la suspension et la reprise d'un processus. Par exemple, le processus
peut être échangé hors de la mémoire de travail par le gestionnaire de mémoire du système d'exploitation afin de libérer
mémoire pour un autre processus. Lorsqu'un processus est suspendu, il devient essentiellement dormant jusqu'à
repris par le système (ou par un utilisateur). Parce qu'un processus peut être suspendu lorsqu'il est soit prêt soit
bloqué, il peut également exister dans l'un des deux états suivants - prêt suspendu et bloqué suspendu (un
Le processus en cours peut également être suspendu, auquel cas il devient prêt suspendu.

Chapitre 2 du cours de calcul Page 7


Un diagramme d'état de processus à cinq états

La file des processus prêts est maintenue par ordre de priorité, donc le prochain processus à exécuter sera le
un à la tête de la file d'attente prête. La file des processus bloqués est généralement désordonnée, puisque
il n'y a pas de moyen sûr de dire lequel de ces processus sera débloqué en premier (bien que si plusieurs processus
sont bloqués en attendant le même événement, ils peuvent être prioritaires dans ce contexte). Pour éviter qu'un
Lors de la monopolisation du processeur, un minuteur système est démarré chaque fois qu'un nouveau processus commence.
exécution. Le processus sera autorisé à s'exécuter pendant une durée déterminée, après quoi le minuteur générera un
interruption qui permet au système d'exploitation de reprendre le contrôle du processeur. Le système d'exploitation
envoie le processus précédemment en cours à la fin de la file d'attente prête, modifiant son statut
de l'exécution à prêt, et assigne le premier processus de la file d'attente prête au processeur, changeant son
statut de prêt à en cours.

Planification des processus

La planification des processus est un élément majeur de la gestion des processus, car l'efficacité avec laquelle les processus...
les tâches assignées au processeur affecteront les performances globales du système. C'est essentiellement une question
de la gestion des files d'attente, dans le but de minimiser le temps d'attente tout en utilisant le plus efficacement
le temps du processeur. Le système d'exploitation effectue quatre types de planification des processus :

Planification à long terme (de haut niveau)


Planification à moyen terme
Planification à court terme (de faible niveau)
Planification des entrées/sorties

Chapitre 2 du cours de calcul Page 8


Le planificateur à long terme détermine quels programmes sont admis dans le système pour traitement, et comme
de tels contrôles le degré de multiprogrammation. Avant d'accepter un nouveau programme, le long terme
le planificateur doit d'abord décider si le processeur est capable de gérer efficacement un autre processus. Le
plus il y a de processus actifs, plus le pourcentage du temps du processeur qui peut être
alloué à chaque processus. Le planificateur à long terme peut limiter le nombre total de processus actifs sur
le système afin de s'assurer que chaque processus reçoit un temps de processeur adéquat. De nouveaux processus peuvent
ensuite être créés, alors que les processus existants sont terminés ou suspendus. Si plusieurs programmes sont
En attendant le planificateur à long terme, la décision quant à quel travail admettre en premier pourrait être prise selon un premier...
sur la base du premier arrivé, premier servi, ou en utilisant d'autres critères tels que la priorité, le temps d'exécution prévu ou les E/S

exigences.

La planification à moyen terme fait partie de la fonction d'échange. Le terme "échange" fait référence au transfert d'un
processus hors de la mémoire principale et dans la mémoire virtuelle (stockage secondaire) ou vice-versa. Cela peut se produire
lorsque le système d'exploitation doit libérer de l'espace pour un nouveau processus, ou afin de restaurer un processus à
mémoire principale qui a déjà été échangée. Tout processus inactif ou bloqué peut être
échangé dans la mémoire virtuelle et placé dans une file d'attente de suspens en attendant d'être de nouveau nécessaire, ou jusqu'à ce que de l'espace

devient disponible. Le processus échangé est remplacé en mémoire soit par un nouveau processus soit par un
des processus précédemment suspendus.

La tâche du planificateur à court terme (parfois appelé le dispatch) est de déterminer lequel
processus à exécuter ensuite. Cela se produira chaque fois que le processus en cours d'exécution est arrêté. Un processus peut
cesser l'exécution car cela demande une opération d'E/S, ou car cela dépasse le temps imparti, ou en raison d'un matériel
Une interruption s'est produite. Les objectifs de la planification à court terme sont d'assurer une utilisation efficace de la
processeur et fournir un temps de réponse acceptable aux utilisateurs. Notez que ces objectifs ne sont pas
toujours complètement compatibles les uns avec les autres. Sur la plupart des systèmes, un bon temps de réponse utilisateur est plus

plus important que l'utilisation efficace du processeur, et peut nécessiter de passer d'un processus à un autre
fréquemment, ce qui augmentera la surcharge du système et réduira le débit global du processeur.

Gestion de la mémoire

La fonction de gestion de la mémoire suit l'état de chaque emplacement de mémoire,


soit alloué, soit libre. Il détermine comment la mémoire est allouée entre les processus concurrents, décidant
qui obtient de la mémoire, quand elle est reçue, et combien ils sont autorisés. Lorsque la mémoire est allouée, elle
détermine quelles adresses mémoire seront attribuées. Il suit quand la mémoire est libérée ou non allouée et
met à jour le statut.

Techniques de gestion de la mémoire

Gestion unique et continue


Gestion partitionnée
Gestion de mémoire paginée (pagination)
Gestion de la mémoire segmentée (segmentation)

Chapitre 2 du cours de calcul Page 9


Allocation contiguë unique

L'allocation unique est la technique de gestion de la mémoire la plus simple. Toute la mémoire, généralement avec le
exception d'une petite portion réservée au système d'exploitation, est disponible pour l'application unique. MS-
DOS est un exemple d'un système qui alloue de la mémoire de cette façon. Un système embarqué exécutant un
une application unique pourrait également utiliser cette technique.

Un système utilisant une allocation contiguë unique peut toujours multitâcher en échangeant le contenu de la mémoire.
changer parmi les utilisateurs. Les premières versions du système d'exploitation Music utilisaient cette technique.

Allocation partitionnée

L'allocation partitionnée divise la mémoire principale en plusieurs partitions de mémoire, généralement contiguës.
zones de mémoire. Chaque partition peut contenir toutes les informations pour un travail ou une tâche spécifique. Mémoire
la gestion consiste à allouer une partition à un travail lorsque celui-ci commence et à la désallouer lorsque le travail
fins.

Les partitions peuvent être soit statiques, c'est-à-dire définies lors du chargement initial du programme (IPL) ou au moment du démarrage, soit par le

opérateur d'ordinateur ou dynamique, qui est créé automatiquement pour un travail spécifique. Multiprogrammation avec
Un nombre fixe de tâches (MFT) est un exemple de partitionnement statique, et le multiprogrammation avec un
Le Nombre de Tâches Variable (MVT) est un exemple de dynamique. MVT et ses successeurs utilisent le terme région pour
faire la distinction entre les partitions dynamiques et statiques dans d'autres systèmes.

Les partitions peuvent être relocables en utilisant de la mémoire de type matériel. Les partitions relocables sont capables de
être compacté pour fournir de plus gros blocs de mémoire physique contiguë. La compaction déplace les "en cours d'utilisation"
zones de mémoire à éliminer "trous" ou zones de mémoire inutilisées causées par la terminaison de processus dans
pour créer de plus grandes zones libres contiguës

Certains systèmes permettent d'échanger des partitions vers un stockage secondaire pour libérer de la mémoire supplémentaire. Tôt
les versions de l'Option de Partage de Temps (TSO) d'IBM échangeaient les utilisateurs dans et hors d'une seule partition de partage de temps.

Gestion de la mémoire paginée

L'allocation par pages divise la mémoire principale de l'ordinateur en unités de taille fixe appelées cadres de page, et
l'espace d'adressage virtuel du programme en pages de même taille. La gestion de la mémoire matérielle
les unités de cartes de pages à des cadres. La mémoire physique peut être allouée sur une base de page tandis que l'adresse
l'espace semble contigu.

En général, avec la gestion de la mémoire paginée, chaque tâche s'exécute dans son propre espace d'adressage. Cependant, il y a
certains systèmes d'exploitation à espace d'adresses unique qui exécutent tous les processus dans un seul espace d'adresses.

Gestion de la mémoire segmentée

Chapitre 2 du cours de calcul Page 10


La mémoire segmentée est la seule technique de gestion de la mémoire qui ne fournit pas à l'utilisateur
programme avec un 'espace d'adresses linéaire et contigu. Les segments sont des zones de mémoire qui sont généralement
correspond à un regroupement logique d'informations tel qu'une procédure de code ou un tableau de données. Segments
nécessitent un support matériel sous la forme d'une table de segments qui contient généralement l'adresse physique de
le segment en mémoire, sa taille, et d'autres données telles que les bits de protection d'accès et l'état (échangé dans,
remplacé, etc.)

La segmentation permet une meilleure protection d'accès que d'autres schémas car les références mémoire sont
par rapport à un segment spécifique et le matériel ne permettra pas à l'application de référencer une mémoire non
défini pour ce segment.

Il est possible de mettre en œuvre la segmentation avec ou sans pagination. Sans support de pagination, le segment est
l'unité physique échangée dans et hors de la mémoire si nécessaire. Avec le support du paginage, les pages sont généralement
l'unité d'échange et de segmentation n'ajoute qu'un niveau de sécurité supplémentaire.

Les adresses dans un système segmenté consistent généralement en l'identifiant de segment et un décalage par rapport au segment
adresse de base, définie comme l'offset zéro.

Gestion des fichiers

Une autre partie du système d'exploitation est le gestionnaire de fichiers. Alors que le gestionnaire de mémoire est responsable de
la maintenance de la mémoire principale, le gestionnaire de fichiers est responsable de la maintenance de la mémoire secondaire
stockage (par exemple, disques durs).

Chaque fichier est une collection nommée de données stockées dans un appareil. Le gestionnaire de fichiers met en œuvre cette abstraction.
et fournit des répertoires pour organiser les fichiers. Il offre également un éventail de commandes pour lire et écrire.
le contenu d'un fichier, pour définir la position de lecture/écriture du fichier, pour définir et utiliser le mécanisme de protection, pour
changer la propriété, lister les fichiers dans un répertoire et supprimer un fichier... Le gestionnaire de fichiers fournit un
mécanisme de protection permettant aux utilisateurs machines d'administrer comment les processus s'exécutent en leur nom
Différents utilisateurs peuvent accéder aux informations des fichiers. La protection des fichiers est une propriété fondamentale des fichiers.

car cela permet à différentes personnes de stocker leurs informations sur un ordinateur partagé, avec confiance
que l'information puisse rester confidentielle.

En plus de ces fonctions, le gestionnaire de fichiers offre également une façon logique pour les utilisateurs d'organiser les fichiers dans
stockage secondaire. Pour la commodité des utilisateurs de la machine, la plupart des gestionnaires de fichiers permettent aux fichiers d'être

regroupé dans un ensemble appelé un répertoire ou


dossier. Cette approche permet à un utilisateur de
organiser ses fichiers selon leur
objectif en regroupant des fichiers liés dans le
même répertoire. De plus, en permettant
répertoires pour contenir d'autres répertoires,
appelés sous-répertoires, a hiérarchique

Chapitre 2 du cours de calcul Page 11


une organisation peut être construite. Par exemple, un utilisateur peut créer un répertoire appelé Dossiers qui contient
des sous-dossiers appelés Documents Financiers, Dossier Médical et Dossier Ménager. Dans chacun de ceux-ci
Les sous-répertoires pourraient être des fichiers qui relèvent de cette catégorie particulière. Une séquence de répertoires à l'intérieur de
les répertoires sont appelés un chemin de répertoire.

Bien que les utilisateurs puissent avoir besoin de stocker des structures de données complexes dans un stockage secondaire, la plupart des dispositifs de stockage

y compris les disques durs "sont capables de stocker uniquement des blocs d'octets adressés linéairement." Ainsi, le fichier
le gestionnaire doit fournir un moyen de mapper les données des utilisateurs aux blocs de stockage dans le stockage secondaire et
réciproquement. Ces blocs peuvent être gérés de trois manières différentes au moins : "comme un ensemble contigu de blocs
sur le dispositif de stockage secondaire, sous forme d'une liste de blocs interconnectés par des liens, ou comme une collection de blocs
interconnectés par un index de fichiers”. Ces trois méthodes sont communément appelées Contigu.
Allocation, allocation liée et allocation indexée.

Gestion des appareils

Tous les systèmes d'exploitation modernes ont un sous-système appelé le gestionnaire de périphériques. Le gestionnaire de périphériques est

responsable de la détection et de la gestion des appareils, de la gestion de l'alimentation et de l'exposition des appareils
vers l'espace utilisateur. Étant donné que le gestionnaire de périphériques est une partie cruciale de tout système d'exploitation, il est important de faire

c'est sûr qu'il est bien conçu.

Pilotes de périphériques

Les pilotes de périphériques permettent aux applications utilisateur de communiquer avec les périphériques d'un système. Ils fournissent un niveau élevé

abstraction du matériel pour les applications utilisateur tout en gérant les entrées/sorties spécifiques au périphérique de bas niveau et
interruptions. Les pilotes de périphérique peuvent être implémentés en tant que modules de noyau chargeables (pour un noyau monolithique) ou
serveurs en mode utilisateur (pour les micro-noyaux).

Le rôle principal du gestionnaire de périphériques est de détecter les périphériques sur le système. Généralement, les périphériques sont organisés

dans une structure d'arbre, avec des dispositifs énumérant leurs enfants. Le pilote de bus racine se trouve à la racine de
arbre de dispositifs. Il détecte les bus présents sur le système ainsi que les appareils directement connectés au
carte mère. Chaque bus est ensuite énuméré de manière récursive, ses enfants continuant à énumérer leurs
enfants jusqu'à ce que le bas de l'arbre des dispositifs soit atteint.

Chaque appareil détecté doit contenir une liste de ressources que l'appareil peut utiliser. Exemples de
les ressources sont les entrées/sorties, la mémoire, les IRQ (Demandes d'interruption), les canaux DMA et l'espace de configuration. Les dispositifs

sont des ressources attribuées par leurs appareils parents. Les appareils ne devraient utiliser que les ressources qui leur sont données,

qui fournissent un support pour avoir le même pilote de périphérique fonctionnant sur différentes machines où la ressource
Les tâches peuvent être différentes, mais l'interface de programmation est par ailleurs la même.

Les pilotes sont chargés pour chaque appareil détecté. Lorsqu'un appareil est détecté, le gestionnaire de périphériques trouve le
driver de l'appareil. S'il n'est pas déjà chargé, le gestionnaire de périphériques charge le pilote. Il appelle ensuite le pilote pour

initialiser cet appareil.

Chapitre 2 du cours de calcul Page 12


La manière dont le gestionnaire de périphériques associe un périphérique à un pilote de périphérique est un choix important. La façon dont les périphériques sont

identifié est très spécifique à l'autobus. Sur PCI, un dispositif est identifié par une combinaison de son fournisseur et
identifiants de périphériques. L'USB a le même schéma que le PCI, utilisant un identifiant de fournisseur et un identifiant de produit. ACPI (Interface de Configuration et d'Alimentation Avancée)

La configuration et l'interface d'alimentation (Configuration and Power Interface) utilisent des identifiants PNP pour identifier les dispositifs dans l'espace de noms ACPI. Avec cela

Informations, il est possible de créer une base de données en utilisant des ID correspondants aux conducteurs. Ces informations sont les meilleures

stocké dans un fichier séparé.

Communication inter-processus (IPC)

Le gestionnaire de périphériques doit mettre en œuvre une forme de communication inter-processus (IPC) entre lui et les pilotes de périphériques. L'IPC sera

utilisé par le gestionnaire de périphériques pour envoyer des demandes d'E/S aux pilotes de périphériques, et par les pilotes pour répondre à celles-ci

les demandes. Il est généralement implémenté avec des messages qui contiennent des données sur la demande, telles que l'I/O
fonction de code, pointeur de tampon, décalage de l'appareil et longueur du tampon. Pour répondre à ces demandes d'E/S, chaque
le pilote de périphérique a besoin de fonctions de répartition utilisées pour gérer chaque code de fonction I/O. Chaque périphérique a besoin d'un

la file d'attente de ces messages IPC à traiter. Sur Windows NT, cette IPC se fait avec des paquets de requêtes d'E/S.

2.4 Exemples de systèmes d'exploitation

Système d'exploitation Windows

Système d'exploitation (OS) développé par Microsoft Corporation pour faire fonctionner des ordinateurs personnels (PC).
Présentant la première interface graphique (GUI) pour les PC compatibles IBM, le système d'exploitation Windows bientôt
domine le marché des PC. Environ 90 pour cent des PC fonctionnent avec une version de Windows.

La première version de Windows, sortie en 1985, n'était qu'une interface graphique proposée comme une extension de Microsoft.
système d'exploitation de disque existant, ou MS-DOS. Basé en partie sur des concepts sous licence qu'Apple Inc. avait utilisés
pour son logiciel système Macintosh, Windows a pour la première fois permis aux utilisateurs de DOS de naviguer visuellement un
bureau virtuel, ouverture de « fenêtres » graphiques affichant le contenu de dossiers et fichiers électroniques avec
le clic d'un bouton de souris, plutôt que de taper des commandes et des chemins de répertoire à une invite de texte.

Les versions suivantes ont introduit une plus grande fonctionnalité, y compris le gestionnaire de fichiers Windows natif, Programme
Gestionnaire, et programmes Gestionnaire d'impression, et une interface plus dynamique. Microsoft a également développé
des paquets Windows spécialisés, y compris le Windows pour les groupes de travail en réseau et le haut-
Windows NT, destiné aux entreprises. La version grand public de 1995, Windows 95, a entièrement intégré
Windows et DOS offraient un support Internet intégré, y compris un navigateur Web.
Internet Explorer.

Avec la sortie de Windows XP en 2001, Microsoft a unifié ses différents paquets Windows sous un seul
bannière, proposant plusieurs éditions pour les consommateurs, les entreprises, les développeurs multimédias et d'autres.
Windows XP a abandonné le noyau Windows 95 longtemps utilisé (code logiciel de base) pour un plus puissant
base de code et proposé une interface plus pratique ainsi qu'une amélioration de la gestion des applications et de la mémoire.

Le standard XP, très réussi, a été remplacé fin 2006 par Windows Vista, qui a connu une

Chapitre 2 du cours de computation Page 13


déploiement difficile et rencontré une résistance considérable sur le marché, acquérant rapidement une réputation pour
étant un système large, lent et consommant beaucoup de ressources. Réagissant au taux d'adoption décevant de Vista,
Microsoft a développé Windows 7, un système d'exploitation dont l'interface était similaire à celle de Vista mais a été accueillie avec

enthousiasme pour son amélioration de vitesse notable et ses modestes exigences système.

Linux

Linux est, en termes simples, un système d'exploitation. C'est le logiciel sur un ordinateur qui permet
applications et l'opérateur de l'ordinateur pour accéder aux périphériques de l'ordinateur afin d'effectuer les actions souhaitées

fonctions. Le système d'exploitation (SE) relaye des instructions d'une application à, par exemple, le
processeur de l'ordinateur. Le processeur exécute la tâche instruite puis renvoie les résultats à la
application via le système d'exploitation. Expliqué en ces termes, Linux est très similaire à d'autres systèmes d'exploitation.
systèmes, tels que Windows et OS X.

En tant que système d'exploitation ouvert, Linux est développé de manière collaborative, ce qui signifie qu'aucune entreprise n'est exclusivement responsable.

responsable de son développement ou de son soutien continu. Les entreprises participant à l'économie Linux
partager les coûts de recherche et développement avec leurs partenaires et concurrents. Cette répartition de
Le fardeau du développement parmi les individus et les entreprises a donné lieu à un écosystème important et efficace.
et une innovation logicielle peu reconnue.

Linux ressemble et se comporte beaucoup comme tout autre système UNIX ; en effet, la compatibilité UNIX a été un élément majeur
objectif de conception du projet Linux. Cependant, Linux est beaucoup plus jeune que la plupart des systèmes UNIX. Son
le développement a commencé en 1991, lorsque un étudiant finlandais, Linus Torvalds, a écrit et nommé Linux, un petit
mais un noyau autonome pour le processeur 80386, le premier véritable processeur 32 bits de la gamme PC d'Intel
CPU compatibles. Au début de son développement, le code source de Linux a été rendu disponible gratuitement sur le
Internet. Par conséquent, l'histoire de Linux a été celle de la collaboration de nombreux utilisateurs du monde entier.
monde, correspondant presque exclusivement par Internet. D'un noyau initial qui partiellement
ayant implémenté un petit sous-ensemble des services système UNIX, le système Linux a évolué pour inclure beaucoup
Fonctionnalité UNIX.

Dans ses débuts, le développement de Linux tournait principalement autour du noyau central du système d'exploitation - le
noyau, exécutif privilégié qui gère toutes les ressources du système et qui interagit directement avec le
matériel informatique.

Nous avons besoin de bien plus que ce noyau pour produire un système d'exploitation complet, bien sûr. Il est utile de faire
la distinction entre le noyau Linux et un système Linux. Le noyau Linux est une pièce entièrement originale
de logiciels développés à partir de zéro par la communauté Linux. Le système Linux tel que nous le connaissons aujourd'hui
comprend une multitude de composants, certains écrits à partir de zéro, d'autres empruntés à d'autres
projets de développement, et d'autres encore créés en collaboration avec d'autres équipes.

Le système Linux de base est un environnement standard pour les applications et la programmation utilisateur, mais il ne fait pas

ne pas imposer de norme pour gérer la fonctionnalité disponible dans son ensemble. Comme Linux a

Chapitre 2 du cours de calcul Page 14


mature, un besoin est apparu pour une autre couche de fonctionnalité au-dessus du système Linux. Ce besoin a
a été rencontré par différentes distributions Linux. Une distribution Linux comprend tous les composants standards du
Système Linux, plus un ensemble d'outils administratifs pour simplifier l'installation initiale et les opérations suivantes.
mise à niveau de Linux et gestion de l'installation et de la suppression d'autres paquets sur le système. Un moderne
la distribution comprend également généralement des outils pour la gestion des systèmes de fichiers, la création et la gestion de
comptes utilisateurs, administration des réseaux, navigateurs Web, traitements de texte, etc.

UNIX

UNIX est une famille de systèmes d'exploitation informatiques multitâches et multiutilisateurs qui dérivent de l'original.
AT&T UNIX, développé dans les années 1970 au centre de recherche Bell Labs par Ken Thompson, Dennis Ritchie,
et d'autres.

À l'origine, UNIX était destiné à être un bureau de travail pour les programmeurs afin de développer des logiciels à être
fonctionner sur plusieurs plates-formes, plus que d'être utilisé pour exécuter des logiciels d'application. Le système est devenu plus grand à mesure que

le système d'exploitation a commencé à se répandre dans le milieu académique, alors que les utilisateurs ajoutaient leurs propres outils au

système et les a partagés avec des collègues.

UNIX a été conçu pour être portable, multitâche et multi-utilisateur dans une configuration de partage du temps.
Les systèmes sont caractérisés par divers concepts : l'utilisation de texte brut pour stocker des données ; un fichier hiérarchique
système ; traiter les dispositifs et certains types de communication inter-processus (IPC) comme des fichiers ; et l'utilisation d'un
un grand nombre d'outils logiciels, de petits programmes qui peuvent être enchaînés par le biais d'une ligne de commande
interpréteur utilisant des tubes, au lieu d'utiliser un seul programme monolithique qui inclut tout le même
fonctionnalité. Ces concepts sont collectivement connus sous le nom de "philosophie UNIX".

Au début des années 1980, les utilisateurs ont commencé à voir UNIX comme un système d'exploitation universel potentiel, adapté à
ordinateurs de toutes tailles. Les systèmes d'exploitation UNIX sont largement utilisés dans les serveurs, les stations de travail et les appareils mobiles.

les périphériques. L'environnement UNIX et le modèle de programme client-serveur étaient des éléments essentiels dans le
le développement d'Internet et la reconfiguration de l'informatique centrée sur les réseaux plutôt que sur
ordinateurs individuels.

À la fois UNIX et le langage de programmation C ont été développés par AT&T et distribués au gouvernement
et les institutions académiques, ce qui a conduit à ce que les deux soient portés sur une plus grande variété de familles de machines que
tout autre système d'exploitation.

Sous UNIX, le système d'exploitation se compose de nombreuses utilitaires ainsi que du programme de contrôle maître,
le noyau. Le noyau fournit des services pour démarrer et arrêter des programmes, gère le système de fichiers et d'autres
tâches "de bas niveau" communes que la plupart des programmes partagent, et planifie l'accès pour éviter les conflits lorsque
les programmes essaient d'accéder aux mêmes ressources ou dispositifs simultanément. Pour médiatiser cet accès, le noyau
a des droits spéciaux, reflétés dans la division entre l'espace utilisateur et l'espace noyau.

Chapitre 2 du cours de calcul Page 15


Le concept de micro-noyau a été introduit dans le but d'inverser la tendance vers des noyaux plus grands et
retour à un système dans lequel la plupart des tâches étaient effectuées par de petites entreprises. À une époque où une norme
L'ordinateur était composé d'un disque dur pour le stockage et d'un terminal de données pour l'entrée et la sortie (E/S), le UNIX
Le modèle de fichier a bien fonctionné, car la plupart des E/S étaient linéaires. Cependant, les systèmes modernes incluent le réseau et
d'autres nouveaux appareils. À mesure que les interfaces graphiques se développaient, le modèle de fichier s'est avéré inadéquat pour la tâche

de la gestion des événements asynchrones tels que ceux générés par une souris. Dans les années 1980, non-bloquant
I/O et l'ensemble des mécanismes de communication inter-processus ont été augmentés avec le domaine UNIX
sockets, mémoire partagée, files de messages et sémaphores. Dans les implémentations de micro-noyau, les fonctions
des protocoles réseau pourraient être déplacés hors du noyau, tandis que le UNIX conventionnel (monolithique)
les implémentations ont des piles de protocoles réseau en tant que partie du noyau.

Chapitre 2 du cours de calcul Page 16

Vous aimerez peut-être aussi