0% ont trouvé ce document utile (0 vote)
35 vues23 pages

Architecture des Systèmes d'Exploitation

Le document présente une introduction aux systèmes d'exploitation, expliquant leur architecture, leur importance et leurs composants clés. Il aborde également l'évolution des systèmes d'exploitation à travers différentes phases, des systèmes de traitement en série aux systèmes à temps partagé, ainsi que les structures de conception comme les noyaux monolithiques et modulaires. Enfin, il souligne les services fournis par les systèmes d'exploitation et leur rôle essentiel dans la gestion des ressources matérielles et logicielles.

Transféré par

Adji mbaw NDIAYE
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 PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
35 vues23 pages

Architecture des Systèmes d'Exploitation

Le document présente une introduction aux systèmes d'exploitation, expliquant leur architecture, leur importance et leurs composants clés. Il aborde également l'évolution des systèmes d'exploitation à travers différentes phases, des systèmes de traitement en série aux systèmes à temps partagé, ainsi que les structures de conception comme les noyaux monolithiques et modulaires. Enfin, il souligne les services fournis par les systèmes d'exploitation et leur rôle essentiel dans la gestion des ressources matérielles et logicielles.

Transféré par

Adji mbaw NDIAYE
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 PDF, TXT ou lisez en ligne sur Scribd

UCAD / FST / L2 INFO

Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 1

1. Architecture et théorie des systèmes


d’exploitation

2024-2025
Université Cheikh Anta Diop de Dakar (UCAD)
Faculté des Sciences et Techniques (FST) / Département Mathématiques-Informatique
Licence 2 Informatique
Dr Ousmane SADIO
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 2
❑ Pourquoi étudier les systèmes d’exploitation?
Seul un faible pourcentage de praticiens en informatique sont impliqués dans la création ou la modification d'un
système d'exploitation.

Pourquoi, alors, étudier les systèmes d’exploitation et leur fonctionnement?

❶ Tout simplement, parce que presque tout les codes s’exécutent sur un système d’exploitation, la
connaissance de son fonctionnement est cruciale pour une programmation appropriée, efficace,
efficiente et sécurisée.

❷ Comprendre les bases des systèmes d'exploitation, la manière dont ils pilotent le matériel informatique et
ce qu'ils fournissent aux applications est aussi cruciale pour :
− la maitrise des technologies de virtualisation et de conteneurisation.
− comprendre la sécurité : isolation, capabilités, DoS.
− appréhender les nouveaux SE embarqués (QNX, FreeRTOS) et mobiles (ex: Android, iOS).
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 3
❑ Structure d’un système informatique
Un système informatique peut être divisé en quatre composants :
− Le matériel : l'unité centrale (CPU), la mémoire (RAM) et
les périphériques d'entrée / sortie (E/S) fournissent les
ressources informatiques de base du système.
− 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.
− Les logiciels : tels que les outils de traitements de texte,
les tableurs, les navigateurs Web définissent la manière
dont ces ressources sont utilisées pour résoudre les
problèmes informatiques des utilisateurs.
− L’utilisateur : exploite les fonctionnalités des logiciels pour
exécuter des tâches spécifiques.
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 4
❑ C’est quoi un système d’exploitation ?
Le système d'exploitation est un ensemble de programmes qui gère les ressources matérielles et logicielles
d'un ordinateur. Il fournit une interface entre l'utilisateur et le matériel, permettant d'exécuter des applications et
de gérer les fichiers, la mémoire, les processus...
Le système d'exploitation comprend :
− le noyau (Kernel)
− les bibliothèques systèmes : exemples : libc sous Linux, WinAPI sous Windows
− les services système : gestion des utilisateurs, impression, mise en réseau
− l’interface utilisateur : interface graphique (GUI) ou ligne de commande (CLI)
− les utilitaires et applications de base : explorateur de fichiers, éditeurs de texte, gestionnaire de tâches.
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 5
❑ Services d’un système d’exploitation
Un système d'exploitation fournit un environnement pour l'exécution de programmes. Il met certains services à la
disposition des programmes et de leurs utilisateurs.
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 6
❑ Services d’un système d’exploitation
Un ensemble de services du système d'exploitation fournit des fonctions utiles pour l'utilisateur.
− Interface utilisateur : interface graphique (GUI), interface à écran tactile, ligne de commandes
− Exécution du programme : capacité de charger un programme en mémoire et de l’exécuter.
− Opérations E/S : lire à partir d'une interface réseau ou écrire dans un système de fichiers…
− Manipulation du système de fichier : création, suppression, recherche, gestion des autorisations des fichiers
et dossiers.
− Communication : entre les processus qui s'exécutent sur le même ordinateur ou entre des processus qui
s'exécutent sur différents systèmes informatiques liés via un réseau.
− Détection d’erreurs : détecter et corriger les erreurs (CPU, RAM, disque, réseau) en permanence. En cas
d’échec, le système est arrêté.
− Allocation des ressources : lorsque plusieurs processus s'exécutent simultanément, des ressources doivent
être allouées à chacun d'entre eux (ordonnancement).
− Protection et sécurité : garantir que tout accès aux ressources du système est contrôlé.
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 7
❑ Noyau
Le noyau (kernel) est le cœur du système d’exploitation. Il s’agit d’un programme central qui assure la gestion
des ressources matérielles (processeur, mémoire, périphériques) et fournit une interface entre le matériel et
les logiciels applicatifs.
Le noyau assure plusieurs tâches essentielles :
− Gestion des processus (création, ordonnancement, terminaison).
− Gestion de la mémoire (allocation, pagination, etc.).
− Gestion des interruptions matérielles.
− Communication inter-processus (IPC).
− Gestion des périphériques (pilotes de périphériques).
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 8
❑ Différence entre un Système d’Exploitation et un Noyau
La différence entre un système d’exploitation et un noyau réside dans leur rôle et leur portée au sein d’un
ordinateur.

