Vous êtes sur la page 1sur 11

Q: Qu'est ce qu'un système d'exploitation ?

Un système informatique comprend un ou plusieurs microprocesseurs, la mémoire principale, des disques


durs, des imprimantes, des interfaces et unités graphiques, des interfaces réseaux et bien d'autres
périphériques d'Entrées/Sorties. Concevoir des programmes qui prennent en considération toutes cette
panoplie de matériels est une tâche vraiment difficile, c'est pourquoi il existe une interface logicielle qui
s'appelle le système d'exploitation Un système d’exploitation est un logiciel qui gère le matériel d’un
ordinateur (Hardware). Il fournit également une base pour les programmes d'application et agit en tant
qu'intermédiaire entre l'utilisateur de l'ordinateur et le matériel informatique.

Q: On dit que le système d'exploitation est le noyau d'un ordinateur pourquoi?

La plupart des ordinateurs ont deux modes opératoires: Le mode noyau et le mode utilisateur. Le système
d'exploitation est le composant logiciel fondamental d'un ordinateur c'est le mode noyau. Il a accès
complet et total à toutes les ressources matérielles et peut exécuter n'importe quelle instruction machine.
Tous les autres logiciels fonctionnent en mode utilisateur et utilisent le système d'exploitation comme
interface pour toutes les opérations d'Entrées/Sorties.

User 1 User 2 User n

Navigateur Web Lecteur Vidéo Compilateur C

Interface programme utilisateur

Système d'exploitation

Matériel (Hardware)

Q: Que font les systèmes d'exploitation ?

Un système informatique peut être divisé en quatre composants: le matériel, le système d'exploitation, les
programmes d'application, et les utilisateurs . Le matériel: l'unité centrale de traitement (CPU), la
mémoire et les périphériques d'entrée / sortie (E / S) sont les ressources informatiques de base système.
Les programmes d'application, tels que les traitements de texte, les feuilles de calcul, les compilateurs (C,
python,…) et les navigateurs Web définissent la manière dont ces ressources sont utilisées pour résoudre
les problèmes informatiques des utilisateurs. Le système d'exploitation contrôle le matériel et coordonne
son utilisation entre les différents programmes d'application pour les différents utilisateurs. Nous pouvons
également considérer un système informatique comme composé de matériel, de logiciels, et les données.
Le système d'exploitation fournit les moyens pour une utilisation correcte de ces ressources dans le
fonctionnement du système informatique.

Q: Type de Système d'exploitation ?

La vue de l’utilisateur sur l’ordinateur varie en fonction de l’interface utilisé.

 Système d'exploitation des PC: La plupart des utilisateurs d'ordinateurs sont assis devant un PC,
composé d'un moniteur, clavier, souris et une unité centrale, un tel système est conçu pour qu'un
utilisateur monopolise ses ressources. Dans ce cas, le système d'exploitation est conçu
principalement pour la facilité d'utilisation, avec une certaine attention portée aux performances ;
mais de tels systèmes sont optimisés pour l'expérience mono-utilisateur plutôt que pour les
exigences de plusieurs utilisateurs (Windows 7,10, Mac Os, Linux).
 Système d'exploitation des mainframes: un utilisateur est assis sur un terminal connecté à un
mainframe ou à un mini-ordinateur. D'autres utilisateurs accèdent au même ordinateur via
d'autres terminaux. Ces utilisateurs partagent des ressources et peuvent échanger des
informations. Dans ce cas, le système d'exploitation est conçu pour maximiser l'utilisation des
ressources et permet de garantir que le temps CPU, la mémoire et les E / S disponibles sont
utilisés efficacement et qu'aucun utilisateur individuel ne prend plus que sa juste part (Unix et ses
variantes).
 Système d'exploitation des serveurs: les utilisateurs sont assis à des postes de travail connectés à
des réseaux avec d'autres postes de travail et serveurs. Ces utilisateurs disposent de ressources
dédiées à leur propre utilisation , mais ils partagent également des ressources telles que la mise en
réseau et les serveurs, y compris les serveurs de fichiers, de calcul et d'impression. Par
conséquent, leur système d'exploitation est conçu pour faire un compromis entre l'utilisation
individuelle et l'utilisation des ressources partagées (Linux, FreeBSD, Windows Server 200x).
 Système d'exploitation des multiprocesseurs: Le recours à plusieurs multiprocesseurs sur une
