Vous êtes sur la page 1sur 39

Introduction à l’informatique

Système d’exploitation

Leçon basée sur celle du Prof. NICOLAS VAN ZEEBROECK


Contenu
● Introduction
● Principe
● Processus
● Mémoire
● Périphériques I/O
● Fichiers
● Interface utilisateur
● Appareils mobiles
● Conclusions

2
Contenu
● Introduction
● Principe
● Processus
● Mémoire
● Périphériques I/O
● Fichiers
● Interface utilisateur
● Appareils mobiles
● Conclusions

3
Introduction
● Système d’exploitation (operating system – OS) est un
logiciel assurent des fonctions essentielles :
– Prendre en charge la gestion d’un ordinateur.
– Assurer l’interface entre la machine et les applications.
– Fournir une abstraction d’un ensemble de fonctions
proposées par une classe d’ordinateurs.
● OS sont dépendants de la plate-forme matérielle :
– Processeur de la machine.
– Capacité de la mémoire.
– Types de périphériques I/O.

4
Contenu
● Introduction
● Principe
● Processus
● Mémoire
● Périphériques I/O
● Fichiers
● Interface utilisateur
● Appareils mobiles
● Conclusions

5
Principe (1/7) – Contenu
● Rôle
● Types
● Noyau

6
Principe (2/7) – Rôle (1/3)
Trois fonctions
● Présenter une interface unifiée pour les services les plus

usités.
● Gérer les ressources de l’ordinateur (processeur, RAM,

périphériques) :
– Partager le temps entre un ensemble d’utilisateurs.
– Organiser la répartition des tâches à exécuter.
● Présenter une interface aux clients (utilisateurs humains
ou programmes) :
– Adapter l’interface aux besoins.
– Proposer une “machine abstraite” qui fournit un ensemble
de fonctions pour la gestion et la communication.

7
Principe (3/7) – Rôle (2/3)
Transparence
● Proposer des commandes pour gérer les fichiers (copy,

open, execute, move, etc.).


● Proposer des commandes pour dialoguer avec les

périphériques I/O (print, save, keyboard, modem,


internet, etc.).
● Exécution “simultanée” de plusieurs tâches :

– Gérer les ressources demandées par les utilisateurs et les


programmes (CPU, mémoire, etc.).
– Proposer des mécanismes de protections et des
communications entre utilisateurs et programmes.
– Fournir des informations pour qu’un utilisateur privilégié
puisse gérer les ressources et optimiser le système.

8
Principe (4/7) – Rôle (3/3)
Centralité
● OS est le “maître de l’ordinateur ” :

– Chargé en premier par le BIOS lors de l’allumage.


– Tourner en arrière‐plan pour reprendre la main quand un
programme la laisse pour l’exécution d’un service.
– Gérer optimalement les ressources et le matériel en
fonction du contexte (multitâches, multi-utilisateurs, etc.).
– Gérer la “rareté” de certaines ressources (mémoire,
connexion réseau, etc.).
● Diversité :
– Application ne peut “dialoguer” qu’avec un OS donné.
– Nombreux OS : famille UNIX (Linux, BSD, Android, etc.),
Windows, macOS, iOS, etc.
– Bataille stratégique (Windows vs Linux, Android vs iOS).

9
Principe (5/7) – Types (1/2)
● Les OS se catégorisent historiquement en quatre classes :
– Utilisateur unique et tâche unique (ex: MS-DOS).
– Utilisateur unique et tâches multiples (ex: iOS).
– Utilisateurs multiples et tâches multiples (ex: Linux).
– Systèmes distribués.
● OS est un logiciel “event-driven” :
– Intervenir que quand on le lui demande via une commande
ou un programme (on parle d’interruptions).
– Ex: Une touche clavier a été enfoncé, la souris a bougé, un
périphérique I/O a terminé de lire un bloc de données.
● OS prend le contrôle de l’ordinateur très souvent (par
exemple pour simuler l’exécution de plusieurs
programmes en parallèle).

