Cours Se GL2 Prepa2

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 62

BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2

Par : Ing. Ulrich DJOKO


Email : ulrich_djoko@yahoo.com

PLAN
Chapitre I : Généralités sur les Systèmes d’Exploitation

Chapitre II : La Gestion des Processus

Chapitre III : Synchronisation et Communication Interprocessus

Chapitre IV : La Mémoire Virtuelle

Chapitre V : La gestion des Fichiers et des Répertoires

Chapitre VI: La gestion des Périphériques

Chapitre VII: Notions de Base sur le MS-DOS

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 1 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
1. PREAMBULE :
 Ce cours a pour objet :

 De décrire le rôle et le fonctionnement d’un système d’exploitation.


 D’apprendre à manipuler certains concepts de base

 Ces concepts de base seront essentiellement illustrés au travers du système Windows 7


qui est un système :
 Très homogène,
 Très riche,
 Très souple,
 Très efficace,
 Très évolutif…
2. L’ORDINATEUR.
Un ordinateur est constitué :
i. Du matériel
1. Dispositifs physiques
2. Langage machine
ii. D’un Système d’exploitation
iii. De programmes
1. Programmes système
2. Programmes d’applications

3. QU’EST-CE QU’UN SYSTEME D’EXPLOITATION ?


 Le système d'exploitation (SE, en anglais Operating System ou OS) est un ensemble de
programmes responsables de la liaison entre les ressources matérielles d'un ordinateur et les
applications de l'utilisateur (traitement de texte, jeu vidéo, …)

 Il fournit aux programmes applicatifs des points d'entrée génériques pour les périphériques.

En Effet,
Le système d’exploitation (Operating System ou OS ou SE): c’est le plus important des programmes systèmes :

1. Il contrôle les ressources de l’ordinateur.


2. Il libère le programmeur de la complexité du matériel.
Il se compose:
 D’un noyau (kernel): partie la plus critique d’un OS. Il permet aux éléments matériel
et logiciel de communiquer entre eux, de fonctionner ensemble et de former un tout.
Pour ces raisons, il est le premier logiciel chargé en mémoire.
 Des outils système: partie permettant à l’utilisateur de tirer profit de l’OS, de gérer les
périphériques, les configurer …En bref, ils fournissent une interface d’accès au
système.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 2 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
Chapitre 1 : GÉNÉRALITÉS SUR SYSTÈME D'EXPLOITATION

Introduction

Le système d'exploitation d'un ordinateur ou d'un système informatique est un ensemble de


programmes qui remplissent deux grandes fonctions :

• Gérer les ressources de l'installation matérielle en assurant leurs partages entre un ensemble
plus ou moins grand d'utilisateurs ;

• Assurer un ensemble de services en présentant aux utilisateurs une interface mieux adaptée à
leurs besoins que celle de la machine physique.

Un système informatique est un ensemble de matériels et de logiciels destinés à réaliser des tâches
mettant en jeu le traitement automatique de l'information.

La communication d'un tel système avec le monde extérieur est assurée par des organes d'accès ;
ceux-ci permettent également une interaction avec des dispositifs physiques que le système
informatique est chargé de surveiller ou piloter.

La fonction d'un système informatique est la fourniture de prestations (services) capables d'aider à
la réalisation de problèmes usuels :

• Gestion de l'information : stockage, désignation, recherche, communication, protection contre


