Vous êtes sur la page 1sur 18

UNIVERSITE VIRTUELLE DU SENEGAL

LICENCE I – MAI

Année : 2014 - 2015

1
Introduction Générale

L'histoire de l'informatique a montré que les ordinateurs étaient apparus avec la seconde
guerre mondiale et ceux-ci n'étaient accessibles qu'à la classe aisée à l'époque ainsi que les
grandes entreprises. Ces ordinateurs sont appelés des centraux.
Avec l'évolution, la fabrication des systèmes micro-ordinateurs, ou ordinateurs de
bureau, serveurs dédiés ont permis d'informatiser les systèmes d'entreprises, les secteurs de
la recherche et de l'enseignement. Ces ordinateurs en plus de fonctions intégrées
fonctionnent à base d'un programme appelé «système d'exploitation» qui sert d'interface
entre le matériel et le logiciel. Les systèmes d'exploitation sont à caractère universel parmi
lesquels on peut distinguer les systèmes Windows de Microsoft et les systèmes UNIX/Linux
(GPL).
En effet, les systèmes Linux sont plus riches, homogènes et souples (basés sur les
logiciels libres), mais leur méconnaissance et la non-maîtrise font qu'ils sont dans le superflue.
Ce cours va permettre au lecteur de maîtriser en particulier l'environnement Linux mais aussi
d'être capable de travailler avec beaucoup plus d'aisance sur les systèmes Windows.

1.1 Définition de l'informatique


Le terme « Informatique » est la concaténation des termes « Information et
Automatique » c'est-à-dire l'information obtenue de façon automatique. De ce fait,
l'informatique est définie comme la science du traitement automatique de l'information.
L'information étant la représentation de la donnée (plus petite quantité de l'information est
appelé « bit », une suite de 0 et 1). le traitement automatique signifie que les données sont
manipulées à partir d'un ordinateur. Cette opération peut être qualifiée de semi-automatique,
car l'homme intervient quelques fois dans le processus de l'exécution.

1.2 Composants d'un ordinateur


Un ordinateur serait défini classiquement comme une machine électronique
programmable qui traite les informations de façon automatique. Le terme programmable
signifie ici que l'exécution des tâches est basée sur des instructions (par exemple somme de
deux nombres). Mais en d'autres termes, un ordinateur est un ensemble de « matériels » et
de « logiciels ».

2
La partie matérielle est constituée des différents composants électroniques contenue dans
un boîtier appelé « Unité Central ». Le boîtier est composé des périphériques internes auquels
on peut relier des périphériques externes. On distingue :
 La carte mère: elle constitue le socle des composants
 Le processeur ou CPU (Central Processus Unit): Organe interne primordial dans le
processus d'exécution des tâches
 Les mémoires centrales: Chargées de garder les informations (RAM, ROM)
 Les mémoires de masse: utilisées comme espace de stockage de fichiers (Disque Dur,
Disquette, DVD, périphériques USB, ...)
 Les périphériques d'entrées – sorties (clavier, souris, ...): ils permettent d'interagir avec
l'unité centrale
La partie logicielle est constituée de programmes et gérée par le BIOS (Basic Input Output
System). Ces programmes sont classés en deux grandes catégories :
 Les programmes systèmes
 Les programmes d'applications
Les programmes d'applications sont développés pour répondre aux besoins spécifiques des
utilisateurs alors que les programmes systèmes contrôlent le fonctionnement des différentes
composantes de l'ordinateur.

Figure 1.1 : Vue d’une carte mère

3
1.3 Organisation d'un ordinateur
La structure logique d'un ordinateur est organisée sous forme de couches supperposées:
 la couche la plus basse appelée couche matérielle, englobe les composants du
système. Elle est différente pour chaque ordinateur.
 Après la couche matérielle, nous avons la couche BIOS (Basic Inut Output System).
Cette couche gère les communications entre l'ordinateur et ses périphériques. Sa
fonction principale est la détection des entrée/sorties présentes sur le système.
 La couche système d'exploitation, permet à l'aide de programmes au système et à
