Vous êtes sur la page 1sur 58

i

LES OBJECTIFS DU COURS

I. OBJECTIF GÉNÉRAL
Amener les étudiants à acquérir les bases indispensables
de la conception et du fonctionnement d’un Système d’Exploitation sous
deux grandes plateformes ; Windows et Linux. De l’installation d’un
programme jusqu’à sa transformation en processus.

II. OBJECTIFS SPÉCIFIQUES


A l’issu de ce cours, l’étudiant régulier sera capable :
 De bien définir un Système d’Exploitation,
 D’expliquer l’enchainement et la synchronisation entre processus.
 De décrire dans un enchaînement logique, l’arborescence d’un
Système de Fichier.
 D’expliquer la gestion d’une mémoire centrale et virtuelle.

PLAN DU COURS

CHAPITRE I : RAPPELS SUR LES NOTIONS DE SYSTEME D’EXPLOITATION


 Historique
 Les Systèmes d’Exploitation Usuels
 Structure des Systèmes
CHAPITRE II: LA SYNCHRONISATION DES PROCESSUS
 Définition
 Relation entre processus
 Les Appels Système
 L’Etat d’un Processus
CHAPITRE III : LA GESTION DES FICHIERS (Système de Fichier)
CHAPITRE IV : LA GESTION DE LA MÉMOIRE
CHAPITRE V : CAS CONCRETS
1

CHAPITRE I : RAPPELS SUR LES NOTIONS DE SYSTEME


D’EXPLOITATION

I. INTRODUCTION

Un ordinateur est un appareil électronique qui traite de grandes quantités


d’informations. On le compare souvent au cerveau humain, mais un ordinateur ne
pense pas. Il fait exactement ce qu’on lui demande, ni plus ni moins.
L’homme comprend deux grandes dimensions, à savoir l’esprit et le corps.
Le corps étant de réalité physique, nous pouvons le voir et le toucher. C’est la
composante matérielle de l’être humain. Le corps est formé de plusieurs parties ou
composants remplissant chacun une de ses fonctions. L’esprit, quant à lui, n’a pas
d’existence physique. Nous ne pouvons ni le voir ni le toucher. C’est la composante
immatérielle, comprenant les facultés intellectuelles de l’être humain dont
l’intelligence et la mémoire. Cette partie n’a pas de composants au sens matériel
du terme comme la partie précédente ; on parle de facultés pour désigner ses
sous-parties. Après cette petite description du corps humain, vous vous
demanderiez alors : « De quoi est composé physiquement un micro-ordinateur ?
Comment fonctionne-t-il ? ».
Comme notre homme de l’exemple, l’ordinateur est le mariage de deux
composantes : le matériel, hardware en anglais et le logiciel, software en anglais.
1. Le matériel, le hardware est l’équivalent de la composante matérielle,
physique. C’est tout ce que nous pouvons voir et toucher en regardant un
ordinateur.
2. Le logiciel, le software est l’équivalent de la composante immatérielle.
C’est l’intelligence de l’ordinateur qui pilote tous ses composants matériels.
2

Figure 1: Schéma de l'Ordinateur

Les logiciels informatiques peuvent être classés en deux catégories :

 les programmes d'application des utilisateurs


 les programmes système qui permettent le fonctionnement de l'ordinateur.
Parmi ceux-ci, le Système d'Exploitation (SE).

II. DEFINITION D’UN SYSTÈME D’EXPLOITATION

Le système d’exploitation (OS : Operating System) est un programme


qui contrôle l’exécution des autres programmes et qui pourvoie des services tels
que l’allocation des ressources (logicielle ou Matérielle), la planification, le contrôle
des Entrées/Sorties et la gestion des données.

III. LES OBJECTIFS PRINCIPAUX

Quelles que soient la taille et la complexité de l'ordinateur et de son


système d'exploitation, ce dernier remplit toujours les quatre mêmes fonctions de
base : Contrôler l'accès au matériel, Gérer les fichiers et les dossiers, Fournir une
interface utilisateur et Gérer les applications

A. Accès au matériel

Le système d'exploitation gère les interactions entre les applications et


le matériel. Pour accéder à un composant matériel et établir une communication
3

avec lui, le système d'exploitation utilise un programme appelé un « pilote de


périphérique ». Lorsqu'un périphérique matériel est installé, le système d'exploitation
localise et installe le pilote correspondant. L'allocation des ressources système et
l'installation des pilotes sont effectuées grâce au processus Plug-and-Play (PnP). Le
système d'exploitation configure en suite le périphérique et met à jour la base de
données contenant toutes les informations sur l'ordinateur : le Registre (ou la Base
de Registre).

B. Gestion des fichiers et des dossiers

Le système d'exploitation crée une structure de fichiers sur le disque dur


afin de stocker les données. Un fichier est un ensemble de données auquel on
attribue un nom unique et qui est traité comme une seule unité. Les programmes et
les fichiers de données sont regroupés dans un répertoire. Les répertoires peuvent
être placés à l'intérieur d'autres répertoires. Ces répertoires imbriqués sont appelés
sous-répertoires. Dans les systèmes d'exploitation Windows, les répertoires sont
appelés « dossiers » et les sous-répertoires « sous-dossiers ».

C. Présentation

Il propose à l'utilisateur une abstraction plus simple et plus agréable que le


matériel : il est considéré comme une machine virtuelle.
Il permet à l'utilisateur d'interagir avec les logiciels et le matériel. Il intègre 2 types
d'interfaces utilisateur :
 L'interface en ligne de commande (CLI) : l'utilisateur saisit des commandes lorsqu'il y
est invité, comme le montre la figure 1.

Figure 2: Interface ligne de commande

 L'interface graphique utilisateur (GUI) : l'utilisateur interagit avec des menus


et des icônes.
4

D. Gestion des applications

Le système d'exploitation localise une application et la charge dans la


mémoire vive (RAM) de l'ordinateur. Les applications sont des logiciels, comme des
traitements de texte, des bases de données, des feuilles de calcul ou des jeux. Le
système d'exploitation alloue les ressources système disponibles aux applications en
cours d'exécution.
Pour s'assurer qu'une nouvelle application est compatible avec le
système d'exploitation utilisé, un programmeur doit utiliser une « Interface de
Programmation d'Applications » (API). Les API permettent aux programmes
d'accéder aux ressources gérées par le système d'exploitation de manière fiable et
cohérente, dont voici quelques un:
 Open Graphics Library (OpenGL) : spécification standard sur toutes les
plates-formes pour les ressources graphiques multimédias.
 DirectX : ensemble d'API se rapportant aux tâches multimédias pour
Microsoft Windows.
 Windows API : permet aux applications conçues pour d'anciennes versions
de Windows de fonctionner sur les nouvelles versions des systèmes
d'exploitation.
 API Java : ensemble d'API se rapportant au développement de programmes
en Java.
Ainsi, tout ordinateur doit avoir nécessairement un système d’exploitation et
d’autres programmes utiles.
5

IV. PLACE DU SYSTEME D’EXPLOITATION DANS L’ORDINATEUR


ET SON MODELE EN COUCHE
L’OS est un ensemble de programmes qui se chargent (en mémoire
centrale) lors du démarrage et une fois chargé, l’OS commence à contrôler les
ressources (Processeur, MC, Périphériques E/S) et se désactive à la l’arrêt de la
machine.
Ne se charge en mémoire que le module des bases d’un OS et les
autres restes sur le Disque Dur

A. Structure d’un Système d’Exploitation

Les systèmes d’exploitation actuel sont conçus autour du noyau et


présente une structure suivante :

Figure 3: Architecture d'un Système d'Exploitation

B. Le noyau d’un Système d’exploitation


1. Définition
Toutes les opérations impliquant le processus sont contrôlées par une
partie du Système d’Exploitation appelé Nucleus, Kernel ou Core ou Noyau.
Le Noyau normalement représente seulement une partie du code de
l’OS mais fréquemment utilisé. Pour cette raison, le Noyau se trouve dans la
Mémoire Centrale, pendant que les autres portions de l’OS sont logées dans la
Mémoire Secondaire.
Le Noyau est le premier composant du système qui se charge dans la
Mémoire Centrale. Le Noyau traite les interruptions.
6

2. Les fonctions du noyau


Le noyau est responsable de presque toutes les tâches de base qui sont
exécutées par des procédures système c'est à dire Il exécute les éléments les plus
délicats du système comme :
 Traitement d’interruption
 Création et destruction d’un processus
 Synchronisation du processus
 Manipulation du PCB
 Allocation et désallocation de la mémoire
 Mécanisme de l’appel d’une procédure
 initialisation du système,
 gestion des ressources : temps, mémoire primaire,
 gestion des fichiers : création, utilisation, disparition, gestion de la mémoire
secondaire,
 gestion de la mémoire : Gestion de la segmentation et de la pagination,
 gestion des E/S : sélection des pilotes (drivers) pour contrôler l'E/S en fonction
du n° majeur et du n° mineur du fichier spécial sélectionné,
Pour assurer ces activités, le noyau dispose d'un certain nombre de tables :
 table des processus décrivant l'état des processus,
 table des fichiers ouverts,
 table des i-nodes en mémoire,
 pour chaque processus, une table des descripteurs de fichiers,
 table des volumes montés,
 table des textes (pour les exécutables partageables)
Le noyau réside en mémoire principale tant que le système est en fonctionnement.

3. Types de noyau d’un Système d’Exploitation


Il existe plusieurs types de noyau, à savoir:
 Monolithique: L’Ensemble des fonctions du système et des pilotes sont
regroupés dans un seul bloc de code et un seul bloc binaire généré à la
compilation.
7

Figure 4: Architecture d'un Noyau Monolithique

 Micronoyau: Les systèmes à micronoyau cherchent à minimiser les


fonctionnalités dépendantes du noyau en plaçant la plus grande partie des
services du système d'exploitation à l’extérieur de ce noyau, c'est-à-dire dans
l'espace utilisateur.

Figure 5 : Architecture d'un Micronoyau

C. Le modèle en couche du système d’exploitation

Dispositifs physique : Ils se composent de circuits intégrés, de fils électriques, de


périphériques physiques.
Microprogramme : C'est un logiciel de contrôle des périphériques.
Langage machine : C'est un ensemble (entre 50 et 300) d'instructions
élémentaires (ADD, MOVE, JUMP) pour effectuer le déplacement des données,
des calculs, ou la comparaison de valeurs.
Système d'exploitation = C'est un ensemble d'instructions plus simples, comme
LIRE UN BLOC DU FICHIER.
8

Une formalisation possible de la structure ci-dessus consiste à structurer le


système en plusieurs couches, dont chacune s’appuie sur la couche
immédiatement inférieure.

Figure 6 : Modèle en couche d'un Système d'Exploitation

V. EVOLUTION DES OS
L’évolution de système d’exploitation est très liée à l’évolution des
architectures ou du matériel ; le Système d’Exploitation étant un gestionnaire de
ressource et ¾ des ressources sont des matériels. Tout système d'exploitation
dépend étroitement de l'architecture de l'ordinateur sur lequel il fonctionne.
 1ière génération (1945 1955) : les tubes à vide et les cartes enfichables.
Il n'existait pas de système d'exploitation.
En 1946, l’ENIAC (Electronic Numerical Integrator And Computer). Le premier
ordinateur électronique.
NOTA : La première erreur informatique est due à un insecte qui, attiré par la
chaleur, était venu se loger dans les tubes à vide et avait créé un court-
circuit. Ainsi un insecte s’appelle « bug » en anglais, le nom est resté pour
nommer une erreur informatique.
 2ième génération (1955 1965) : les transistors et le traitement par lots.