10
Principe (6/7) – Types (2/2)
● Un même OS peut tourner sur un large ensemble de
plates-formes informatiques :
– Utiliser un langage de programmation de haut niveau pour
la majeure partie de son code source (typiquement C/C++).
– Déléguer à des logiciels extérieurs, les pilotes, la
communication physique avec des périphériques I/O
(“drivers”).
– Avantage : Recompiler simplement une application pour
qu’elle s’exécute sur plusieurs plates-formes.
● OS les plus fréquents pour les “ordinateurs” : Windows
(ordinateurs personnels) et Linux/UNIX (serveurs).

11
Principe (7/7) – Noyau
● Un OS moderne fonctionne en (au moins) deux modes.
● Mode noyau (“kernel”) :
– Centraliser les opérations fondamentales de l’OS (gestion
des processus, gestion de la mémoire, etc.).
– Exécuter avec sa propre zone de mémoire protégée et avec
le niveau de priorité le plus élevé.
– Éviter de bloquer l’ordinateur lorsqu’une application se
plante.
● Mode utilisateur :
– Exécuter toute autre application (y compris les pilotes).
– Proposer différents niveaux de priorité.
– Empêcher “matériellement” une application d’interagir
avec la zone de mémoire contenant les données sensibles
de l’OS.

12
Contenu
● Introduction
● Principe
● Processus
● Mémoire
● Périphériques I/O
● Fichiers
● Interface utilisateur
● Appareils mobiles
● Conclusions

13
Processus (1/8) – Contenu
● Principe
● Bloc descripteur
● Gestion
● États
● Threads
● Interblocage

14
Processus (2/7) – Principe
● Un programme est peu économe pour le CPU :
– Attendre que l’utilisateur interagisse (clavier, souris, etc.).
– Attendre que les périphériques I/O finissent une tâche.
● Multitâche : permettre l’exécution en “parallèle” de
plusieurs programmes.
● OS gère plusieurs processus :
– Allouer des ressources et s’en souvenir (CPU, mémoire,
fichiers, etc.) aux processus.
– Assurer la commutation entre processus (ex: quand un
processus attend un périphérique I/O, un autre peut
s’exécuter).
– Assurer une répartition équitable du temps CPU.
– Assurer une certaine “herméticité” entre processus.

15
Processus (3/8) – Bloc descripteur
● OS gère les informations propres au fonctionnement de
chaque processus.
● Chaque processus est décrit par bloc descripteur :
– Identifiant unique.
– État courant du processus.
– Contexte d’exécution (contenu des registres, adresse de sa
table de correspondance entre pages mémoires virtuelles et
pages réelles, la liste des fichiers ouverts, etc.).
– Niveau de priorité éventuel à considérer dans l’affectation
des ressources.
– Spécification de ses permissions d’accès.
– Propriétaire du processus (typiquement l’utilisateur qui a
lancé le processus).
– Liste des processus enfants (processus qu’il déclenche).

16
Processus (4/8) – Gestion (1/2)
Commutation de processus
● Principe :

– Suspendre l’exécution du processus courant.


– Sauver le contexte d’exécution du processus courant.
– Utiliser un algorithme pour calculer le processus à
sélectionner.
– Charger le contexte d’exécution du processus sélectionné.
– Rendre le processus sélectionné courant et lui permettre de
reprendre son exécution.
● Multitâche préemptif :
– Rendre très souvent la main à l’OS.
– Utiliser une interruption horloge.
– Reprendre la main lorsqu’un processus attend l’accès à
une ressource (ex: des données d’un périphérique I/O).

17
Processus (5/8) – Gestion (2/2)
Sélection de processus
● Algorithme de sélection de processus actuel sont très

complexes (“round robin”).


● Allouer à chaque processus un “quantum” de temps et

faire tourner l’exécution des processus.


● Critères intervenant sur le “quantum” donné à chaque

processus :
– Utiliser la priorité assignée aux processus.
– Donner plus de temps aux processus qui utilisent
beaucoup les périphériques I/O puisqu’ils rendent très
souvent la main.

18
Processus (6/8) – États
● Un processus passe par plusieurs états suivant la situation
d’exécution.
● Création d’un processus : Il est à l’état “prêt” (à
s’exécuter).
● Sélection d’un processus : Il passe à l’état “en exécution”
(il est le seul dans cet état pour un processeur donné).
● Suspension d’un processus parce qu’il attend quelque
chose (ex: accès à un périphérique I/O) :
– Il passe à l’état “bloqué”.
– Dès que l’attente s’achève, il repasse à l’état “prêt”.
● Suspension d’un processus parce qu’il a épuisé son
quantum de temps. Il passe à l’état “prêt”.

