Vous êtes sur la page 1sur 6

Université de Blida 1 Système d’exploitation Département

d’informatique 2ème année LMD

CHAPITRE I : Généralité sur les systèmes d’exploitation

1. Définition :
Un système d’exploitation (noté SE ou OS, abréviation du terme anglais Operating System) est l'ensemble de
programmes central d'un ordinateur qui sert d'interface entre le matériel et les logiciels applicatifs (traitement
de texte, jeu vidéo, ...).C'est donc une couche logicielle (software) qui permet et coordonne l'utilisation du
matériel (hardware) entre les différents programmes d'application. Un système d’exploitation est typiquement
composé : d’un noyau, de bibliothèques, d’un ensemble d’outils système et de programmes applicatifs de base.

2. Naissance et Historique:
Les ordinateurs des années 1940 à 1960, très coûteux, étaient la propriété des entreprises et des institutions.
Chaque utilisateur avait le droit d'utiliser l'ordinateur pendant un temps limité et l'utilisateur avait alors à
disposition la totalité du matériel de l'ordinateur. Il apportait avec lui une pile de cartes perforées qui contenait
les instructions du ou des programmes à exécuter.
Les ordinateurs de cette époque effectuaient une seule tâche à la fois, au service d'un seul utilisateur. Les
programmes pour ces ordinateurs contenaient toutes les instructions nécessaires pour manipuler le matériel
de l'ordinateur. Si la logithèque pour cet ordinateur comportait cinquante programmes, les instructions
nécessaires pour manipuler le matériel se retrouvaient dans chacun de ces cinquante programmes. Avec
l'agrandissement de la logithèque, l'idée est venue d'isoler les instructions routinières dans un programme
séparé. Un programme qui résiderait continuellement dans la mémoire, quel que soit le programme en cours
d'exécution. Ce programme était un système d'exploitation, sous sa forme la plus rudimentaire.

La 1ère génération (1945 - 1955) : les tubes à vide et les cartes enfichables.
Dans les années 40, les premiers « ordinateur » apparaissent, les programmes et les données sont codés
directement en binaire sur des tableaux d'interrupteurs, puis plus tard (1950) sur des cartes perforées (la
présence ou l'absence de trous correspondent à 0 ou 1), ils sont chargés en mémoire, exécutés et mis au point
à partir d'un pupitre de commande. A cette époque Il n'existait pas de système d'exploitation C'est la même
équipe qui conçoit, construit, programme, administre et maintient la machine.
L'arrivée de l'assembleur facilite l'écriture des programmes, mais l'utilisation des machines est toujours la
même. L'ordinateur ne traite qu'un programme à la fois. Les utilisateurs travaillaient chacun leur tour sur
l'ordinateur qui remplissait une salle entière. Ils étaient d'une très grande lenteur.

La 2ème génération (1955 - 1965) : les transistors et le traitement par lots


Avec l'apparition du transistor les ordinateurs sont beaucoup plus fiables, mais coûtent très cher (seules de
grandes entreprises privées ou publiques en possèdent). Ce sont maintenant des équipes différentes qui
conçoivent, construisent, programment, administre et maintiennent la machine.
Pour chaque travail (job) à réaliser, le programmeur transmet son paquet de cartes perforées (programmes en
assembleur ou en FORTRAN) à l'opérateur qui les soumet au compilateur puis à l'ordinateur. Une fois l'exécution
terminée, l'opérateur récupère le résultat sur l'imprimante. Comme les ordinateurs sont très coûteux, on
cherche à réduire les temps d'attente en automatisant les opérations manuelles.

GUESSOUM D. 1/6
Université de Blida 1 Système d’exploitation Département
d’informatique 2ème année LMD

Le calculateur principal ne fonctionne pas tout le temps : beaucoup de temps est encore perdu lors des
déplacements des opérateurs qui sont chargés d'alimenter les machines en cartes, papier, bandes.
On procède au traitement par lots (batch) : plusieurs travaux sont transcrits sur une même bande d'entrée. Le
calculateur principal lit le 1er job, puis lorsque celui-ci est terminé, lit le 2nd, etc... Jusqu’à la fin de la bande. Un
interprète de commande permet le chargement du programme et des données puis l'exécution du programme,
le moniteur est le programme charger du séquencement des travaux des utilisateurs et de la continuité des
opérations. Le moniteur des années 60 est le précurseur du système d'exploitation appelé : FMS (Fortran
MonitorSystem) et IBSYS.

La 3ème génération (1965 - 1980) : les circuits intégrés et la Multiprogrammation.