même plateforme pour augmenter la puissance des calculs et augmenter la performance des
ordinateurs est une technique très courante. Ces systèmes sont des variantes des systèmes
serveurs améliorés au niveau de connectivité et de communications. L'arrivée des circuits
multicœurs au sein des PC et PDA influe sur ces systèmes qui investissent de plus en plus dans le
concept des multiprocesseurs, c'est le cas de Linux et Windows
 Système d'exploitation des assistants personnels: les smartphones et tablettes ( PDA) sont à la
mode. La plupart des mobiles sont des unités autonomes connectés à des réseaux via des
technologies sans fil. L'interface utilisateur dispose généralement d'un écran tactile, où
l'utilisateur interagit avec le système en appuyant et en faisant glisser ses doigts sur l'écran plutôt
qu'en utilisant un clavier et souris physiques (Android, IOS...).
 Système d'exploitation embarqué: ces systèmes ont peu ou pas de vue utilisateur. Par exemple les
appareils domestiques et automobiles peuvent avoir des claviers numériques et peuvent allumer
ou éteindre les voyants pour afficher l'état de fonctionnement, mais ils sont conçus
principalement pour fonctionner sans intervention de l'utilisateur(QNX, VxWorks).
 Système d'exploitation des objets communicants: des nœuds de communications (capteurs,..)
communiquent entre eux et avec une station centrale par radio. Ces réseaux sont utilisés pour la
surveillance, protection ou d'alerte aux incendies. Ils disposent d'un processeur , de mémoire
RAM et ROM et d'un système d'exploitation temps réel leur permettant d'agir à des événements
qu'ils peuvent détecter ou mesurer. Tout comme le système embarqué leur programme
d'application est chargé en ROM au moment de la fabrication( TinyOs,…)
 Système d'exploitation temps réel: ces systèmes se caractérisent par le respect du temps. Un robot
soudeur doit exécuter sa tâche en respectant le temps (ni trop tôt ni trop tard) dans une chaine de
construction d'automobiles. Ces systèmes sont conçus avec des bibliothèques associés aux
programmes d'application, avec des couplages entre les différents éléments de la chaîne de
production( e-Cos,..).
 Système d'exploitation pour Smart Card: ce sont des petits système qui se trouvent sur des cartes
à puces contenant un processeur qui prennent en charge la lecture de ces cartes, l'ordonnancement
des tâches,..

Q: Quelle est le début d'exécution d'un SE ?

Un système informatique moderne à usage général se compose d'un ou plusieurs processeurs et un certain
nombre de contrôleurs de périphériques connectés via un bus commun qui donne accès à la mémoire
partagée. Chaque contrôleur prend en charge un type spécifique de périphérique (par exemple, lecteurs
de disque, périphériques audio, ou écrans ). Le CPU et les contrôleurs d'appareils peuvent s'exécuter en
parallèle, en compétition pour les cycles de mémoire. Pour garantir un accès ordonné à la mémoire
partagée, un contrôleur de mémoire synchronise son accès.

Pour qu'un ordinateur démarre, il doit avoir un programme initial pour s'exécuter. Ce programme initial,
ou programme d'amorçage (BIOS), a tendance à être simple. En règle générale, il est stocké dans le
matériel informatique en mémoire morte (ROM) ou effaçable électriquement mémoire morte
programmable (EEPROM), connue sous le terme général firmware. Le programme d'amorçage doit
déterminer le périphérique d'amorçage en consultant une liste stockée dans la mémoire CMOS . Le
premier secteur du périphérique de boot est lu , il contient une table des partitions pour connaitre la
partition active ou bien l'exécuter suivant un menu. Le programme d'amorçage localise le noyau du
système d'exploitation et le charge en mémoire. Une fois que le noyau est chargé et exécuté, il peut
commencer à fournir des services au système et ses utilisateurs.

Q: Le système d'exploitation est un programme écrit avec quelle langage ?