Caractéristique Noyau (Kernel) Système d’exploitation (OS)


Définition Composant central qui gère le matériel et les Ensemble de logiciels qui inclut le noyau et d’autres
ressources. composants pour interagir avec l’ordinateur.
Rôle principal Gestion des ressources système et Fournir une interface utilisateur et des services aux
communication avec le matériel. applications.
Exécution Fonctionne en mode noyau (privilégié). Fonctionne en mode utilisateur (avec accès
restreint au matériel).
Exemples Linux Kernel, Windows NT Kernel, XNU Windows, macOS, Ubuntu, Android.
(macOS).

Le noyau est la partie fondamentale du système d’exploitation, mais il ne constitue pas à lui seul un système d’exploitation
complet. Un OS inclut également des interfaces utilisateur, des bibliothèques et des applications pour permettre une
utilisation conviviale du système.
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 9
❑ Evolution des système d’exploitation
L'évolution des systèmes d'exploitation (SE) a été marquée par plusieurs étapes clés, chacune répondant à des
besoins spécifiques et exploitant les avancées technologiques de son époque.
▪ Serial Processing (Traitement en Série)
Les premiers ordinateurs (années 1940-1950) fonctionnaient en traitement en série.
− Les programmes étaient exécutés l'un après l'autre, sans interruption.
− L'utilisateur devait réserver un temps machine et charger manuellement le programme (via des cartes
perforées ou des bandes magnétiques).
− Aucun système d'exploitation n'était présent : l'utilisateur gérait directement le matériel.