L'apparition des circuits intégrés permet une grande avancée sur la performance et le coût des ordinateurs. Des
familles de machines partageant le même langage machine, le même système d'exploitation se mettent en
place. Les travaux sont entièrement traités par l'ordinateur sans passer par des machines annexes, les jobs sont
stockés sur des fichiers disques. Comme l'accès sur un disque est aléatoire (dans le sens de non-séquentiel) le
moniteur peut choisir l'ordre des travaux. Dans le moniteur, le planificateur (scheduler) assure cette tâche. Mais
les moniteurs batch exécutent toujours un seul job à la fois, à tout instant un seul programme se trouve en
mémoire et peut seul exploiter le CPU.
On arrive à la multiprogrammation. La mémoire est partagée entre différents programmes en attente d'une
donnée en entrée par exemple peut être suspendu temporairement au profit d'une tâche. Le but étant
d'exploiter au maximum le CPU. On appelle cette technique le spoule (de SPOOL : Simultaneous Peripheral
Operation On Line).
On voit apparaître également le temps-partagé (time-sharing) pour des ordinateur multi-utilisateurs (un
ordinateur central connecté à plusieurs terminaux).
La naissance du système MULTICS en 1965. Thompson écrivit une version simplifiée (mono-utilisateur) de
MULTICS; B. Kernighan l'appela avec humour UNICS (Uniplexed Information and Computer Service) ; ce nom
allait devenir UNIX (1969). Ensuite D. Ritchie se joignit à K. Thompson pour réécrire UNIX en langage C; ce
système d'exploitation a été le plus porté sur toutes sortes de machine.
La 4ème génération (1980 - 1990) : les ordinateurs personnels et développement des réseaux.
Depuis les années 80, on assiste au développement des ordinateurs personnels, à l'amélioration constante du
taux d'intégration des circuits (LSI : Large Scale Integration, VLSI, Very LSI), à la baisse des coûts et au
développement des réseaux de communications, au développement des réseaux locaux, à l'explosion
d'internet.
Les interfaces Homme/Machine sont toujours améliorées. Il existe deux systèmes d'exploitation principaux :
MS-DOS (Microsoft Inc.) et UNIX.
Dans le milieu des années 80, on voit l'apparition de réseaux d'ordinateurs individuels qui fonctionnent sous
des systèmes d'exploitation en réseau ou des systèmes d'exploitation distribués.

La 5ème génération (1990 - ????) : les ordinateurs personnels portables et de poche.


Apparition des PDA (Personal Digital Assistant, comme le Newton de chez Apple), grâce à l'intégration des
composants et l'arrivée des systèmes d'exploitation de type « micro-noyau ».

GUESSOUM D. 2/6
Université de Blida 1 Système d’exploitation Département
d’informatique 2ème année LMD

Les systèmes d'exploitation de type « micro-noyau » sont modulaires (un module par fonction) ; ils peuvent être
réalisés avec plus ou moins de modules et donc adaptables à des très petites machines.

3. Rôle de systèmes d’exploitation:


Le système d’exploitation joue deux rôles :
1. d’une machine virtuelle (abstraite) : Le SE présente au programmeur une interface d’accès aux ressources
de l’ordinateur (sous forme d’appels système). Ainsi le programmeur peut faire abstraction des détails de
fonctionnement des ressources.
2. d’un administrateur de ressources : Le SE gère l’utilisation des ressources par différents utilisateurs et règlent
les éventuels conflits.
En tant que gestionnaire de ressources Un système d'exploitation doit assurer :
La Gestion du processeur : le SE est chargé de gérer l’allocation du processeur entre les différents programmes
grâce à un algorithme d’ordonnancement.
La Gestion de la mémoire vive : le SE est chargé de gérer l’espace mémoire alloué à chaque application et, le
cas échéant, à chaque usager. En cas d’insuffisance de mémoire physique, le système d’exploitation peut créer
une zone mémoire sur le disque dur, appelée «mémoire virtuelle».
La Gestion des fichiers : le SE gère la lecture et l‘écriture dans le système de fichiers et les droits d’accès aux
fichiers par les utilisateurs et les applications.
La Gestion des entrées/sorties : le SE permet d’unifier et de contrôler l’accès des programmes aux ressources
matérielles par l’intermédiaire des pilotes (appelés également gestionnaires de périphériques ou gestionnaires
d’entrée/sortie).
Remarque :Les programmes utilisateurs peuvent accéder à ces différentes fonctionnalités à l’aide des appels
système (voir section 08).

4. Classification de systèmes d’exploitation:


