0% ont trouvé ce document utile (0 vote)
36 vues14 pages

S2M04 3

Transféré par

Bassim Rezki
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
36 vues14 pages

S2M04 3

Transféré par

Bassim Rezki
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Système exploitation

Exposé par : Bensedira & Benabed

1.Introduction..........................................................................................

2.Définition..............................................................................................

3.Historique des systèmes d'exploitation...................................................

4. Classes de systèmes d’exploitation......................................................

5. Processus et multi-threading dans un OS ............................................

6.Le SE (système d'exploitation) gère 4 processus....................................

7.Relations entre thread et processus.......................................................

8. Interface de programmation.................................................................
Système exploitation
1. Introduction
Les ordinateurs permettent de collecter des données, de réaliser des calculs, de stocker des
informations et de communiquer avec d’autres ordinateurs. Un ordinateur est formé d’une
partie matérielle et d’une partie logicielle. Cette dernière comporte des logiciels qui sont
classés en deux catégories : les programmes d'application des utilisateurs et les programmes
système qui permettent le fonctionnement de l'ordinateur. Parmi ceux-ci, le système
d'exploitation (SE).
Le système d’exploitation est le logiciel qui prend en charge les fonctionnalités élémentaires
du matériel et qui propose une plateforme plus efficace en vue de l’exécution des programmes.
Il gère les ressources matérielles, offre des services pour accéder à ces ressources et crée des
éléments abstraits de niveau supérieur, tels que des fichiers, des répertoires et des processus.
2.Définition

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 informatiques 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.

Le système d’exploitation d’un ordinateur est chargé d’assurer les fonctionnalités de


communication et d’interface avec l’utilisateur. Un OS est un logiciel dont le grand domaine
d’intervention est la gestion de toutes les ressources de l’ordinateur
Système exploitation
 mémoires,
 fichiers,
 périphériques,
 entrée-sortie,
 interruptions, synchronisation...

Un système d’exploitation n’est pas un logiciel unique mais plutôt une famille de logiciels.
Une partie de ces logiciels réside en mémoire centrale (nommée résident ou superviseur), le
reste est stocké en mémoire de masse (disques durs par exemple).
Afin d’assurer une bonne liaison entre les divers logiciels de cette famille, la cohérence de
l’OS est généralement organisée à travers des tables d’interfaces architecturées en couches de
programmation (niveaux abstraits de liaison). La principale tâche du superviseur est de gérer
le contrôle des échanges d’informations entre les diverses couches de l’OS.
1.2Composition :
Un système d’exploitation est typiquement composé :
 d’un noyau ;
 de bibliothèques ;
 d’un ensemble d’outils système ;
- gestion de fichiers.
 de programmes applicatifs de base.
Le noyau du système :

Le noyau (ou cœur) assure les fonctionnalités suivantes :


 gestion des périphériques (au moyen de pilotes) ;
 gestion de l’exécution des programmes (aussi nommée processus) :
 gestion de la mémoire attribuée à chaque processus ;
 ordonnancement des processus (répartition du temps d’exécution sur le ou
les processeurs).
 synchronisation et communication entre processus (services de
synchronisation, d’échange de messages, mise en commun de segments de
mémoire, etc.)
 gestion des fichiers (au moyen de systèmes de fichiers) ;
 gestion des protocoles réseau (TCP/IP, IPX, etc.).
Les bibliothèques :
Les bibliothèques servent à regrouper les opérations les plus utilisées dans les programmes
informatiques, afin d’éviter la redondance de la réécriture de ces opérations dans tous les
programmes.
Système exploitation
On distingue généralement deux types de bibliothèques: les bibliothèques système, et les
bibliothèques utilitaires.
Les bibliothèques ;système sont constituées de fonctions permettant l’utilisation agréable des
fonctionnalités systèmes (généralement des points d’entrée vers des fonctions du noyau, mais
pas seulement).
Les bibliothèques utilitaires contiennent des fonctions d’usage courant et pratique (fonctions
mathématiques, fonctions de tri, etc).
Le système de fichiers :
Un système de fichiers (FS ou file system en anglais) ou système de gestion de fichiers
(SGF) est une structure de données permettant de stocker les informations et de les organiser
dans des fichiers sur ce que l’on appelle des mémoires secondaires (disque dur, disquette, CD-
ROM, clé USB, etc.). Il offre à l’utilisateur une vue abstraite sur ses données et permet de les
localiser à partir d’un chemin d’accès.
Les outils système :
Les outils système permettent :
De configurer le système (gérer les comptes des utilisateurs, configuration des paramètres
réseau, démarrage automatique des services, etc.) ;
L’interface graphique :
Ce type d’interface homme machine IHM s’oppose à l’interface en ligne de commande (en
anglais CLI pour Command Line Interface) comme MS-DOS. Les parties les plus typiques de
ce type d’environnement sont le pointeur de souris, les fenêtres, le bureau, les icônes. De plus,
des contrôles graphiques sont utilisés pour interagir avec l’utilisateur : les boutons, les menus,
les barres de défilement. Cette interaction homme machine s’élabore que ce soit dans les
interfaces graphiques ou en ligne de commande par le « Shell ». Un dispositif de pointage est
nécessaire au bon fonctionnement d’une interface graphique. Cet environnement rend
accessible et convivial un ordinateur.
L’interface graphique représente la partie visible du système d’exploitation, ce qui explique
qu’à chaque évolution majeure de son système d’exploitation, les fabricants de systèmes
d’exploitation font évoluer également l’interface graphique donnant ainsi son identité à chaque
génération de ses systèmes d’exploitation.
Les programmes applicatifs de base :
Des programmes applicatifs de base offrent des services à l’utilisateur (calculatrice, éditeur
de texte, navigateur web, etc.). Ces programmes applicatifs sont souvent fournis en paquet
avec le système d’exploitation.
Système exploitation
Les programmes applicatifs de base
Des programmes applicatifs de base offrent des services à l’utilisateur (calculatrice, éditeur
de texte, navigateur web, etc.). Ces programmes applicatifs sont souvent fournis en paquet
avec le système d’exploitation.

Figure : Structure en couche d’un SE

3.Historique des systèmes d'exploitation

L’histoire de l’informatique est très brève – les ordinateurs sont nés avec la seconde guerre
mondiale – et pourtant, elle a connu de grandes évolutions. L'historique des systèmes
d'exploitation est intimement liée à l'évolution de l’informatique. Cette évolution est séparée
en 4 grandes étapes :

1. Première génération (1945-55) : les tubes à vide.


2. Deuxième génération (1955-65) : les transistors et le traitement par lots.
3. Troisième génération (1965-80) : les circuits intégrés et la multiprogrammation.
4. Quatrième génération (1980-aujourd’hui) : les micro-ordinateurs

Première génération (1945-55) : les tubes à vide

En 1946, le premier ordinateur ne comportant plus de pièces mécaniques est créé grâce à J.
Mauchly et J. Presper Eckert : l’ENIAC (Electronic Numerical Integrator And Computer). Il
est composé de 180 000 tubes à vide et occupe 1500 m². Son principal inconvénient est sa
Système exploitation
programmation : il était uniquement programmable manuellement avec des commutateurs ou
des câbles à enficher.

Deuxième génération (1955-65) : les transistors et le traitement par lots

En 1948, le transistor est créé par la firme Bell Labs grâce aux ingénieurs John Bardeen,
Walter Brattain et William Shockley. Le transistor permet de rendre les ordinateurs moins
encombrants et moins gourmands en énergie électrique : c’est la révolution dans l’histoire de
l’informatique. Ce n’est qu’en 1960 qu’IBM commercialise l’un des premiers ordinateurs à
base de transistors, l’IBM 7000.

C’est aussi à cette époque que les premiers systèmes d’exploitation sont apparus tel FMS (the
Fortran Monitor System) et IBSYS (IBM’s operating System), utilisant le traitement par lots
pour gérer l’exécution des programmes qui se fait maintenant de façon autonome.

Troisième génération (1965-80) : les circuits intégrés et la multiprogrammation

Le circuit intégré est mis au point en 1958 par Texas Instrument. Il permet de réduire encore
la taille des ordinateurs en intégrant plusieurs transistors dans le même composant
électronique. Avec cette nouvelle génération d’ordinateurs, une nouvelle génération de
systèmes d’exploitation mettant en application le concept de multiprogrammation fait son
apparition.

Les premiers travaux sur MULTICS, l'ancêtre d'Unix, sont dus à Ken Thompson pour le
compte de Bell Laboratories, AT&T, General Electric et le Massachusetts Institute for
Technology.

En 1970, une première version d'Unix voit le jour. Elle fonctionne sur une machine PDP-7 de
Digital Equipment. Les principales caractéristiques de ce système sont les suivantes :

 Gestion de fichiers sous forme d'une hiérarchie de répertoires.


 Entrées/sorties gérées de la même façon pour les fichiers, les processus (ou
programmes) et les périphériques.
 Gestion multi-tâches de processus indépendants.
 Systèmes à base de commandes pouvant accepter de multiples interpréteurs de
commandes, selon les besoins de l'utilisateur.
 Présence d'utilitaires et de compilateurs intégrés dans le système.
 Un système aussi portable que possible pouvant s'adapter à de nombreux types
d'ordinateurs. C'est justement pour accroître la portabilité du système que Denis Ritchie
inventa le langage de programmation C.

Une grande partie du système Unix fut réécrite en langage C. Le reste du système, en
assembleur, dépend du type de machines sur lequel on installe le système. En 1976, la version
Système exploitation
6 d'Unix, fut la première version complète. En 1979, ce fut le succès commercial avec la
version 7. Cette version a été adoptée par Hewlett Packard et Digital Equipment.

Quatrième génération (1980-aujourd’hui) : les micro-ordinateurs

En 1979, Microsoft prend une licence Unix et développe le système d'exploitation XENIX,
disponible jusqu'en 1984. Au moment où le PC fit son apparition, Unix était déjà un système
mûr. En 1981, lorsque IBM lança le PC, il choisit le système d'exploitation MS-DOS de
Microsoft. MS-DOS, inspiré d'Unix, comportait dès le départ des contraintes liées à son
architecture : insuffisance de la mémoire adressable, pas de gestion multi-tâches ou multi-
utilisateurs, pas de protection de la mémoire.

Des particuliers eux aussi se sont attelés aux développements d'une version d'Unix : Andrew
Tanenbaum, professeur à l'Université d'Amsterdam, développa avec ses élèves une version
d'Unix pour PC, appelée Minix, qui vit le jour en 1987. Partant de Minix, Linus Torvalds
développa Linux, un Unix pour PC dont la première version, appelée version 0.99, sortit en
1991. Aujourd'hui, Linux est devenu un système d'exploitation stable pour PC. Ce système
constitue un logiciel libre, dont chaque utilisateur a le droit de modifier le code source

Architecture d’un système informatique

Tous les systèmes informatiques sont segmentés en « couches » pour permettre un meilleur
contrôle de l'ensemble de l'ordinateur. La Figure 1 illustre les différentes couches d’un tel
système.

Figure 1 : Architecture d'un système informatique


Système exploitation

Le système d'exploitation est un intermédiaire entre les logiciels d'application et le matériel.

4. Classes de systèmes d’exploitation


1.4 Mono - tâche (D O S) :
A tout instant, un seul programme est exécuté ; un autre programme ne démarrera, sauf
conditions exceptionnelles, que lorsque le premier sera terminé. 
2.4 Multi - tâches (Windows,Unix,Linux,VMS) :
Plusieurs processus (i. e. un «programme» en cours d’exécution) peuvent s’exécuter
simultanément (systèmes multi- processeurs) ou en quasi- parallélisme (systèmes à temps
partagé) 

3.4temp-partagé :

Il s’agit d’une amélioration de la multiprogrammation orientée vers le transactionnel. Un tel


système organise ses tables d’utilisateurs sous forme de files d’attente. L’objectif majeur est
de connecter des utilisateurs directement sur la machine et donc d’optimiser les temps
d’attente de l’OS (un humain étant des millions de fois plus lent que la machine sur ses temps
de réponse).

La 4ème génération d’ordinateur a vu naître les réseaux d’ordinateurs connectés entre eux et
donc de nouvelles fonctionnalités, comme l’interfaçage réseau, qui ont enrichi les OS déjà
existants. De nouveaux OS entièrement orientés réseaux sont construits de nos jours.

Les types de systèmes d'exploitation:


Système exploitation
On distingue plusieurs types de systèmes d'exploitation, selon qu'ils sont capables de gérer
simultanément des informations d'une longueur de 16 bits, 32 bits, 64 bits ou plus.

Mono-
Système Codage Multi-utilisateur Mono-tâche Multitâche
utilisateur

DOS 16 bits X X

Windows3.1/win95/98(1) 16/32 bits X non préemptif

Windows95/98/Me 32 bits X coopératif

Windows NT/2000 32 bits X préemptif

Windows XP / 7 32/64 bits X préemptif

Windows 8/ 10 // 64 bits X préemptif

Unix / Linux 32/64 bits X préemptif

MAC/OS X 32 bits X préemptif

VMS 32 bits X préemptif

5.Processus et multi-threading dans un OS

Contexte d'exécution d'un programme


Lorsqu'un programme qui a été traduit en instructions machines s'exécute, le processeur
central lui fournit toutes ses ressources (registres internes, place en mémoire centrale, données,
code,…), nous nommerons cet ensemble de ressources mises à disposition d'un programme
son contexte d'exécution.

5.1.Programme et processus

Nous appelons en première analyse, processus l'image en mémoire centrale d'un programme
s'exécutant avec son contexte d'exécution. Le processus est donc une abstraction synthétique
d'un programme en cours d'exécution et d'une partie de l'état du processeur et de la mémoire.

Lorsque l'on fait exécuter plusieurs programmes "en même temps", nous savons qu'en fait la
simultanéité n'est pas réelle. Le processeur passe cycliquement une partie de son temps
(quelques millisecondes) à exécuter séquentiellement une tranche d'instructions de chacun des
programmes selon une logique qui lui est propre, donnant ainsi l'illusion que tous les
programmes sont traités en même temps parce que la durée de l'exécution d'une tranche
d'instruction est plus rapide que notre attention consciente.
Système exploitation

5.2Le SE (système d'exploitation) gère 4 processus

Les processus agissent grâce au système

Processus

Nous donnons la définition précise de processus proposée par A.Tannenbaum, spécialiste des
systèmes d'exploitation : c'est un programme qui s'exécute et qui possède son propre espace
mémoire, ses registres, ses piles, ses variables et son propre processeur virtuel (simulé en
multi-programmation par la commutation entre processus effectuée par le processeur unique).

Un processus a donc une vie propre et une existence éphémère, contrairement au programme
qui lui est physiquement présent sur le disque dur. Durant sa vie, un processus peut agir de
différentes manières possibles, il peut se trouver dans différents états, enfin il peut travailler
avec d'autres processus présent en même temps que lui.

On distingue trois actions particulières appelées états du processus

 Etat actif : le processus contrôle le processeur central et s'exécute).


 Etat passif : le processus est temporairement suspendu et mis en attente, le processeur
central travaille alors avec un autre processus.
 Etat bloqué : le processus est suspendu toutefois le processeur central ne peut pas le
réactiver tant que l'information attendue par le processus ne lui est pas parvenue.

Que peut faire un processus ?

 Il peut créer d'autre processus


 Il travaille et communique avec d'autres processus (notion de synchronisation et de
messages entre processus)
 Il peut posséder une ressource à titre exclusif ou bien la partager avec d'autre processus.
Système exploitation
C'est le rôle de l'OS que d'assurer la gestion complète de la création, de la destruction, des
transitions d'états d'un processus. C'est toujours à l'OS d'allouer un espace mémoire utile au
travail de chaque processus. C'est encore l'OS qui assure la synchronisation et la messagerie
inter-processus.

6. Le multithreading

Nous pouvons voir le multithreading comme un changement de facteur d'échelle dans le


fonctionnement de la multi-programmation.

En fait, chaque processus peut lui-même fonctionner comme le système d'exploitation en


lançant des sous-tâches internes au processus et par là même reproduire le fonctionnement de
la multi-programmation. Ces sous-tâches sont nommées "flux d'exécution" "processus
légers"ou Threads.

Qu'est exactement un thread

o Un processus travaille et gère, pendant le quantum de temps qui lui est alloué, des
ressources et exécute des actions sur et avec ces ressources. Un thread constitue la partie
exécution d'un processus alliée à un minimum de variables qui sont propres au thread.

o Un processus peut comporter plusieurs threads.

o Les threads situés dans un même processus partagent les mêmes variables générales de
données et les autres ressources allouées au processus englobant.

o Un thread possède en propre un contexte d'exécution (registres du processeur, code,


données)