19
Processus (7/8) – Thread
● Changement de contexte d’un processus est coûteux.
● Introduction des threads :
– “Mini-processus” disposant d’un contexte d’exécution
limité (pour l’essentiel les registres).
– S’exécute au sein d’un processus.
– Partage certaines ressources (mémoires, fichiers, etc.) avec
les autres threads du même processus.
– Avantage : Changement de contexte très rapide.
● Les “threads” sont souvent utilisé avec des programmes
“event-driven” : Différents threads gèrent les différents
types d’évènements qui apparaissent.
● Langages de programmation de haut niveau fournissent
des mécanismes simples pour faire du multi-thread.

20
Périphériques I/O (8/8) – Interblocage
● Problème d’interblocage (“deadlock”) :
– Processus P1 obtient l’accès à une ressource M1 (ex:
disque dur).
– Processus P2 obtient l’accès à une ressource M2 (ex:
réseau).
– P1 veut l’accès à M2 (utilisé par P2) et se bloque.
– P2 veut l’accès à M1 (utilisé par P1) et se bloque.
– P1 et P2 sont bloqués tout en dépendant de l’autre pour se
débloquer.
● Plusieurs solutions existent :
– Éviter le problème si on dispose d’une connaissance a
priori du besoin en ressources des processus.
– Prévenir en programment d’une certaine manière les accès.
– Corriger en tuant les processus bloqués.

21
Contenu
● Introduction
● Principe
● Processus
● Mémoire
● Périphériques I/O
● Fichiers
● Interface utilisateur
● Appareils mobiles
● Conclusions

22
Mémoire (1/2)
● Gestion mémoire consiste à allouer à chaque processus
un espace mémoire :
– Mémoire est partitionnée en plusieurs processus.
– Partition dépend des différents processus (certains OS
proposent de limiter la quantité de mémoire pour certains
processus).
– Mécanisme pour empêcher un processus d’accéder à une
partie de mémoire dédiée à un autre processus.
– Attention : Emplacement mémoire n’est pas forcément
continu.
● Problèmes de fragmentation : Au fur et à mesure, des
parties non utilisées se retrouvent un peu partout en
mémoire.
● Espace mémoire du noyau est protégé “matériellement”.

23
Mémoire (2/2)

OS

Process 1

Process 3

Process 2

Process 4

24
Contenu
● Introduction
● Principe
● Processus
● Mémoire
● Périphériques I/O
● Fichiers
● Interface utilisateur
● Appareils mobiles
● Conclusions

25
Périphériques I/O (1/2) – Schéma

GESTIONNAIRE I/O DU SYSTÈME D’EXPLOITATION

26
Périphériques I/O (2/2) – Pilotes et contrôleurs
● L’accès à un périphérique I/O passe par deux éléments :
– Pilote : Logiciel attaché au noyau de l’OS qui fournit les
commandes de transfert.
– Contrôleur : Circuit électronique spécialisé pour gérer le
périphérique I/O (ex: carte SCSI).
● Dialogue entre OS et périphériques est géré par un
mécanisme d’interruptions (ex: lorsqu’une tâche est
enfoncé, le contrôler clavier génère une interruption).
● OS doit gérer ces demandes simultanées :
– Plusieurs demandes d’accès à un périphériques I/O
peuvent exister (typiquement, tous les programmes
nécessitent un accès au disque dur).
– Algorithme doit sélectionner quel bloc de données
échanger à quel moment (first-in-first-out, système de
priorité, etc.).

27
Contenu
● Introduction
● Principe
● Processus
● Mémoire
● Périphériques I/O
● Fichiers
● Interface utilisateur
● Appareils mobiles
● Conclusions

28
Fichiers (1/2) – Rôle de l’OS
● Toutes les données sont stockées sur disque dur sous
forme de fichiers et de répertoires.
● Chaque fichier est repérable et accessible par son nom.
● Son contenu dépend du programme qui le traite (on parle
de son “type”).
● Convention (mais aucune obligation) : Terminer le nom
par une extension (.ext) caractérisant son type.
● OS propose plusieurs fonctions :
– Proposer une convention pour nommer les fichiers.
– Proposer une organisation logique et physique des fichiers
sur le disque dur.
– Fonctions de base pour lire, copier, déplacer ou effacer des
fichiers.