Un transistor est un dispositif semi-conducteur qui permet de contrôler une tension
sur une des électrodes de sorties grâce à une électrode d'entrée).
En 1960 : 1ère Ordinateur à transistor : IBM 7000 par IBM et apparition des 1ère OS :
FMS (the Fortran Monitor System) et IBSYS (IBM’s operating System)
9

 3ième génération(1965 1980) : les circuits intégrés et la multiprogrammation.


Le circuit intégré (CI), aussi appelé puce électronique, est un composant
électronique reproduisant une, ou plusieurs, fonction électronique plus ou moins
complexe, intégrant souvent plusieurs types de composants électroniques de base
dans un volume réduit (sur une petite plaque), rendant le circuit facile à mettre en
œuvre.
 4ième génération (1980 1990) : les ordinateurs personnels.
Avec l’avènement des circuits LSI (Large Scale Integration) contenant des
centaines de transistors au cm2.
 5ième génération (1990 à nos jours) : les ordinateurs personnels portables et de
poche.
Marqué par l’avènement de l'architecture MIPS (de l'anglais : Microprocessor
without Interlocked Pipeline Stages) est une architecture de processeur de type
Reduced Instruction Set Computer (RISC) développée pour les systèmes
embarqués, comme les ordinateurs de poche, les routeurs Cisco et les consoles de
jeux vidéo (Nintendo 64 et Sony PlayStation, PlayStation 2 et PSP).

VI. CLASSIFICATION DE SYSTEME D'EXPLOITATION


A. Selon les services rendus
1. Multi tâches : (en anglais multithreaded) : capacité du système à pouvoir
exécuter plusieurs processus simultanément ; par exemple effectuer une
compilation et consulter le fichier source du programme correspondant.
2. Multiutilisateurs : capacité à pouvoir gérer un panel d'utilisateurs utilisant
simultanément les mêmes ressources matérielles.
3. Multithread : un programme peut être divisé en petites parties pouvant être
chargées selon les besoins par le système d'exploitation. Le multithreading
permet à différentes parties d'un programme d'être exécutées
simultanément.
4. Systèmes temps réel : (real time systems), essentiellement utilisés dans
l'industrie, sont des systèmes dont l'objectif est de fonctionner dans un
environnement contraint temporellement.
B. Selon leur architecture
1. Systèmes centralisés : L'ensemble du système est entièrement présent sur la
machine considérée. Les machines éventuellement reliées sont vues comme des
10

entités étrangères disposant elles aussi d'un système centralisé. Le système ne gère
que les ressources de la machine sur laquelle il est présent.
2. Systèmes répartis (distributed systems) : Les différentes abstractions du
système sont réparties sur un ensemble (domaine) de machines (site). Le système
d'exploitation réparti apparaît aux yeux de ses utilisateurs comme une machine
virtuelle monoprocesseur même lorsque cela n'est pas le cas.
Avec un système réparti, l'utilisateur n'a pas à se soucier de la localisation des
ressources. Quand il lance un programme, il n'a pas à connaître le nom de la
machine qui l'exécutera. Ils exploitent au mieux les capacités de parallélisme d'un
domaine. Ils offrent des solutions aux problèmes de la résistance aux pannes.
3. Systèmes embarqués : sont des systèmes d'exploitation prévus pour
fonctionner sur des machines de petite taille, telles que des PDA (Personal Digital
Assistants ou en français Assistants Numériques Personnels) ou des appareils
électroniques autonomes (sondes spatiales, robot, ordinateur de bord de véhicule,
etc.), possédant une autonomie réduite. Ainsi, une caractéristique essentielle des
systèmes embarqués est leur gestion avancée de l'énergie et leur capacité à
fonctionner avec des ressources limitées.
C. Selon l'architecture matérielle qui les supporte

La façon dont le processeur traite les informations peut affecter les


performances du système d'exploitation. Deux architectures courantes sont utilisées
pour traiter les données : x86 et le x64

1. Le Système à 32bits : le système au processeur x86 qui utilise l’architecture


CISC 32 bits courante d'Intel adoptée par AMD et quelques autres fabricants
de processeurs. Les processeurs x86 utilisent moins de registres que les
processeurs x64. Les registres sont des zones de stockage utilisées par le
processeur lors de l'exécution de calculs. Les processeurs x86 sont
compatibles avec les systèmes d'exploitation 32 bits.
2. Le Système à 64bits : le système au processeur x64 qui utilise l’architecture
ajoutant des registres supplémentaires pour les instructions utilisant un espace
d'adressage 64 bits. Ces registres supplémentaires permettent aux
processeurs x64 de traiter les instructions plus rapidement que des
processeurs x86. Les processeurs x64 sont compatibles avec les processeurs
11

x86. Ils sont également compatibles avec les systèmes d'exploitation 32 bits et
64 bits.

Nota : Un système d'exploitation 32 bits peut adresser seulement 4 Go de mémoire


système, alors qu'un système d'exploitation 64 bits peut adresser plus de 128 Go de
mémoire. La gestion de la mémoire est différente entre ces deux types de système.
Un système 64 bits est plus performant qu'un système 32 bits. Un système
d'exploitation 64 bits offre également des fonctionnalités de sécurité
supplémentaires.

D. Selon leur capacité à évoluer


1. Systèmes fermés (ou propriétaires) : Extensibilité réduite : Quand on veut
rajouter des fonctionnalités à un système fermé, il faut remettre en cause sa
conception et refaire une archive (système complet).
2. Systèmes ouverts : Extensibilité accrue : Il est possible de rajouter des
fonctionnalités et des abstractions sans avoir à repenser le système et même
sans avoir à l'arrêter sur une machine. Cela implique souvent une conception
modulaire basée sur le modèle « clientserveur ». Cela implique aussi une
communication entre systèmes, nécessitant des modules spécialisés.

NOTA : Il n'y a pas de système universel pour cette multitude d'architectures. Les
constructeurs de supercalculateurs ont toujours développés leurs propres
systèmes. Aujourd'hui, compte tenu de la complexité croissante des
systèmes d'exploitation et du coût inhérent, la tendance est à
l'harmonisation notamment via le développement de systèmes polyvalents
tels que les systèmes répartis.

VII. NOTIONS DE COMPATIBILITE DE SYSTÈME D’EXPLOITATION


Il est important d'analyser le type d'utilisation de l'ordinateur pour
opérer un bon choix d’un système d'exploitation. Le système d'exploitation doit être
compatible avec les applications et le matériel utilisés. Par conséquent, avant de
faire une recommandation, analysez les types d'applications que le client va utiliser
et demandez-lui s'il compte acheter de nouveaux ordinateurs.
Pour recommander un système d'exploitation, un informaticien doit connaître les
contraintes budgétaires, se renseigner sur l'utilisation future de l'ordinateur et
12

déterminer les types d'applications qui seront utilisés. Il existe quelques règles à
respecter pour déterminer le système d'exploitation le plus adapté aux besoins d'un
client :
 Le client compte-t-il utiliser des applications « grand public » sur cet ordinateur
? Pour de telles applications, il est possible de consulter la liste des systèmes
d'exploitation compatibles avant l'achat.
 Le client compte-t-il utiliser des applications personnalisées, programmées
spécialement pour lui ? Si le client veut utiliser de telles applications, le
programmeur des applications en question peut indiquer quel système
d'exploitation utiliser.
Pour être installés et fonctionner convenablement, les systèmes d'exploitation
requièrent une configuration matérielle minimale. Ce qui demande une
identification des performances matérielles avant de commence une installation.
Si des mises à niveau matérielles sont nécessaires pour atteindre la configuration
minimale requise et pouvoir installer un système d'exploitation, procédez à une
analyse des coûts pour déterminer la meilleure action à entreprendre. Dans
certains cas, il peut être moins coûteux pour un utilisateur d'acheter un nouvel
ordinateur que de mettre à niveau son système. Dans d'autres cas, il peut s'avérer
plus économique de mettre à niveau un ou plusieurs des composants suivants :
Mémoire vive (RAM), Disque dur, Processeur, Carte vidéo, Carte mère.
REMARQUE : si une application requiert une configuration plus puissante que le
système d'exploitation, vous devez respecter la configuration minimale
requise par l'application pour que cette dernière fonctionne
correctement. Après avoir défini la configuration matérielle minimale
nécessaire à un système d'exploitation, assurez-vous que tous les
composants de l'ordinateur sont compatibles avec le système
d'exploitation que vous avez sélectionné pour votre client.

VIII. LES SYTEMES D’EXPLOITATION USUELS


Un informaticien peut avoir à choisir et installer un système
d'exploitation pour un client. Il existe deux types de systèmes d'exploitation : les
systèmes d'exploitation de bureau et les systèmes d'exploitation de réseau.
13

 Un système d'exploitation de bureau est conçu pour une utilisation


domestique ou dans de petites entreprises, avec un nombre limité
d'utilisateurs.
 Un système d'exploitation de réseau est utilisé dans un environnement
d'entreprise, avec de nombreux utilisateurs et de multiples besoins.

Un système d'exploitation de bureau présente les caractéristiques suivantes :

 Prend en charge un seul utilisateur


 Exécute des applications mono-utilisateur
 Permet de partager des fichiers et des dossiers sur de petits réseaux à la
sécurité limitée

Sur le marché actuel des logiciels, il existe trois grandes catégories de systèmes
d'exploitation de bureau : Microsoft Windows, Apple Mac OS et UNIX/Linux.

A. Microsoft Windows

Windows est une gamme de systèmes d'exploitation produite par Microsoft,


principalement destinées aux compatibles PC. Depuis les années 1990, avec la
sortie de Windows 95, son succès commercial pour équiper les ordinateurs
personnels est tel qu'il possède un statut de quasi-monopole. La gamme Windows
est composée de plusieurs branches.

 La première (de Windows 1 à 3.11) est née en 1985.


 La seconde branche, dite branche NT (Windows NT, puis 2000) est apparue
en 1993. C'est une réécriture complète du système, destiné aux ordinateurs
personnels comme aux serveurs. Elle s'est alors plutôt développée dans le
milieu professionnel.
 La troisième branche est apparue en 1995 avec Windows 95, puis 98 et ME.
Elle était plus connue du grand public et avait pour vocation de remplacer
la première, dont elle était une évolution 32 bits.

Windows XP, en 2002, continuait la branche NT en fusionnant avec la 3ième. Il


couvrait à la fois le grand public et les professionnels, avec 2 déclinaisons. Windows
Vista en est une nouvelle évolution de Windows XP. Face aux imperfections qu’à
présentées Windows Vista, il est apparu un Système dénommé Windows 7(Severn)
14

et Actuellement Windows est orienté vers les écrans tactiles avec l’apparition de
Windows 8 (Heith) et Windows 10 (Ten).

Il existe enfin une quatrième branche (Windows Mobile) prévue pour être utilisée sur
du matériel léger et portable (assistant personnel, téléphone portable).

1. Les Editions de Windows

Windows est disponible dans les éditions suivantes :

 Windows 7 Édition Starter : utilisé sur les netbooks pour faciliter les
fonctionnalités réseau.
 Windows 7 Édition Familiale Premium : utilisé sur les ordinateurs domestiques
pour faciliter le partage de fichiers multimédias
 Windows 7 Professionnel : utilisé sur les ordinateurs de PME pour sécuriser les