l'utilisateur de gérer les ressources matérielles et logicielles.
 La couche application, plus haut niveau de l'architecture comprend l'ensemble des
programmes exécutables.

Couche Applications

Couche SE

Couche BIOS

Couche Matérielle

Figure 1.2 : Organisation en couche d'un PC

4
1.4 Historique et types de systèmes d'exploitation
L'historique des systèmes d'exploitation a suivi celle de l'architecture des ordinateurs. Il y a eu
plusieurs évolutions, mais les plus importantes sont :
 Les premiers systèmes (1945-1955) : cette génération était marqué par le traitement
par lots et des systèmes mono-programmés. Le système d’exploitation gère un seul
programme à la fois. En d’autres termes, quand il commence l’exécution d’un
programme, il le termine avant de passer au programme suivan t. Les programmes
étaient chargés manuellement. Il s'agissait des machines à tubes (sans mémoire).
 Les transistors (1955-1965) : cette génération est caractérisée par l'arrivée des
transistors. Les systèmes étaient dotés des langages de programmation tels que
l'assembleur ou FORTRAN. Plusieurs processus pouvaient être exécutés. Par exemple,
un processus P1 est lancé et si pendant son exécution comporte un temps mort, un
autre processus P2 peut être lancé, car à ce moment là le processeur n'exécutait
aucune instruction.
 Les premiers OS (19655-1980) : cette génération était marquée par l'arrivée des
circuits intégrés et les premiers systèmes d'exploitation multi-tâches et multi-
utilisateurs. Le processeur exécutait plusieurs tâches à la fois et plusieurs programmes
pouvaient être lancés simultanément.
 Quatrième génération (à partir de 1980) : A partir de 1980, on commençait à utiliser
les micro-ordinateurs. Les systèmes supportaient les systèmes d'exploitation réseau
(systèmes interactifs, systèmes distribués). C'est l'apparition de la mico-informatique
(micro-processeur, diversification des champs d'application, ...).
 Cinquième génération : la cinquième génération est marquée par une miniaturisation
à l'extrême des composants (processeur plus petit, systèmes embarqués, ...) et une
nouvelle manière de représenter les données.

1.4.1 Les différents types de systèmes d'exploitation


Il existe plusieurs types de systèmes d'exploitation, selon qu'ils soient capables de
gérer simultanément des informations d'une longueur de 16 bits, 32 bits, 64 bits ou plus. Il y
a des systèmes d'exploitation dits propriétaires (impossible d'accéder au code source) et les

5
systèmes d'exploitation dits libres ou open-source (tout simplement parce qu'on peut accéder
au code source, le modifier et l'adapter à nos propres besoin).
On distingue :
 Les systèmes d'exploitation de Microsoft tels que :
- Windows NT
- Windows 7
- Windows 8
 Les systèmes serveurs
- Windows 2000 server
- Windows 203 server
- Windows 2008 server
- Windows 2012 Serveur
 Les systèmes d'exploitation de type Linux
Parmi les systèmes Linux, nous avons deux grandes distributions :
- Distribution DEBIAN et Ubuntu
- Distribution RedHat/Fedora
- versions CENTOS
- Versions Fedora
- Distribution SuSE
- Distribution ArchiLinux
NB : Nous avons énuméré quelques distributions, mais il y'en a d'autres.

1.5 Notion de système d'exploitation


Un ordinateur est un ensemble composé de « Hardware (matériel) » et de « Software
(logiciel) ». Le Hardware est constitué des composants internes de base auquel s'ajoutent les
composants externes.
Le hardware n'est toutefois généralement pas exploitable tel quel, car les ressources
matérielles sont complexes avec des détails techniques embêtants (spécifications techniques
différentes des composants). Il faut alors utiliser des programmes dédiés, qui permettent de
bien les manipuler. L'ensemble de ces programmes constituent ce que l'on appelle le «
système d'exploitation » ou OS (operating system).