Un système d'exploitation est dit multitâches quand il permet l'exécution simultanée de plusieurs programmes.
Tous les systèmes d'exploitation actuels sont multitâches.
Il est dit multiutilisateurs quand il est conçu pour être utilisé simultanément par plusieurs usagers, souvent à
travers un réseau informatique (notion de serveurs). Ils sont multitâches et en général sécurisés, c'est ¬à
dire qu’ils vont refuser d'exécuter toute opération pour laquelle l'usager n'a pas préalablement reçu une
permission.
Il est dit multiprocesseurs quand il est conçu pour exploiter un ordinateur équipé de plusieurs processeurs.
Dans de tels SE, plusieurs programmes sont exécutés simultanément par les différents processeurs.
Il est dit temps réel quand il garantit que les opérations seront effectuées en respectant des délais stricts , et
ce quelles que soient les conditions d'utilisation (charge du système). De tels systèmes d'exploitation sont
utilisés dans l'industrie, l'aéronautique ou l'électronique pour créer des systèmes temps réel (souvent
embarqué).
Un système est dit préemptif lorsqu’ il possède un ordonnanceur (aussi appelé planificateur), qui répartit, selon
des critères de priorité, le temps machine entre les différents processus qui en font la demande.
Le système est dit à temps partagé lorsqu’un quota de temps est alloué à chaque processus par l’ordonnanceur.
C’est notamment le cas des systèmes multi-utilisateurs qui permettent à plusieurs utilisateurs d’utiliser

GUESSOUM D. 3/6
Université de Blida 1 Système d’exploitation Département
d’informatique 2ème année LMD

simultanément sur une même machine des applications différentes ou bien similaires : le système est alors dit
«système transactionnel». Pour ce faire, le système alloue à chaque utilisateur une tranche de temps.
Le système est dit embarqué lorsque il est prévu pour fonctionner sur des machines de petite taille, telles que
des PDA ou des appareils électroniques autonomes (sondes spatiales, robot, ordinateur de bord de véhicule,
etc.), possédant une autonomie réduite. Ainsi, une caractéristique essentielle des systèmes embarqués est leur
gestion avancée de l’;énergie et leur capacité à fonctionner avec des ressources limitées.
Un système d'exploitation est composé d'une large palette de programmes. Sa compostions exacte dépend de
l'usage cible et du type d'équipement informatique (ordinateur personnel, serveur, superordinateur ou
encore système embarqué) auquel le système est destiné.
Par exemple, si le système d'exploitation est destiné à être utilisé :
-sur un ordinateur personnel ou une console de jeu vidéo, il nécessitera une interface graphique
ergonomique.
- sur un serveur, il comprendra une large palette de protocoles et de pilotes pour du matériel réseau, sera
multitâches et muni de contrôles d'accès
- sur un assistant personnel ou un téléphone portable, le nombre de pilotes sera restreint au minimum et le
système d'exploitation sera prévu pour être enregistré sur une mémoire morte.
-sur des superordinateurs, il sera alors massivement multiprocesseur.

5. Exemple de système d’exploitation :