Le code source de Linux ou Windows est de l'ordre de 5 millions de ligne de codes (à peu prés 100 livres
avec 1000 pages!!!) Linux est écrit en langage C

Q: quels sont les concepts de base de système d'exploitation ?

Tous les systèmes d'exploitation partagent certains concepts comme le processus, la mémoire, les fichiers,
la sécurité, les entrée/sorties (la gestion des périphériques) et la gestion des disques.

 Le processus: est un concept clé de tout système d'exploitation. C'est un programme en cours
d'exécution. le système d'exploitation décide quel processus obtient les services de processeur,
quand et pour combien de temps. Cette fonction s'appelle l'ordonnancement des processus.
Chaque processus se voit affecter par un espace d'adressage et un ensemble d'adresses mémoire
allant de 0 à une limite donnée dans lesquelles le processus peut lire et écrire. L'espace
d'adressage contient le programme exécutable, ses données et sa pile. Les processus possèdent
aussi un ensemble de registres ( compteur ordinal, pointeur de pile et d'autres registres). Pour
créer un nouveau processus
o Sous UNIX : Appel système : fork() qui crée un clône du processus appelant. Les
processus père et fils ont alors la même image mémoire et les mêmes fichiers ouverts. Le
processus enfant exécute alors execve() par exemple pour modifier son image mémoire et
exécuter un nouveau programme. Le processus est arrêté par la fonction kill()
o Sous Windows : Appel à la fonction Win32 CreateProcess() qui pris en charge la
création du processus et du chargement du programme approprié. Cette fonction contient
plusieurs paramètres : programme à exécuter, paramètres du programme, attributs de
sécurité et bits de contrôle (héritage, priorité, fenêtre), etc

Etat de processus
Numéro de processus

Compteur Programme

Registres
Limite Mémoire
Liste fichiers

Un processus peut prendre un de ces 3 états : En cours d’exécution (le programme utilise le
processeur) Prêt (exécutable, temporairement arrêté pour laisser un autre processus) Bloqué (ne peut
pas s’exécuter tant qu’un événement externe ne se produit pas) Le passage de En cours à Prêt et
inversement est géré par l’ordonnanceur de processus

 Espace d'adressage: Tout ordinateur a une mémoire principale qui contient les programmes en
cours d'exécution. Les adresses sont sur 32 ou 64 bits ce qui donne un espace d'adressage de 232
ou 264 mots. Tout processus utilise une plage d'adresses entre 0 et une borne donnée. Que se passe
t-il si un processus utilise la totalité de l'espace mémoire ? Dans ce cas le SE utilise un espace
d'adressage en RAM et une partie sur le disque.
 Gestion des périphéries: Le SE gère la communication des périphéries via leurs pilotes
respectifs. Il effectue les activités suivantes pour la gestion des appareils :
o Garde une trace de tous les appareils. Le programme responsable de cette tâche est connu
sous le nom de Contrôleur d'E/S.
o Décide quel processus gère la périphérie, quand et pour combien de temps.
o Il alloue l'appareil de la manière la plus efficace.
o Dé-alloue la périphérie (Exemple:vous pouvez retirer Votre Clé USB)
 Gestion des fichiers: Ce système est normalement organisé en répertoires pour faciliter la
navigation et l'utilisation. Ces répertoires peuvent contenir des fichiers ou d'autres répertoires.
Cette gestion suit un mécanisme d’abstraction (utilisateur ne voie pas où et comment sont
stockées les informations). La subdivision des fichiers se fait par types en fonction de leur nature.
Dans le cas Windows c'est un typage fort : le type de fichier est défini par son extension. Dans le
cas de Linux c'est un typage déduit : les extensions des fichiers ne sont qu’indicatives, le système
détermine la nature du fichier par inspection du contenu.
 Gestion de la mémoire: La gestion de la mémoire se réfère à la gestion de la mémoire principale.
La mémoire principale est un grand tableau de mots ou d'octets où chaque mot ou octet a sa propre
adresse. La mémoire principale offre un stockage rapide accessible directement par l'unité
centrale. Pour qu'un programme puisse être exécuté, il doit se trouver dans la mémoire principale.
Un système d'exploitation effectue les activités suivantes pour la gestion de la mémoire :

Garde des traces de la mémoire principale, c'est-à-dire quelle partie de celle-ci est utilisée par
qui, quelle partie n'est pas utilisée.
• En multiprogrammation, le système d'exploitation décide quel processus obtiendra de la
mémoire, quand et combien.
• Attribue la mémoire lorsqu'un processus le demande.
• gérer le va-et-vient (swapping) entre mémoire principale et disque
• libère la mémoire lorsqu'un processus n'en a plus besoin ou a été interrompu.
Autres activités importantes
Voici quelques-unes des activités importantes que réalise un système d'exploitation :

• Sécurité -- Au moyen d'un mot de passe et d'autres techniques similaires, elle empêche l'accès
non autorisé aux programmes et aux données.
• Contrôle des performances du système -- Enregistrement des délais entre la demande d'un
service et la réponse du système.
• Comptabilité des Jobs -- Suivi du temps et des ressources utilisés par les différents Jobs et
utilisateurs.
• Aides à la détection d'erreurs --, de traces, de messages d'erreur et d'autres aides au
débogage et à la détection d'erreurs.
• Coordination entre les autres logiciels et les utilisateurs -- Coordination et affectation des
compilateurs, interprètes, assembleurs et autres logiciels aux différents utilisateurs des
systèmes informatiques.

Q: Monoprogrammation et Multiprogrammation ?

Monoprogrammation: Un seul processus en mémoire à la fois. La partie de l’espace d’adressage est


réservée au système d’exploitation (ROM + SE chargé au démarrage). A la fin du programme, il y'a
retour à l’interpréteur de commande qui demande le prochain programme à lancer. (Exemple: MS DOS)
Multiprogrammation: Plusieurs processus en mémoire. Ceci facilite développement de programmes en les
fractionnant en processus indépendants. Elle permet une maximisation de l’utilisation des ressources
processeur.

Q : Dans le cas de la multiprogrammation, comment on va organiser la mémoire de façon la plus


efficace possible?

Une solution avec la Multiprogrammation avec partitions fixes. Elle permet la division de la mémoire en
partitions (si possible inégales).Quand une tâche arrive, elle est placée dans une file d’attente. Il existe
une file d’attente par partition de mémoire et une seule file d’attente pour toute les partitions.
Quand la mémoire est insuffisante pour contenir tous les processus courant. Il y'a nécessité de placer
certains de ces processus sur le disque (mémoire virtuelle). Il faudra donc ramener régulièrement des
processus sur le disque en mémoire centrale et inversement. C’est ce qu’on appelle le va-et-vient ou
swapping.
Pagination: a l’intérieur des processeurs actuels, il y a une unité de gestion de la mémoire (MMU) qui fait
correspondre des adresses virtuels à des adresses physiques. Un programme travaille sur un espace
d’adressage virtuel. Cet espace est divisé en unités appelées pages (512 à 4096 octets) et les unités
correspondantes en mémoire physique sont appelées cadres de pages (page frames). La MMU dispose
d’une table d’indirection des pages pour convertir les adresses virtuelles en adresses physiques. Les pages
virtuelles qui ne sont pas mappées en mémoire centrale sont identifiées grâce à un bit de
présence/absence. Les transferts RAM/disque se font par pages entières.

Q: Que veut dire interruption ?

Pour permettre au processeur de réaliser d’autres opérations pendant qu’il attend la réalisation d’une E/S,
on fait appel aux interruptions. C'est un événement qui modifie le flux de commande d’un programme . Il
existe des:
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.
interruptions logicielle : Activée par l’exécution d’un appel système (system call ou monitor call)

Q: Comment se fait le traitement des interruptions ?

Le programme en cours est arrêté. Le système d’exploitation préserve l’état de la CPU (sauvegarde des
registres et du compteur ordinal). Le SE détermine le type d’interruption. Pour chaque type d’interruption
une partie de code du SE détermine l’action qui doit être prise. 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.

Q: Que veut dire DMA ?

Accès direct à la mémoire, C'est disponible uniquement s’il y a un contrôleur DMA. Le contrôleur DMA
a accès au bus système sans dépendre du processeur -> E/S programmée qui fait le travaille du
processeur. Il réduit le nombre d’interruptions.

Q: Comment se fait l'exécution d'un programme ?

Les systèmes d'exploitation gèrent de nombreux types d'activités, des programmes utilisateur aux
programmes système. Chacune de ces activités est encapsulée dans un processus. Un processus
comprend le contexte d'exécution complet (code à exécuter, données à manipuler, registres, ressources
…). Voici les principales activités d'un système d'exploitation en ce qui concerne la gestion des
programmes :
• Charge un programme en mémoire
• Exécute le programme
• Gère l'exécution du programme
• Fournit un mécanisme de synchronisation des processus
• Fournit un mécanisme pour la communication des processus
• Fournit un mécanisme pour le traitement des erreurs.
Q: Que veut dire P2P?