6
C'est au dessus de ce système que viennent se placer les programmes utilisateurs, que l'on
appelle également les « applications », ou « programmes d'applications» tels que les suites
bureautiques.

Figure 1.3 : Place du SE dans l’architecture logique d’un PC

1.6 Définition du système d’exploitation


On appelle système d'exploitation, l'ensemble des programmes permettant de gérer
les ressources matérielles et logicielles d'un ordinateur (un système en général). Les système
d'exploitation constitue l'interface entre le matériel et le logiciel (celui-ci permet de charger
les pilotes des périphériques).
La principale fonction d'un système d'exploitation est donc de gérer l'ordinateur, et de
permettre aux logiciels de s'exécuter. Les systèmes d'exploitation fournissent généralement
une abstraction du matériel pour les programmes, afin que ceux-ci n'aient pas à se soucier des
spécificités du matériel sur lequel ils sont installés.

7
Figure 1.4 : Rôle d’un système d’exploitation

Le système d'exploitation apparaît donc comme une machine virtuelle de haut niveau
pour les programmes. Il est évident que le système doit savoir se montrer le plus souple,
homogène et à moindre (ou peut s'obtenir sans frais), car le but final n'est pas de gérer
l'ordinateur mais bel et bien de s'en servir. La notion de système d'exploitation englobe donc
de plus en plus l'ensemble des logiciels permettant d'utiliser le matériel et les logiciels
d'applications courantes. Mais bien entendu, il ne s'agit là que d'un abus de langage, dont le
grand public n'a pas forcément pris conscience.

1.7 Architecture des systèmes d'exploitation


Le système d'exploitation est la partie la plus importante et la plus connue d'un
système informatique tout court. En effet, il est beaucoup plus courant de dire que l'on
travaille sur tel ou tel système (UNIX, LINUX, MS-DOS, Windows, OS2, ...) plutôt que sur telle
ou telle machine.
L'objectif principal des systèmes d'exploitation est tout simplement de rendre l'ordinateur
plus facile à exploiter. Il est souvent présentés comme une couche logicielle insérée entre le
matériel et les programmes d'applications qui constituent la plate-forme sur laquelle ces
programmes sont conçus et implémentés.
L'insertion de cette couche permet de masquer les limitations et les imperfections du
matériel en fournissant aux programmeurs le moyen d'accéder aux fonctionnalités offertes

8
par la machine au travers d'une interface beaucoup plus simple à utiliser. Cette couche
logicielle permet aussi de proposer de nouvelles fonctionnalités à partir de celles de la
machine physique étendant ainsi les possibilités de cette dernière.
Une architecture désigne l'organisation (logique et physique) et la structure générales
que cela soit au niveau matériel ou logiciel. Chaque système d'exploitation a une architecture
qui lui est propre. Par conséquent l'objectif de cette partie est de présenter une architecture
générale (très) simplifiée afin de percevoir la composition d'un OS.

Figure 1.5 : Architecture générale des systèmes d’exploitation

 Les applications
Les applications représentent les différents programmes lancés.
 Les bibliothèques
Les bibliothèques mettent à disposition du système d'exploitation et des programmes
applicatifs des morceaux de programmes tout prêts, dont le but est de faciliter l'accès à
certaines fonctions. Grâce aux bibliothèques (.dll, .OCX, ...), les développeurs peuvent
facilement et rapidement réutiliser des fonctions utiles, sans avoir à les reprogrammer eux-
mêmes.
 L'interface homme machine
L'interface homme machine (IHM) permet de faire communiquer l'utilisateur et le
système. C'est d'ailleurs le shell ou DOS qui est un logiciel fournissant une interface pour un
utilisateur qui se charge de cela. Elle peut être graphique (GUI, pour Graphical User Interface),
dans ce cas les parties les plus typiques de ce type d’environnement sont le pointeur de la

9
souris, les fenêtres, le bureau, les icônes. De plus, des contrôles graphiques sont utilisés pour
interagir avec l’utilisateur : les boutons, les menus, les barres de défilement.

 L'API (interface de programmation)


L'API est une interface de programmation (Application Programming Interface) qui
permet de définir la manière dont un composant informatique peut communiquer avec un
autre. Une API a pour objet de faciliter le travail d'un programmeur en lui fournissant les outils
de base nécessaires à tout travail à l'aide d'un langage donné. Elle constitue une interface
servant de fondement à un travail de programmation plus poussé.
Les API permettent d'assurer une certaine interopérabilité entre les applications et le système
d'exploitation. Les API permettent de comprendre les répondes des appels systèmes. Les
appels systèmes sont définis comme des interruptions (signaux) que les programmes envoient
au processeur pour lui demander d'allouer les ressources nécessaires à l'exécution d'une
tâche.
 Le noyau
Un noyau de système d'exploitation (abrégé noyau, ou kernel en anglais), est la partie
fondamentale des systèmes d'exploitation (en général). Elle gère les ressources de
l'ordinateur et permet aux différents composants matériels et logiciels de communiquer
entre eux.
Le noyau d'un système d'exploitation est le logiciel qui assure la communication entre le
matériel et le logiciel

1.8 Rôle des systèmes d'exploitation


La fonction principale du système d'exploitation est de gérer les ressources matérielles
(processeur, mémoire s centrales, imprimantes, périphériques de masse ...) en permettant
leur allocation et leur partage. Ceci permet d'augmenter les performances du système en
autorisant à plusieurs programmes d'applications d'utiliser simultanément différentes parties
du système. Il apparait comme une interface pour l'utilisateur, constituant ainsi pour ce
dernier, une machine virtuelle plus facile à programmer que la machine réelle. Le système
d'exploitation transforme donc, par sa gestion des ressources matérielles, la machine
physique en une machine virtuelle aux capacités infiniment plus grandes que la machine réelle
et certainement beaucoup plus souples et plus faciles à exploiter :

10
C'est ainsi que la gestion de l'unité centrale assurée par un système temps-partagé permettant
à chaque utilisateur du système de croire qu'il possède chacun un processeur qui travaille
exclusivement pour exécuter ses programmes. De même, la gestion appropriée de la
mémoire centrale permettra :
 Le chargement de plusieurs programmes à la fois dans cette même mémoire centrale.
 L'exécution de programmes bien plus grands que la taille de la mémoire centrale
Pour se rendre compte de l'importance du rôle du système en tant qu'interface pour les
programmes d'applications, il suffit de considérer le cas d'une machine, fort heureusement
irréel, démunie d'un système d'exploitation et sur laquelle nous devons développer quelques
programmes d'applications.
On perdra beaucoup de temps à la mise au point des différentes parties des programmes
devant interagir avec le matériel et les différents périphériques. A cela s'ajoute les tâches de
maintenance qui vont s'avérer difficile quant au remplacement des périphériques ou
composants du système.

1.9 Notions de Noyau, Processus et Ressources


1.9.1 Le Noyau
La plus part des systèmes d’exploitation est construite autour d'un noyau ou kernel en
anglais. Le noyau est un programme unique responsable de la communication entre les
périphériques et les programmes. En tant que partie du système d’exploitation, le noyau
fournit des mécanismes d’abstraction du matériel, notamment de la mémoire, du processeur,
et des échanges d’informations entre logiciels et périphériques matériels. Le noyau autorise
aussi diverses abstractions logicielles et facilite la communication entre les processus. Le
noyau fournit également des modèles de pilotes et des pilotes pour le matériel.
Voici l'extrait d'affichage des informations à propos du noyau pour un système Linux.

[root@rtn ~]# uname -a

Linux marseille 2.6.32-431.5.1.el6.i686 #1 SMP Tue Feb 11 21:56:33 UTC 2014 i686

i686 i386 GNU/Linux

11
Pour mieux comprendre le fonctionnement et la structure des systèmes d’exploitation, il est
important d'étudier les notions de processus et de ressources. Il s'agit d'une notion introduite
avec l'arrivée des systèmes multi-programmés et temps-partagés afin d'éclairer leur
fonctionnement. Un processus se définit comme étant l'abstraction de l'activité du processeur
ou tout simplement comme un programme en cours d'exécution. Un processus n'est pas un
programme exécutable. Il faut savoir distinguer un programme de son exécution. Un
processus correspond à une suite d'actions réalisées lors d'une exécution. Alors qu'un
programme est une suite d'instructions. Le même programme peut s'exécuter plusieurs fois
donnant ainsi un processus différent pour chacune de ces exécutions. Ces différents processus
peuvent conduire à des résultats différents.

Figure 1.6 : Processus et programme


Prenons l'exemple d'un pâtissier qui veut fabriquer des gâteaux. Il a une recette qu'il doit
préparer à base des ingrédients (farine, sucre, œufs, parfums, ...). Dans cet exemple, on
assimilera
 La recette comme un programme (un algorithme traduit en une suite d'instructions)
 le pâtissier le processeur
 Les ingrédients représentent les données
 Le gâteau représente l'information

12
Comme nous le savons, disposer uniquement de la recette ne suffit pas pour avoir le gâteau.
Il faut le préparer selon la recette retenue. Le processus est l'activité de cet informaticien qui
lit la recette, trouve les données et fait cuire le gâteau.
Le programme (suite d'instructions) est une description précise du comportement à
avoir pour résoudre un problème particulier (ce qu'il faut faire et dans quel ordre faut-il les
faire pour atteindre l'objectif fixé). Mais, il n'y a rien dans cette description statique qui permet
de prévoir (à l'avance) le schéma de déroulement (conditions de déroulement) de l'exécution.
Ce schéma peut changer d'une exécution à une autre. Ceci peut provenir des conditions qui
existent.

1.9.2 Notion de processus


Un processus par définition est tout programme en cours d'exécution. Le système
d'exploitation gère les évènements sous forme de processus. Vous déclenchez un évènement
pour créer un processus. Exemple la prise d'un terminal est l'évènement qui crée un processus
nommé (tout processus lancé à un nom et possède un identifiant) et ce processus se voit
affecté un identifiant par le noyau du système.
Chaque processus est caractérisé par :
 Son programme exécutable
 Ses données
 Sa pile d'exécution.
 Son compteur ordinal
Le compteur ordinal d’un processus est différent de celui de l’ordinateur (l’ordinateur a un
seul compteur ordinal qui indique la prochaine instruction qu’il va exécuter). Par contre le
compteur ordinal d’un processus indique la prochaine instruction à exécuter dans le
programme exécutable de ce processus. Un processus est toujours lancé dans un
environnement. Sous Linux, le processus « init » (ancêtre de tous les processus est lancé lors
au démarrage du système et met ou crée un environnement aux autres processus leur
permettant de s'exécuter normalement).

Voici un extrait d'une capture d'écran sur un serveur Linux

13
[root@rtn~]# pstree -p

init(1)─┬─NetworkManager(1804)─┬─dnsmasq(2970)

│ └─{NetworkManager}(2971)

├─acpid(1934)

├─atd(2130)

├─auditd(1539)───{auditd}(1540)

├─automount(2042)─┬─{automount}(2043)

│ ├─{automount}(2044)

│ ├─{automount}(2047)

│ ├─{automount}(2050)

│ └─{automount}(2051)

├─avahi-daemon(1816)───avahi-daemon(1817)

├─bonobo-activati(2591)───{bonobo-activat}(2592)
Dans un système temps partagé├─console-kit-dae(2241)─┬─{console-kit-da}(2242)
├─clock-applet(2808) par exemple lorsque le système d'exploitation décide
d'interrompre un processus en cours et de lancer l'exécution d'un autre, parce que le premier
a épuisé son temps d'allocation du processeur (Pseudo-parallélisme). C’est ce qui arrive quand
on lance l’exécution de plusieurs programmes (le système plante parfois puisque les
ressources du processeur ne sont plus suffisantes pour supporter l'exécution des
programmes). Lorsqu'un processus est temporairement suspendu de cette manière, il faut
qu'il puisse retrouver plus tard exactement l'état où il se trouvait au moment de sa suspension.
Il faut que toutes les informations dont il a besoin soient explicitement sauvegardées quelque
part en mémoire pendant sa mise en attente.
Le « pseudo-parallélisme » se défini comme la capacité qu'à un processeur de commuter d'un
programme à un autre en exécutant chaque programme quelques dizaines ou quelques
centaines de millisecondes.

1.9.3 Le cycle de vie d'un processus


Dans les systèmes mono-programmés, lorsqu'un processus était lancé celui-ci ne
pouvait pas quitter l'unité centrale sans terminer son exécution. Pendant ce temps
d'exécution, toutes les ressources du système étaient réservées pour ce programme. Dans ce

14
genre de système, le processeur ne lancera un autre processus que s'il a fini ou arrêter
l'exécution du premier processus lancé, ce qui n'est pas le cas dans les systèmes
multiprogrammés à temps partagé.
En effet, durant sa vie un processus peut être :
 En attente : l'état en attente d'un processus signifie que ce dernié attente un signal
pour commencer son exécution ou reprendre le cours de son exécution s'il était
endormi.
 en exécution
 Endormis : le processus reçoit un signal du noyau le faisant endormir. Lorsqu'un
processus est endormi, il ne consomme pas assez de ressources. Le processeur pourra
allouer les ressources nécessaires aux processus qui ont en besoin dans l'immédiat.
 Suspendu : Dans un système temps-partagé, périodiquement, le système
d'exploitation décide d'interrompre le processus en cours d’exécution et de lancer
l'exécution d'un autre, par exemple, parce que le premier a épuisé son temps
d'allocation du processeur.
 Zombie : lorsqu'un processus est dit zombie, lorsque le processeur a arrêté toute
l'activité liée à ce processus ainsi que les ressources qui lui sont allouées.

1.9.4 Les ressources


On appelle ressource toute entité nécessaire à l’exécution d'un processus. Elle est
demandée au système par le processus. Si elle est non disponible, alors le système suspend
l'exécution de ce processus jusqu'à la disponibilité de cette même ressource. On dit que le
processus est bloqué en attendant cette ressource. Les ressources dont un processus à besoin
pour commencer son exécution sont :
 Le processeur : Le système doit allouer l'unité centrale au processus pour que
l'exécution puisse se faire.
 La mémoire : Le processus a toujours besoin de la mémoire pour y stocker ses
instructions et données. La mémoire peut être allouée statiquement (c'est-à-dire
avant le début de l’exécution de ces processus) ou bien dynamiquement à l'exécution
(c'est-à-dire pendant l’exécution de ce processus).
 Les systèmes de fichiers : les disques ou partitions sont des espaces de stockage brut
non organisés par défaut. Le système d'exploitation est installé sur le MBR (Master

15
Boot Recorder) se situant sur le premier secteur du disque dur. Pour écrire les données
sur les partitions, celles-ci doivent être formatées par un système de fichiers. Les
systèmes de fichiers encore appelés FileSystem ont pour but d'organiser l'espace brut
de stockage sur les partitions.

1.10 Gestion de la mémoire


Par définition une mémoire est un dispositif capable de stocker les informations
momentanément ou à long termes.
La mémoire physique d'un système est divisée en deux catégories :
 les mémoires vives : composées de circuit intégrés, donc très rapide.
 les mémoires de masse (secondaire) : composées de supports magnétiques (disque
dur, bandes magnétiques, CD-DVD, disquette...), qui sont moins rapides que les
mémoires vives. La mémoire est une ressource rare. Il n'en existe qu'un seul
exemplaire et tous les processus actifs doivent la partager. Si les mécanismes de
gestion de ce partage sont peu efficaces l'ordinateur sera moins performant (en terme
de rapidité d'exécution des tâches), quel que soit la puissance de son processeur. Celui-
ci sera souvent interrompu en attente d'un échange qu'il aura réclamé. Si un
programme viole les règles de fonctionnement de la mémoire, il en sera de même.
La mémoire principale est le lieu de stockage des programmes et des données quand le
processeur les exécute. On l’oppose au concept de mémoire secondaire, représentée par les
disques, de plus grande capacité, où les processus peuvent séjourner avant d’être exécutés.
En général, le prix des mémoires a baissé et la capacité unitaire des circuits a augmenté.
Cependant la nécessité de la gérer de manière optimale est toujours fondamentale, car en
dépit de sa grande disponibilité, elle n’est, en général, jamais suffisante. Ceci en raison de la
taille exponentielle et grandissante des programmes.

1.10.1 Multiprogrammation et Monoprogrammation


Le concept de multiprogrammation s’oppose à celui de monoprogrammation.
La monoprogrammation ne permet qu’à un seul processus utilisateur d’être exécuté. Cette
technique n’est plus utilisée que dans les micro-ordinateurs. On trouve alors en mémoire, par

16
exemple dans le cas de MS-DOS : le système en mémoire basse, les pilotes de périphériques
en mémoire haute (dans une zone allant de 640 ko à 1 Mo) et un programme utilisateur entre
les deux.
La multiprogrammation autorise l’exécution de plusieurs processus indépendant à la fois.
Cette technique permet d’optimiser le taux d’utilisation du processeur en réduisant
notamment les attentes sur des entrées-sorties. La multiprogrammation implique le séjour
de plusieurs programmes en même temps en mémoire et c’est cette technique qui a donné
naissance à la gestion moderne de la mémoire.
En général, le système d'exploitation se trouve au niveau des premières adresses de la
zone mémoire de la RAM. Pour des systèmes avec un SE embarqué (consoles de jeu,
téléphones mobiles, etc) le système se trouve souvent dans une partie non modifiable (ROM).
Afin de garantir de façon transparente mais flexible, l'amorçage d'un système quelconque, on
retrouve souvent une combinaison des deux approches (RAM et ROM). La ROM contient alors
un système minimal permettant de piloter les périphériques de base (clavier -- disque --
écran) et de charger le code d'amorçage à un endroit bien précis. Ce code est exécuté lors de
la mise sous tension de l'ordinateur, et le « vrai » système d'exploitation, se trouvant dans la
zone d'amorçage sur le disque, est ensuite chargé, prenant le relais du système minimal.

1.10.2 Les registres matériels


Un registre est un dispositif électronique capable de garder les informations à long termes.
La gestion de la mémoire est quasiment impossible sans le matériel.
Dans les systèmes multi-utilisateurs, il faut interdire à un utilisateur d’accéder n’importe
comment au noyau du système ou aux autres programmes des utilisateurs. L'idée est
d'apporter une certaine sécurité. Pour assurer une protection fondamentale, on dispose, sur
la plupart des processeurs, de deux registres délimitant le domaine d’un processus : le registre
de base et le registre de limite. La protection est alors assurée par le matériel qui compare les
adresses émises par le processus à ces deux registres.

1.10.3 Notion de mémoire virtuelle


La taille de la mémoire physique peut parfois être insuffisante par rapport à la taille
d'un processus. Pour étendre la taille de la mémoire et permettre au processus de s'exécuter
librement, on peut utiliser deux méthodes :

17
 En découpant un programme en une partie résidente en mémoire vive et une partie
chargée uniquement en mémoire lorsque l'accès à ces données est nécessaire.
 En utilisant un mécanisme de mémoire virtuelle, consistant à utiliser le disque dur
comme mémoire principale et à stocker uniquement dans la RAM les instructions et
les données utilisées par le processeur. Le système d'exploitation réalise cette
opération en créant un fichier temporaire (appelé fichier SWAP, traduit "fichier
d'échange") dans lequel sont stockées les informations lorsque la quantité de mémoire
vive n'est plus suffisante. Cette opération se traduit par une baisse considérable des
performances, étant donné que le temps d'accès du disque dur est extrêmement plus
faible que celui de la RAM.

18

Vous aimerez peut-être aussi