MIT (Massachusetts Institute of Technology) en 1965 se lance dans la création du premier système
d'exploitation multitâches et multi-utilisateurs : Multics (MULTiplexed Information and Computing Service ou
service multiplexé d'information et de calcul).En 1969, Bell se lance dans l'écriture d'une version allégée de
Multics. Le système est surnommé Unics, puis finalement baptisé UNIX. Rapidement reprogrammé dans
un langage de programmation plus approprié (le C, développé par Ritchie pour l'occasion), UNIX se révèle
particulièrement simple à porter sur de nouvelles plateformes, ce qui assure son succès.
Linux est apparu en 1991 comme le Clone gratuit d’UNIX pour les PC, open source.

Mac OS : Premier à proposer le concept des fenêtres, du glisser-déposer, la corbeille, le plug-and- play;
aujourd’hui possède le noyau Linux, avec une interface graphique élégante et ergonomique, et optimisation
particulière des traitements multimédia.

MS-DOS (Microsoft disque operating system) : est apparue en 1980 comme système d’exploitation des
premiers PC, mono-utilisateur, mono-tâche, avec une interface ligne de commande.

MS-Windows : Inspiré par l’interface Macintosh; tout d’abord, il propose une coquille graphique pour DOS.

6. Architecture d’un système d’exploitation :


Le SE est composé d’un ensemble de logiciels permettant de gérer les interactions avec le matériel. Parmi cet
ensemble de logiciels on distingue généralement les éléments suivants :

GUESSOUM D. 4/6
Université de Blida 1 Système d’exploitation Département
d’informatique 2ème année LMD

Le noyau (en anglais kernel) représentant les fonctions fondamentales du système d’exploitation telles que la
gestion de la mémoire, des processus, des fichiers, des entrées-sorties principales, et des fonctionnalités de
communication.
L’interpréteur de commande (en anglais shell, «coquille» par opposition au noyau) est la partie la plus externe
du système d'exploitation permettant la communication avec le système d’exploitation par l’intermédiaire d’un
langage de commandes, afin de permettre à l’’utilisateur de piloter les périphériques en ignorant tous les
caractéristiques du matériel qu’il utilise, de la gestion des adresses physiques, etc.
Le système de fichiers (en anglais «file system», noté FS), permettant d’enregistrer les fichiers dans une
arborescence.
Un système d'exploitation est typiquement organisé en couches distinctes. La couche supérieure est l'interface
de programmation avec les logiciels applicatifs (dont font partie les logiciels utilitaires et les bibliothèques
fournis avec le système d'exploitation).
Au centre, on trouve une ou plusieurs couches qui contiennent les composants principaux du système
d'exploitation tels que : la gestion des systèmes de fichiers et du réseau, la gestion de mémoire, les pilotes,
l'ordonnanceur, le gestionnaire d'interruption. La couche inférieure, appelée couche d'abstraction matérielle
HAL (Hardware Abstraction Layer), est chargée de masquer les particularités matérielles.

Figure 1: Place de SE dans l'ordinateur

Le système d’exploitation est placé entre la machine matérielle et les applications. Il s’interface avec la couche
matérielle, notamment par le biais de mécanisme d’interruptions (voir section 9) . Il s’interface avec les
applications par le biais des primitives qu’il offre : appels système (voir chapitre section 8) et commandes.
7. Modes d’exécution du système d’exploitation :

Le code du noyau est très sensible. Tout usage incorrect de ce noyau peut détériorer le matériel ou planter le
système, ce code est donc protégé, on peut est y accéder que par un appel système. En général les processus
ont deux modes de fonctionnement :

Mode superviseur (système privilégié, mode moniteur, mode superviseur, mode system, mode noyau): est
réservé à l'exécution des primitives du système d'exploitation, c’est des Instructions privilégiées (instructions
GUESSOUM D. 5/6
Université de Blida 1 Système d’exploitation Département
d’informatique 2ème année LMD

machine risquant de nuire) . Dans ce mode le processeur peut exécuter toutes les instructions.Les appels
système s’exécutent dans ce mode.

Mode utilisateur (User Mode, mode esclave): dans lequel les programmes utilisateurs sont exécutés.
Dans ce mode certaines instructions sont interdites. S’il se produit une tentative d’exécuter une instruction
privilégiée, le matériel ne la réalise pas mais traite l’instruction comme illégale et bloque le SE.

Au moment d’initialiser le système, le matériel démarre en mode superviseur. Ensuite le SE est chargé et
démarre les processus utilisateurs en mode utilisateur. Chaque fois qu’un déroutement (trap) ou une
interruption se produit, le matériel commute du mode utilisateur au mode superviseur

-Chaque fois que le SE prend le contrôle de l’ordinateur, il est en mode superviseur

-Le système commute toujours au mode utilisateur avant de donner la main à un programme utilisateur

8. Appel système :

Il constitue une interface entre le SE et les programmes d’application (ou leur bibliothèque). Un appel a pour
rôle d’activer le système d’exploitation. C’est un point d'entrée dans le code du noyau. Quelques appels
systèmes classiques : open, read, write et close qui permettent les manipulations sur les systèmes de fichiers,
alloc, free pour allouer et désallouer de la mémoire. Sur la majorité des SE, les appels système peuvent être
utilisés comme de simples fonctions écrites en C. Sur la plupart des noyaux (notamment les noyaux
monolithiques comme le Noyau Linux) les appels systèmes sont implémentés par une instruction machine
(interupt, supervisor call, ...) qui fait basculer le processeur dans le noyau en mode superviseur.

9 Les systèmes d’interruptions :

Une Interruption est événement qui modifie le flux d’exécution d’un programme. Le mécanisme
d’interruption (IT) suspend l’exécution de tout programme en cours d’exécution sur un point interruptible,
afin d’exécuter le code l’interruption appelé routine d’interruption. On distingue deux types d’interruptions :

1. Interruptions matérielles : Permettent la prise en compte d’une requête de service système (mémoire,
contrôleur de périphérique, clavier, lecteur, ...). À tout moment le matériel peut activer une interruption.

2. Interruptions logicielle : Activée par l’exécution d’un appel système (system call ou monitor call)

Un déroutement (trap) est une condition anormale détectée par l’UC qui indique généralement une erreur
(ex : division par zéro, accès à un emplacement mémoire inexistant ou auquel on ne peut pas y accéder …).

Lorsqu’une interruption est captée par le système, le programme en cours est arrêté. Le système d’exploitation
sauvegarde le contexte : Le système d’exploitation préserve l’état de la CPU (sauvegarde des registres et du
compteur ordinal). Le SE détermine ensuite le type d’interruption. Pour chaque type d’interruption une partie
de code du SE détermine l’action qui doit être prise (routine IT). Dès que cette procédure est terminée, le
programme interrompu reprend son exécution. Lors de la reprise, la machine doit se trouver exactement dans
l’état où elle était au moment de la prise en compte de l’interruption.

GUESSOUM D. 6/6

Vous aimerez peut-être aussi