Une autre structure pour un système distribué est le modèle de système peer-to-peer (P2P). Dans ce
modèle, les clients et les serveurs ne sont pas distingués les uns des autres. Au lieu de cela, tous les nœuds
du système sont considérés comme des pairs, et chacun peut agir en tant que client ou serveur, selon qu'il
demande ou fournit un service. Les systèmes point à point offrent un avantage par rapport aux systèmes
client-serveur traditionnels. Dans un système client-serveur, le serveur est un nœud de service; mais dans
un système peer-to-peer, les services peuvent être fournis par plusieurs nœuds répartis dans tout le réseau.
Pour participer à un système peer-to-peer, un nœud doit d'abord rejoindre le réseau de pairs. Une fois
qu'un nœud a rejoint le réseau, il peut commencer à fournir des services à d'autres nœuds du réseau et à en
demander des services.
Les réseaux peer-to-peer ont gagné en popularité à la fin des années 1990 avec plusieurs services de
partage de fichiers, tels que Napster et Gnutella, qui ont permis aux pairs d'échanger des fichiers entre
eux. Le système Napster utilisait une approche: un serveur centralisé maintenait un index de tous les
fichiers stockés sur des nœuds homologues dans le réseau Napster, et l'échange réel de fichiers avait lieu
entre les nœuds homologues. Le système Gnutella utilisait une technique: un client diffusait des
demandes de fichiers vers d'autres nœuds du système, et les nœuds qui pouvaient répondre à la demande
répondaient directement au client. L'avenir de l'échange de fichiers reste incertain car les réseaux peer-to-
peer peuvent être utilisés pour échanger des documents protégés par le droit d'auteur (musique, par
exemple) de manière anonyme, et il existe des lois régissant la distribution de matériel protégé par le droit
d'auteur. Notamment, Napster a rencontré des problèmes juridiques pour violation du droit d'auteur et ses
services ont été fermés en 2001. Skype est un autre exemple d'informatique peer-to-peer. Il permet aux
clients de passer des appels vocaux et des appels vidéo et d'envoyer des messages texte sur Internet à
l'aide d'une technologie appelée voix sur IP (VoIP). Skype utilise une approche hybride peer-to-peer. Il
comprend un serveur de connexion centralisé, mais il intègre également des pairs décentralisés et permet
à deux pairs de communiquer.

