Cours D'informatique - Chapitre 3 - Notions de Sytème D'exploitation - Ir MULOBO
Cours D'informatique - Chapitre 3 - Notions de Sytème D'exploitation - Ir MULOBO
Cours D'informatique - Chapitre 3 - Notions de Sytème D'exploitation - Ir MULOBO
Les systèmes d'exploitation les plus répandus dans le secteur informatique sont :
Les micro-ordinateurs furent ensuite, en option, fournis avec un système d'exploitation. Celui-ci,
contenu sur disquette ou en mémoire RAM, affichait une invite à l'écran. On pouvait alors
remplacer la disquette système de démarrage par une disquette contenant le programme désiré
: en écrivant le nom du programme sur la ligne de commande et en appuyant sur la touche
Page 1 sur 10
Retour, le programme était chargé et exécuté. À la fin de l'exécution de ce programme, on
pouvait charger un nouveau programme, sans devoir redémarrer le système.
Par exemple, ceci permet d'écrire un texte avec un traitement de texte puis d'appeler un autre
programme pour l'imprimer.
La gestion d'un système informatique donné se fait a priori en langage machine. Cependant
ceci est primaire et lourd à gérer pour la plupart des ordinateurs, et peu de programmes
seraient développés si chaque programmeur devait connaître le fonctionnement, par exemple,
de tel ou tel disque dur et toutes les erreurs qui peuvent apparaître lors de la lecture d'un bloc. Il
a donc fallu trouver un moyen de libérer les programmeurs de la complexité du matériel. Cela
consiste à enrober le matériel avec une couche de logiciel qui gère l'ensemble du système. Il
faut présenter au programmeur une API (Application Programming interface, interface de
programmation d'application), ce qui correspond à une machine virtuelle plus facile à
comprendre et à programmer.
La plupart des programmeurs ne veulent pas se soucier de la programmation des disques durs.
Ils veulent une abstraction simple de haut niveau. La partie machine virtuelle des systèmes
d'exploitation soustrait le matériel au regard du programmeur et offre une vue simple et
agréable de fichiers nommés qui peuvent être lus et écrits.
Page 2 sur 10
Utilisateurs. Dans un système multi-utilisateur, chaque utilisateur possède un espace privé sur
la machine. Généralement, il possède un certain quota de l'espace disque pour enregistrer ses
fichiers. Le système d'exploitation doit assurer que la partie privée de l'espace d'un utilisateur
ne puisse être visible que par son propriétaire.
Il doit, en particulier, assurer qu'aucun utilisateur ne puisse utiliser une application du système
dans le but de violer l'espace privé d'un autre utilisateur.
Chaque utilisateur est identifié par un numéro unique, appelé l'identifiant de l'utilisateur, ou UID
(User IDentifier). En général, seul un nombre limité de personnes est autorisé à utiliser un
système informatique. Lorsque l'un de ces utilisateurs commence une session de travail, le
système d'exploitation lui demande un nom d'utilisateur et un mot de passe. Si l'utilisateur ne
répond pas par des informations valides, l'accès lui est refusé.
Page 3 sur 10
Source : Stephen Cognetta, comment créer un système d’exploitation, consulté sur le site
www.wikihow.com le 10/10/2023
3.3.2 GESTIONNAIRE DE TÂCHES
Sur un système à temps partagé, l'une des parties les plus importantes du système
d'exploitation est le gestionnaire de tâches (scheduler) ou ordonnanceur. Sur un système à un
seul processeur, il divise le temps en laps de temps (en anglais slices, tranches).
Périodiquement, le gestionnaire de tâches décide d'interrompre le processus en cours et de
démarrer (ou reprendre) l'exécution d'un autre, soit parce que le premier a épuisé son temps
d'allocation du processus soit qu'il est bloqué (en attente d'une donnée d'un des périphériques).
La gestion de la mémoire est du ressort du gestionnaire de mémoire. Celui-ci doit connaître les
parties libres et les parties occupées de la mémoire, allouer de la mémoire aux processus qui
en ont besoin, récupérer la mémoire utilisée par un processus lorsque celui-ci se termine et
traiter le va-et-vient (swapping, ou pagination) entre le disque et la mémoire principale lorsque
cette dernière ne peut pas contenir tous les processus.
Une des taches fondamentales du système d'exploitation est de masquer les spécificités des
disques et des autres périphériques d'entrée-sortie et d'offrir au programmeur un modèle
agréable et facile d'emploi. Ceci se fait à travers la notion de fichier. Ainsi, le système de
fichiers (FS, « file system »), permet d'enregistrer les fichiers dans une arborescence.
Le contrôle des périphériques d'entrée-sortie (E/S) de l'ordinateur est l'une des fonctions
primordiales d'un système d'exploitation. Ce dernier doit envoyer les commandes aux
périphériques, intercepter les interruptions, et traiter les erreurs. Il doit aussi fournir une
interface simple et facile d'emploi entre les périphériques et le reste du système qui doit être,
dans la mesure du possible, la même pour tous les périphériques, c'est-à-dire indépendante du
périphérique utilisé. Le code des entrées-sorties représente une part importante de l'ensemble
d'un système d'exploitation.
De nombreux systèmes d'exploitation offrent un niveau d'abstraction qui permet aux utilisateurs
de réaliser des entrées-sorties sans entrer dans le détail du matériel. Ce niveau d'abstraction
fait apparaître chaque périphérique comme un fichier spécial.
Lorsque qu'ordinateur est mis sous tension, il exécute un logiciel appelé BIOS (pour Basic Input
Output System) placé à une adresse bien déterminée et contenu en mémoire RAM. Ce logiciel
initialise les périphériques, charge un secteur d'un disque, et exécute ce qui y est placé. Lors de
la conception d'un système d'exploitation, on place sur ce secteur le chargeur du système
d'exploitation ou, plus exactement, le chargeur du chargeur du système d'exploitation (ou pré-
chargeur) puisque le contenu d'un secteur est insuffisant pour le chargeur lui-même.
Page 4 sur 10
Le système d'exploitation proprement dit est le code qui permet de définir les appels système.
Les Outils de développement tels que les compilateurs, assembleur, éditeur de liens,
débuggeurs, fichiers d’entête, les interpréteurs de commandes, les éditeurs de liens et
bibliothèques nécessaires pour le développement et la mise au point des logiciels pour ce
système ne font pas partie du système d'exploitation. Cependant l'interpréteur de commandes
(shell ) est souvent considéré comme en faisant partie. Sous sa forme la plus rudimentaire,
l'interpréteur de commandes exécute une boucle infinie qui affiche une invite, montrant par-là
que l'on attend quelque chose. Il lit le nom du programme saisi par l'utilisateur à ce moment-là
et l'exécute.
Ci-haut a été examiné la structure d’un système d'exploitation de l'extérieur, du point de vue de
l'interface présentée à l'utilisateur et au programmeur. À présent, nous allons examiner son
fonctionnement interne.
Afin de s’adapter aux exigences des applications et des utilisateurs, l’architecture des SE
évolue beaucoup et vite.
Couches d’un SE
3) Structure en couches. Chaque couche n’est en communication ou n’utilise que les
fonctionnalités de la couche inférieure.
Couche 5 programmes utilisateurs
Couche 4 bufferisation pour les périphériques d’entrée/sortie
Couche 3 driver pour la console de l’opérateur
Couche 2 gestion mémoire
Couche 1 scheduling de l’UC
Couche 0 matériel
Dans la structure en couches, il est difficile de déterminer les diverses couches qui vont
composer le système de manière adéquate. Et l’Implémentation est moins performante. Pour
faire un appel E/S (accès au matériel) il est nécessaire de faire appel à toutes les couches.
Chaque couche ajoute une surcharge à l’appel initial.
Page 5 sur 10
1. Systèmes centralisés :
L'ensemble du système est entièrement présent sur la machine considérée. Les autres
machines qui lui reliées sont vues comme des entités étrangères disposant elles aussi d'un
système centralisé. Ainsi, le système ne gère que les ressources de la machine sur laquelle
il est présent.
Exemple : UNIX, même si les applications réseaux (X11, FTP, Mail ...) se sont
développées.
2. Système ouvert
Système avec extensibilité accrue. Possibilité de rajouter des fonctionnalités et des
abstractions sans avoir à repenser le système et même sans avoir à l'arrêter sur une
machine.
Il implique souvent une conception modulaire basée sur le modèle « client-serveur » et la
communication entre systèmes, nécessitant des modules spécialisés.
Attention : Il n'y a pas de système universel pour cette multitude d'architectures. Les
constructeurs de supercalculateurs ont toujours développé leurs propres systèmes.
1. Systèmes embarqués
Les systèmes embarqués sont des SE prévus pour fonctionner sur des machines de petite
taille, telles que des PDA (Personal Digital Assistants) ou des appareils électroniques
Page 6 sur 10
autonomes (sondes spatiales, robot, ordinateur de bord de véhicule, etc.), possédant une
autonomie réduite. Ils ont donc une gestion avancée de l'énergie et leur capacité à
fonctionner avec des ressources limitées.
Exemple: Windows CE, Windows Mobile, Windows Smartphone, iOS, Symbian OS, Black
Berry OS, Android OS, ESP (Electronics Stability Program) dans les voitures.
2. Systèmes temps réel (Real Time Operating System, RTOS). Ce sont des SE pour
lesquels l'exécution des programmes est soumise à des contraintes temporelles même
dans le pire de cas.
Les résultats de l'exécution d'un programme n'est plus valide au-delà d'un certain temps
connu et déterminé à l'avance. Généralement, on les trouve dans les systèmes embarqués.
Ils contrôlent les processus industriels (centrales nucléaires, usines chimiques, etc.), la
supervision médicale, le système d’assistance au pilotage,...
Exemples : OS-9 ; RTLinux (RealTime Linux) ; QNX ; VxWorks
Un terminal est une application permettant de dialoguer avec son ordinateur via l'écriture de
lignes de commande. Il est important de comprendre le terminal parce que :
2. Ces anciennes commandes qui reprennent les principaux appels système qui
concernent les fichiers, sont parfois encore utiles :
Le fichier est l’unité de base de stockage de l’information. Tout fichier est repéré par un nom
composé de deux parties séparées par un point : nom et extension (suffixe).
Le nom est soumis à des restrictions :
Il est formé de 8 caractères au maximum (imposé par le système de fichier FAT).
Page 7 sur 10
Il ne doit pas contenir espace, virgule, barre oblique (antislash) et point.
Il ne doit pas appartenir à la liste des mots réservés.
Les répertoires ou dossiers (appellation sous Windows) qui servent à ranger et à organiser les
fichiers sous la forme d’une arborescence. Cette structuration (organisation) facilite la recherche
des fichiers. Les fichiers relatifs à un même sujet appartiennent généralement à un même
répertoire.
MS-DOS indique le nom du répertoire courant dans l’invite de commande (prompt). Il est celui
avec lequel on travaille à un moment donné.
Le répertoire racine (ROOT) est le répertoire à partir duquel tous les autres répertoires se
créent. On ne peut pas le supprimer. Lorsque le répertoire courant est la racine, l’invite de
commande de MS-DOS est semblable au suivant : C :\>
Répertoire courant : C: :\users\ MULOBO>
LINUX autrefois Unix, est un système d’exploitation multi-utilisateurs, multitâche, écrit à 99% en
langage C, constitué du noyau Unix, d’un interpréteur de commandes et d’un grand nombre
d’utilitaires. Le noyau assure la gestion des ressources physiques (processeur, mémoires,
périphériques) et logicielles (processus, fichiers…). L’interface entre les programmes des
utilisateurs et le noyau est défini par un ensemble de procédures et de fonctions, soit
directement au niveau du noyau, soit par l’intermédiaire de bibliothèques. Pour ce qui concerne
l’architecture du noyau proprement dit, les éléments caractéristiques sont les suivants :
Le noyau est constitué d’un ensemble de procédures et de fonctions écrites pour l’essentiel en
langage C
Page 8 sur 10
2. Apprendre les langages de haut niveau comme C, C++, Python, Pascal, Rust, Go, Perl:
débutant, principes fondamentaux, programmation modulaire, gestion de mémoire,
pointeurs et gestion de mémoire.
3. Apprendre un langage d’assemblage pour maitriser les microprocesseurs (Intel, AMD,
VIA).
4. Suivre des tutoriels sur les systèmes d’exploitation : structure, noyau, …
5. Définir ce que fera ce système d’exploitation.
3.6.2 CONSTRUIRE SON SYSTÈME D'EXPLOITATION
Source : Rémi Sharrock, Introduction aux systèmes d’exploitation consulté sur le site
www.wandida.com le 10/10/2023
Page 9 sur 10
Questions relatives au chapitre 3, Notions de système d’exploitation.
1. Operating System.
2. Quels sont les trois fonctions d’un système d’exploitation ?
3. Quels sont les liens entre les trois fonctions d’un Système d’exploitation et celles d’un
ordinateur ?
4. Expliquez la notion de « chargements de programme ».
5. Expliquez le concept de « système d’exploitation en tant que machine virtuelle ».
6. Expliquez en quoi consiste « le travail du système d’exploitation dans la gestion des
ressources ».
7. Donnez la définition des concepts suivants :
a) Système mono tâche.
b) Système multitâche.
c) Système mono-utilisateur.
d) Système multi-utilisateur.
e) Système centralisé.
f) Système propriétaire.
g) Système multiprocesseur.
Page 10 sur 10