Cette répartition du travail entre thread et processus, permet de charger le processus de la


gestion des ressources (fichiers, périphériques, variables globales, mémoire,…) et de dédier
le thread à l'exécution du code proprement dit sur le processeur central (à travers ses
registres, sa pile lifo etc…).
Système exploitation

Le processus applique au niveau local une multi-programmation interne qui est nommée le
multithreading. La différence fondamentale entre la multi-programmation et nommée le
multithreading se situe dans l'indépendance qui existe entre les processus,alors que les threads
sont liés à minima par le fait qu'ils partagent les même données globales (celles du processus
qui les contient).

Relations entre thread et processus

Ci-dessous nous supposons que le processus D assigné à l'application D, exécute en même


temps les 3 Threads D1, D2 et D3 :

Soit par exemple 4 processus qui s'exécutent "en même temps" dont le processus D
précédent possédant 3 threads :

La commutation entre les threads d'un processus fonctionne identiquement à la commutation


entre les processus.
Système exploitation

Chaque thread se voit alloué cycliquement, lorsque le processus D est exécuté une petite
tranche de temps dans le quantum de temps alloué au processus. Le partage et la répartition du
temps sont effectués uniquement par le système d'exploitation.

Dans l'exemple ci-dessous, nous figurons les processus A, B, C et le processus D avec ses
threads dans un graphique représentant un quantum de temps d'exécution alloué par le système
et supposé être la même pour chaque processus.

Le système ayant alloué le même temps d'exécution à chaque processus, lorsque par
exemple le tour vient au processus D de s'exécuter dans son quantum de temps, il exécutera
pendant une petite sous-tranche de temps D1, puis D2, enfin D3 et attendra le prochain cycle.

Voici sous les mêmes hypothèses de quantum de temps égal d'exécution alloué à chaque
processus A, B, C et D, le comportement de l'exécution sur 2 cycles consécutifs :
Système exploitation

La majorité des systèmes d'exploitation (Windows, Unix, MacOs,...) supportent le


Multithreading.

Différences et similitudes entre threads et processus :

 La communication entre les threads est plus rapide que la communication entre les
processus.
 Les Threads possèdent les mêmes états que les processus.
 Deux processus peuvent travailler sur une même donnée (un tableau par exemple) en
lecture et en écriture, dans une situation de concurrence dans laquelle le résultat final
de l'exécution dépend de l'ordre dans lequel les lectures et écritures ont lieu, il en est de
même pour les threads.

Vous aimerez peut-être aussi