Q: Expliquer le concept de virtualisation ?

La virtualisation est une technologie qui permet aux systèmes d'exploitation de s'exécuter en tant
qu'applications dans d'autres systèmes d'exploitation. D'une manière générale, la virtualisation fait partie
d'une classe de logiciels qui inclut également l'émulation. L'émulation est utilisée lorsque le type de CPU
source est différent du type de CPU cible. Par exemple, lorsque Apple est passé du processeur IBM
Power au processeur Intel x86 pour ses ordinateurs de bureau et portables, il a inclus une fonction
d'émulation appelée «Rosetta», qui permettait aux applications compilées pour le processeur IBM de
s'exécuter sur le processeur Intel. Ce même concept peut être étendu pour permettre à un système
d'exploitation entier écrit pour une plate-forme de s'exécuter sur une autre. Un exemple courant
d'émulation se produit lorsqu'un langage informatique n'est pas compilé en code natif mais est plutôt
exécuté dans sa forme de haut niveau ou traduit en une forme intermédiaire. C'est ce qu'on appelle
l'interprétation. Java, en revanche, n'est compilé comme C mais est toujours interprété. L'interprétation est
une forme d'émulation en ce que le code de langage de haut niveau est traduit en instructions CPU
natives, émulant non pas un autre CPU mais une machine virtuelle théorique sur laquelle ce langage
pourrait fonctionner en natif. Ainsi, nous pouvons exécuter des programmes Java sur des «machines
virtuelles Java», mais techniquement ces machines virtuelles sont des émulateurs Java. La virtualisation
est apparue pour la première fois sur les mainframes IBM en tant que méthode permettant à plusieurs
utilisateurs d'exécuter des tâches simultanément.
VMware a créé une nouvelle technologie de virtualisation sous la forme d'une application fonctionnant
sous XP. Cette application exécutait une ou plusieurs copies invitées de Windows ou d'autres systèmes
d'exploitation x86 natifs, chacun exécutant ses propres applications. Windows était le système
d'exploitation hôte et l'application VMware était le gestionnaire de machine virtuelle VMM. Le VMM
exécute les systèmes d'exploitation invités, gère leur utilisation des ressources et protège chaque invité
des autres. Même si les systèmes d'exploitation modernes sont entièrement capables d'exécuter plusieurs
applications de manière fiable, l'utilisation de la virtualisation continue de croître. Sur les ordinateurs
portables et les ordinateurs de bureau, un VMM permet à l'utilisateur d'installer plusieurs systèmes
d'exploitation pour l'exploration ou d'exécuter des applications écrites pour des systèmes d'exploitation
autres que l'hôte natif. Par exemple, un ordinateur portable Apple exécutant Mac OS X sur le processeur
x86 peut exécuter un invité Windows pour permettre l'exécution d'applications Windows. Les entreprises
qui écrivent des logiciels pour plusieurs systèmes d'exploitation peuvent utiliser la virtualisation pour
exécuter tous ces systèmes d'exploitation sur un seul serveur physique à des fins de développement, de
test et de débogage. Dans les centres de données, la virtualisation est devenue une méthode courante
d'exécution et de gestion des environnements informatiques. Les VMM comme VMware, ESX et Citrix
XenServer ne fonctionnent plus sur les systèmes d'exploitation hôtes, mais sont plutôt les hôtes.