Problèmes
− Inefficacité due au temps de configuration manuelle.
− Temps d'inactivité de la CPU pendant les opérations d'entrée/sortie (I/O).
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 10
❑ Evolution des systèmes d’exploitation
▪ Simple Batch Systems (Systèmes par Lots Simples)
Pour améliorer l'efficacité, les systèmes par lots ont été introduits dans les années 1950-1960.
− Les travaux (jobs) étaient regroupés en lots et exécutés séquentiellement par un moniteur (batch monitor).
− Le système d'exploitation chargeait automatiquement les programmes et gérait les opérations d'I/O.
− La CPU était mieux utilisée, mais restait inactive pendant les opérations d'I/O.
Avantages
− Réduction du temps de configuration manuelle.
− Meilleure utilisation des ressources.
Limites
− Aucune interaction utilisateur pendant l'exécution.
− La CPU restait sous-utilisée pendant les opérations d'I/O.
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 11
❑ Evolution des systèmes d’exploitation
▪ Multiprogrammed Batch Systems (Systèmes par Lots Multiprogrammés)
Pour résoudre le problème de la sous-utilisation de la CPU, les systèmes multiprogrammés ont été développés
dans les années 1960.
− Plusieurs programmes étaient chargés en mémoire simultanément.
− Lorsqu'un programme était en attente d'une opération d'I/O, la CPU passait à un autre programme.
− Cela permettait une utilisation quasi continue de la CPU.
Avantages
− Meilleure utilisation des ressources (CPU, mémoire).
− Augmentation du débit (throughput) du système.
Limites
− Aucune interaction utilisateur en temps réel.
− Les utilisateurs ne pouvaient pas interagir avec leurs programmes pendant l'exécution.
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 12
❑ Evolution des systèmes d’exploitation
▪ Time-Sharing Systems (Systèmes à Temps Partagé)
Pour permettre une interaction utilisateur en temps réel, les systèmes à temps partagé ont été introduits à la fin
des années 1960.
− La CPU était partagée entre plusieurs utilisateurs ou programmes, en allouant à chacun un petit intervalle
de temps (time slice ou quantum).
− Les utilisateurs pouvaient interagir avec le système via des terminaux.
− Le système donnait l'illusion que chaque utilisateur avait accès à la machine en exclusivité.
Avantages
− Interaction utilisateur en temps réel.
− Meilleure réactivité et expérience utilisateur.
− Utilisation efficace des ressources.
Exemples : UNIX, qui a popularisé le concept de temps partagé.
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 13
❑ Structure d’un système d’exploitation
Un système aussi large et complexe qu'un système d'exploitation moderne doit être conçu avec soin pour
fonctionner correctement et pouvoir être modifié facilement. Une approche courante consiste à partitionner la
tâche en petits composants, ou modules, plutôt que d'avoir un seul système. Parmi ces approches, on peut citer
celle :
• Monolithique
• Couches
• Micronoyau
• Modules
• Hybride
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 14
❑ Structure monolithique
C’est une technique courante pour la conception de systèmes d'exploitation. Elle consiste à placer toutes les
fonctionnalités du noyau dans un seul fichier binaire statique s’exécutant dans un seul espace adresse.
− Malgré l'apparente simplicité des noyaux monolithiques, ils sont difficiles à mettre en œuvre et à étendre.
− Les noyaux monolithiques ont toutefois un avantage en termes de performances: les interfaces des appels
systèmes génèrent une faible surcharge et la communication avec le noyau est rapide. Cela expliquent leur
utilisation dans les systèmes d'exploitation UNIX, Linux et Windows.

Structure traditionnelle du système UNIX Structure du système Linux


UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 15
❑ Structure en couches
C’est un système faiblement couplé; il est divisé en de petits composants séparés ayant des fonctionnalités
spécifiques et limitées. Le système d'exploitation est divisé en plusieurs couches (niveaux). La couche inférieure
(couche 0) est le matériel; la plus haute (couche N) est l'interface utilisateur.
− L'avantage de cette approche modulaire est que les modifications
apportées à un composant n'affectent que ce composant et aucun
autre. D’où sa simplicité de construction et de débogage.
− Cependant, peu de systèmes d'exploitation utilisent cette
approche. En effet, les performances globales de tels systèmes
sont faibles en raison de la charge supplémentaire liée à la
nécessité pour un programme utilisateur de traverser plusieurs
couches pour obtenir un service de système d'exploitation.
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 16
❑ Structure à base de micronoyau
Cette méthode structure le système d'exploitation en supprimant tous les composants non essentiels du noyau et
en les implémentant en tant que programmes de niveau utilisateur. Ce qui réduit considérablement la taille du
noyau.
− L’avantage de cette approche est que tous les
nouveaux services sont ajoutés dans l'espace
utilisateur et ne nécessitent par conséquent
aucune modification du noyau. Lorsque le noyau
doit être modifié, les modifications tendent à être
moins nombreuses, car le micronoyau est un
petit noyau.
− Cependant, les performances des micronoyaux
sont affectées par la surcharge des fonctions
système : copie des messages et à la Structure typique d’un micronoyau dont s’inspirent macOS, iOS,
Window NT
commutation entre les processus.
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 17
❑ Structure en modules
Est basé sur l’utilisation du LKM (Loadable Kernel Modules). Ainsi, le noyau contient un ensemble de composants
cœurs et intègre dynamiquement des services supplémentaires via des modules.
− Cette approche est plus flexible qu'un système en couches, car tout module peut appeler n'importe quel
autre module.
− Cette approche est également similaire à l’approche micronoyau, mais elle est plus efficace, car les modules
n'ont pas besoin d’invoquer des fonctions du noyau pour communiquer.