informations critiques et faciliter l'exécution des tâches quotidiennes
 Windows 7 Entreprise : utilisé sur les ordinateurs de grandes entreprises pour
améliorer les fonctionnalités de productivité, de sécurité et de gestion
 Windows 7 Édition Intégrale : utilisé pour associer la facilité d'utilisation de
Windows 7 Édition Familiale Premium et les fonctions avancées de Windows 7
Professionnel, pour une sécurité des données accrue
 Windows Vista Édition Familiale Basique : utilisé sur les ordinateurs
domestiques pour les tâches informatiques de base
2. Configurations minimales requises et fonctionnalités des systèmes
d’exploitation Windows (Travail Pratique à domicile)
B. Le Système GNU/Linux

Linus B.Torvalds est à l'origine de ce système d'exploitation entièrement libre.


Au début des années 90, il voulait mettre au point son propre système
d'exploitation pour son projet de fin d'étude. Linus Torvalds avait pour intention de
développer une version d'UNIX pouvant être utilisé sur une architecture de type
80386. Le premier clone d'UNIX fonctionnant sur PC a été Minix, écrit par Andrew
Tanenbaum, un système d'exploitation minimal pouvant être utilisé sur PC. Linus
Torvalds décida donc d'étendre les possibilités de Minix, en créant ce qui allait
devenir Linux. Amusées par cette initiative, de nombreuses personnes ont contribué
à aider Linus Torvalds à réaliser ce système, si bien qu'en 1991 une première version
15

du système a vu le jour. C'est en mars 1992 qu'a été diffusée la première version ne
comportant quasiment aucun bug.

Avec le nombre croissant de développeurs travaillant sur ce système, celui-ci a


rapidement pu intégrer des redéveloppements libres des outils présents sous les
systèmes UNIX commerciaux. De nouveaux outils pour Linux apparaissent désormais
à une vitesse vertigineuse.

L'originalité de ce système réside dans le fait que Linux n'a pas été développé dans
un but commercial. En effet aucune ligne de code n'a été copiée des systèmes
UNIX originaux (en effet Linux s'inspire de nombreuses versions d'UNIX commerciales:
BSD UNIX, System V.). Ainsi, tout le monde, depuis sa création, est libre de l'utiliser
mais aussi de l'améliorer.

Voici un schéma non exhaustif retraçant globalement l'apparition des principaux


systèmes de type Unix :

N.B. : Le système Android utilise le Noyau Linux sans les utilitaires GNU.

Notions de noyau et de distribution

Linux est architecturé autour d'un noyau (en anglais kernel) chargé de
prendre en charge le matériel. On appelle distribution l'assemblage d'un ensemble
de logiciels autour d'un noyau Linux afin de fournir un système clé en main. Le
noyau d'une distribution peut-être mis à jour afin de permettre la prise en compte
de matériels récents, toutefois cette manipulation consistant à recompiler le noyau
est délicate car elle nécessite un certain niveau de connaissance du système et du
16

matériel. La recompilation du noyau est à réserver aux spécialistes ou bien aux


utilisateurs prêts à rendre inutilisable leur système dans le but d'apprendre.

La plupart des distributions proposent également une installation graphique qui leur
est propre ainsi qu'un système de gestion de paquetages permettant d'installer
automatiquement des logiciels en gérant les dépendances (les logiciels sous Linux
sont parfois liés à des librairies externes ou s'appuient sur d'autres logiciels).

Chaque distribution possède ses avantages et ses inconvénients. En effet si


certaines sont plus adaptées à des débutants et proposent des interfaces
graphiques évoluées, d'autres privilégient la sécurité ou l'évolutivité. Les distributions
les plus connues sont :

 La distribution RedHat ;
 La distribution Debian ;
 La distribution SuSe ;
 La distribution Knoppix ;
 La distribution Slackware ;
 La distribution Mandriva ;
 La distribution Ubuntu ;
 La distribution Fédora ;
C. Apple Mac OS

Les ordinateurs Apple sont basés sur un PC Intel et dotés d'un module
propriétaire qui permet de démarrer sur Mac OS, le système d'exploitation
préinstallé sur les machines Apple. Ils peuvent cependant exécuter nativement de
nombreux autres systèmes d'exploitation, comme n'importe quel autre PC, par
exemple Windows, Linux, xBSD, Solaris/x86, etc. Mac OS est conçu pour offrir une
interface graphique utilisateur (GUI) conviviale. Les versions Mac actuelles reposent
sur l'architecture de micro-noyau Mach et contiennent un ensemble complet
d'utilitaires UNIX. Mac OS X est certifié UNIX (il est totalement compatible avec les
spécifications UNIX).
17

CHAP II : LA SYNCHRONISATION DES PROCESSUS

I. DÉFINITION DU PROCESSUS

Un processus est un programme qui s'exécute, ainsi que ses données,


sa pile, son compteur ordinal, son pointeur de pile et les autres contenus de
registres nécessaires à son exécution. Il fournit l'image de l'état d'avancement de
l'exécution d'un programme.
Processeur  Processus : qui caractérise même la machine
Un programme est une entité inanimée. C’est seulement lorsqu’un
processeur le prend en charge qu’il devient alors une entité active que nous
appellerons processus.
Example

Un processus est identifié par un PID (Process IDentifier), entier de 0 à 32767


retourné par le noyau. Il est caractérisé aussi par sa priorité, son propriétaire et son
groupe propriétaire, son terminal de rattachement.

II. RELATIONS ENTRE PROCESSUS

Un processus ne pouvant conceptuellement être crée qu’au moyen d’un


Appel Système, c’est-à-dire par un autre processus ayant réalisé cet appel, on voit
apparaitre naturellement la notion d’arborescence des processus à partir d’un
ancêtre commun à tous, crée au démarrage du système (Processus init sous Unix).
La notion de groupes de processus (Process groups), définis comme des sous-
arborescences, est également utilisée par certains systèmes pour limiter la portée
18

des commandes de contrôle de processus (par exemple la commande kill lancée


à partir de l’interpréteur de commandes, sous Unix)
A. Appels Systèmes

Ils constituent l’interface entre le système d’exploitation et les


programmes d’application(ou leurs bibliothèques) qui s’exécutent en mode non
privilégié (aussi appelé parfois mode utilisateur). Ils sont réalisés a moyen
d’instructions spécifiques (les traps ou interruptions logicielles), qui permettent le
passage en mode privilégié (aussi appelé mode noyau, ou kernel) lorsqu’il existe
sur le processeur.

Au niveau du processeur, le mode noyau se différencie habituellement du mode


utilisateur par les fonctionnalités suivantes :

 Le code et les données utilisées par le système d’exploitation ne sont


accessibles qu’en mode noyau. Ceci se fait en n’incluant les segments
mémoires correspondants que lors du passage en mode noyau ;
 Les instructions de modification de la table des segments mémoire ne sont
permises qu’en mode noyau. Ainsi, un programme utilisateur ne pourra
modifier ses droits d’accès à la mémoire ;
 Les instructions de lecture et d’écriture sur les ports d’entrée/sortie du
matériel ne sont permises qu’en mode noyau. Un programme d’application
ne peut donc accéder directement au matériel sans passer par le système
d’exploitation.

La différence entre mode noyau (privilégié) et mode utilisateur (non


privilégié) est gérée directement au niveau du processeur. Elle n’a rien à voir avec
la notion de super-utilisateur mise en œuvre sur certains systèmes d’exploitation, qui
est gérée au niveau logiciel dans le code du système d’exploitation. En fait, même
le super-utilisateur d’un système passe le plus clair de son temps
19

Figure 7: Architecture d'un appel système

B. Les états d’un Processus

Le programme durant son exécution, doit être spécifié à partir d’un


état.

Un processus passe par une série d’états, différents événements peuvent entraîner
le processus à changer d’état.
 Actif (Elu ou Running) : en train de réaliser des actions à un instant donné. Il
possède le processeur et réalise les opérations nécessaires à son déroulement.
 Exécutable (Prêt ou Ready) : pourrait tout à fait être en train de s’exécuter, mais
il doit attendre que le processus actif laisse sa place. En effet, le multitâche n’est
en quelque sort qu’une illusion. Sur une machine possédant un seul processeur, à
un instant donné un seul programme peut opérer.
Notion de Ready list : Quand un job est admis dans un système, un processus
correspondant est crée et normalement inséré au fond de la liste des
disponibilités (Ready List). Le processus se déplace graduellement vers la tête de
cette liste et lorsque le processeur devient disponible, le processus est confié au
processus et on dit qu’il effectue un changement d’état (transition) passant de
l’état ready à l’état running. L’action de remettre le processus au premier
processus de la ready list est appelée dispatching.

 Endormi (Bloqué ou Blocked) : il ne fait rien. Il attend une condition pour


redevenir exécutable ou actif. Il peut se mettre lui-même en sommeil. Un
programme par exemple peut étendre quelques secondes avant de poursuivre
20

son exécution pour laisser le temps à l’utilisateur de lire un message affiché. Mais
il peut aussi être mis en sommeil par le noyau en attendant que ce qu’il
demande soit disponible
Exemple : Un programme qui demande à l’utilisateur de fournir une valeur pour
qu’il continue son exécution.
 Zombie : ce processus est en réalité terminé. Il a fini son exécution et n’a donc
plus de raison d’exister. Seulement pour diverses raisons possibles, son père n’a
pas été informé de ceci. Et tout processus doit prendre connaissance de la fin
de ceux qu’il a lancés (ses fils). Le système conserve donc les informations
correspondant au processus enfant afin que son parent puisse voir qu’il a fini son
exécution.

Exemple : Un processus lancé à partir d’une unité amovible pour le quel ce


dernier est déjà étiré de l’ordinateur.
C. CYCLE DE VIE D’UN PROCESSUS

Le processus passe de l’état « Exécutable » à l’état « Actif » lorsque


l’ordonnanceur le choisi (On parler d’élection). Pour qu’un processus se termine, il
passe de l’état « Actif » à « Terminé » (Un processus ne peut pas se terminer s’il est
« exécutable » ou « endormi ».
21

D. LE CHANGEMENT D’UN PROCESSUS

Il existe quatre changement d’état d’un processus ;

Sortie pgm
Runni
ng
Dispatchin
g

Timer Run Bloc


Out Blocke
Ready
Entrée d
pgm Wakeup

1) Time Run Out : Le temps alloué au processus est épuisé, le processeur lui est
retiré par l'ordonnanceur
2) Dispatch : L'ordonnanceur sélectionne le processus pour lui donner le
processeur
3) Bloc : Au cours de son exécution le processus se bloque (e.g. demande
d'E/S)
4) Wake up : L'origine du blocage du processus a disparu

NOTA :
 Un seul processus commence toujours à l’Etat Running (exécution)
 On peut avoir plusieurs programmes en Etat Ready (Disponible) et dans cet
Etat il existe une file d’attente avec la méthode FIFO
 On peut également avoir plusieurs processus en Etat de blocage (Blocked)
E. L'ORDONNANCEUR

L'ordonnanceur est la partie du système qui gère la commutation entre


processus.
L'ordonnanceur (scheduler) définit l'ordre dans lequel les processus prêts
utilisent l'UC (en acquièrent la ressource) et la durée d'utilisation, en utilisant un
algorithme d'ordonnancement.
Types d’algorithmes d’ordonnancement

Il y a deux ressources préemptives et non préemptives, nous avons les types


d’ordonnancement qui sont :
22

1. FIFO(Fist In Fist Out): c’est le plus simple. Celui est premier c’est celui qu’on va
s’exécuter