Q: Cloud Computing ?

Cloud computing est un type d'informatique qui fournit, du stockage et même des applications en tant que
service sur un réseau. À certains égards, il s'agit d'une extension logique de la virtualisation, car elle
utilise la virtualisation comme base de ses fonctionnalités. Par exemple, l'installation Amazon Elastic
Compute Cloud (EC2) dispose de milliers de serveurs, de millions de machines virtuelles et de pétaoctets
de stockage disponibles pour toute personne sur Internet. Les utilisateurs paient par mois en fonction de la
quantité de ces ressources qu'ils utilisent. Il existe en fait de nombreux types de cloud computing, dont les
suivants:
• Cloud public: un cloud disponible via Internet à toute personne disposée à payer pour les services
• Cloud privé: un cloud géré par une entreprise pour son propre usage
• Cloud hybride: un cloud qui comprend à la fois des composants de cloud public et privé
• Logiciel en tant que service (SaaS): une ou plusieurs applications (telles que des traitements de texte ou
des feuilles de calcul) disponibles via Internet
• Plateforme en tant que service (PaaS): une pile logicielle prête à être utilisée via Internet (par exemple,
un serveur de base de données)
• Infrastructure en tant que service (IaaS): serveurs ou stockage disponibles sur Internet (par exemple,
stockage disponible pour effectuer des copies de sauvegarde des données).
Un environnement de cloud computing peut aussi fournir une combinaison de plusieurs types. Par
exemple, une organisation peut fournir à la fois SaaS et IaaS en tant que service accessible au public.
Certes, il existe des systèmes d'exploitation traditionnels dans de nombreux types d'infrastructure cloud.
Au-delà de ceux-ci, il y a les VMM qui gèrent les machines virtuelles dans lesquelles les processus
utilisateur s'exécutent. À un niveau supérieur, les VMM eux-mêmes sont gérés par des outils de gestion
du cloud, tels que Vware vCloud Director et l'ensemble d'outils open source Eucalyptus. Ces outils gèrent
les ressources dans un cloud donné et fournissent des interfaces aux composants du cloud, ce qui
constitue un bon argument pour les considérer comme un nouveau type de système d'exploitation. La
figure suivante illustre un cloud public fournissant IaaS. Notez que les services cloud et l'interface
utilisateur cloud sont protégés par un pare-feu.
Q: Les appels système ?