Ce type de conception est courant dans les implémentations modernes d’UNIX, telles que Linux, macOS et
Solaris, ainsi que Windows.
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 18
❑ Structure hybride
Les systèmes d’exploitation combinent différentes structures, ce qui permet de créer des systèmes hybrides
répondant aux problèmes de performance, de sécurité et de convivialité. Par exemple :
− Linux est monolithique pour des raisons de performance, cependant, il est également modulaire, de sorte
que de nouvelles fonctionnalités puissent être ajoutées dynamiquement au noyau.
− Windows est également en grande partie monolithique, mais conserve certains comportements typiques
des systèmes à micronoyau, notamment la prise en charge de sous-systèmes séparés. Les systèmes
Windows prennent également en charge le chargement dynamique de modules.
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 19
❑ Concepts fondamentaux
Le noyau d’un système d’exploitation est en relation étroite avec plusieurs concepts fondamentaux. Ces
concepts définissent comment le noyau interagit avec les applications et le matériel.
− Espace noyau (kernel space) / espace utilisateur (user space)
− Appels système
− Interruptions
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 20
❑ Modes d’exécution
Le concept d’espace noyau et espace utilisateur repose sur la séparation des privilèges dans un système
d’exploitation pour assurer la sécurité et la stabilité.
− Espace noyau (kernelmode) : c'est une zone mémoire privilégiée où le noyau exécute son code. Il a un
accès direct au matériel et aux ressources système. Seuls les processus du noyau peuvent s’y exécuter.
− Espace utilisateur (usermode) : c'est une zone mémoire où les applications utilisateur s'exécutent avec des
privilèges restreints. Les processus dans cet espace n'ont pas d'accès direct au matériel ou aux ressources
système critiques. Ils doivent passer par des mécanismes contrôlés par le noyau, comme les appels
système.
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 21
❑ Appels système
Les appels système sont le mécanisme par lequel un programme en espace utilisateur demande un service au
noyau.
1. Une application utilisateur effectue une requête (ex. ouvrir un
fichier, allouer de la mémoire).
2. La requête est envoyée au noyau via une interruption
logicielle ou une instruction spéciale (ex. syscall sur x86_64).
3. Le noyau traite la requête et effectue l’opération demandée.
4. Le résultat est renvoyé à l’espace utilisateur.
Exemples d’appels système
− Gestion des fichiers : open(), read(), write(), close().
− Gestion des processus : fork(), exec(), exit(), wait().
− Gestion de la mémoire : mmap(), brk().
− Réseau : socket(), connect(), send(), recv().
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 22
❑ Interruptions
Une interruption est un signal envoyé au processeur par le matériel ou le logiciel pour attirer son attention sur
un événement nécessitant une action immédiate.
▪ Interruptions matérielles
− Générées par des périphériques (ex. clavier, disque dur, carte réseau).
− Notifient le processeur qu’un événement externe nécessite une attention immédiate (ex. touche enfoncée, paquet
réseau reçu).
− Gérées par le contrôleur d’interruptions (PIC, APIC).
▪ Interruptions logicielles
− Déclenchées par un programme pour demander un service au noyau.
− Utilisées pour implémenter les appels système (ex. int 0x80 sur x86 pour Linux, syscall sur x86_64).
▪ Exceptions (ou fautes)
− Se produisent lorsqu’une erreur se produit pendant l’exécution d’un programme (ex. division par zéro, accès mémoire
interdit).
− Exemples : Page Fault, Segmentation Fault.
UCAD / FST / L2 INFO
Systèmes d’Exploitation II
Dr Ousmane SADIO
[email protected] 1. Architecture et théorie des systèmes d’exploitation 23
❑ Interruptions
Le noyau gère les interruptions en utilisant un gestionnaire d’interruptions (Interrupt Handler).
Lorsqu’une interruption se produit :
1. Le processeur interrompt le programme en cours.
2. Le noyau exécute la routine de traitement appropriée.
3. Une fois terminé, le noyau restaure le contexte et reprend l’exécution normale.

Vous aimerez peut-être aussi