les intrusions ou les incidents ;
• Préparation et mise au point de programmes ;
• Gestion de l'ensemble des ressources pour permettre l'exploitation des programmes
(c'est−à−dire création d'un environnement nécessaire à l'exécution du programme).
• Gestion et partage de l'ensemble des ressources (matériels, informations...) entre l'ensemble
des usagers.
1. Définition Et Présentation Générale
Le Système d'Exploitation (SE, ou OS en anglais pour Operating System) est un logiciel
nécessaire au fonctionnement d'un ordinateur. Il est l'interface entre le matériel et l'utilisateur. Tous
les logiciels auxquels l'utilisateur a accès ne sont pris en compte par la machine qu'au travers du
système d'exploitation. A chaque type de matériel correspond un type de système d'exploitation.

Le système d'exploitation est composé :


 D'un noyau(kernel) : qui assure la gestion des processus :
 Cœur du système
 Le noyau est de plus en plus restreint à sa fonction principale
 On parle de micro noyau
 D'autres composants logiciels assurant les fonctions du système :
 Gestion de fichiers
 Gestion de mémoire
 Gestion des entrées-sorties
 Interpréteur de commande...

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 3 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2

Figure 1 : Structure d’un système d’exploitation

On peut considérer que cet ensemble de prestations, fournies par le système d'exploitation, constitue
pour l'usager de ce système, une machine nouvelle qualifiée d'abstraite ou de virtuelle, par
opposition à la machine physique réalisée par l'assemblage de composants matériels.

• Logiciel d'application ;
• Logiciel de base ;
• Machine physique.

Le logiciel de base peut lui−même être décomposé en deux niveaux :

• Les outils et services (compilateurs, chargeurs, éditeurs, utilitaires, ...)


• Le système d'exploitation.

2. Rôles du système d'exploitation


L'activité principale du système d'exploitation est de gérer les ressources matérielles en permettant
leur allocation et leur partage. Ce dernier point augmente les performances du système en autorisant
à plusieurs programmes d'applications d'utiliser simultanément différentes parties de la machine.

Le système d'exploitation :
 Pilote les organes de l’ordinateur (écran, clavier, disque...)
 Lance en exécution les divers programmes…

3. Fonctions du système d'exploitation


Il joue différentes fonctions essentielles :

 Il gère l'ensemble des échanges entre le microprocesseur, la mémoire centrale et les unités
périphériques

 Il met à la disposition de l'utilisateur un certain nombre de commandes et il gère leur exécution


(formatage des disquettes, copie de fichiers, gère les fichiers, la sécurité en local...)

 Il détecte les erreurs, les gère et informe l'utilisateur.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 4 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
Et d’autres fonctions tel que :

Le chargement

C'est la phase de démarrage de l'ordinateur appelé également "Boot Sequence". A la mise sous
tension, un programme du BIOS recherche à un endroit défini (disque, lecteur...), un programme
"Boot loader" qu'il charge en mémoire et qui va s'exécuter.
Ce programme est déjà une partie du SE qui va charger différentes couches du SE qui vont ensuite
s'exécuter. L'ensemble du système d'exploitation est ainsi chargé et exécuté.

La communication Homme-Machine

Dès que le système est chargé, l'utilisateur a normalement "la main" pour envoyer des ordres au SE
qui les exécutera. Ces ordres peuvent être envoyés soit en mode console (ligne de commande), soit
en mode graphique. Certains SE ne sont qu'en mode console (MS-DOS).
Les ordres peuvent également être lancés à travers l'exécution d'application ou de fichiers de
commande (fichiers "batch"). Dans certains cas, l'utilisateur devra au préalable s'identifier.

Fournir des services d'accès aux ressources

On n'utilise pas une machine pour son seul système d'exploitation mais pour les logiciels applicatifs
que l'on installe en complément du SE. Ces applications fournissent des services du SE pour lire ou
écrire un fichier sur le disque, pour connaître la date du jour...

Les services sont appelés les API (Application Programming Interface). Sous Windows, on parle de
l'API Win32. L'API est un ensemble de fonctions qu'il est possible d'appeler dans un programme
afin d'obtenir des services de la part du SE.

Gérer des fonctions complexes


Le SE gère au mieux les ressources matérielles :

 Processeurs
 Mémoire centrale
 Périphériques...

Gestion de l'Unité Centrale

Elle consiste à distribuer le processeur entre les différents travaux à exécuter. Cette fonction est
simple dans le cas d'un système mono-tâche. En ce qui concerne un système multitâche, la
concurrence pour l'accès au processeur entre les différents travaux est gérée par l'attribution d'un
niveau de priorité et d'une portion de temps de l'unité centrale (TIMESHARE).

Gestion des entrées-sorties


Cette fonction consiste à prendre en charge l'échange d'information entre l'ordinateur et l'extérieur.
Cette gestion comprend à la fois l'installation (ajout, suppression, maj.) et l'utilisation de
périphériques. Ces différentes fonctions sont assurées par des pilotes(drivers).

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 5 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
Gestion des processus

On parle dans le cas de systèmes multitâches de gestion des processus, les processus étant des
programmes ou des parties de programmes lancés par le SE en arrière-plan.

Quelques définitions :
 THREAD : parties de programmes, c'est une unité d'exécution dans le processus
 SYSTEME PREEMPTIF : un ordonnanceur gère l'attribution du temps CPU aux différents
processus (il choisit d'arrêter l'exécution d'un processus au profit d'une autre Ex : W2000, XP,
Vista.
 SYSTEME COOPERATIF : "les systèmes s'arrangent entre eux". Un processus libère lui-même
le CPU lorsqu'il a fini de s'exécuter. Ex : W95,98, Dos...

Gestion de la mémoire centrale


Les applications occupent et utilisent de la place en mémoire, le SE a pour rôle de gérer en
permanence un plan d'occupation de la mémoire. Le SE gère le chargement des programmes en
mémoire centrale. En cas de besoin, le SE répartit les besoins entre la mémoire vive et la mémoire
virtuelle (place allouée sur le disque dur). On parle alors de SWAPPING (on écrit sur le HDD tout
ce qui ne peut pas être chargé dans la RAM). Pour répartir la mémoire entre application, plusieurs
techniques peuvent être mises en œuvre :

 La pagination : les programmes sont découpés en pages de longueur fixe correspondant aux
segments de mémoire alloués.

 La segmentation : permet un découpage plus fin et adapté aux besoins. Les programmes ne sont
pas découpés en pages de taille fixe mais en segments dont la taille est adaptée au programme.
Les segments peuvent être implantés en mémoire centrale ou en mémoire virtuelle.

La mémoire peut également être gérée de façon mixte. Un des problèmes important est la
réallocation de la mémoire lorsque celle-ci est libérée ou la récupération de la mémoire non libérée
par des applications. Certains systèmes disposent d'un dispositif de ramasse miette (Garbage
Collector) qui récupère la mémoire non libérée.

Gestion des fichiers


Le système de gestion de fichiers prend en charge les opérations de lecture-écriture de fichiers sur
des ressources autre que la mémoire centrale (disque, disquette, clé USB...). Il gère à la fois les
fichiers, les répertoires et tient à jour la table d'allocation (File Allocation Table) qui permet
d'associer le fichier à son implantation physique sur le disque, mais également de gérer l'espace
disponible sur celui-ci.
Un certain nombre de commandes et d'utilitaires sont mises à la disposition de l'utilisateur pour
gérer ses fichiers et ses répertoires (copie, renommage, création de répertoire, formatage...)

FAT : petite zone qu'il y'a en début de disque dur qui permet au disque de savoir à quel fichier est
rattaché le cluster (implantation sur le disque).

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 6 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
4. Finalités du système d'exploitation

• Gestion des informations : stockage, recherche protection ;


• Gestion des ressources matérielles et logicielles : optimisation, sécurité, exécution des applications,
partage entre usager ;
• Assurer une sécurité vis à vis du matériel et personnel ;
• Rendre compte de l'activité de la machine.

5. Types de logiciels de base (système d’exploitation)

 Le système mono-tâche

Il ne gère qu'une seule tâche à la fois (un seul programme). Quand le programme est lancé, il utilise
seul les ressources de la machine et ne rend la main au système d'exploitation qu'en fin d'exécution,
ou en cas d'erreur.

Ex: MS-DOS, Windows 3.1, Mac OS...

 Le système multitâche

Il gère simultanément plusieurs programmes sur une même machine. Il permet de partager le temps
du processeur pour plusieurs programmes, ainsi ceux-ci sembleront s'exécuter simultanément.

Le principe est d'allouer du temps à différents programmes (taches ou processus) fonctionnant


simultanément. Ces tâches seront tour à tour actives, en attente, suspendues ou détruites, suivant la
priorité qui leur est associée. Le temps alloué peut être fixe ou variable suivant le type de partage
géré par le SE.

Ex : OS2 d'IBM, Windows 95, 98...

 Le système multitâche Coopératif ;

 Le système multitâche Préemptif ;

 Le système multithreading ;

 Le système multi-utilisateur

Un système multitâche peut permettre à plusieurs utilisateurs de travailler simultanément, il est


alors dit multi-utilisateur.
Les caractéristiques principales sont :
 Gestion d'environnement propre à chaque utilisateur (identification, ressources propres)
 Sécurité d'accès aux programmes et aux données
 Notion de droits d'accès

Ex : Windows 2000, 2003, XP, Unix (HP-UX, Solaris, AIX, Linux, FreeBSD...)

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 7 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
LES PRINCIPAUX SE DU MARCHE

Gros systèmes

Le marché des gros systèmes est essentiellement dominé :


 Soit par IBM et son AS400 tournant sous OS400, ou d'autres systèmes (Z-OS, OS390...)
 Soit par des machines fonctionnant sous UNIX
Néanmoins, Linux est de plus en plus présent également sur ce marché.

Les serveurs

 Unix ou Linux de plus en plus


 Les systèmes Windows (NT serveur, 2000, Windows serveur 2003, 2008, 2012, 2016…)
 Novell

Les postes de travail

Les postes de travail sont composés aujourd'hui en majorité de PC. Les systèmes utilisés sont donc
ceux fonctionnant sur cette plate-forme :

 MS-DOS

 Windows 95, 98, NT Work-station, Millennium, 2000 Pro, XP Pro, Seven Pro

 Linux

Les autres systèmes :

 MacOs

 Système X

 Sun-Os

 FreeBSD

LES ÉTAPES IMPORTANTES DES SE


1974 Unix Créé par At&T, multitâche, préemptif, multiutilisateur, stable
1981 MS-DOS Interface caractère, mono tâche, 16 bits
1984 Mac OS Interface graphique
1987 OS/2 Multitâche préemptif
1991 Linux Créé par Linus Thorvald, clone d'Unix, OS libre
1992 Windows 3.1 Interface graphique, lancée à partir de MS-DOS
1994 Windows NT Plusieurs processeurs, sécurisé (droits utilisateurs), NTFS
1995 Windows 95,98,2000 Multi tâche préemptif, Plug and Play, 32 bits

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 8 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
Exemples de Systèmes d'exploitation

Le système d'exploitation est un programme qui gère le fonctionnement du micro-ordinateur


vis−à−vis de ses périphériques et qui assure un « pont » entre l'utilisateur et le système.

Le micro-ordinateur travaillant à l'état initiale en langage binaire, il est difficile pour les utilisateurs
de travaillé avec. Aussi, il a été créé des programmes pour que l'utilisateur moyen puisse
communiquer avec le micro-ordinateur. Il existe plusieurs système exploitation plus ou moins
complexe.
Le plus connu est le MS DOS mais aussi UNIX, OS2 WARP... et maintenant WINDOWS 95 et 98.

DOS (Disk Opérating System) :


Système d'exploitation développé par MICROSOFT, D'où le nom MSDOS. Le système MSDOS est
un système d'exploitation de type clavier, c'est à dire que l'utilisateur se sert du clavier comme
intermédiaire entre lui et l'ordinateur.

Problème : MSDOS ne permet pas le travail du microprocesseur en multitâche, c'est à dire lancé
plusieurs programmes simultanément.

WINDOWS :
Le système WINDOWS type 3.0, 3.1, 3.11 n'est pas un système d'exploitation. Il a besoin du
système MS DOS pour fonctionner. C'est un programme qui est un intermédiaire de type souris.

WINDOWS 9x :
En septembre 1995, sort le système d'exploitation Windows 95. A la différence de Windows 3.x, il
n'a pas besoin de MSDOS pour travailler, malgré qu'il garde une couche MSDOS en arrière-plan
(peu visible pour l’utilisateur). Il peut travailler en multitâche. L'avantage de Windows 95 est
multiple. Il a révolutionné le système d'exploitation par son interface visuelle et ses particularités
techniques. C'est un système d'exploitation utilisant la souris.
En septembre 1998, Microsoft sort une version améliorer de Windows 95 (Nommée WINDOWS
98) qui corrige certains défauts de la première mouture mais garde cependant la même interface
visuelle.

WINDOWS NT :
Système d'exploitation de type serveur client. La gamme NT en version 4 actuellement est prévue
pour faire fonctionner un réseau en se servant d'un serveur et de poste client. Il est prévu pour
permettre une sécurité accrue pour les données.

NOVELL :
Pas vraiment un système d'exploitation mais un logiciel uniquement prévu pour un serveur dans un
réseau. Les postes clients ont cependant besoin d'une couche pour accéder à celui−ci.

UNIX :
C'est également un système d'exploitation, multiposte, et multitâche. UNIX est développé par la
société USL (Unix Système Laboratories).

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 9 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
OS2 :
Système d'exploitation multitâche développé par la société IBM. On le rencontre sur les
micro−ordinateurs PS/2 d'IBM ou les compatibles PC à partir des 386. Ce système intègre une
interface graphique et permet ainsi de remplacer l'association MS DOS / WINDOWS. Windows 95
lui ressemble étrangement.

Quelques Systèmes d'exploitation pour smartphone


 Android, système d'exploitation développé par Google avec un noyau Linux

 iOS, développé par Apple

 BlackBerry OS, développé par BlackBerry

 Windows Phone, développé par Microsoft

 Symbian, développé par Nokia

 MeeGo, développé par Nokia et Intel (noyau Linux)

 Palm OS, développé par Palm

 Bada, développé par Samsung

 Ubuntu Touch, développé par Canonical (noyau Linux)

 Firefox OS, développé par la Mozilla Foundation

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 10 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
CHAPITRE 2 : LA GESTION DES PROCESSUS
INTRODUCTION
Dans un système multitâche, la ressource la plus importante d’une machine est le processeur.
Cette ressource est allouée à un et un processus sélectionné parmi un ensemble des processus
éligibles. Par conséquent, il convient à bien gérer ce dernier afin de le rendre plus productif. En
effet, un système d’exploitation dispose d’un module qui s’occupe de l’allocation du processeur en
l’occurrence le Dispatcheur. Ce module est exécuté chaque fois qu’un processus se termine ou se
bloque dans le but de réquisitionner le processeur pour un autre processus. En plus de ce
Dispatcheur, un système d’exploitation dispose d’un autre module permettant ainsi la mise en ordre
des processus qui demandent le processeur.

I- Notion de processus
Un processus est une entité dynamique qui matérialise un programme en cours d'exécution avec ses
propres ressources physiques (mémoire, processeur, entrée/sortie, …) et logiques (données,
variables, …). Contrairement à un programme (texte exécutable) qui a une existence statique. Le
système d’exploitation manipule deux types de processus :

- Processus système : processus lancé par le système (init processus père des tous les processus du
système)
- Processus utilisateur : processus lancée par l’utilisateur (commande utilisateur) Dès sa création,
un processus reçoit les paramètres suivants :
PID : identificateur du processus (numéro unique)
PPID : identificateur du processus père
UID : identificateur de l’utilisateur qui a lancé le processus
GID : identificateur du groupe de l’utilisateur qui a lancé le processus

Processus père P1
11

Processus fils 1 P2
P3

P4 P5 P6

Processus fils n P7

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 11 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
- Il existe des appels système permettant de créer un processus, charger son contexte et lancer son
exécution (fork, exec sous Unix).

- Un processus peut (père) créer d’autres processus (fils) qui hérite les descripteurs de son père. Ce
dernier à son tour crée d’autres processus. Un processus a un seul père mais peut avoir plusieurs fils

- Les processus peuvent se terminer ou ils peuvent être éliminés par d’autres processus (la
primitive kill). A la destruction d’un processus, on libère toutes les ressources qu’il avait.

- Dans certains cas, la destruction d’un processus entraîne l’élimination de ces descendants ; cette
opération n’affecte pas les processus qui peuvent continuer indépendamment de leur père
(processus orphelins)

II- Ordonnancement des processus


Chaque fois, que le processeur devient inactif, le système d’exploitation doit sélectionner un
processus de la file d’attente des processus prêts, et lui passe le contrôle. D’une manière plus
concrète, cette tâche est prise en charge par deux routines système en l’occurrence le Dispatcheur et
le Scheduleur (Ordonnanceur).

1. Le Dispatcheur
Il s’occupe de l’allocation du processeur à un processus sélectionné par l’Ordonnanceur du
processeur. Une fois alloué, le processeur doit réaliser les tâches suivantes :
- Commutation de contexte : sauvegarder le contexte du processus qui doit relâcher le processeur et
charger le contexte de celui qui aura le prochain cycle processeur
- Commutation du mode d’exécution : basculer du mode Maître (mode d’exécution du dispatcheur)
en mode utilisateur (mode d’exécution du processeur utilisateur)
- Branchement : se brancher au bon emplacement dans le processus utilisateur pour le faire démarrer

2. L’Ordonnanceur
Certains systèmes d’exploitation utilisent une technique d’ordonnancement à deux niveaux qui
intègre deux types d’Ordonnanceurs :

 Ordonnanceur du processeur : c’est un Ordonnanceur court


Terme opère sur un ensemble du processus présent en mémoire. Il s’occupe de la sélection du
processus qui aura le prochain cycle processeur, à partir de la file d’attente des processus prêts.

 Ordonnanceur de travail : ou Ordonnanceur long terme, utilisé en cas d’insuffisance de mémoire,


son rôle est de sélectionné le sous ensemble de processus stockés sur un disque et qui vont être
chargés en mémoire. Ensuite, il retire périodiquement de la mémoire les processus qui sont restés
assez longtemps et les remplace par des processus qui sont sur le disque depuis trop de temps. Nous
distinguons plusieurs algorithmes d’ordonnancement, les plus répandus sont :

 Ordonnancement Premier Arrivé Premier Servi


 Ordonnancement du plus court d’abord
 Ordonnancement circulaire : Tourniquet
 Ordonnancement circulaire à plusieurs niveaux
 Ordonnancement avec priorité

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 12 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
III- Etats et cycle d’exécution d’un processus
1. Etats d’un processus
Dans les systèmes mono programmés, un programme ne quitte pas l’unité centrale avant de
terminer son exécution. Pendant cette période, il dispose de toutes les ressources de la machine. Par
contre, ce n’est pas le cas dans les systèmes multiprogrammés et temps-partagé, un processus peut
se trouver dans l’un des états suivants :

1- Elu : (en cours d’exécution) : si le processus est en cours d'exécution


2- Bloqué : attente qu’un événement se produit ou bien ressource pour pouvoir continuer
3- Prêt : si le processus dispose de toutes les ressources nécessaires à son exécution à l'exception
du processeur.

ELU

2 1
3

4 PRET
BLOQUE

Figure 4.1 : Diagramme de transition d’un processus

 Sémantique des Transitions


(1) : Allocation du processeur au processus sélectionné

(2) : Réquisition du processeur après expiration de la tranche du temps par exemple

(3) : Blocage du processus élu dans l’attente d’un événement (E/S ou autre)

(4) : Réveil du processus bloqué après disponibilité de l’événement bloquant (Fin E/S, etc…)

Notons que nous avons omis les états Création et Terminaison de processus puisqu’ils

n’interviennent pas dans cette étude.

2. Cycle d’exécution d’un processus


L’exécution d’un processus peut être vue comme une séquence de phases. Chaque phase comprend
deux cycles : un cycle d’exécution (ou calcul) réalisé par le processeur et un cycle d’entrée sortie
assuré par le canal. La dernière phase de tout processus doit comprendre obligatoirement un seul
cycle dans lequel sera exécutée la requête informant le système d’exploitation sur la terminaison du
processus. Cet appel permet au système de restituer les ressources utilisées par le processus qui
vient de terminer.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 13 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
3. Bloc de contrôle d’un processus (PCB)
Lorsqu’un processus est temporairement suspendu, il faut qu’il puisse retrouver l’état où il se
trouvait au moment de suspension, il faut que toutes les informations dont il a besoin soient
sauvegardées pendant sa mise en attente.
Notons que le contexte d’un processus dépend du système, mais dans tous les cas c’est un bloc de
contrôle de processus (BCP) qui contient toute information nécessaire à la reprise d’un processus
interrompu : Etat du processus (prêt, suspendu, ...), quantité de mémoire, temps CPU (utilisé,
restant), priorité, etc. Les BCP sont rangés dans une table (table des processus) qui se trouve dans
l’espace mémoire du système (figure 4.5)

PCB Table processuc Memoire


Fat
-état (prêt, PCB1
Table
attente,..)
PCB2 processuce
- temps UPC utilisé
………………………
-temps UPCrestant ………………………
-quantité mémoire ………………………
………………………
-propréteur ….
PCBn

Figure 4.3 : Bloc de contrôle de processus (PCB)

IV- Algorithmes d’ordonnancement


L'ordonnancement est la partie du système d'exploitation qui détermine dans quel ordre les
processus prêts à s'exécuter (présents dans la file des prêts) seront élus. Ses objectifs sont :
- Assurer le plein usage du CPU (agir en sorte qu’il soit le moins souvent possible inactifs);
- Réduire le temps d'attente des utilisateurs.
- Assurer l'équité entre les utilisateurs.

Un algorithme d’ordonnancement permet d’optimiser une des grandeurs temporelles suivantes :


- Le temps de réponse moyen décrit la moyenne des dates de fin d’exécution :

TRM=∑𝒏𝒊=𝟏 𝑻𝑹𝒊 /𝒏, avec Tri=date fin – date arrivée.


- Le temps d’attente moyen est la moyenne des délais d’attente pour commencer une exécution :

TAM=∑𝒏𝒊=𝟏 𝑻𝑨𝒊 /𝒏, avec Tai =Tr


- temps d’exécution Les algorithmes d’ordonnancement se distinguent les uns des autres du fait que
certains autorisent la réquisition de l’unité centrale alors que d’autres l’interdisent. La réquisition est
la possibilité de retirer à n’importe quel instant le processeur à un processus même si ce dernier est
en cours d’exécution.
 Remarque :
Pour représenter schématiquement l’évolution dans le temps des processus, on recourt
habituellement à des diagrammes de Gantt.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 14 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
1. Ordonnancement FCFS (first come first Served)
Dans cet algorithme ; connu sous le nom FIFO (First In, First Out) ;
1. les processus sont rangés dans la file d’attente des processus prêts selon leur ordre d’arriver. Les
règles régissant cet ordonnancement sont :
2. Quand un processus est prêt à s’exécuter, il est mis en queue de la file d’attente des processus
prêts.
3. Quand le processeur devient libre, il est alloué au processus se trouvant en tête de file d’attente
des processus prêts.
4. Le processus élu relâche le processeur s’il se termine ou s’il demande une entrée sortie

 Caractéristiques de l’Ordonnanceur
 Ordonnanceur sans réquisition
 Ordonnanceur non adapté à un système temps partagé car dans un système pareil, chaque utilisateur
obtienne le processeur à des intervalles réguliers.

 Exemple d’algorithme FCFS :

P1 P2 P3 P4 P1 P2 P3 P4

Diagramme de Gantt
2. Ordonnancement SJF (Shortest Job First) (Plus Cours temps d'Exécution en Premier)
SJF choisit de façon prioritaire les processus ayant le plus court temps d’exécution sans réellement
tenir compte de leur date d’arrivée. Dans cet algorithme les différents processus sont rangés dans la
file d'attente des processus prêts selon un ordre croissant de leur temps d'exécution (cycle de
calcul). Les règles régissant cet ordonnancement sont :

1. Quand un processus est prêt à s’exécuter, il est inséré dans la file d’attente des processus prêts à
sa position approprie.
2. Quand le processeur devient libre, il est assigné au processus se trouvant en tête de la file
d’attente des processus prêts (ce processus possède le plus petit cycle processeur.). Si deux
processus ont la même longueur de cycle, on applique dans ce cas l’algorithme FCFS.
3. Si le système ne met pas en oeuvre la réquisition, le processus élu relâche le processeur s’il se
termine ou s’il demande une entrée sortie. Dans le cas contraire, le processus élu perd le processeur
également. Quand un processus ayant un cycle d’exécution inférieur au temps processeur restant du
processus élu, vient d’entrer dans la file d’attente des prêts. Le processus élu dans ce cas sera mis
dans la file d’attente des éligibles, et le processeur est alloué au processus qui vient d’entrer.
 Caractéristiques de l’Ordonnanceur
 Cet Ordonnanceur peut être avec ou sans réquisition
 Implémentation difficile, car il n’existe aucune manière pour connaître le cycle suivant du
processeur.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 15 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
3. Ordonnancement RR (round robin)
Dans cet algorithme les processus sont rangés dans une file d'attente des éligibles, le processeur est
alloué successivement aux différents processus pour une tranche de temps fixe Q appelé Quantum.
Cet Ordonnancement est régi par les règles suivantes :

- 1. Un processus qui rentre dans l’état éligible est mis en queue de la file d'attente des prêts.
- 2. Si un processus élu se termine ou se bloque avant de consommer son quantum de temps, le
processeur est immédiatement alloué au prochain processus se trouvant en tête de la file
d'attente des prêts.
- 3. Si le processus élu continue de s'exécuter au bout de son quantum, dans ce cas le processus
sera interrompu et mis en queue de la file d'attente des prêts et le processeur est réquisitionné
pour être réalloué au prochain processus en tête de cette même file d’attente.

 Caractéristiques de l’Ordonnanceur
- Avec réquisition
- Adapté aux systèmes temps partagé.
- La stratégie du tourniquet garantit que tous processus sont servis au bout d’un temps fini. Son
avantage est d’éviter la famine. On dit qu'un processus est en famine lorsqu'il est prêt à être
exécuté et se voit refuser l'accès à une ressource (ici le processeur) pendant un temps indéterminé
- L’efficacité de cet ordonnanceur dépend principalement de la valeur du quantum Q:
 Le choix d'un Q assez petit augmente le nombre de commutation.
 Le choix d'un Q assez grand augmente le temps de réponse du système

4. Ordonnancement SRTF (Shortest Remaining Time first) (plus court temps d’exécution
restant PCTER)
SRTF choisit le processus dont le temps d’exécution restant est le plus court. C’est une variante de
l’algorithme SJF Cet algorithme est non implantable parce qu’il suppose, entre autres, connu le
temps d’exécution réel de chaque processus pour pouvoir calculer le temps restant

5. Ordonnancement basé sur les priorités


Dans cet algorithme, les processus sont rangés dans la file d’attente des processus prêt par ordre
décroissant de priorité. L’ordonnancement dans ce cas est régit par les règles suivantes :

- 1. Quand un pro*cessus est admis par le système, il est inséré dans la file d’attente des processus
prêts à sa position approprie (dépend de la valeur de priorité).
- 2. Quand le processeur devient libre, il est alloué au processus se trouvant en tête de file d’attente
des processus prêts (le plus prioritaire).
- 3. Un processus élu relâche le processeur s’il se termine ou se bloque (E/S ou autre).

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 16 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
 Remarque :
Si le système met en œuvre la réquisition, quand un processus de priorité supérieure à celle du
processus élu entre dans l’état prêt ; le processus élu sera mis dans la file d’attente des éligibles à la
position approprie, et le processeur est alloué au processus qui vient d’entrer.

 Caractéristiques de l’Ordonnanceur
Les principales caractéristiques sont :
- Peut-être avec ou sans réquisition
- Un processus de priorité basse risque de ne pas être servi (problème de famine) d’où la nécessité
d’ajuster périodiquement les priorités des processus prêts. L’ajustement consiste à incrémenter
graduellement la priorité des processus de la file d’attente des

Éligibles (par exemple à chaque 15 mn on incrémente d’une unité la priorité des processus prêts)

 TAF Implémenté un Algorithme de votre choix

V- Définition et Attributs d'un processus


Un processus est l'entité d'exécution de tout programme sur une machine UNIX/LINUX. Il est
caractérisé par les attributs suivants :

• son propriétaire (l'utilisateur qui a lancé le processus) défini par son id,

• un numéro d'identification unique : le pid,

• le pid du processus père : le ppid. Comme nous allons le voir, tout processus dans Unix/Linux naît
par duplication d'un processus père.

Chaque processus est normalement rattaché à un terminal de contrôle. C'est le terminal à partir
duquel ce processus a été lancé. Cela dit, Unix offre la possibilité de lancer un processus sans le
rattacher à un terminal. On dit alors que ce processus est lancé en mode tâche de fond. Si le
propriétaire de ce processus se déconnecte de la machine, les processus qui ont été lancés en mode
tâche de fond continuent à s'exécuter jusqu'à ce qu'ils se terminent.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 17 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
VI- LES APPELS AU SUPERVISEUR DE PROCESSUS
Envoyer un signal à un processus
Un signal est une interruption logicielle envoyée par un processus à un autre processus, à lui-même,
ou à un ensemble de processus.
Il peut signaler une anomalie ou solliciter l'arrêt définitif ou temporaire d'un processus.
Un utilisateur ne peut envoyer de signal qu'à des processus qui lui appartiennent.
Exemples de signaux : KILL, AT, SLEEP, NOHUP, NICE etc.

 KILL
Exemples :
kill 1780 : tue le processus dont le pid est 1780.
kill -INT 189 : interrompt l'exécution du processus de pid 189.
kill -CONT 189 : relance le processus de pid 189 interrompu avec le signal INT.
kill -HUP 95 : réinitialise le processus de pid 95.
kill % 1650 : termine en arrière plan le processus de pid 1650.
kill -SIG pid : Envoie au processus, dont le numéro identificateur est pid, le signal SIG.

Tuer un processus
Tuer un processus pour l'arrêter revient en fait à lui envoyer le signal KILL. Il suffit pour cela de
reconnaître le pid du processus à l'aide de la commande ps, puis defaire : kill pid (l'option -KILL est
implicite)
Par exemple, si le processus qu'on veut arrêter est celui qui a 799 comme pid, la commande :
kill 799 permettra de le tuer.
Remarque : La prise en compte d'un signal n'est pas forcément immédiate. Elle dépend de la
charge CPU de la machine. Ne vous étonnez donc pas qu'après avoir tué un processus, vous le
voyez encore traîner quelque temps dans la liste des processus.

Lancer un processus
 Nohup
Permet d'exécuter une commande en ignorant les interruptions tels que les signaux d'arrêt imprévus
(CTRL-D ou coupure de ligne ou encore la déconnexion de l'utilisateur).

Remarque : lorsque l'on utilise le cshell (csh), une commande exécutée en tâche de fond (en
rajoutant le symbole & à la fin de la commande) appelle automatiquement l'option nohup

 Nice
La syntaxe est : nice [ -n ] commande [ arguments ]

À chaque processus est associée une valeur du paramètre système nice, entre -20 et 19. Par défaut,
cette valeur est égale à 0. Plus cette valeur est faible, plus le processus est prioritaire pour accéder à

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 18 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
la ressource cpu de la machine. Un utilisateur autre que l'administrateur système ne peut
qu'incrémenter la valeur de nice pour rendre un processus moins prioritaire.
Exemple : nice -19 make
Lance la commande make en très basse priorité afin de compiler sans gêner les autres utilisateurs.
•À une date et une heure précise : At
at [-csm] heure [date] commande

Exécute la commande à une heure donnée, éventuellement en précisant la date. Si la date n'est pas
précisée, elle est par défaut égale à la date du jour.
L'option -m est intéressante; elle provoque un envoi d'un mail électronique à la fin de la commande.
Exemple: at -m 0815am Jan 25 monscript
Lance le script "monscript" à 8h15 le 25 janvier et notifie par mail sa terminaison.
•Suspendre un processus : Sleep

sleep x
Exécute une commande après une attente de x secondes.

Exemple : (sleep 15 ; commande) & Exécute commande en arrière-plan après une attente de 15
secondes.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 19 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
Résumé Sur les Processus

Définition et Attributs d’un processus :


Un Process est un environnement d’exécution où, usuellement, un programme (commande,
application…) s’exécute. Il est caractérisé par les attributs suivants :
 Son propriétaire (UID),
 Numéro d’identification unique (PID),
 Le PID du processus père.

Commandes sur les Processus :


 PS permet de connaître les processus actifs.
Options :
 -u Affiche les processus du User (ex : ps –u $user),
 -l Affiche plus de renseignement sur le process,
 -e Tout les process sur le système,
 La commande Kill envoie un message a un processus (Kill –mesg pid) (ex Kill –9 3456),

Gestion des processus en C « http://www.cs.cf.ac.uk/Dave/C/ »


 getpid : Le processus ID du programme en cour, (int getpid();)
 getppid : Le processus ID du parent du programme en cours, (int getpid();)
 Fork : Duplique le processus en cours. (int fork();)
 Une copie des donnes est effectuée pour le processus enfant,
 Fork retourne « 0 » au processus enfant,
 Deux processus sortent de la commande Fork,
 Si une erreur se produit, Fork retourne une valeur negative (-1).
 Wait : attend la fin du processus enfant,
 Waitpid : attendre la fin d’un processus specifique.

Créer un nouveau processus: fork


La seule manière de créer un nouveau processus sous UNIX est d'utiliser l'appel système
fork().(Seul le processus init (pid=1) est démarré de manière particulière par le kernel.)

Int fork() :
- Crée un nouveau processus (processus fils) par duplication du processus courant (processus père).
- Copie les segments de données et de stack du processus père; le segment texte est partagé.
- les ``pid'' du père et du fils diffèrent
- le fils hérite en partie de l'environnement du père.
- retourne un entier:
en cas de succès: 0 dans le fils et pid du fils dans le père.
en cas d'échec : -1 dans le père, le fils n'est pas créé.

Suite à un fork, les processus père et fils poursuivent l'exécution du même programme. La valeur
retournée par fork permet de distinguer entre le père et le fils.

Exemple d'utilisation de l'appel système fork() pour créer un nouveau processus.:

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 20 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
#include <stdio.h>
#include <errno.h>
#include <sys/types.h>

main()
{
extern int errno;
extern char *sys_errlist[];

pid_t pid;

pid = getpid();
fprintf(stdout,"Avant le fork, pid = %d\n",pid);
sleep(20);

pid = fork();
/* En cas de reussite du fork, le pere et le fils poursuivent leur
execution a partir d'ici. La valeur de pid permet de distinguer
le pere du fils.
*/

switch(pid) {

case -1: /* erreur dans fork() */


fprintf(stderr,"error %d in fork: %s\n",errno,sys_errlist[errno]);
exit(errno);

case 0: /* on est dans le fils */


fprintf(stdout,"Dans le fils, pid = %d\n",getpid());
sleep(20);
/* On suspend le processus pendant 20 secondes. Cela permet d'utiliser
la commande ps (p.ex. ps -gux) pour visualiser la liste des processus.
*/
break;

default: /* on est dans le pere */


fprintf(stdout,"Dans le pere, pid = %d\n",getpid());
sleep(20);
}
}

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 21 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
Les causes d'échec de fork peuvent être les suivantes:

- Le nombre maximum de processus en exécution par l'utilisateur est atteint (variable suivant les
systèmes: 40 sous AIX, 50 sous ULTRIX, 997 sous Solaris
- Il ne reste pas suffisamment de mémoire système disponible pour dupliquer le processus.
- Il n'y a pas assez de swap space.

Pour copier les exemples sur fork() utiliser la commande suivante : cp


~dift3820/demos/fork/*.* .
Terminaison d'un processus: exit , wait et waitpid
La fonction exit(int status) de la bibliothèque C standard appelle les (éventuelles) fonctions
spécifiées grâce à atexit, puis effectue l'appel système _exit(int status):
void _exit(int status) :
- Termine le processus appelant.
- Retourne la valeur du byte de poids faible de status au processus père.
- Ferme les descripteurs de fichiers ouverts.
- Un signal SIGCHLD est envoyé au processus père.
Un processus peut attendre la terminaison d'un de ses processus fils grâce à l'appel système wait :
#include <sys/types.h>
#include <sys/wait.h>
pid_t wait (int *statusp)
- Attend la terminaison ou l'arrêt d'un processus fils. Donc, s'il reste au moins un processus fils non
terminé (et si un wait a été fait pour tous les fils déjà terminés), le processus appelant est suspendu
jusqu'à la terminaison (ou l'arrêt) d'un processus fils.
- Retourne le pid d'un processus terminé, -1 si tous sont déjà terminés.
- Stocke le status code du fils dans l'entier pointé par statusp.
Un processus terminé dont le status code n'a pas encore été récupéré est un zombie (il occupe une
entrée dans la table des processus).
Il y a trois façons pour un processus de se terminer: par un appel à exit, suite à la réception d'un
signal fatal ou lors d'un crash de la machine.
- Si le processus fils s'est terminé par exit(exp), le byte de poids faible du status code est zéro et le
byte de poids immédiatement supérieur est exp.
- Si le processus fils s'est terminé sur réception d'un signal, le byte de poids faible est le numéro de ce
signal.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 22 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
Les Processus (Suite du résumé)

1. Définition et Attributs d'un processus

Un processus est l'entité d'exécution de tout programme sur une machine UNIX/LINUX. Il est
caractérisé par les attributs suivants :

 son propriétaire (l'utilisateur qui a lancé le processus) défini par son uid,

 un numéro d'identification unique : le pid,

 le pid du processus père : le ppid. Comme nous allons le voir, tout processus dans Unix/Linux naît
par duplication d'un processus père.

Chaque processus est normalement rattaché à un terminal de contrôle. C'est le terminal à partir
duquel ce processus a été lancé. Cela dit, Unix offre la possibilité de lancer un processus sans le
rattacher à un terminal. On dit alors que ce processus est lancé en mode tâche de fond. Si le
propriétaire de ce processus se déconnecte de la machine, les processus qui ont été lancés en mode
tâche de fond continuent à s'exécuter jusqu'à ce qu'ils se terminent.

2. Création d'un processus

Un processus est créé par duplication d'un processus père, grâce à l'appel système fork(). À sa
création, le processus fils est en tout point identique au processus père, à la différence près qu'ils
n'ont pas le même pid ni le même ppid.

3. Modes d'exécution d'un processus

On distingue quatre modes d'exécution possibles pour un processus :

Le mode synchrone : le père se duplique pour créer le fils puis il attend la fin de l'exécution de
son fils avant de revenir au premier plan.

Le mode asynchrone : le père se duplique pour créer le fils. Ce dernier va s'exécuter en mode
tâche de fond et le père repasse immédiatement au premier plan.

Le mode différé : les commandes "at" et "batch" permettent de lancer un processus en mode
différé. Avec la commande "at", vous pouvez préciser la date et l'heure exacte de l'exécution du
processus. Quant à la commande "batch", elle met le processus dans une file d'attente FIFO (First
IN, First OUT).

Le mode cyclique : grâce à la commande "crontab", on peut exécuter cycliquement un processus.


Par exemple, tous les soirs à minuit, lancer un programme de sauvegarde. La commande crontab
n'est pas autorisée sur les machines du CTI.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 23 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
4. Principales commandes sur le processus
4.1 Lister les processus : ps
La commande ps affiche l'état des différents processus de la machine. La syntaxe la plus utilisée est
la suivante : ps -edf

Elle affiche tous les processus qui tournent sur la machine, y compris ceux des autres utilisateurs.

Quelques options utiles :


-a : afficher la liste de tous les processus à l'exception de ceux qui tournent en tâche de fond
(démons et batch).
-e : affiche la liste de tous les processus en exécution.
-f : affiche le détail de chaque processus : son propriétaire, son PID, son PPID, l'heure à laquelle
il a été lancé, etc.
Pour plus de détail sur la commande ps, consulter le manuel électronique en tapant : man ps.

4.2 Envoyer un signal à un processus: kill


Un signal est une interruption logicielle envoyée par un processus à un autre processus, à lui-même,
ou à un ensemble de processus.
Il peut signaler une anomalie ou solliciter l'arrêt définitif ou temporaire d'un processus.
Un utilisateur ne peut envoyer de signal qu'à des processus qui lui appartiennent.La syntaxe est la
suivante :
kill -SIG pid : Envoie au processus, dont le numéro identificateur est pid, le signal SIG.
La liste des signaux possibles peut être obtenue avec l'option -l : kill -l.

Exemples de signaux : HUP, INT, QUIT, ILL, TRAP, EMT, FPE, KILL, BUS, etc.
Exemples :
kill 1780 : tue le processus dont le pid est 1780.
kill -INT 189 : interrompt l'exécution du processus de pid 189.
kill -CONT 189 : relance le processus de pid 189 interrompu avec le signal INT.
kill -HUP 95 : réinitialise le processus de pid 95.
kill % 1650 : termine en arrière-plan le processus de pid 1650.

4.3 Tuer un processus


Tuer un processus pour l'arrêter revient en fait à lui envoyer le signal KILL. Il suffit pour cela de
reconnaître le pid du processus à l'aide de la commande ps, puis de faire : kill pid (l'option -KILL
est implicite)

Par exemple, si le processus qu'on veut arrêter est celui qui a 799 comme pid, la commande : kill
799 permettra de le tuer.

Remarque : La prise en compte d'un signal n'est pas forcément immédiate. Elle dépend de la
charge CPU de la machine. Ne vous étonnez donc pas qu'après avoir tué un processus, vous le
voyez encore traîner quelque temps dans la liste des processus.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 24 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
4.4 Lancer un processus

 En ignorant les interruptions : nohup


nohup commande : Permet d'exécuter une commande en ignorant les interruptions tels que les
signaux d'arrêt imprévus (CTRL-D ou coupure de ligne ou encore la déconnexion de l'utilisateur).

Remarque : lorsque l'on utilise le cshell (csh), une commande exécutée en tâche de fond (en
rajoutant le symbole & à la fin de la commande) appelle automatiquement l'option nohup.

 Avec une priorité minimale : nice

nice [ -n ] commande [ arguments ]


À chaque processus est associée une valeur du paramètre système nice, entre -20 et 19. Par défaut,
cette valeur est égale à 0. Plus cette valeur est faible, plus le processus est prioritaire pour accéder à
la ressource cpu de la machine. Un utilisateur autre que l'administrateur système ne peut
qu'incrémenter la valeur de nice pour rendre un processus moins prioritaire.

Exemple : nice -19 make


Lance la commande make en très basse priorité afin de compiler sans gêner les autres utilisateurs.

 À une date et une heure précise : at


at [-csm] heure [date] commande
Exécute la commande à une heure donnée, éventuellement en précisant la date. Si la date n'est pas
précisée, elle est par défaut égale à la date du jour.

L'option -m est intéressante; elle provoque un envoi d'un mail électronique à la fin de la commande.

Exemple : at -m 0815am Jan 25 monscript


Lance le script "monscript" à 8h15 le 25 janvier et notifie par mail sa terminaison.
 En arrière plan : &
Commande &
Lance le job "commande" en arrière-plan et vous redonne la main tout de suite.
Exemple : netscape &
Lance l'application netscape en tâche de fond et vous redonne la main.
 Suspendre un processus : sleep

sleep x
Exécute une commande après une attente de x secondes.

Exemple : (sleep 15 ; commande)&

Exécute commande en arrière-plan après une attente de 15 secondes.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 25 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
CHAPITRE 3 : COMMUNICATION ET LA SYNCHRONISATION INTER-PROCESSUS
INTRODUCTION
La communication interprocessus peut être définie comme étant un ensemble de mécanisme
permettant à des processus concurrents de communiquer. La synchronisation quant à elle est un
mécanisme qui vise à bloquer l’exécution de certains processus à des points précis de leur flux
d’éxecution.de manière que tous les processus se rejoignent a une étape relais de données, tel que
prévue par le programmeur. A la suite de notre devoir, nous allons présenter la communication
interprocessus, la synchronisation interprocessus, les critères d’ordonnancement et les sémaphores.

I-COMMUNICATION INTERPROCESSUS
L Es processus coopèrent souvent pour traiter un même problème. Ces processus s’exécutent en
parallèle sur un même ordinateur (monoprocesseur ou multiprocesseurs) ou bien sur des ordinateurs
différents. Ils doivent alors s’échanger des informations (communication interprocessus). Il existe
plusieurs moyens de communication interprocessus. Nous pouvons citer, entre autres, les variables
communes, les fichiers communs, les signaux, les messages et les tubes de communication

1. Variables et fichiers communs


Les processus partagent un ensemble de données communes qui sont soit en mémoire (variables ou
segments de données) soit sur disque (fichiers). Chaque processus peut accéder en lecture ou en
écriture à cet ensemble de données appelé espace de données commun. Des problèmes peuvent se
poser lorsque plusieurs processus essayent d’accéder en même temps à un espace commun. Si deux
processus ou plus lisent ou écrivent des données partagées, le résultat dépend de l’ordonnancement
des processus. C’est ce qu’on appelle des accès concurrents. Supposons deux processus qui
partagent une variable v. Le premier processus incrémente de 1 la valeur de v alors que l’autre la
décrémente de
La valeur initiale de v=1. P1 : v=++; P2 : v=--;

2. Les signaux
Les interruptions logicielles ou signaux sont utilisées par le système d’exploitation pour aviser les
processus utilisateurs de l’occurrence d’un événement important. De nombreuses erreurs détectées
par le matériel, comme l’exécution d’une instruction non autorisée (une division par 0, par exemple)
ou l’emploi d’une adresse non valide, sont converties en signaux qui sont envoyés au processus
fautif. Ce mécanisme permet à un processus de réagir à cet événement sans être obligé d’en tester
en permanence l’arrivée. Les processus peuvent indiquer au système ce qui doit se passer à la
réception d’un signal. On peut ainsi ignorer le signal, ou bien le prendre en compte, ou encore
laisser le système d’exploitation appliquer le comportement par défaut, qui en général consiste à
tuer le processus. Certains signaux ne peuvent être ni ignorés, ni capturés. Si un processus choisit de
prendre en compte les signaux qu’il reçoit, il doit alors spécifier la procédure de gestion de signal.
Quand un signal arrive, la procédure associée est exécutée. A la fin de l’exécution de la procédure,
le processus s’exécute à partir de l’instruction qui suit celle durant laquelle l’interruption a eu lieu.
En résumé, les signaux sont utilisés pour établir une communication minimale entre processus, une
communication avec le monde extérieur et faire la gestion des erreurs. Ainsi, un processus peut : –
Ignorer le signal. – Appeler une routine de traitement fournie par le noyau. Cette procédure
provoque normalement la mort du processus. Dans certains cas, elle provoque la création
d’un fichier coré, qui contient le contexte du processus avant de recevoir le signal. Ces fichiers
peuvent être examinés à l’aide d’un débogueur. – Appeler une procédure spécifique créée par

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 26 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
le programmeur. Tous les signaux ne permettent pas ce type d’action. Tous les signaux ont
une routine de service, ou une action par défaut. Cette action peut être du type : – A :
terminaison du processus
– B : ignorer le signal
– C : Créer un fichier coré
– D : Stopper le processus
– E : La procédure de service ne peut pas être modifiée
– F : Le signal ne peut pas être ignoré Chaque signal est i dentifié au moyen d’un numéro entier
positif

3. Les messages
La synchronisation entre processus peut être réalisée au moyen d’échange de messages, dans Unix
System V. Un processus peut attendre qu’un autre lui envoie un message.
L’avantage principal est qu’il n’y a pas de partage d’espace de données, et donc il n’y aura pas de
conflit d’accès. Comme problèmes, on peut signaler que les messages envoyés peuvent se perdre.
Lorsqu’un émetteur envoie un message, il attend pendant un certain délai la confirmation de
réception du message par le récepteur (un acquittement). Si, au bout de ce délai, il ne reçoit pas
l’acquittement, il renvoie le message. Il peut y avoir des messages en double en cas de perte du
message d’acquittement. Pour éviter cela, on associe à chaque message une identification unique.
L’authentification des messages se fait alors par l’utilisation des clés
Processus en parallèle reliés par un tube de communication. Communication pour l’envoi de
messages : les tubes de communication sans nom, nommés et les sockets.

3.1 Tubes de communication


Les tubes de communication ou pipes permettent à deux ou plusieurs processus d’échanger des
informations. On distingue deux types de tubes : les tubes sans nom et les tubes nommés.

3.2 Tubes sans nom


Les tubes sans nom sont des liaisons unidirectionnelles de communication. La taille maximale d’un
tube sans nom varie d’une version à une autre d’Unix, mais elle est approximativement égale à 4
Ko. Les tubes sans nom peuvent être créés par le Shell ou par l’appel système pipe (). Les tubes
sans nom du Shell sont créés par l’opérateur binaire qui dirige la sortie standard d’un processus vers
l’entrée standard d’un autre processus. Les tubes de communication du Shell sont supportés par
toutes les versions d’Unix. La commande Shell suivante crée deux processus qui s’exécutent en
parallèle et qui sont reliés par un tube de communication pipe. Elle détermine le nombre
d’utilisateurs connectés au système en appelant, puis en comptant les lignes avec Le premier
processus réalise la commande. Le second processus exécute la commande. Les résultats récupérés
sur la sortie standard du premier processus sont dirigés vers l’entrée standard du deuxième
processus via le tube de communication qui les relie. Le processus réalisant la commande ajoute
dans le tube une ligne d’information par utilisateur du système. Le processus réalisant la commande
récupère ces lignes d’information pour en calculer le nombre.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 27 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
II- SYNCHRONISATION INTERPROCESSUS
Dans un système d’exploitation multiprogrammé en temps partagé, plusieurs Processus s’exécutent
en pseudo-parallèle ou en parallèle et Partagent des objets (mémoires, imprimantes, etc.). Le
partage d’objets sans Précaution particulière peut conduire à des résultats imprévisibles. La solution
Au problème s’appelle synchronisation des processus.

Considérez par exemple, le fonctionnement d’un spool d’impression


Montré sur la figure 6.1, qui peut être délicat

PROCESSUS A

REPERTOIRE DE DEMON
SPOOLE

PROCESSUS B

FIG. 6.1 – Spool d’une imprimante.

Quand un processus veut imprimer un fichier, il doit placer le nom de ce Fichier dans un répertoire
spécial, appelé répertoire de spool. Un autre processus, Le démon d’impression, vérifie
périodiquement s’il y a des fichiers À imprimer. Si c’est le cas, il les imprime et retire leur nom du
répertoire.

Supposons que :
– Le répertoire d’impression ait un très grand nombre d’emplacements, Numérotés 0, 1, 2, ..., N.
Chaque emplacement peut contenir le nom d’un Fichier à imprimer.
– Tous les processus partagent la variable in qui pointe sur le prochain emplacement libre du
répertoire.
– Deux processus A et B veulent placer chacun un fichier dans la file d’impression et que la valeur
de in est 7.
– Le processus A met son fichier à la position in qui vaut 7. Une interruption d’horloge arrive
immédiatement après et le processus A est suspendu pour laisser place au processus B.
– Ce dernier place également son fichier à la position in qui vaut toujours
7 et met à jour in qui prend la valeur 8. Il efface ainsi le nom du fichier placé par le processus A.
– Lorsque le processus A sera relancé, il met à jour la valeur de in qui prend la valeur 9.
Sous ces conditions, deux problèmes peuvent se présenter :
– Le fichier du processus A ne sera jamais imprimé ;
– in ne pointe plus sur le prochain emplacement libre.
Comment éviter ces problèmes ? Le problème provient du fait que le processus
B a utilisé une variable partagée avant que A ait fini de s’en servir. Si l’on arrive à bien
synchroniser les processus, le problème peut être résolu.
Lorsqu’un processus accède à la variable in, les autres processus ne doivent ni la lire, ni la modifier
jusqu’à ce que le processus ait terminé de la mettre à jour. D’une manière générale, il faut empêcher
les autres processus d’accéder à un objet partagé si cet objet est en train d’être utilisé par un
processus, ce qu’on appelle d’assurer l’exclusion mutuelle. Les situations de ce type, où deux ou

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 28 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
plusieurs processus lisent ou écrivent des données partagées et où le résultat dépend de
l’ordonnancement des processus, sont qualifiées d’accès concurrents.

1. Objet et section critique


Nous allons utiliser les définitions suivantes :
Objet critique : Objet qui ne peut être accédé simultanément. Comme par exemple, les
imprimantes, la mémoire, les fichiers, les variables etc.
L’objet critique de l’exemple du spool d’impression précédent est la variable partagée in.
Section critique : Ensemble de suites d’instructions qui opèrent sur un ou plusieurs objets critiques
et qui peuvent produire des résultats imprévisibles lorsqu’elles sont exécutées simultanément par
des processus différents.
Ainsi, la section critique de l’exemple du spool d’impression est :
– Lecture de la variable in.
– L’insertion d’un nom de fichier dans le répertoire.
– La mise à jour de la variable in.
1.2.L’exclusion mutuelle
Le problème de conflit d’accès serait résolu, si on pouvait assurer que deux processus ne soient
jamais en section critique en même temps au moyen de l’exclusion mutuelle). En général, les
processus qui exécutent des sections critiques sont structurés comme suit :
– Section non critique.
– Demande d’entrée en section critique.
– Section critique.
– Demande de sortie de la section critique.
– Section non critique.
Quatre conditions sont nécessaires pour réaliser correctement une exclusion mutuelle :
1. Deux processus ne peuvent être en même temps en section critique.
2. Aucune hypothèse ne doit être faite sur les vitesses relatives des processus et sur le nombre de
processeurs.
3. Aucun processus suspendu en dehors d’une section critique ne doit bloquer les autres processus.
4. Aucun processus ne doit attendre trop longtemps avant d’entrer en section critique.
Comment assurer alors une coopération correcte et efficace des processus ?

1.3 Le masquage des interruptions


Avant d’entrer dans une section critique, le processus masque les interruptions.
Il les restaure à la fin de la section critique. Il ne peut être alors suspendu durant l’exécution de la
section critique. Cependant cette solution est dangereuse, car si le processus, pour une raison ou
pour une autre, ne restaure pas les interruptions à la sortie de la section critique, ce serait la fin du
système. La solution n’assure pas l’exclusion mutuelle, si le système n’est pas monoprocesseur car
le masquage des interruptions concernera uniquement le processeur qui a demandé l’interdiction.
Les autres processus exécutés par un autre processeur pourront donc accéder aux objets partagés.
En revanche, cette technique est parfois utilisée par le système d’exploitation pour mettre à jour des
variables ou des listes partagées par ses processus, par exemple la liste des processus prêts.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 29 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
III-LES CRITERES D’ORDONNENCEMENT

 L'utilisation maximale de l'UC.

 La capacité de traitement maximale.

 L'utilisation maximale des périphériques.

 La diminution du temps moyen de restitution : le temps mis par un processus pour aller de l'état

``nouveau'' à l'état ``terminé''.

 La diminution du temps moyen d'attente : le temps passé dans l'état ``prêt''.

 La diminution du temps moyen de réponse : dans un processus interactif, le temps entre une fin

d'entrée et le début d'une sortie de résultat (pas la fin). C'est une mesure de ``réactivité''.

 L'équité.

IV-LES SEMAPHORES

Pour contrôler les accès à un objet partagé, E. W. Dijkstra suggéra en 1965 l’emploi d’un nouveau
type de variables appelées les sémaphores. Un sémaphore est un compteur entier qui désigne le
nombre d’autorisations d’accès à une section critique. Il a donc un nom et une valeur initiale, par
exemple sémaphore S = 10.

Les sémaphores sont manipulés au moyen des opérations P et V ou signal. L’opération P(S)
décrémente la valeur du sémaphore S si cette dernière est supérieure à 0. Sinon le processus
appelant est mis en attente. Le test du sémaphore, le changement de sa valeur et la mise en attente
éventuelle sont effectués en une seule opération atomique indivisible.

L’opération V(S) incrémente la valeur du sémaphore S, si aucun processus n’est bloqué par
l’opération P(S). Sinon, l’un d’entre eux sera choisi et redeviendra prêt. V est aussi une opération
indivisible.

Les sémaphores permettent de réaliser des exclusions mutuelles

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 30 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
CHAPITRE 4 : MÉMOIRE VIRTUELLE

INTRODUCTION

En informatique, le mécanisme de mémoire virtuel a été mis au point dans les années 1960. Il
repose sur l’utilisation de traduction à la volée des adresses (virtuelles) vue du logiciel, en adresse
physique de mémoire vive. Elle permet d’utiliser de la mémoire de masse comme extension de la
mémoire vive, d’augmenter le taux de multiprogrammation, de mettre en place des mécanismes de
protection de la mémoire et de partager la mémoire entre les processus.

Il serait trop coûteux d’attribuer à tout processus un espace d’adressage complet, surtout parce
que beaucoup n’utilisent qu’une petite partie de son espace d’adressage. En général, la mémoire
virtuelle et la mémoire physique sont structurées en unités d’allocations (pages pour la mémoire
virtuelle et cadres pour la mémoire physique). La taille d’une page est égale à celle d’un cadre.
Lorsqu’un processus est en cours d’exécution, seule une partie de son espace d’adressage est en
mémoire.

I. La partition contiguë

Une mémoire paginée est divisée en blocs de taille fixe, ou pages logiques, qui servent d’unités
d’allocation. La mémoire physique est elle-même divisée en blocs de même taille appelés pages
physiques.

1. Pagination d’une mémoire contiguë

La Figure représente le schéma général d’une mémoire contiguë paginée. Le rôle de la boîte
marquée. Fonction de pagination est d’´établir une correspondance entre les adresses de pages
logiques et les adresses de pages physiques de manière à` ce qu’une page logique puisse être rangée
dans une page physique quelconque. Les pages physiques deviennent ainsi des ressources
banalisées dont la gestion est plus simple que celle de partitions de taille variable.
Le nombre et la taille d’une page (physique ou logique) sont toujours des puissances de 2 (pour
une raison qui sera claire dans le paragraphe qui suit). Notons 2l la taille (nombre d’emplacements)
d’une page (logique ou physique) et 2n le nombre de pages. Il y a pour l’instant autant de pages
logiques que de pages physiques.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 31 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
Une adresse logique paginée est alors construite par concaténation d’un numéro de page
logique (n bits) et d’un d´emplacement dans la page (l bits). De même, une adresse physique est la
concaténation d’un numéro de page physique (n bits) et d’un d´emplacement (l bits). Les tailles de
page usuelles vont de 0,5 ko à` 32 ko.
Etant donne un numéro de page logique, la fonction de pagination permet de trouver le numéro
de la page physique qui la contient. Dans un souci d’efficacité, cette fonction est réalisée par un
mécanisme matériel.
La réalisation la plus courante de la fonction de pagination utilise une table de pages en
mémoire, indexée par un numéro de page logique (table de la Figure 16). Lors d’un accès à la
mémoire, la correspondance adresse logique/adresse physique (qui est une opération matérielle), est
mise en œuvre comme suit :

Le champ desc[npl] indique le mode d’accès autorisé à la page logique npl. Cette information
est utilisée par les mécanismes de protection et un accès non autorisé provoque un déroutement
pour violation de protection.
Notons qu’une table de pages représente le contenu d’une mémoire logique particulière. Si le
système d’exploitation permet à chaque processus, ou à chaque usager du système, de définir une
mémoire logique distincte, il doit gérer une table de pages distincte par processus ou par usager. Le
pointeur vers l’origine de cette table (RB) fait alors partie du contexte du processus ou de l’usager.
Les tables des pages se trouvent en mémoire physique, dans la partition réservée au système
d’exploitation.
La mémoire logique d’un processus n’est plus représentée d’une manière contiguë en mémoire
centrale. En effet, l’indirection des accès par la table de pages permet de loger les pages logiques
dans n’importe quelle page physique. De ce fait, la gestion de la mémoire physique revient
simplement à gérer une liste des pages physiques libres sans idée de regroupement. Les problèmes
liés a` la fragmentation externe disparaissent mais la fragmentation interne se fait plus présente
puisque la page devient l’unité élémentaire d’allocation et de libération (en pratique quelques
kibioctets).

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 32 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2

L’accès `à une page logique nécessite maintenant deux références à la mémoire en raison de la
consultation de la table des pages. Cette augmentation du temps d’accès moyen est bien sur
intolérable. La réduction de ce coût passe par deux points :
 observer le comportement des processus (vis à vis de la mémoire) ;
 optimiser la transformation des adresses au moyen d’un circuit particulier : les mémoires
associatives.
Donc pour éviter l’accès à cette table (et donc réduire le temps d’accès moyen), on passe par un
circuit particulier : une mémoire associative. Avant de présenter cette mémoire, il faut discuter de
l’utilisation de la mémoire par les processus

II. La multiprogrammation
1. Définition
La multiprogrammation est la capacité d'un système d'exécuter à la suite plusieurs activités sans
l'intervention de l'utilisateur. C'est une des premières capacités fournies par les systèmes
d'exploitation dès la fin des années 1950.
Le taux de multiprogrammation est le nombre de processus présent dans la mémoire d’ordinateur a
un instant donné. Les premiers ordinateurs ne pouvaient exécuter qu’un seul programme à la fois,
ce taux était donc égale 1 au maximum. C’était aussi le cas pour les premiers systèmes
d’exploitation (MS-DOS ou CP/M par exemple) sur les premiers micro-ordinateurs.

Exemples :

 La famille des systèmes UNIX qui propose aussi la multi-exécution :


 GNU/Linux
 BSD
 Mac OS
 Famille Windows depuis WIN98

III. Définition et Rôle de la Mémoire virtuelle


1. Définition

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 33 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
La mémoire virtuelle est une technique qui permet d’exécuter des programmes dont la taille
excède la taille de la mémoire réelle. L’espace d’adressage d’un processus, généré par les
compilateurs et les éditeurs de liens, constitue la mémoire virtuelle du processus ou espace
d’adressage logique, comme le montre la figure. Avec des techniques adéquates, sa taille peut être
très supérieure à celle de la mémoire physique ou réelle.

2. Rôle
Le but de la mémoire virtuelle est de permettre l’exécution de programmes dont la taille excède
celle de la mémoire réelle. Les adresses virtuelles référencées par l’instruction en cours doivent être
traduites en adresses physiques. Cette conversion d’adresse est effectuée par des circuits matériels
de gestion. Si cette adresse correspond à une adresse en mémoire physique, on transmet sur le bus
l’adresse réelle, sinon il se produit un défaut de page. Par exemple, si la mémoire physique est de
32 Ko et l’adressage est codé sur 16 bits, l’espace d’adressage logique peut atteindre la taille soit 64
Ko. L’espace d’adressage est structuré en un ensemble d’unités appelées pages ou segments, qui
peuvent être chargées séparément en mémoire.

12K-16K D x 28K-32K
8K-12K C C 24K-28K
4K-8K B x 20K-24K
0K-4K A B 16K-20K

Mémoire virtuelle x 12K-16K


x 8K-12K
x 4K-8K
D 0K-4K
Mémoire physique

Disque

L’ensemble de son espace d’adressage (mémoire virtuelle) est stocké sur disque. Pour exécuter un
processus, le système d’exploitation charge en mémoire uniquement une ou quelques unités (pages
ou segments) y compris celle qui contient le début du programme. Lorsqu’un processus est en cours
d’exécution, seule une partie de son espace d’adressage est en mémoire principale. Cette partie est
dite résidante. Les parties de cet espace sont chargées en mémoire principale à la demande. Elles
peuvent être dispersées en mémoire centrale. Lorsqu’un processus référencie une partie qui ne
réside pas en mémoire, l’exécution du processus est suspendue, c’est à dire il passe à l’état bloqué
en attente d’une E/S. Le système d’exploitation reprend le contrôle, il modifie l’état du processus
(état bloqué), lance une demande d’E/S pour ramener la partie référencée, puis exécute d’autres
processus.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 34 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
IV. La pagination à la demande

La mémoire virtuelle et la mémoire physique sont structurées en unités d’allocations (pages pour
la mémoire virtuelle et cases pour la mémoire physique). La taille d’une page est fixe et égale à
celle d’une case. Elle varie entre 512 octets et 8 Ko. Il n’y a pas de fragmentation externe car toutes
les pages sont de même taille. Par contre, il peut y avoir une fragmentation interne si la dernière
page de l’espace d’adressage logique n’est pas pleine.

Example:
 Soit un programme de 64 Ko sur une machine 32 Ko de mémoire physique.

6
5
4
3

2
1
0

Mémoire physique
4
3
2
1
0

Espace D’adressage virtuel

V. Les politiques d’allocation

Le disque contient principalement des fichiers réguliers (contenant une séquence d’octets) et des
répertoires (contenant une séquence d’entrées). Souvent, les répertoires sont traités comme des
fichiers dont le contenu décrit les entrées du répertoire (selon un format fixe ou variable). Le
problème de l’allocation de l’espace disque est similaire à celui de l’allocation de la mémoire
principale. À cause de la lenteur des disques, leur grande capacité, et les différences de
manipulation des données, des algorithmes spécialisés sont utilisés. L’espace disque est
normalement alloué en blocs dont la taille est un multiple de secteurs ; il y a un espace inutilisé dans
les blocs qui ne sont pas pleins. Une méthode simple consiste à allouer tous les blocs de chaque
fichier dans un espace contigu. La représentation est compacte (à part l’entrée du répertoire, il faut
uniquement des blocs pour le contenu du fichier). Les accès séquentiels et aléatoires sont rapides
(étant donné la position d’un octet, il est facile de trouver le bloc qui contient cet octet). Pour
étendre un fichier, il faut possiblement le copier fragmentation de l’espace libre.

VI. Segmentation
La segmentation offre une vue de la mémoire plus cohérente avec celle de l’utilisateur. En effet,
celui-ci ne considère pas ou rarement la mémoire comme une suite de page mais plutôt comme des
espaces, ou des régions, destiner à une utilisation particulière par exemple : le code d’un
programme, les donnes, la pile, un ensemble de sous-programme, des modules, un tableau etc. la
segmentation reflète cette organisation.
Chaque objet logique sera désigné par un segment. Dans un segment l’adressage se fera à l’aide
d’un déplacement. Le couple (segment, déplacement) sera traduit en adresse mémoire par le biais
d’une table de segment contenant deux champs, limite et base. La base est l

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 35 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
Dans un système paginé, l’espace d’adressage virtuel d’un processus est à une dimension. Or en
général, un processus est composé d’un ensemble d’unités logiques :

 Les différents codes


 Les données initialisées
 Les données non initialisées
 Les piles d’exécution.

L’idée de la technique de segmentation est d’avoir un espace d’adressage à deux dimensions. On


peut associer à chaque unité logique un espace d’adressage appelé segment. L’espace d’adressage
d’un processus est composé d’un ensemble de segments. Ces segments sont de tailles différentes
(fragmentation externe). Un schéma de traduction d’adresses par segmentation est montré sur la
figure.
Adresse logique

Segment Octet

Mémoire
N
>

O
Trap

Limite Base + PF Octet

Adresse
Physique

Table de segments
PF = page physique

1. Principe de la segmentation
Dans les systèmes de mémoire paginée, la division en pages est arbitraire et ne tient pas compte du
mode d’organisation des données d’un processus. Notamment, il est fort probable que certaines
structures de données se trouvent à cheval sur plusieurs pages, ce qui peut être la cause de temps
d’accès plus importants.
L’objectif des mémoires segmentées est de mettre en rapport la structure logique de la mémoire
(vue des processus) et l’implantation physique de cette mémoire. Pour ce faire, la mémoire logique
segmentée d’un processus est définie comme un ensemble de segments numérotés à partir de zéro
Figure.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 36 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
Les avantages de cette organisation sont doubles : d’une part, la notion de segment est directement
utilisable dans un processus et de ce fait on peut espérer une réduction des temps d’accès moyens
(les accès fréquents étant regroupés sur un petit groupe de segments, voire même sur un segment
unique) ; d’autre part, la notion de protection est plus facilement utilisable puisqu’elle porte
directement sur des segments, c’est `à dire des objets logiques.
Les segments sont des zones contigües (du moins pour l’instant). On retrouve donc les problèmes
d’allocation/libération de zones et l’apparition d’une fragmentation externe éventuellement corrigée
par des compactages de la mémoire. Dans le cas de la mémoire segmentée, ces compactages
impliquent une remise à jour des pointeurs origine des tables de segments.

2. Segmentation paginée
La segmentation peut être combinée avec la pagination. Chaque segment est composé d’un
ensemble de pages. Les adresses générées par les compilateurs et les éditeurs de liens, dans ce cas,
sont alors des triplets : <Numéro du segment, numéro de page, déplacement dans la page>
Le schéma de traduction d’adresses par segmentation paginée est montré sur la figure.
Adresse logique PF = page physique
Segment Page Octet Mémoire

N
>
O
Trap
PF Octet
Limite TP + PF

Table de pages
Table de segments

3. Pagination d’une mémoire segmentée


La pagination d’une mémoire segmentée vise `à rendre plus souple l’allocation de mémoire aux
segments en levant la restriction de contigüité pour le placement d’un segment. Une entrée de la
table des segments contient, outre les informations propres au segment (taille, protection, type), un
pointeur vers la table des pages de ce segment Figure. Comme dans les techniques précédentes, une
mémoire associative conserve les dernières références.
4. Partage de segments
Dans une mémoire logique segmentée, le partage s’applique aux segments et les tables de pages des
segments partagés sont elles-mêmes partagées (dans le cas d’un système segmenté paginé). Tous les
descripteurs d’un segment contiennent alors, non pas l’adresse de ce segment, mais celle de sa table
de pages qui est unique. Si l’unité de partage est le segment, la protection sélective s’applique
globalement au segment. Les droits d’accès à un segment pour un processus figurent dans la table
des segments de ce processus Figure. Si des droits d’accès individuels aux pages du segment sont
spécifiés, ils figurent dans la table de pages partagées par les processus utilisateurs et sont donc les
mêmes pour tous. Ils doivent alors être compatibles avec les droits globaux associes au segment.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 37 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 38 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 39 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 40 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 41 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 42 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 43 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 44 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
CHAPITRE 6 : GESTION DES PERIPHERIQUES

Introduction

La gestion des périphériques représente peut-être le défi le plus considérable d’un système
d’exploitation. Ce dernier doit contrôler tout un ensemble de périphériques avec des différences
multidimensionnelles. Rapidité du périphérique, volume des informations, service proposé,
direction du flux d’informations et protocoles de communications sont autant de grandeurs aux
éventails très larges. Outre cette diversité, le système d’exploitation doit pouvoir traiter un grand
nombre de périphériques, ce traitement doit se dérouler dans un environnement parallélisé. Les
périphériques agissent en général indépendamment de l’UC, en fonction de leur propre fréquence et
synchronisation. Le système d’exploitation, qui la plupart du temps s’exécute sur une seule UC, doit
donc gérer des requêtes simultanées en provenance d’un grand nombre de périphérique.

I. Organisation des dispositifs d’E/S

Même si certains ordinateurs sont différents dans les détails, ils sont conçus autour de la même
philosophie. Les dispositifs d’E/S, le mémoire et l’UC communiquent par le biais d’un bus de
communication. Les machines les plus simples présentent un seul bus de communication. Mais les
communications ne peuvent avoir lieu qu’entre deux éléments à la fois. Un dispositif appelé «
Arbitre de bus » décide quel périphérique est autorisé à communiquer au prochain cycle. Celui-là
peut communiquer avec n’importe quel autre de son choix.

Figure 8 : Architecture à bus unique

En principe, le bus est attribué à l’UC afin qu’elle puisse communiquer avec la mémoire. Des accès
fréquents à la mémoire et une vitesse relativement rapide de l’UC conduisent à une utilisation
élevée du bus par cette dernière. Bien que le bus leur soit fréquemment nécessaire, les E/S ont des
besoins en communication généralement plus urgents que les requêtes de l’UC. C’est pourquoi les
requêtes des périphériques d’E/S reçoivent souvent une priorité plus élevée. Le processus consistant
à retirer le bus de l’UC pour l’attribuer à un périphérique est appelé vol de cycle. On peut trouver
des bus multiples sur des machines pour des raisons de parallélisme et d’ajustement des
performances. Les bus multiples permettent à plusieurs communications de se dérouler
simultanément.

Figure 9 : Architecture à bus multiple

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 45 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
II. Contrôle des E/S

Dans le modèle le plus simple l’UC communique directement avec les périphériques dE/S et
prend en charge le contrôle des moindres détails de l’opération du périphérique. Ce type de
communication est de plus en plus rare (encore dans les systèmes embarqués). Les nouveaux
systèmes incorporent la notion de « contrôleur de périphériques ». Une commande classique de
l’UC au contrôleur peut être le lancement d’une opération de lecture pour un octet d’informations
depuis un appareil en série ou d’un secteur d’informations depuis un disque. Le contrôleur de
périphérique transmet au périphérique les commandes plus détaillées nécessaires à la réalisation de
l’opération requise. En déchargeant cette responsabilité sur le contrôleur, l’UC est libre d’accomplir
simultanément d’autres tâches. Chaque dispositif dE/S possède un contrôleur spécifique. La plupart
des contrôleurs peuvent servir plusieurs périphériques à la fois.

III. Ports d’E/S


Pour réaliser les E/S, l’UC doit communiquer avec les modules d’E/S, qu’il s’agisse d’un
périphérique ou d’un contrôleur ou d’un canal. Chaque module d’E/S contient un ou plusieurs
registres servant à la communication avec le processeur.
En écrivant dans ces registres, le SE ordonne au périphérique de délivrer des données, d’en
accepter, de s’activer, désactiver ou effectuer une opération donnée (commande de périphérique).
En lisant les registres, le SE connaît l’état du périphérique. De nombreux périphériques sont équipés
d’un tampon de données que le SE peut écrire ou lire. Par exemple, la RAM vidéo contient les
pixels affichés à l’écran. Cette RAM vidéo est le tampon de données relatif au périphérique vidéo
(carte graphique).

IV. Communication entre UC et E/S


La communication entre les modules d’E/S et l’UC suivent l’un des quatre protocoles suivant :
 Attente active : L’UC émet une commande au module d’E/S pour lancer une opération d’E/S.
L’UC entre dans une boucle pour vérifier si l’opération est achevée ou non et ensuite tester si
l’opération est finie avec succès ou non. Les processus sont bloqués jusqu’à ce que l’E/S finisse.

 La scrutation : L’UC lance les opérations d’E/S puis retourne pour exécuter les processus du
système. Après des délais périodiques, l4UC fait une scrutation des périphériques d’E/S pour voir si
l’un d’eux a fini sa tâche ou non. Ce protocole est plus efficace que l’attente active, mais il est plus
couteux.

 Interruption : Dans ce cas, le périphérique d’E/S se charge d’informer l’UC de l’achèvement de


l’E/S qu’il prépare. L’interruption utilisée par un module est généralement configurable et unique ce
qui offre le parallélisme.

 Accès direct à la mémoire : Les composants d’accès direct à la mémoire (DMA : Direct Memory
Access) permettent aux modules d’E/S de lire ou écrire des données directement depuis le mémoire.
Avec cette technique, les données ne doivent pas transiter par l’UC. Cet accès est utile pour des
dispositifs tels que les disques.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 46 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
V. Les pilotes des périphériques

Les pilotes constituent la partie logicielle qui contrôle et interagit directement avec le périphérique
d’E/S.
Le SE peut exiger que pour chaque périphérique, il existe un ensemble de fonctions mises en
œuvre, telle que :
 Open : réalise les tâches de démarrage avant l’accès au périphérique.
 Close : fermer le périphérique après l’utilisation Schedule : ordonnance une requête d’E/S ou
plusieurs avant d’être passés au périphérique (pilote…).
 Startio : vérifie si le périphérique est actif ; si ce n’est pas le cas, lance la prochaine opération d’E/S
sur la file d’ordonnancement du périphérique.
 Interrupt : routine exécutée lorsque le périphérique envoie une interruption à l’UC.

Compte tenu des différents types de périphériques pouvant être connectés à certains ordinateurs, il
ne serait pas pratique d’inclure les pilotes de tous les périphériques éventuels dans le SE. Les SE
doivent être configurés en fonctions des périphériques. Ceci se fait par ajout ou suppression de
périphériques (modifier l’image du SE).

VI. Les périphériques


1. Les périphériques graphiques
L’un des plus grands problèmes est le volume d’informations qui doit être transmis pour décrire
l’affichage sur les moniteurs.
L’image sur les moniteurs est affichée sous formes de points nommés pixels. Les moniteurs
diffèrent selon le nombre de pixels et les couleurs qu’ils peuvent adopter. Les premiers moniteurs
étaient composés de 200 lignes de 320 pixels noir et blanc. De nos jours, les résolutions de
800×600, 1024×768 et 1280×960 sont les plus répondues.
L’illumination de chaque pixel est contrôlée par des valeurs stockées en mémoire vidéo :

 Les affichages monochromes de base n’ont besoin que d’un bit par pixel.
 Les affichages par niveaux de gris (255 niveaux) ont besoin de 8 bits.

Les affichages couleurs réelles ont besoin de 24 bits : chaque pixel est généré par la combinaison
des trois couleurs primaires (rouge, vert et bleu : RGB ou RVB) ; 8 bits pour chacune de ces
couleurs. Avec un affichage couleurs réelles et pour un moniteur vidéo 1024×768, il nous faut 2,3
Mo pour stocker une valeur de 24 bits pour chaque pixel.
Pour modifier une image à l’écran, de nouvelles données doivent être écrites en mémoire vidéo.
Compte tenu du grand volume de données multimédia cela peut représenter une charge importante
sur le système. Par exemple, une animation vidéo qui nécessite 25 image/seconde et 2,3 Mo par
image réécrit 25 fois dans la mémoire vidéo par seconde donc un total de 58 Mo/seconde.
Cette exigence de transfert a poussé l’évolution des conceptions matérielles.

 Bus PCI : capacités de transfert de 132 Mo/S


 Le nouveau bus graphique AGP (Accelerated graphics Port) possède un taux de transfert de 528
Mo/S.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 47 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
2. Les disques de stockage
Le disque peut être considéré comme le seul périphérique d’E/S commun à tous les ordinateurs.
Même les moniteurs et les claviers ne sont pas indispensables sur des systèmes tels que les serveurs.
Il existe de nombreuses tailles et vitesses de disques et l’information peut être stockée de manière
optique ou magnétique. L’unité élémentaire de stockage d’informations est le secteur.

 Les DVD et CD-ROM : les secteurs forment une longue spirale qui s’éloigne en tournant du centre
du disque.

 Sur les disquettes et disques dans le support tourne à vitesse constante. Les secteurs sont organisés
en pistes. Les pistes sont des cercles concentriques autour du centre.

 Certains disques stockent le même nombre de secteurs pour chaque piste. D’autres disques placent
plus de secteurs sur des pistes externes.

 Les disques contiennent un ou plusieurs plateaux de support. Certain proposent d’utiliser les deux
faces du plateau et propose deux têtes de lecture/écriture par plateau.

3. Ordonnancement du disque dur


Si un disque est appelé à répondre à plusieurs E/S, il doit ordonnancer ces requêtes suivant
certains algorithmes d’ordonnancement. La performance de ces algorithmes se mesure par le total
des mouvements par tête.

 FIFO : premier entré premier servi.

 Priorité : la requête venant du processus ayant la priorité la plus élevée est servi la première.

 SSTF (Shortest Seek Time First): traduit plus court positionnement d’abord, répond à la requête
dont la position de la piste est la plus proche de celle en cours.

 SCAN : avance et recule la tête de Lecture/écriture entre la piste la plus interne et la plus externe et
satisfait en route toutes les requêtes de la piste en suspens.

 LOOK : le même que SCAN, mais s’il n’y a pas de requêtes dans un sens la tête ne fait pas le
déplacement de façon inutile.

 C-SCAN et C-LOOK : une fois la dernière piste est atteinte, les algorithmes retournent sur la piste
de départ.

 N-step SCAN : file de requête divisée en sous files de longueur N. Ces files sont ordonnancées en
FIFO. Au sein des files les requêtes sont ordonnancées en SCAN.

 FSCAN : tel que le précédent, mais seulement deux sous files illimitées : Une en cours de
traitement et l’autre pour les nouvelles requêtes (celles qui viennent lors du traitement).

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 48 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
CHAPITRE 7 : NOTIONS DE BASE SUR LE MS-DOS

INTRODUCTION

Pour fonctionner, un ordinateur a besoin d’un superviseur de travail ; ce logiciel indispensable


s’appelle le SYSTEME D’EXPLOITATION. Le système d’exploitation ou OS s’occupe :
d’enregistrer les informations sur le disque dur ; d’organiser la mémoire en gérant les logiciels
ayant besoin de ses services ; de gérer les périphériques….. . C’est en quelque sorte un chef
d’orchestre dans l’ordinateur. Il existe plusieurs types de système d’exploitation parmi lesquels
nous citons Windows 10 qui a entre autre fait l’objet de notre réflexion. Mais avant de chuter de ce
cote là nous allons faire un petit arrêt du cote de MS DOS afin de vous faire un petit rappel la
dessus.

I- GENERALITE SUR LE MS-DOS

MS-DOS ou système d’exploitation de disque développé par Microsoft

MS=Microsoft

DOS= Disk Operating System

MS-DOS est un système d’exploitation 16 bits

Avant Windows 95, les noms de fichiers étaient limités à 8 caractères à 3 pour les extensions sans
distinction de majuscules ou de minuscules

Le DOS ne gère pas les pilotes des périphériques et de ceux dont les soft ont besoin

C’est-à-dire, grosse installation des périphériques à chaque programme. Imaginez un peu avec des
disquettes de 160 ko

C’est tout simplement se problème, qui nous apparait aujourd’hui incroyable, qui a pousser à
développer windows10 sans oublier sur Windows la possibilité d’ouvrir plus d’un programme à la
fois.

Le MS-DOS était la fondation de Windows jusqu’à la Windows ME. A partir de Windows XP il est
possible d’obtenir une invite au commande c’est-à-dire il faut que Windows démarre pour accéder
au système DOS.

Le système d’exploitation qui était gérer par programme : commande.com (le .com était le .Exe
d’antan)

Dans le temps, il était plus facile de supprimer directement à partir du DOS virus, fichier corrompu
ou programme instable

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 49 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
II- Composants du MS-DOS

1. Composants de base

Le système d'exploitation est formé de 6 modules, ce qui lui confère une importante flexibilité et
une grande souplesse d'utilisation.

1- La ROM BIOS est un élément de la carte mère qui exécute entre autres les premières instructions
dès la mise sous tension du micro-ordinateur. Il contient aussi les routines de gestion des organes de
la machine.

2- Le programme d'amorçage (BOOT SECTOR) se trouve sur le premier secteur de chaque disquette
ou disque dur et initialise le processus de chargement en mémoire des deux fichiers situés sur le
disque :

• BIOS = IO.SYS

• DOS = MSDOS.SYS

Il ne sert qu'à l'initialisation du système lors de la mise en marche du micro-ordinateur, d'un reset ou
d'un

CTRL+ALT+SUP.

3- LE MODULE BIOS fournit une interface de bas niveau avec la ROM−BIOS et gère les entrées
sorties des différents périphériques (clavier, écran, ...).

4- Le module DOS fournit une interface de haut niveau avec les programmes d'applications, il gère le
répertoire des fichiers ainsi que le blocage des enregistrements sur disque. C'est lui qui prend en
charge les appels des fonctions DOS.

5- Le module de traitement COMMAND.COM traite les différentes commandes que l'utilisateur


soumet au Système d'exploitation (DIR, DEL, COPY...).

6- Les commandes externes. Ce sont les autres commandes de MS−DOS qui ne sont pas dans
l'interpréteur de commande COMMAND.COM, soit parce qu'elles sont plus rarement utilisées, soit
parce que de par leur taille trop importante elles prendraient trop de place en mémoire.

Par extension, on appelle commandes externes tous les fichiers exécutables du disque (.COM et
.EXE).

Remarque:

• Le module BIOS qui est l'interface de bas niveau doit donc être réécrit pour chaque machine.

• Le module DOS, interface de haut niveau, sera le même pour toutes les machines. Donc, les
interfaces étant les mêmes (DOS identiques), les applications pourront alors être portable d'une
machine sur une autre.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 50 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
2. Chargement et constitution de MS−DOS

A la mise sous tension du micro−ordinateur, dans la mémoire se trouve uniquement la ROM BIOS,
la RAM est encore vierge de toute information.

État du micro-ordinateur au démarrage


 Constitution de la Rom Bios
Elle est constituée de divers programmes et de tables de données gérant les périphériques de
l'ordinateur. Elle indique la façon par laquelle le système donne l'accès aux différents périphériques
utilisés, libérant l'utilisateur des contraintes qui consistent à préciser dans les moindres détails les
interactions entre le logiciel et les circuits électroniques du micro-ordinateur.

Exemple :
Un utilisateur demande la lecture d'un fichier sur le disque, laissant à la ROM−BIOS la charge de
préciser, par l'intermédiaire de sous−programme, les éléments nécessaires à l'accomplissement de la
requête, tel que la tailles des secteurs, le nombre de pistes…

L'accès aux sous−programmes de la ROM−BIOS est réalisé aux moyens d'interruptions (appel de
fonctions générées par le logiciel).

 Rôle de la Rom Bios


Gestion des périphériques :
En effet, chaque périphérique possède son propre type d'interruption et les paramètres de traitement
sont communiqués à la ROM−BIOS par l'intermédiaire des registres du microprocesseur.

Vérification :
Le premier programme exécuté par la ROM−BIOS au lancement ( mise sous tension de l'ordinateur
ou réinitialisation du système ) est le mini auto test (Power−on self test). Celui−ci effectue :

- La vérification de la mémoire et de l'environnement de l'ordinateur (taille de la Ram...)


- L'Initialisation des zones de communications des composants matériels (le dialogue entre les
programmes utilisateurs et les composants s'effectuera en écrivant ou en lisant certaines
informations dans ces zones).
- L'initialisation de la table des vecteurs d'interruption et écriture dans cette table des informations
correspondant aux vecteurs de la ROM−BIOS.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 51 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
Lecture du secteur de chargement (BOOT SECTOR) :
La ROM−BIOS dispose aussi d'un programme de chargement en mémoire du programme
d'amorçage (BOOT) qui se trouve sur le secteur 0 de la piste 0 (1er secteur logique).
Au cours de cette exécution, ce programme vérifie l'existence d'une disquette format dans le lecteur
de l'unité par défaut (en général A :), ainsi que l'existence du programme d'amorçage lui−même.
Dans le cas où cette disquette ne s'y trouverait pas, alors il recherche sur le disque dur.

En l'absence de ces informations ou si une erreur dans le programme est détectée, il y a affichage
d'un message système.

Chargement en mémoire vive du secteur BOOT


Exécution du programme d'amorçage
Le programme d'amorçage se trouve dans le secteur de chargement et il va permettre de charger en
mémoire vive les modules BIOS et DOS qui sont actuellement sur le disque (disquette ou disque
dur).

Ce programme se situe sur le secteur 0 de la piste 0, face 0 de toutes les disquettes système ou non,
formatées par la commande FORMAT (FORMAT/S pour avoir le système) ou DISKCOPY (qui
automatiquement formate avant de copier si cela n'a pas encore été effectué

Dans le cas du disque dur, il est situé sur le secteur 0, tête 0 du premier cylindre de la partition
DOS.
Ce programme n'occupant qu'un seul secteur, inutile de préciser qu'il est donc simplifié au
maximum. Par exemple, il n'ira pas chercher les modules BIOS et DOS ailleurs que dans les
premières entrées du répertoire. C'est pour cela qu'il faut insérer les fichiers systèmes tout au début
de la disquette, soit par un FORMAT/S qui après avoir formaté insère les fichiers systèmes (plus
l'interpréteur de commande), soit par la commande SYS (ce qui indique que la disquette a été
formatée sans l'option /S) qui les recopie sur le disque à la condition qu'il n'y ait pas eu d'autres
fichiers crés auparavant.

TRAVAIL EFFECTUE PAR LE BOOT :

Chargement des module BIOS et DOS qui se trouvent sur la disquette


Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 52 | 62
BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
Remarque : Maintenant en mémoire se trouvent les modules BIOS et DOS.

 Module BIOS :

Appelé IBMBIO.COM chez IBM, IO.SYS chez MICROSOFT, il peut porter différents noms (à
base de IO).

Il est chargé en mémoire et constitue l'interface de bas niveau pour les programmes de la
ROM−BIOS.

Son rôle est de fournir des extensions variables au module de la ROM−BIOS. Conservé sur disque,
il peut en effet être modifié facilement.

Ses caractéristiques sont :

 Définition de l'état du matériel ;

 Restauration des disques ;

 Initialisation des unités ;

 Chargement des programmes de commande des périphériques. Recherche dans le répertoire


principal du disque le fichier de configuration CONFIG.SYS. S'il le trouve, il le lit et interprète les
commandes qu'il comporte puis charge en mémoire le paramètre système correspondant et les
différents programmes de gestion de ces périphérique (exemple : gestionnaire d'écran ANSI,
SYS) ;

 Définition des vecteurs d'interruptions de numéros peu élevés ; • Attribution d'un nouvel
emplacement mémoire au module DOS ;

 Appel du module DOS.

 Module DOS :

Il est appelé IBMDOS.COM chez IBM et DOS.SYS chez MICROSOFT (nom à base de DOS).

 C'est l'interface de haut niveau avec les programmes utilisateurs. Il contient un gestionnaire de
fichier

(Organisation du répertoire et des fichiers sur disque, blocage et déblocage des enregistrements...)

 Il gère les appels de fonctions des entrées sorties, de la gestion des fichiers et de la mémoire, de la
date et de l'heure et des programmes en cours.

Lorsqu'un programme utilisateur exécute une opération d'entrées−sorties, celle−ci génère des
fonctions de haut niveau (appel de fonctions DOS). Ces fonctions engendrent à leur tour des appels
au module BIOS Ensuite, le DOS rend la main au module BIOS qui charge maintenant le fichier
COMMMAND.COM.

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 53 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
 COMMAND.COM :

 Rôle :
COMMAND.COM est un processeur de commande. C'est lui qui analyse les commandes que
l'utilisateur a saisies au clavier.

Il contient tous les modules correspondants aux commandes internes. Donc, après analyse d'une
commande, s'il s'agit d'une commande interne, il exécute le programme correspondant.

Sinon, il va chercher sur le lecteur courant, afin de le charger et de le faire exécuter, un fichier dont
le nom correspond à ce qui a été saisi au clavier, et dont l'extension est .COM ; s'il ne trouve pas, il
cherche un fichier .EXE et s'il ne trouve toujours pas, il le cherche avec l'extension .BAT (fichier
de procédure).

A ce moment−là, s'il n'a toujours pas trouvé, il affiche le message équivalent : NOM DE
COMMANDE OU FICHIER INCONNU

 Constitution de COMMAND.COM :

Il est composé de trois parties :

1) Partie résidente (situé après le DOS). Elle contient :

. Les modules de traitement des interruptions.


. Le programme de rechargement de la partie semi−résidente.
. Les gestions d'erreurs et les messages d’erreurs.
. Les commandes internes.

2) Partie initialisation

Cette partie ne sert qu'à la phase démarrage du micro−ordinateur ; la place sera donc libérée après
son exécution (principe de recouvrement : overlay). Travail effectué :

. Programme de chargement d'Autoexec.bat s'il existe.


. Affichage de la date du jour (option).
. Détermination de l'adresse d'implantation où le système d'exploitation chargera les programmes
avant de les exécuter.

3) Partie semi−résidente

Situé en haut de la mémoire utilisateur (RAM).

Elle contient surtout les modules de gestion des fichiers de commande .BAT. Cette partie peut donc
être écrasée si le système d'exploitation a besoin de place, car si c'est un programme utilisateur qui
est en train de s'exécuter, ce ne peut donc être un fichier de commande. Elle sera rechargée lorsque
le processeur de commande reprendra la main (partie résidente de COMMAND.COM).

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 54 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
3. Principe de fonctionnement

Rappel du déroulement des étapes lors d'une saisie :

COMMAND.COM a la main ; c'est lui qui envoie à l'écran le "Prompt" : c'est le message montrant
qu'il est en attente d'une commande, en général A : > ou C : >.

Saisie d'une commande au clavier par l'utilisateur :

Analyse de cette commande par l'interpréteur (ou processeur) de commande COMMAND.COM. 4


cas se présentent :

1) Commande interne : l'interpréteur cherche chez lui (partie résidente) le sous−programme


correspondant à la commande. Il l'exécute puis retour à la case départ : attente d'une autre
commande.

2) Commande externe. Après ne pas l'avoir trouvé, il ira donc la chercher sur le lecteur courant. Il
s'occupe du chargement de ce programme (qui a obligatoirement une extension .COM ou .EXE) et,
une fois qu'il est en RAM, lui passe la main pour qu'il puisse s'exécuter. A ce moment−là,
COMMAND.COM n'est donc plus actif, c'est le programme utilisateur qui travaille avec le
système d'exploitation (en théorie directement avec le DOS par des appels de fonctions, qui
lui−même appelle des fonctions BIOS).

Une fois terminé, COMMAND.COM dirige à nouveau les opérations et sera en mesure d'attendre
une autre commande.

Si le programme utilisateur a pris beaucoup de place en mémoire et a donc écrasé la partie


semi−résidente de COMMAND.COM, celui−ci avant toute chose ira la chercher. C'est dans ces
cas−là, s'il ne trouve plus COMMAND.COM dans le lecteur (la disquette système a pu être enlevée
entre temps) qu'il affiche le message semblable suivant : CHARGEMENT DE COMMAND.COM :
INSEREZ LA DISQUETTE SYSTEME

3) Recherche d'un fichier ayant l'extension .BAT. C'est un fichier spécial ne contenant
principalement que ces commandes internes ou externes (et bien sûr quelques autres commandes
propres aux fichiers de procédures .BAT).C'est la partie semi−résidente qui gère le bon déroulement
des commandes ; mêmes cas que 1 et 2.

4) COMMAND.COM n'a pas trouvé de fichier, il affiche le message : COMMANDE OU NOM


DE FICHIER INCORRECT

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 55 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2
III. LES COMMANDES DOS

Liste des commandes

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 56 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 57 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 58 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 59 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 60 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 61 | 62


BTS TIC : COURS DE Système d’Exploitation GL2 & PRÉPA2

Ouvrages de référence :

 Principes fondamentaux des systèmes d’exploitation, Dominique Battisti, Christine Macon Nathan 2017.

 Schaum’s Systèmes d’Exploitation J. Archer Harris, EdiScience, 2018.

 Sites Web : Comment ça marche ; lesiteduzéro.com

Par : Ing.Ulrich DJOKO Tel : 694 965 770 / Email : ulrich_djoko@yahoo.com P a g e 62 | 62

Vous aimerez peut-être aussi