Le SE a deux grandes fonctions: offrir des abstractions aux programmes utilisateurs et gérer les
ressources de l'ordinateur. La première constitue l'activité majeure de SE, comme la création, l'écriture, la
lecture et la suppression de fichiers. Elle est définie par l'ensemble des appels système fournis par le SE.
Quant à la gestion des ressources, transparente à l'utilisateur, elle est automatique. Les appels sont
découpés en étapes. L'appel de la fonction read() (comme exemple) permet au programme appelant
d'empiler les paramètres sur la pile , comme le montre les étapes 1,3 de la figure suivante

Voici quelques appels système en Windows et Linux:


Q: Quelle est la structure d'un système d'exploitation?
Nous présentons six structures pour donner une idée sur l'implémentation interne d'un SE
 Les systèmes monolithiques: Ce système consiste en une absence de structure. Le SE est écrit
comme un ensemble de procédures, dont chacune peut appeler n'importe quelle autre en cas de
besoin, sous réserve d'en respecter l'interface publié. Toute procédure est visible , au contraire des
structures organisées en modules ou paquetages. Cela va à l'encontre de la tendance de construire
des modules indépendants, dans lesquels la plupart des informations sont privées (locales), seuls les
éléments strictement définis dans l'interface et les points d'entrée étant accessibles. On peut
considérer que le système MS-DOS et l'ensemble des fonctions qu'il propose, accessibles par
l'interruption 21H appartient à cette classe de systèmes d'exploitation.
 Les systèmes en couche: l'organisation en une hiérarchie de couches qui est une généralisation de
système précédent. Cette une idée de Dijkstra et ses étudiant (1968). Le système est composé en 6
couches
C'est un développement ultérieur de cette organisation en couches qui a donné naissance à la
structure du système MULTICS, ancêtre d'Unix, présentée généralement en anneaux concentriques
 Systèmes micronoyaux: l'idée sous jacente est d'obtenir un haut degré de fiabilité en divisant le
SE en modules, un fonctionne en mode noyau les autres en mode utilisateur. Ceci implique s'il
y'a un bogue dans un pilote de périphérie (mode utilisateur) ne va pas entrainer le plantage de
système (noyau). Les systèmes les plus connus sont Symbian, Minix3 (www.minix3.org dont
on trouve le code source)
 Modèle client-serveur: Ce modèle traduit l'évolution vers des systèmes d'exploitation plus
modernes. L'idée est en opposition complète avec la tendance précédente qui consistait à
intégrer de plus en plus d'outils au système d'exploitation. Au contraire, il s'agit de réaliser des
noyaux de plus en plus dépouillés. Pour requérir un service, le processus client envoie une
requête au processus serveur qui accomplit sa mission et renvoie la réponse. Dans ce modèle,
illustré ci-dessous, la seule fonction du noyau est la mise en communication du client avec le
serveur. Le fractionnement du système d'exploitation en parties dont chacune présente une
facette du système d'exploitation (gestion des fichiers, des processus, des terminaux, de la
mémoire, etc.) permet à chacune de ces parties d'être de taille beaucoup plus réduite et par-là
même beaucoup plus facile à maintenir. Les serveurs fonctionnent en mode utilisateur, et non en
mode superviseur, et n'ont donc pas accès directement au hardware. Il s'ensuit qu'un problème
dans un des serveurs n'entraîne pas l'effondrement complet du système.

Références:
 Andrew Tanenbaum, Système d'exploitation, Nouveaux Horizons, 2016
 ABRAHAM SILBERSCHATZ, PETER BAER GALVIN, GREG GAGNE, Operating System
Concepts, Wiley, 2013

Vous aimerez peut-être aussi