…….. C B A CPU Fin exécution

2. RR (Round Rabin) : Ordonnancement en tourniquet


A …….. C B A CPU

3. SJF (Shortest Job First ou SJN : Shortest Job Next) : Job fera moins de temps,
c’est celui qui aura la priorité. C’est la priorité aux enfants.

NOTA : Sous différentes discussions, on a pu créer un système de doubles


processeurs (Programmation concurrente ou concurrentielle et la
programmation parallèle)
4. MFQ (MultiLevel FeedBack Queues) : FIFO à plusieurs niveaux

1 ….. C B A CPU Fin exécution

2.... C B A CPU Fin exécution

N.... C B A CPU Fin exécution

RR

F. PCB (PROCESSUS CONTRÔLE BLOC)

Lorsqu’on allume d’ordinateur, une partie du système d’exploitation se


charge dans la mémoire centrale ; c'est-à-dire qu’il y a une zone de Système
d’exploitation dans la Mémoire Centrale.
Le PCB est une information placée dans la Mémoire Centrale qui sert à
retenir les éléments clés d’un processus notamment : le numéro du processus, le
nom du processus, l’Etat du processus, la Priorité, le numéro du processeur sur
lequel le programme est entrains d’être exécuté, le numéro du nom processus
enfant, le nom du processus enfant, nom du processus père, le numéro du
processus père, adresse d’exécution, l’heure de sortie du processus et celle du
début d’exécution.
23

Comme il faudra que le PCB soit manipulé rapidement par le Système


d’exploitation, il y a un registre physique qui pointe toujours vers le PCB
G. LES INTERRUPTIONS (INTERRUPTS)
1. Définition

Une interruption est une commutation d’Etat d’un processus


provoquée par un signal généré par le matériel.
Ce signal est la conséquence d'un événement interne au processus,
résultant de son exécution, ou bien extérieur et indépendant de son exécution.
Le signal va modifier la valeur d'un indicateur qui est consulté par le Système
d’Exploitation. Celui-ci est ainsi informé de l'arrivée de l'interruption et de son
origine

2. Sortes d’interruption

A chaque cause d'interruption est associée un niveau d'interruption et un


numéro allant de 0 à 255.
On distingue au moins deux niveaux d'interruption :
 Les interruptions externes : panne matériel, intervention de l'opérateur, ....
Exemple : Brulure d’une diode, chute de tension
Interruption 16 : erreur keybord
Interruption 10 : erreur d’Ecran
 Les déroutements qui proviennent d'une situation exceptionnelle ou d'une
erreur liée à l'instruction en cours d'exécution
Exemple : La division par 0 (Interruption 11), le débordement,

3. Mécanisme de traitement d’une interruption

Lorsqu’une interruption a lieu le Système d’Exploitation prend le


contrôle en particulier un programme (superviseur).
 Le système d’exploitation sauve l’Etat du processus interrompus. Dans des
plusieurs système cette information est stockée dans le PCB du processus
interrompu.
 Le système d’exploitation analyse l’interruption et passe le contrôle à une
routine approprié pour traiter l’interruption. Actuellement certain de ces
routines sont incorporées dans le Hardware.
24

 La routine manipulatrice d’interruption et il la traite ; L’Etat du processus


interrompu est restauré et le processus poursuit son exécution.

III. TRAVAUX PRATIQUES

Ressources :
 Une machine physique tournant sous Windows ou Linux
 Une machine virtuelle
 Une plateforme linux sous format ISO
 Un modem GSM ou un flybox
 1 Gb : 1000Unités par Groupe de 10 étudiants
Travail Pratique 1

Donner d’autres types d’algorithme d’ordonnancement.

Travail Pratique 2 :

Manipulation des processus sous linux

1. Parcourir /etc et ouvrir le fichier passwd. une référence du fichier contenant


le programme à exécuter
2. Lister les processus actif : ps et ps aux
3. Interrompre un processus
4. La redirection des fichiers standards
5. Processus parallèles et communication
6. Lancer un processus en mode détaché
7. Interruption de processus, le retour

Travail pratique 3 :

Gestionnaire des tâches (Gestion des processus) dans Windows


25

CHAP III : LA GESTION DES FICHIERS


I. PRESENTATION D’UN DISQUE DUR
A. Définition

Un disque dur, en anglais hard drive (HD) ou hard disk drive (HDD), est une
mémoire de masse magnétique.

B. Structure et Principe de fonctionnement d’un Disque Dur


1. Structure

Chaque plateau (possédant le plus souvent 2 surfaces utilisables) est


composé de pistes concentriques. Les pistes situées à un même rayon forment un
cylindre. Il faut l'ensemble des têtes pour accéder à un cylindre. La piste est divisée
en secteurs. Le secteur est trop petit pour qu’il soit manipulé par le Système, on
utilise alors un groupe d’un certain nombre de secteur de (1 à 16) qu’on appelle
Bloc ou Cluster.

Figure 8 : Structure d'un Disque Dur


26

 Un Secteur : un secteur contient 512 octets.


 Un Cluster : un cluster est également appelé « unité d'allocation de fichiers ».
C'est la plus petite unité d'espace utilisée pour le stockage des données. Un
cluster se compose d'un ou plusieurs secteurs.
 Une Piste : une piste est un cercle complet sur une face d'un plateau de
disque dur. Ce cercle contient des données. Une piste est divisée en groupes
appelés secteurs.
 Cylindre : un cylindre est un ensemble de pistes alignées les unes au-dessus
des autres pour former un cylindre.

2. Principe de fonctionnement

Dans un disque dur, on trouve des plateaux rigides en rotation.


Chaque plateau est constitué d'un disque réalisé généralement en aluminium, qui
a les avantages d'être léger, facilement usinable et non magnétique. Des
technologies plus récentes utilisent le verre ou la céramique, qui permettent des
états de surface encore meilleurs que ceux de l'aluminium. Les faces de ces
plateaux sont recouvertes d'une couche magnétique, sur laquelle sont stockées les
données. Ces données sont écrites en code binaire (0,1) sur le disque grâce à une
tête de lecture/écriture. Suivant le flux électrique qui traverse cette tête, elle
modifie le champ magnétique local pour écrire soit un 1, soit un 0, à la surface du
disque. Pour lire, c'est le même principe inverse qui est utilisé : le champ
magnétique local engendre un flux électrique au sein de la tête qui dépend de la
valeur précédemment écrite, on peut ainsi lire un 1 ou un 0.

Un disque dur typique contient un axe central autour duquel les plateaux tournent
à une vitesse de rotation constante (jusqu'à 15 000 tours/minute). Les têtes de
lecture/écriture sont reliées à une même armature qui se déplace à la surface des
plateaux, avec une tête par plateau. L'armature déplace les têtes radialement à
travers les plateaux pendant qu'ils tournent, permettant ainsi d'accéder à la totalité
de leur surface.

Les firmwares des disques durs récents sont capables d'organiser les requêtes de
manière à minimiser le temps d'accès aux données, et donc à maximiser les
performances du disque.
27

C. Contrôleur de disque

Un contrôleur de disque est l'ensemble électronique qui est connecté


directement à la mécanique d'un disque dur. La mission de cet ensemble est de
piloter les moteurs de rotation et de déplacement des têtes de
lecture/enregistrement, ainsi que d'interpréter les signaux électriques reçus de ces
têtes afin de les convertir en bits ou réaliser l'opération inverse afin d'enregistrer des
données à un emplacement particulier de la surface des disques composant le
disque dur.

D. Types d'interface des disques durs

Les principales interfaces possibles :

 L'interface IDE (Intelligent Drive Electronic) (ou PATA par opposition au SATA,
voir plus loin), la plus courante dans les machines personnelles jusqu'à 2005,
appelée aussi ATA (AT ATACHMENT)
 SCSI (Small Computer System Interface), plus chère, mais offrant des
performances supérieures. Toujours utilisée et améliorée (passage de 8 à 16
bits notamment, et augmentation de la vitesse de transfert, normes SCSI1,
SCSI2, SCSI3).
 Serial ATA (ou SATA), est une interface série, peu coûteuse et plus rapide
qu'ATA (normes SATA et SATA II), c'est la plus courante désormais (2008).
 SAS (Serial Attached SCSI), combine les avantages du SCSI avec ceux du
Serial ATA (elle est compatible avec cette dernière).
 FibreChannel (FCAL), est un successeur du SCSI. La liaison est série et peut
utiliser une connectique fibre optique ou cuivre. Principalement utilisée sur les
serveurs.
E. Adressage d’une Donné ou d’un fichier sur un Disque Dur
1. Adressage CHS (Cylindre Head Sector)

Une donnée ou un fichier est adressé par trois valeurs sur un Disque Dur en
Adressage CHS

1) le numéro de la tête de lecture (choix de la surface)


2) le numéro de la piste (détermine la position du bras portant
l'ensemble des têtes)
28

3) le numéro du bloc (ou secteur) sur cette piste (détermine à partir de


quand il faut commencer à lire les données).

Adresse :

Cylindre : Nbre Cylindre-1 : 0, Tête=Nbre Tête-1 : 0, Secteur : Nbre Secteur

 Le tout premier secteur d'un disque est à l'adresse 0 / 0 / 1 : c'est le premier


secteur accédé par la première tête positionnée sur le premier cylindre.
 Le deuxième secteur sera 0 / 0 / 2 (ce secteur est naturellement atteint juste
après par la même tête), et ainsi de suite jusqu'à ce que la surface ait
effectué une rotation complète.
 Le dernier secteur accédé ici porte l'adresse 0 / 0 / NS.
 Le secteur suivant est à l'adresse 0 / 1 / 1 : c'est le premier secteur accédé
par la tête suivante (idéalement la sélection électronique d'une tête prend
moins de temps qu'il ne faut au disque pour présenter de nouveau le secteur
numéro 1), puis chaque secteur de la piste qui défile devant cette seconde
tête est exploré et ainsi de suite jusqu'à avoir employé toutes les têtes.
 le dernier secteur du premier cylindre porte ainsi l'adresse 0 / NT-1/ NS.
 Le secteur suivant est à l'adresse 1 / 0 / 1 : le bras des têtes de
lecture/enregistrement devra préalablement s'être déplacé (ce qui peut
prendre de moins d'une milliseconde à plusieurs centaines de millisecondes)
puis l'ensemble des opérations décrites plus haut (le parcourt de chaque
secteur de chaque piste) pourra se répéter pour ce cylindre.
 Le tout dernier secteur du disque est à l'adresse NC-1/ NT-1/ NS.

La capacité d’un HD

La capacité d'un disque dur peut être calculée ainsi :


Nombre de cylindres * nombre de têtes * nombre de secteurs par piste * nombre
d'octets par secteur (généralement 512 octets).

Les limites de CHS

Le codage du Bios est comme suit :

 Le numéro du Cylindre avec 10 bits,


 Le numéro de Tête avec 8 bits : 4096
29

 Le Numéro de Secteur avec 6 bits. : 3072


 Le nombre usuel d’octet par secteur est : 512

Un disque accédé en CHS n'aura jamais :

 plus de 1024 cylindres,


 plus 256 têtes (ce qui est mécaniquement impossible car demanderait 128
plateaux : même le RAMAC d'IBM n'en avait que 50)
 et plus 64 secteurs par rotation.

Cet adressage ne peut être utilisé que pour un HD d’une capacité maximale de
moins de 8 Gio car le produit de nombre total de Cylindre, Tête et secteur multiplié
par 512 qui est le nombre usuel d'octets par secteur de données vaut exactement
8 455 716 864 octets soit 7,875 Gio