29
Fichiers (2/2) – Systèmes de fichiers
● Chaque OS a un système de fichiers qui lui est propre et
souvent différent d’un autre
● Windows :
– NTFS : Utilisé pour les disques durs.
– FAT32 : Utilisé pour les autres stockages de masse (ex:
clés USB).
● macOS : HFS+ (recherche par métadonnées, historique,
etc.).
● Principaux systèmes de fichiers proposés par Linux :
– Famille ext2, ext3 et ext4.
– Systèmes de fichiers plus spécifiques : XFS, JFS ou
ReiserFS.

30
Contenu
● Introduction
● Principe
● Processus
● Mémoire
● Périphériques I/O
● Fichiers
● Interface utilisateur
● Appareils mobiles
● Conclusions

31
Interface utilisateur (1/3) – Rôle
● Ensemble des moyens mis à disposition des utilisateurs
pour interagir avec l’OS et les programmes.
● Interactions avec les applications :
– Démarrer ou terminer une application.
– Dialoguer avec l’application (souris, clavier, etc.)
– Échanger des informations entre applications (ex: copier-
coller).
● Interactions avec le système de fichiers :
– Gérer les répertoires et les fichiers (créer, copier, sauver,
déplacer, ouvrir, etc.).
– Octroyer des droits d’accès (lecture, écriture, etc.)
● Configuration matérielle ou logicielle du système :
Spécifier l’existence de nouveaux périphériques I/O.

32
Interface utilisateur (2/3) –Types
● Interfaces textes ou “console” (CLI) :
– Interface en “ligne de commande” (shell).
– Interactions essentiellement avec le clavier.
– Avantage : Léger, flexible et puissant.
– Inconvénient : Compliqué.
● Interfaces graphiques :
– Représentation des applications en fenêtres (modales et
non modales).
– Interactions avec le clavier et la souris.
– Avantage : Facile.
– Inconvénient : “Lourd”.

33
Interface utilisateur (3/3) –Accès à distance
● Idée : Utiliser des dispositifs I/O locaux (clavier, souris,
écran, etc.) pour interagir avec un ordinateur à distance.
● Différentes interfaces :
– Historiquement (mainframes, premiers réseaux, etc.), et
par habitude, les interfaces textes sont très utilisées.
– Les interfaces graphiques existent aussi depuis la
standardisation de X-Windows pour la famille UNIX
(macOS et Windows proposent leur propre système).
– Aujourd’hui : Interface Web.

34
Contenu
● Introduction
● Principe
● Processus
● Mémoire
● Périphériques I/O
● Fichiers
● Interface utilisateur
● Appareils mobiles
● Conclusions

35
Appareils mobiles
● Les appareils mobiles (smartphones, tablettes et objets
connectés) sont des ordinateurs comme les autres et ont
donc besoin d’un OS.
● OS mobiles :
– “Moins” puissants en capacité.
– Fonctions limitées aux spécificités de l’appareil mobile.
– Peuvent être mono-utilisateur et/ou mono-tâche.
● Smartphones et tablettes :
– Trois principaux OS : Android (Linux), iOS et Windows
Mobile.
– Écosystème applicatif via des “App Store”.
● Objets connectés : Principalement Linux.

36
Contenu
● Introduction
● Principe
● Processus
● Mémoire
● Périphériques I/O
● Fichiers
● Interface utilisateur
● Appareils mobiles
● Conclusions

37
Conclusions
● Le système d’exploitation est au cœur d’un ordinateur :
– Proposer une interface unique pour accéder à une série de
ressources.
– Gérer plusieurs processus, threads et leurs besoins
respectifs en ressources.
– Répartir le temps de calcul disponible entre les processus
et les threads.
– Répartir la mémoire entre plusieurs processus.
– Assurer la communication avec les périphériques I/O en
dialoguant avec les contrôleurs.
● Le noyau est l’élément central d’un OS qui réside dans
une partie “matériellement” différentes des autres
logiciels.

38
Introduction à l’informatique

Système d’exploitation

Leçon basée sur celle du Prof. NICOLAS VAN ZEEBROECK

Vous aimerez peut-être aussi