L'adressage CHS reste cependant employé dans les premières phases de


démarrage d'un ordinateur puisqu'il permet toujours d'accéder aux premiers
secteurs d'un disque. Ainsi le BIOS charge le secteur 0 / 0 / 1 du premier disque dur
qui est souvent un MBR, ce dernier emploie à son tour une adresse CHS pour
charger le secteur de boot de la partition active.

C'est l'emploi d'adresses CHS durant cette phase qui fait que beaucoup d'utilitaires
disques vous alertent si la partition active se trouve au-delà des premiers 8 Go d'un
disque (le secteur de boot deviendrait alors inaccessible par une adresse CHS).

2. Type d’adressage de donnée sur un HD


 CHS (Cylindre Head Sector) : Adressage par Cynlidre Tête et Secteur qui
exige la connaissance de trois coordonnées pour accéder à un bloc (ou
secteur) de disque
 ECHS (Enhanced CHS) : Adressage CHS Amélioré
 LBA (Logical Block Adressing) : Adressage par Bloc Logique : est le moyen
moderne d'adresser les secteurs de données stockés sur un disque dur. Cette
méthode d'adressage a depuis été généralisée à un grand nombre de
supports informatiques.
Il permet de désigner d'une façon unique un secteur de données d'un
disque (la plus petite unité de données transférée par ce dernier), sa taille est
le plus souvent 512 octets.
30

Deux versions d’adresse LBA :


1) Sur les disques durs IDE : à 28 bits pour coder l’adresse et permettant
de gérer des disques d’une capacité maximale de 128 Gio soit 228*512
= 137438953472 octets
2) Sur les disques durs SATA : à 48 bits et qui permet de gérer des disques
d’une capacité maximale de 128 To. Soit 248 * 512 =
144115188075855872 Octes

II. LE BIOS (Basic Input Output System)

Le BIOS (système élémentaire d'entrée/sortie) est, au sens strict, un


ensemble de fonctions, contenu dans la mémoire morte (ROM) de la carte mère
d'un ordinateur lui permettant d'effectuer des opérations élémentaires lors de sa
mise sous tension.

Exemple la lecture d'un secteur sur un disque.

Par extension, le terme est souvent utilisé pour décrire l'ensemble du micrologiciel («
logiciel embarqué » ou «firmware ») de la carte mère.

Le BIOS est écrit en code machine et a généralement été développé en langage


assembleur. Il est presque toujours développé par le fabricant de cette carte mère
car il contient les routines élémentaires pour effectuer les opérations simples
d'entrée/sorties.

A. Boot BIOS : POST (Power-On Self-Test)

Le BIOS comprend également le POST (PowerOn SelfTest), exécuté au


démarrage de l'ordinateur, qui déclare les disques, configure les composants et
recherche un système d'exploitation avant de le lancer. Sa tâche principale est de
fournir un support de bas niveau pour communiquer avec les périphériques.
Habituellement ceci inclut le support du clavier au moins dans un mode (pas
forcément l'USB) et d'un mode d'affichage simplifié.

Le BIOS émet les premières commandes au système durant la phase de


démarrage, pour indiquer par exemple sur quel disque et à quel endroit de celui-ci
trouver le chargeur d'amorçage (ou Boot loader) du système d'exploitation, en
général Windows, Linux, Mac OS ou autre.
31

 Dans le cas de Windows, il s'agit du NTLDR(NT LoaDeR ou Chargeur


d'amorçage de Windows NT), dans le cas d'un système en multiboot
(possibilité de démarrer plusieurs systèmes d’exploitation sur un même
ordinateur),
 dans les cas de Linux, Il s’agit de LILO,
 GRUB dans les cas plus sophistiqués (tous systèmes supportés).

Le BIOS contient également des outils de diagnostic pour vérifier sommairement


l'intégrité des composants critiques comme la mémoire, le clavier, le disque dur, les
ports d'entrée/sortie, etc.

B. Mémoire CMOS (Setup)

Certains paramètres du BIOS peuvent être réglés par l'utilisateur (ordre des
périphériques à scruter pour détecter une zone de boot, type et fréquence du
processeur, etc.). L'ensemble de ces paramètres est stocké de manière
permanente grâce à une mémoire de taille réduite (quelques centaines d'octets)
à faible consommation (type CMOS) alimentée par une pile (généralement au
lithium) présente sur la carte mère. Cette mémoire est communément appelée,
par abus, « CMOS ».

C. Firmware BIOS

Le BIOS est parfois appelé firmware, car il est très proche du hardware.
Avant les années 1990, les BIOS étaient stockés sur des puces ROM qui ne
pouvaient être modifiées. Au fur et à mesure que leur complexité, et le besoin de
mises à jour se sont fait sentir, ils furent stockés sur des mémoires EEPROM ou Flash
qui pouvaient être modifiées.

Ainsi, il est possible de mettre à jour, de manière logicielle, le BIOS d'un ordinateur.
Cette action est appelée «Flasher le BIOS ».

D. Représentation Schématique des fonctions du BIOS

Le BIOS se met en service et active l’autotest de la machine, vérifie le


configuration et en cas de modification sur la demande de l’utilisateur, lance la
séquence SETUP (Ctrl + Alt + Delete ou F2).
32

Mise sous tension

Initialisation du BIOS SETUP


Message Erreur

NON
Est Disk OUI Э ? un NON
Disque Dur
DOS Disk

OUI
Chargement de l’amorce
Bootag
Chargement de IO.Sys

Chargement de DBLSpace.Bin

Chargement de MS DOS.Sys

Exécution du OUI Э ? Un
Config.Sys Config.Sys

Chargement de
command.Com

Exécution de OUI Э ? Un NON Affichage date


AutoExec.Bat AutoExec et heure
.Bat

OUI Dos est Actif

Appel OS

III. PARTITION

Une partition est une partie d'un disque dur destinée à accueillir un
système de fichiers.
Chaque partition possède donc son système de fichiers, qui permettra de stocker
ensuite les données.

Exemple : Une partition accueillant un système de fichiers FAT32, on parle


couramment de « partition FAT32 ».
33

Le partitionnement est un fractionnement d'un disque dur réel (matériel) en


plusieurs disques virtuels (logiciels).

Un disque peut contenir une ou plusieurs partitions. Lorsqu'il contient plusieurs


partitions, celles-ci apparaissent au système d'exploitation comme des disques (ou
«volumes ») séparés.

 Dans Windows, elles auront généralement des lettres de lecteur différentes


(C:, D:, etc.).

 Dans Mac OS, elles apparaissent en général chacune avec son icône propre
sur le Bureau.

 Sous UNIX, elles sont cachées de l'utilisateur final, les fichiers étant accédés à
travers l'arborescence unique (ainsi d'ailleurs que les périphériques physiques)
mais sont visibles à travers diverses commandes d'administration, notamment
celles affichant les points de montage (mount, df).

On nomme « Partition d'Amorçage », celle qui prend le contrôle au


démarrage, qu'elle contienne ou non le système d'exploitation. Un disque dur peut
être partitionné pour différentes architectures. On aura ainsi le partitionnement de
type MBR pour la majorité des ordinateurs personnels (PC) ou GPT pour les
architectures plus récentes (Macintosh).

A. Type de partition

Il existe trois types de partition :


1) Partition principale : Est celle qui peut contenir le système d'exploitation.
Un disque dur peut compter jusqu'à quatre(4) partitions principales.
2) Partition active : cette partition est utilisée par le système d'exploitation pour
démarrer l'ordinateur. Seule une partition principale par disque peut être
marquée comme active. Dans la plupart des cas, le lecteur C, est la partition
active ; elle contient les fichiers de démarrage et les fichiers système.
3) Partition étendue : cette partition utilise normalement l'espace libre restant sur
un disque dur ou se substitue à une partition principale. Il ne peut y avoir
qu'une partition étendue par disque dur, laquelle peut être divisée en
sections plus petites appelées lecteurs logiques.
4) Lecteur logique : section d'une partition étendue. Un lecteur logique peut
être utilisé pour séparer des informations à des fins d'administration.
34

B. Tables de partitions
Les informations sur les partitions sont conservées sur le disque lui-même
dans des zones qu'on appelle tables de partitions.
La table de partitions principale est contenue dans le premier secteur du
disque ou secteur d'amorçage (Master Boot Record ou MBR) qui contient
également le programme d'amorçage. Chaque ligne d'une table de partitions
contient l'adresse de début de la partition et sa taille. Il peut s'agir de partitions
primaires qui contiendront un système de fichiers ou de partitions étendues qui
contiendront à leur tour une table de partitions ayant la même structure que la
table principale.

C. Présentation d’une Table de Partitions

Abréviation Signification Commentaire

Légende
 MBR (aster Boot Record) : secteur de partition principal
 EBR (Extended Boot Record) : secteur de partition secondaire : contient la
table des partitions d'une partition étendue
 BS(Boot Sector) : secteur de boot

D. Chargeur d'amorçage (bootloader)


Un chargeur d'amorçage (ou bootloader) est un logiciel permettant de
lancer un système d'exploitation parmi plusieurs (multiboot), c’est-à-dire qu'il
permettra d'utiliser plusieurs systèmes, à des moments différents, sur la même
machine.
Dans le cas le plus simple, il n'y a qu'une seule partition du disque de boot :
le micrologiciel BIOS charge les 512 premiers octets de ce disque, ces 512 octets
constituant le MBR. À partir des informations du MBR, il détermine l'emplacement
35

de la routine d'amorçage. Si le disque de boot a plusieurs partitions, le micrologiciel


BIOS lit le MBR du disque, puis le VBR de la partition (Volume Boot Record). À partir
de ces informations, il peut déterminer l'emplacement du chargeur d'amorçage et
le lancer.
Sur certains PC actuels, c'est le micrologiciel EFI (et non pas le BIOS) qui est
utilisé pour lancer le chargeur d'amorçage : l'EFI lit la GPT du disque (GUID Partition
Table) pour déterminer l'emplacement de la routine d'amorçage.

IV. SYSTÈMES DE FICHIERS (FILE SYSTEM)

Un système de fichiers définit la façon dont les informations sont placées sur
une unité de Stockage.

A. Formatage

Le formatage est l'action de formater, c'est à dire de préparer un support


de données informatique (disquette, disque dur, etc.) en y inscrivant un système de
fichiers, de façon à ce qu'il soit reconnu par le système d'exploitation de
l'ordinateur. Il existe de nombreux systèmes de fichiers différents : FAT, NTFS, HFS,
ext2, ext3, UFS, etc.
Les disques de grande capacité peuvent recevoir plusieurs systèmes de
fichiers, divisés en partitions logiques ; on parle alors de partitionnement. En
pratique, on partitionne surtout des disques durs.
Le formatage fait appel à deux processus différents connus sous les noms
de formatage de bas niveau et formatage de haut niveau.
 Le formatage de bas niveau s'occupe de rendre la surface du disque
conforme à ce qu'attend le contrôleur tandis que le formatage de haut niveau
concerne les informations logicielles propres au système de fichiers (système
d'exploitation).

B. Arborescence

Sous Unix/Linux, les utilisateurs voient une arborescence de fichiers unique. Cet
arbre est en fait l'unification de plusieurs systèmes de fichiers :
36

 / : racine du système de fichiers


 /bin : programmes nécessaires pour démarrer le système en mode
monoutilisateur.
 /dev (device files) : points d'entrées vers des périphériques physiques
 /etc : fichiers de configuration
 /home : données propres à chaque utilisateur
 /lib (shared libraries) : nécessaires aux programmes de démarrage
(principalement des programmes placés dans /bin et /sbin).
 /mnt pour le montage pour les périphériques en mode block (cdrom, floppy
...)
 /proc infos sur l'état du système et les différents processus
 /sbin programmes nécessaires au fonctionnement du système
 /tmp fichiers temporaires
 /usr (usr = Unix System Resources) Données que les utilisateurs peuvent se
partager
 /var fichiers qui sont susceptibles de changer fréquemment : logs, les files
d'attentes pour les impressions, etc.

Remarque : Différence entre bin et sbin : bin=binaires, sbin=binaires système. Pour


un utilisateur standard, bin peut être dans le PATH, mais sbin n'a aucune
raison d'y être.

Dans un système Windows, les périphériques de stockage de données et les


partitions sont affichés comme des lecteurs indépendants en haut de leur propre
arborescence.
37

Exemple : Si l'on considère par exemple un système comprenant :


 une partition de disque dur où est installé le système (Windows ou Unix) ;
 une partition de disque dur où se trouvent les données des utilisateurs ;
 un lecteur de disquette.
 un lecteur de cdrom.
Sous Windows, on accédera alors à ces données de manière séparée :
 C: : partition système du disque dur ;
 D: : partition utilisateur du disque dur ;
 A: : disquette (accèstype : A:\chemin\fichier).
 E: : cdrom (accèstype : E:\chemin\fichier).
Sous Unix, l'accès se fera à partir de la racine / :
 / : première partition système du disque dur ;
 /home : partition utilisateur du disque dur ;
 /mnt/floppy : disquette (accèstype : /mnt/floppy/chemin/fichier).
 /mnt/cdrom : cdrom (accèstype : /mnt/cdrom/chemin/fichier).

C. Les différents types de système de fichiers

Il existe de nombreux systèmes de fichiers :


 mimix : le premier FS utilisé par Linux
 ext2 : le FS standard du système Linux
 msdos : le FS FAT16 de MSDOS et Windows
 vfat : le FS FAT32 de Windows
 smb : le FS réseau utilisant le protocole SMB de Microsoft
 nfs : le FS réseau de Sun
 ntfs : le FS de Windows NT
 iso9660 : le FS utilisé par les CDROM
 Et des systèmes de fichiers journalisés : ext3, ReiserFS, XFS, ...

Remarques : L'avantage d'un système de fichiers journalisé est de maintenir en


permanence la cohérence des métadonnées (données relatives aux structures
d'un système de fichiers: emplacement des fichiers, inodes, etc...).
Au reboot après un crash (problème matériel, bug du noyau etc), le système va
relire le journal, examiner les transactions non terminées, et remettre un système de
38

fichiers sain. En revanche, la journalisation offre peu de garantie quant au contenu


des fichiers eux même.
Certains FS supportent les transactions atomiques : une modification sur le
disque est effectuée ou non, mais elle n'est jamais effectuée "à moitié".

D'autres systèmes de fichiers : CODA, dtfs, LFS, GFS, PVFS, MOSIX

D. Le Fichier.

Un fichier : Un ensemble de donnée de même nature stocké au quel


on donne un nom et une extension
A chaque fichier, le système d’exploitation attribue un Numéro qu’on appelle : i-
node

1. L’INODE

L’inode (Index et node) : (Nœud d’index) : un descripteur d’un fichier.


Il est une structure de donnée contenant des informations concernant un fichier
stocké.
Tout fichier possède son unique inode.
 L'inode contient la totalité des informations sur le fichier, sauf le nom.
 Les inodes sont tous de même taille.
Les informations des inodes
 Type de fichier,
 Droits d'accès,
 Nombre de liens (physiques) : correspond au nombre de références c'est à
dire au nombre de noms.
 UID : effectif du processus créateur ou affecté par chown.
 GID : effectif du processus créateur, affecté par chgrp ou hérité du
répertoire.
 Taille du fichier.
 atime :date de la dernière lecture.
 mtime :date de la dernière modification.
 ctime :date de la dernière connexion.
 Adresse du fichier.
39

Le numéro d'inode est un entier unique pour le périphérique dans lequel il est
stocké.
Tous les fichiers, y compris les fichiers spéciaux, sont identifiés par un inode. Le
numéro d'inode d'un fichier peut être affiché avec la commande : ls –l un_fichier

2. Structure d'un inode

Un inode occupera 128 ou 256 octets (taille définie à la création du


système de fichiers).

V. TRAVAUX PRATIQUES

Ressources :
 Une machine physique tournant sous Windows ou Linux
 Une machine virtuelle
 Une plateforme linux sous format ISO
 Un modem GSM ou un flybox
 1 Gb : 1000Unités par Groupe de 10 étudiants

Travail Pratique 1
Gestion de droit de fichier sous linux (à faire dans le laboratoire)

À faire :
40

1. Installer une machine virtuelle


2. Installer une distribution Linux sur une machine virtuelle
3. Configuration de la carte réseau sous Windows et sous Linux
4. Connecter la machine à la machine virtuelle
5. Manipulation des quelques commandes de base : Gestion et déplacement
des arborescences

Travail Pratique 2
Manipulation d’un système d’exploitation linux

Mis à jour du système et du logiciel et gestion des paquets


1. Installer un programme sous GNU/Linux
2. Configuration du Serveur DNS (Fedora),
3. Configuration du Serveur d’impression,
4. Partage des fichiers,
5. Configuration d’une interface Réseau,
6. Configuration du Serveur Samba,
7. Configuration d’un Serveur Web(Apache)
8. Wine+ Installation d’un logiciel Windows
9. Gestion des utilisateurs et des groupes des utilisateurs
10. Equivalence des logiciels Windows/Linux
11. Le Système Androïd
41

CHAP IV : GESTION DE LA MEMOIRE CENTRALE

I. LA MEMOIRE CENTRALE
A. Définition

On appelle « mémoire » tout composant électronique capable de


stocker temporairement des données. Sans mémoire, dans laquelle le processeur lit
et écrit de l'information, il n'y aurait pas d'ordinateurs tels que nous les connaissons.
Une mémoire est formée d'un certain nombre de cellules (ou cases),
chacune de ces cellules contiennent une certaine quantité d'informations.
Chaque cellule a un numéro, que nous appellerons adresse, qui permet à un
programme de la référencer.
Si une mémoire a n cellules, les adresses iront de 0 à n-1. Toutes les cases de
la mémoire contiennent le même nombre de bits, par exemple k bits, ce qui
permet de représenter 2k combinaisons différentes.
Elle est organisée de façon matricielle par des transistors où chacun d'eux se
trouve à l’intersection d’une ligne et d’une colonne. Elle ne peut contenir que deux
types d’information ; les instructions et les données.
La mémoire centrale est divisée physiquement en cellules, qui elles-mêmes
contiennent un mot-mémoire (word), et chacune possède une adresse propre. A
chaque mot est associé une adresse et un contenu (soit une instruction, soit une
donnée).

B. Classification des mémoires.

Il existe une hiérarchie des mémoires informatiques : les plus rapides sont les
plus coûteuses, donc en nombre limité, et placées le plus près du processeur (les
registres font partie intégrante du processeur). Les plus lentes sont les moins
coûteuses et sont éloignées du processeur.
42

Figure 9: Triangle d'hiérarchisation des Mémoires

 Registre du CPU : Ils servent au stockage des opérandes et des résultats


intermédiaires (5 ns).
 Antémémoire ou mémoire cache : Elle sert de tampon entre le CPU et la
mémoire centrale (15 ns).
 Mémoire centrale : Elle est utilisée pour le rangement des informations; Elle
contient le programme à exécuter, il est constituée de Bios et de la RAM (60
ns).
 Mémoire d’appui : C’est la mémoire tampon qui se situe entre la mémoire
centrale et les mémoires de masse (100 ns).
 Mémoire de masse : Ce sont tous les systèmes d’archivage comme le disque
dur, la bande magnétique. Elles ont une grande capacité. (10-30 ns).
Autre type des mémoires.
 Le Bascule : Petite mémoire qui ne contient qu’un bit
 La mémoire associative : une forme de mémoire cache assez rapide
 La Mémoire flash : Mémoire de masse en circuit intégré
 La Mémoire volatile : Mémoire qui peut perdre les informations en cas de
coupure
 La Mémoire Virtuelle : L’extension de la Mémoire centrale pris sur le mémoire
de masse.
43

C. Organisation

La mémoire est constituée dans l’ordre croissant : du bit, de l’octet (8bits), du


caractère (7,8 ou 16 bits), du mot (Groupement d’octet), de l’enregistrement (bloc
de données) et du fichier.
Ses principales caractéristiques sont :
 L’adresse : Valeur numérique référençant un élément de mémoire (un mot
ou un fichier)
 La capacité ou taille : Nombre d'informations que peut contenir la mémoire
 S'exprime en nombre de mots ou d'octets
 128 Mots de 64 bits, 60 Go, 512 Ko,
 Le temps d’accès : Temps s'écoulant entre le lancement d'une opération de
lecture/écriture et son accomplissement
 Le cycle mémoire : Temps minimal entre 2 accès successifs à la mémoire
 Le débit : Nombre d'informations lues ou écrites par seconde
 Exemple : 300 Mo/s
 La volatilité : Conservation ou disparition de l'information dans la mémoire
hors alimentation électrique de la mémoire.
Il existe différents types d’accès suivant les fonctions mémoire désirées:
 Accès séquentiel : Pour accéder à l’information, il faut parcourir toutes
celles qui la précèdent (bande magnétique).
 Accès direct : L’information possède une adresse propre qui permet de la
localiser directement (Mémoire Centrale).
 Accès semi-séquentiel : C’est une combinaison entre l’accès direct et
l’accès séquentiel.
 Exemple : disque dur : Accès direct au cylindre et Accès séquentiel
au secteur sur un cylindre
 Accès par contenu : L’information est identifiée par une clé de recherche
(mémoire cache).
44

D. Gestion de la Mémoire Centrale

1. Description

Gérer la mémoire, c’est connaître comment utiliser la mémoire où placer le


programme (si c’est un nouveau programme), si la mémoire est remplie, il y a
moyen qu’un (des) programme (s) puissent être déplacés. C’est lequel ou ce sont
lesquels

Programme1

Programme2

Programme X Programme3

Organiser, c’est se poser des questions auxquelles on va répondre :


 l’affectation d’un user en MC ou plusieurs en même temps
 placer plusieurs programmes dans la MC en même temps et en donnant la
même quantité d’espace mémoire ou pas ?
 partition qui doit être ou non la même ou variable dans le temps
 l’exécution de job sera dans la même partition ou non
 le job doit être ou non divisé dans différentes parties dans la MC, …

2. Allocation contigüe et non contigüe de la mémoire

Les premiers systèmes informatiques exigeaient une allocation contiguë de


la mémoire c'est-à-dire que le programme devait occuper un bloc continu de
mémoire. Dans l’allocation non contiguë, un programme peut être divisé dans
différents blocs de mémoire qui ne sont pas nécessairement adjacents.

a. Allocation contiguë à un seul utilisateur : La Monoprogrammation

 Principe de fonctionnement
Si à chaque instant, un programme est en MC, l’organisation et la gestion
sont alors simples.
Ex : - Le cas de grand système
- Cas de système d’exploitation de PC qui travaille en monoprogrammation
Un premier user dispose de toutes les ressources de la machine, il peut demander
le changement et l’exécution d’un de ses programmes. Lorsqu’il désire l’exécution
45

d’un second programme, il doit auparavant transférer le premier sur une mémoire
auxiliaire.
Un autre user doit attendre que le premier ait terminé pour pouvoir a son tour
exécuter ses programmes.
La mémoire centrale est divisée en 2 zones ; la première est dite zone système et la
deuxième est celle de l’utilisateur dans laquelle un programme est chargé,
Suivant les mécanismes utilisés, la zone système et celle de l’utilisateur sont de
taille fixe ou variable.

 Recouvrement (Overlay)
Les programmes à exécuter sont limités en quantité par l’espace de la
mémoire centrale. Pour faire tourner un programme plus grand, on utilise le système
de recouvrement (Overlays). Parfois on dit les segments (portions de mémoires sont
en recouvrement). La section du programme qui n’est pas obligée de rester dans
la mémoire au long du déroulement du programme est remplacée par une autre
venant de la mémoire secondaire. Donc c’est le découpage des programmes.
L’overlay donne la possibilité d’exécuter un programme limité par la
mémoire centrale mais l’overlays manuel exige une planification considérable en
temps et en précaution.
46

b. La Multiprogrammation à partition fixe

 Traitement en Batch (en lot)


Dans les premiers systèmes à monoprogrammation, les jobs exigeaient un
temps de chargement considérable (set up time) durant lequel les HDD étaient
montés (mount disk). Lors de la mise hors tension, les jobs exigeaient un temps
d’achèvement (teardown time) assez long au cours duquel les HDD étaient
démontés.
Pendant le chargement et le déchargement du job, l’ordinateur restait
inactif. Avec ce problème, les concepteurs des OS ont pu automatiser la transition
de job en job. On allait gagner un temps considérable entre cette transition.
Dans le traitement en Batch, les jobs sont groupés en lots et sont chargés
consécutivement sur le HDD. Ce système lit les instructions de contrôle pour entrer
ou sortir les jobs et facilite le chargement du prochain job. Pour mettre à profit le
temps d’inactivité du CPU à un job donné, on décide d’affecter le CPU à un autre
job, ce qui conduit à l’implémentation des systèmes à multiprogrammation.
Et plusieurs types de multiprogrammation ont été implémentés

c. Multiprogrammation à traduction et chargement absolu

C’est la division de Mémoire Centrale en partition de taille fixe. Les jobs


sont traduits par de traducteur (compilateurs) absolus (être chargé dans la partition
spécifique)Dans ce système, si un job est prêt pour l’exécution et que sa partition
est occupée, alors il est obligé d’attendre même si les autres partitions sont
disponibles. Dans la première partition, il y a une catégorie de jobs qui vont entrer,
mais d’utilisation différentes. C’est le principe de la file d’attente (FIFO)

OS

J15, J14, J13, J12, J11 Partition_1 C PU


J23, J22, J21 Partition_2

J34 , J33, J32, J 31 Partition_3

Avantage : Pas de chômage du CPU car on est en multiprogrammation


Inconvénient : fil d’attente alors qu’il y a une partition qui est vide
47

d. Multiprogrammation à traduction et chargement relatif

Les jobs peuvent être placés dans une partition disponible dans
laquelle ils peuvent convenir. Donc il y a une liberté de job pour choisir la partition.
Le CPU travaille simultanément toutes les n partitions. Les compilateurs et chargeurs
absolus sont utilisés pour produire des programmes relogeables (relocatables) qui
peuvent donc tourner dans n’importe quelle partition disponible.

e. La Multiprogrammation à partition variable

Les limites fixes des espaces sont abandonnées. Les jobs reçoivent
l’espace dont ils ont besoin. Mais l’espace pour un job reste contiguë car le
problème de consommation de l’espace commencent à se poser à partir du
moment où les jobs terminent l’exécution et laissent des ouvertures (trous). Ces
trous peuvent être utilisés pour les autres jobs qui arrivent avec le temps. De ce fait
la mémoire devient petite (de plus en plus fragmentées).
Il y a deux actions à entreprendre : Fusion et Compactage
 Fusion (Collecte des trous)
Si un job qui a une taille > partition, il faut appliquer cette action (mis ensemble
des partitions vides). Fusionner les zones adjacentes
 Compactage (défragmentation)
Par manque d’espaces dans les trous si le job désire un espace important,
alors il faut déplacer tous les espaces non utilisés d’un côté et tous les
occupés de l’autre côté.
 Type des stratégies
Pour déplacer les jobs, il y a trois types de stratégies :
- Best Fit Strategy (Meilleur ajustement) : le job qui arrive est placé dans
l’espace dans lequel il s’ajuste le mieux et laisse le moins d’espaces utilisés)
- First Fit Strategy (Premier ajustement) : le job est placé dans l’espace
directement disponible en premier lieu.
- Worst Fit Stratagy (Mauvais ajustement) : le job est placé dans l’espace où il
ajuste mal (laisse le grand espace non utilisé)
Ex : Considérons la suite de demande d’allocation (+) et de libération (-) suivante
dans un espace mémoire de 1000 Kb (1Mb) sans compter le OS et utilisant
l’allocation contiguë. +300 +200 +260 -200 +100 -300 +250 +400 -260 +150 +120 -100 -
48

120 +200 -150 -250 +100 -400 -100 -200 ; Appliquer, en indiquant comment gérer la
MC, les stratégies suivantes (Best, First, Worst, Next,)

f. La Multiprogrammation à partition chaînée

Toutes les méthodes de multiprogrammations utilisées effectuaient une


allocation contiguë de la mémoire. Mais la partition chaîné, le job peut être
partagé en plusieurs parties et placés dans des espaces libres. Le passage d’un
bloc à un autre se fait par indication (avec une valeur numérique d’adresse) dans
la dernière cellule du bloc de la prochaine case à considérer. C’est le pointeur
(Task) et d’une liste chaîne (Linked list). Cette partition va s’effectuer sur une
structure de données qui doit avoir au début un point début (PtrDebut) et à la fin
pointeur Fin (NIL ou ^).
Ce procédé permet de satisfaire les demandes en évitant une réorganisation
de la mémoire au moyen des opérations coûteuses comme fusion et
compactage.
Problème : Perte de pointeur entraîne une difficulté et Accès séquentiel et non
direct
Avec ces problèmes, on fait recourt d’une chaîne double La chaîne peut se
représenter sous forme de tableau.

g. La Multiprogrammation à partition permutable

Avec cette multiprogrammation, un job peut être permuté d’un bloc à


un autre lors de son exécution

II. MEMOIRE VIRTUELLE

Le terme Mémoire Virtuelle (Virtual Storage) est normalement associé avec la


capacité d’adresser un espace beaucoup plus grand que celui qui est disponible
dans la MC sur certains ordinateurs.
Les deux méthodes d’implémentation de la Mémoire Virtuelle sont la
pagination et la segmentation.
Pour les systèmes paginés, les zones sont toutes de mêmes tailles et sont
appelés pages, pour les systèmes segmentés, les zones sont de taille variable et
sont appelés segments.
49

Généralement, on utilise le terme page et segment lorsqu’on parle de


Mémoire logique (virtuelle). Dans le cas de Mémoire physique (Centrale), pour
exprimer ce fractionnement, on utilise le terme frame ou cadre.

 Traduction d’adresses (conversion)


Exemple : Pour simplifier les choses, considérons la figure théorique ci-dessus. Les
pages ou les cadres sont de taille C=4 mots. La mémoire physique a 32
mots c’est à dire 8 cadres, considérons un fragment de la MV exprimé
par 12 mots.

Table de matière
0 A X Y 0 A
1 B 0 5 1 B
Pages 0 Cadre 0
2 C 1 2 2 C
3 D 2 3 3 D
4 E 4 E
5 F 5 F
Page 1 Cadre 1
6 G 6 G
7 H 7 H
8 I 8 I
9 J 9 J
Page 2 Cadre 2
10 K 10 K
11 L 11 L
Mémoire logique Mémoire physique
La mémoire logique et physique sont reliées par ce qu’on appelle la table
des pages. Dans le cas de notre figure, la table de pages indique la page x est
placée dans le cadre Y

III. MEMOIRE CACHE

Le principe de la mémoire cache est de trouver une solution à la


grande différence de vitesse entre le processeur et la mémoire centrale, car il
existe une grande disparité de vitesse entre ces deux modules. Les ordinateurs ont
différents types de cache, chacune a son propre usage, mais elles possèdent
toutes, à peu de chose près, la même définition.

A. Les fonctions d'une cache

La cache réalise quelques tâches spécifiques. Certaines caches sont


dédiées à ne faire qu'une seule tâche, mais la plupart réalisent les tâches suivantes
50

: Cache en écriture – utilisée lorsqu'un périphérique rapide envoi de l'information à


un périphérique lent. Normalement le rapide devrait attendre que le périphérique
lent lui indique qu'il est prêt à recevoir d'autres données. C'est comme essayer de
tenir une conversation pendant que quelqu'un traduit chaque mot que l'on dit
avec un dictionnaire. Ainsi la cache en écriture possède une logique et les logiciels
lui permettant de transmettre (écrire) sont contenu dans le périphérique lent à la
vitesse de celui-ci automatiquement, de manière à ce que les périphériques soient
libérés et prêts à une autre utilisation.
Le rapport entre les vitesses des périphériques décidera de la grosseur de la
cache à utiliser (plus la différence de vitesse est grande, plus grande devra être la
cache). Cache en lecture - utilisée lorsqu'un périphérique rapide obtient de
l'information d'un périphérique lent. Les caches en lecture possèdent la plupart du
temps une logique leur permettant de lire d'avance (prefetch) ce que vous
pourriez avoir besoin par la suite. Ainsi ils font une lecture lente de toutes les
informations dont vous pourriez avoir besoin. Lorsque vous demandez quelque
chose qui est déjà dans la cache, vous l'obtiendrez rapidement. Lorsque la cache
est vide, elle peut se remplir d'elle même pendant que vous faites autre chose.

B. Types de cache

 Cache L1
Le processeur de votre ordinateur est très rapide, il peut tourner à des
vitesses dépassant 2 Ghz. La mémoire RAM standard est plus rapide que la plupart
des autres composantes de votre ordinateur, mais elle ne tient pas le coup face à
des vitesses approchant celle du processeur. Ainsi les concepteurs de processeur
(CPU) ont réservé un espace mémoire très rapide à l'intérieur même de la puce du
processeur. C'est la cache L1, elle fonctionne à la même vitesse que le processeur.
L'espace sur la puce du processeur coûte très chère, il n'est alors pas possible de
réserver une grande quantité de mémoire pour la cache L1 (approximativement
1/1000 de la taille totale de la mémoire RAM de votre ordinateur).
Puisque les programmes d'ordinateur effectuent beaucoup de boucles
autour du même code, les instructions et données de la cache L1 sont exécutées
souvent. Même une petite cache L1 peut donner un gain très appréciable en
vitesse. Plus la vitesse du processeur est rapide par rapport à la mémoire principale
51

RAM et plus la quantité de données sur laquelle vous travaillez est importante, plus
grande devra être la cache L1.

 Cache L2
La mémoire rapide situé dans le processeur (cache L1) est de petite taille, et
la cache L1 ainsi que le processeur sont encore beaucoup plus rapides que la
mémoire RAM (jusqu'à 50 fois plus rapide). Lorsque que les données ne sont pas
dans la cache L1, le processeur doit aller les chercher dans la mémoire RAM, il y a
alors un ralentissement notable. Le processeur doit alors attendre un long moment
(par rapport à sa vitesse) pour que la mémoire RAM lui rende l'information, le
processeur ne peut alors rien faire d'autre qu'attendre. Ainsi entre la cache rapide
L1 (et le processeur) et la mémoire lente RAM, est insérée une deuxième cache, la
cache niveau 2 ou L2.

 Cache L3 et L4
Certains systèmes sont tellement rapides qu'ils ont besoin de plusieurs
niveaux de cache entre le processeur et la mémoire RAM. Chacun de ces niveaux
possède le numéro suivant dans la séquence de numérotation des caches (L1, L2,
L3, etc.).

IV. LA NOTION DE VIRTUALISATION


A. Définition
Dans un environnement professionnel, les ressources technologiques
doivent être exploitées dans une optique de compétitivité, par le biais de la
réduction des coûts et de l'allocation adaptée des ressources. La virtualisation côté
client est devenue une méthode courante pour gérer les ressources critiques telles
que les applications, les services de partage de fichiers et les outils de productivité.
La virtualisation a également des avantages pour les PME, car les utilisateurs
peuvent accéder à des programmes non disponibles sur un système d'exploitation
particulier.
La virtualisation consiste à utiliser des ressources système d'un ordinateur
hôte pour héberger un ordinateur virtuel. Un ordinateur virtuel est parfois appelé un
« invité ». Un ordinateur hôte doit être une machine physique, alimentée et
contrôlée par un utilisateur. Un ordinateur virtuel utilise les ressources système de
l'ordinateur hôte pour démarrer et exécuter un système d'exploitation. Le système
52

d'exploitation de l'ordinateur virtuel est indépendant du système d'exploitation de


l'ordinateur hôte.
L'hébergement d'un ordinateur virtuel permet aux utilisateurs d'accéder aux
fonctionnalités et ressources d'un système d'exploitation distinct de celui installé sur
l'ordinateur hôte.
Exemple, un ordinateur hôte exécutant Windows 7 peut héberger un ordinateur
virtuel sur lequel UBUNTU est installé. L'ordinateur virtuel peut alors exécuter des
logiciels conçus spécifiquement pour UBUNTU. L'installation d’UBUNTU n'interfère pas
avec l'installation de Windows 7 sur l'ordinateur hôte. Si besoin, les utilisateurs
peuvent améliorer les fonctionnalités de leur système en exécutant plusieurs
ordinateurs virtuels

B. Hyperviseur : Virtual Machine Manager


Le logiciel permettant de créer et de gérer un ordinateur virtuel sur un
ordinateur hôte est appelé « hyperviseur », ou Virtual Machine Manager (VMM). Un
hyperviseur peut exécuter plusieurs ordinateurs virtuels sur un seul ordinateur hôte.
Chaque ordinateur virtuel exécute son propre système d'exploitation. Le nombre
d'ordinateurs virtuels pouvant être créés dépend des ressources matérielles de
l'ordinateur hôte. L'hyperviseur alloue les ressources système physiques (processeur,
mémoire vive, disque dur) à chaque ordinateur virtuel, selon les besoins. Ce
procédé garantit l'indépendance de tous les ordinateurs virtuels.

 Type d’hyperviseur :

On distingue deux types d'hyperviseur : le Type 1 (natif) et le Type 2


(hébergé). Un hyperviseur de Type 1 repose directement sur un système matériel
hôte et gère l'allocation des ressources système aux systèmes d'exploitation des
invités. Un hyperviseur de Type 2 est hébergé par un système d'exploitation. Le
Virtual PC de Windows est donc un hyperviseur de Type 2.

 Windows Virtual PC

Windows Virtual PC est la plate-forme de virtualisation de Windows 7. Virtual


PC vous permet de répartir les ressources système utilisées pour un système
d'exploitation Windows entre plusieurs ordinateurs virtuels exécutant une copie
enregistrée de Windows 7, Windows Vista ou Windows XP. Vous pouvez télécharger
Virtual PC sur le site Web de Microsoft. La section suivante indique la configuration
53

minimale requise par Virtual PC. Virtual PC est requis pour exécuter le programme
Mode Windows XP sous Windows 7.

 Mode Windows XP

Le Mode Windows XP est un programme disponible sous Windows 7


Professionnel, Entreprise et Édition Intégrale. Le Mode Windows XP utilise la
technologie de virtualisation pour permettre l'exécution de programmes conçus
pour Windows XP sous Windows 7. Le programme ouvre un ordinateur virtuel sur le
Bureau de Windows 7. Cette opération permet de disposer d'une version
pleinement fonctionnelle de Windows XP, comprenant un accès à toutes les
ressources système. Après avoir installé un programme en Mode Windows XP, vous
pouvez exécuter le programme en question en Mode XP et y accéder depuis le
menu Démarrer de Windows 7.

V. TRAVAUX PRATIQUES

Travail Pratique 1 :

Gestion de la mémoire sous Linux


1. Les pages : l’accès au fichier meminfo dans le répertoire /proc

Travail Pratique 2 :

Gestion de la mémoire virtuelle dans Windows 7


Ressources
 Un ordinateur avec Windows 7 installé.
 Le disque dur doit comporter au moins deux partitions.

Travail pratique 2 :

La virtualisation du type 1 et du type 2

1. Installation d’une machine virtuelle : hyperviseur natif

2. Installation d’une machine virtuelle : herbergé

3. Interconnexion entre deux machines virtuelles


54

CHAP V : CAS CONCRETS

Ce chapitre porte sur un ensemble des Travaux pratique à présenter


dans l’auditoire avec un Chargé de Pratique Professionnel

Travail Pratique 1 :
Utilisation de l’interface en ligne de commande dans Windows
Objectif
Au cours de ce TP, vous allez utiliser l’interface en ligne de commande afin
de gérer des dossiers, des fichiers et des programmes sous Windows 7 ou
Windows 8
Ressources
 Un ordinateur exécutant Windows 7, ou Windows 8
Travail Pratique 2 :
Création d’une partition dans Windows 7ou Windows 8
Objectif :
Créer une partition formatée en FAT32 sur un disque. Vous allez aussi convertir
la partition en NTFS. Vous identifierez les différences entre les formats FAT32 et
NTFS.
Ressources
 Un ordinateur exécutant Windows 7 ou Windows 8
 Un espace non partitionné d’au moins 1 Go sur le disque dur
N.B : vous aurez peut-être besoin de remplacer des lettres de lecteur par celles
indiquées dans ce TP.
Travail Pratique 3 :
Création de comptes d’utilisateurs dans Windows 7, Windows 8 et sous Linux
Objectif
Créer des comptes d’utilisateurs dans Windows 7, Windows 8 et sous Linux.
Ressources
 Un ordinateur avec une nouvelle installation de Windows 7 ou Windows 8
 Une machine virtuelle installée sur un ordinateur physique qui tourne sous
windows.
55

Travail Pratique 4 :
Gestion du dossier Démarrage dans Windows 7
Objectif
Personnaliser le dossier Démarrage et la clé RunOnce du Registre.
Ressource
 Un ordinateur exécutant Windows 7
Travail pratique 5
Gestionnaire des tâches (Gestion des processus) dans Windows
Travail Pratique 6
Planification d’une tâche dans l’interface graphique et à l’aide de la
commande « at » dans Windows
Objectif
Planifier une tâche à l’aide de l’interface graphique (GUI) de Windows, puis
planifier une tâche dans l’invite de commandes à l’aide de la commande
at.

Travail Pratique 7
Utilisation de l’outil Restauration du système dans Windows
Objectif
Créer un point de restauration et ramener l’ordinateur à ce moment précis.
Travail Pratique 8
Exécution d’utilitaires en ligne de commande dans Windows 7
Objectif
Utiliser des utilitaires Windows en ligne de commande pour configurer des
paramètres dans Windows 7.
56

CONCLUSION

Ce cours a présenté les systèmes d'exploitation sous plusieurs facettes. Son


objectif majeur est celui de présenter la base de conception d’un Système
d’Exploitation et la gestion des ressources informatiques : Matérielles et logicielles.
Divisé en Quatre chapitres, ce présent cours a présenté les généralités sur le
Système d’Exploitation dans son premier chapitre il a été également question de
montrer les rôles ou objectifs principaux d’un système d’exploitation, tout en
insistant sur les différentes interfaces entre ressources de l’ordinateur, qui se
présente comme suite.
 Le Système d’Exploitation : interface entre : User et Ordinateur,
 Un programme pilote : Interface entre : Ordinateur et Périphérique,
 Frimeware(BIOS) : interface entre : Composantes Matérielles et La Carte
mère
 .Netframe : Interface entre Programme d’Application et les composantes
matérielles : Il rend flexible les matériels à l’égard de l’exécution du
programme.
 L’API : interface entre Programme d’Application et le Système
d’Exploitation : qui rend compatible le P.A à l’Egard de son Système
d’Exploitation.
En définissant le système d’exploitation comme étant un ensemble des
programmes qui gère l’exécution des autres programmes et pourvoie de service
tels que l’allocation des ressources, il a été question dans le deuxième chapitre de
présenter le concept d’un programme en exécution qu’on a appelle processus,
qui vient du processing(Processeur) qui signifie traitement, il a été en d’autres terme
question de montrer les différentes étapes que peut prendre un programme
lorsqu’il est exécuté par un utilisateur et au moyen des appels systèmes, faire réagir
le S.E. le terme processus est attribué à un programme qui est traité par le
Processeur ce qui justifie son appellation. Processus-Processing-Processeur. Dans la
gestion des ressources, le Système d’Exploitation gère aussi les programmes qui sont
installer sur l’ordinateur en leurs attribuant un numéro qu’on appelle PID(Process
Identier) et leurs alloues des cases mémoires pour leurs exécutions.
Parlant de l’allocation de la mémoire, le troisième chapitre a porté sur la
gestion de la mémoire. Nous avons montré comment est-ce que le S.E alloue des
espaces au Processus et le dernier chapitre a parlé sur la gestion des fichiers où
nous avons montré le différents système de fichier qu’utilise le S.E. au revoir et à
bientôt
57

BIBLIOGRAPHIE

1. J. Delacroix, LINUX, Programmation système et réseau, 3e édition, Dunod,


2009 ;
2. H. Custer, Au coeur de Windows NT, Microsoft Press, 1993 ;
3. J.P. Braquelaire, Méthodologie de la programmation en Langage C, Masson,
1993.
4. S.J. DJUNGU, Systèmes d’exploitation comparés, Inédit, Janvier 2010.
5. Andrew Tanenbaum, Systèmes d'exploitation, 3e édition, Pearson Education,
6. A. Silberschatz, Principes des Systèmes d’Exploitation, Edition Addison wesley
7. H.M.Dietel, Addison-Wesley, Operating Systems, Pearson Education, 2010.
8. M.J.Bach, The Design of the Unix Operating System
9. Joseph Y-T. Leung, Handbook of Scheduling : Algorithms, Models, and
Performance Analysis Chapman, Hall/CRC Computer & Information Science
10. J. Stankovic et al., Deadline Scheduling for Real-Time Systems, Kluwer
Academic, Boston

WEBOGRAPHIE
1. www.astucespc.com
2. www.developpez.com
3. www.wikipedia.com

NOTE DES COURS


1. Cours d’Initiation au Système d’exploitation
2. Cours de Système d’exploitation comparé
3. Cours de système d’exploitation avancé