Vous êtes sur la page 1sur 48

Cours de systèmes centralisés

Programme du semestre 1
1- Introduction
2- Les mécanismes de base : Les interruptions
3- Processus et ordonnancement
4- Exclusion mutuelle et synchronisation
- Exclusion mutuelle,
- Synchronisation avec sémaphores,
- Les moniteurs
5- L’interblocage
6- Les éditeurs de liens 1
Bibliographie

• R. E. BRYANT, D. R. O’HALLARON, « Computer System :


A programmer’s perspective », Prentice Hall, 2015.
• S. Krakowiak : Principe des systèmes d’exploitation des
ordinateurs (1985).
• Raynal : Le problème de l'exclusion mutuelle(1984) -
Partie I.
• Silberschatz, Galvi, Gagne : Principe des systèmes
d’exploitation (2018 - anglais).
• Tanenbaum et H. Bos : Modern operating systems (2015 -
anglais).
2
Prérequis

• Initiation au système Unix/Linux,


• Assembleur Intel 80x86,
• Architecture des ordinateurs (Cours de 2CPI),
• Structures de données,
• Langage C

3
Evaluation et formules de calcul

• Contrôle Final (CF).


• Contrôle Intermédiaire (CI).
• Interrogations.
• TPs.
• Présence en TD et participation.

4
Cours de systèmes
d’exploitation

Chapitre 0
INTRODUCTION

Mme L. BOUZAR
© 2021-2022
-5-
1. Introduction aux systèmes
d’exploitation

1 Fonctions d’un système d’exploitation


1.1 Définition d’un Système Informatique
1.2 Définitions d’un système d’exploitation
1.3 Buts d’un système d’exploitation
1.4 Principales fonctions d’un système d’exploitation
2 Principaux types de systèmes d’exploitation
3 Architectures des systèmes d’exploitation
4 La virtualisation
5 Le Cloud computing

-6-
2- Fonctions d’un système d’exploitation

2.1 Définition d’un Système Informatique


• Un système informatique est un ensemble de matériels
et de logiciels destinés à réaliser des tâches qui mettent
en jeu le traitement automatique de l'information.

• Le traitement automatique consiste à faire subir des


transformations à l'information fournie:
➢ Les informations traitées (données) et les informations
décrivant le traitement (instructions) doivent être
représentées de façon appropriée à l'intérieur de la
machine. 7
• Cette représentation interne est imposée par la
technologie : Représentation binaire.
• Or, la forme externe des données (l'information en entrée)
et la forme externe des résultats (l’information en sortie)
ne sont pas en binaire.

Les Logiciels
• Deux classes de logiciels :
➢ Logiciels d'application,
➢ Logiciels de base.

8
Schéma général d’un Système Informatique

9
• Les logiciels d’application :
Programmes écrits par les utilisateurs pour répondre à des
besoins spécifiques : Programmes de paie du personnel,
gestion de la scolarité, jeux, programmes de CAO…

• Logiciels de base :
Programmes permettant de faciliter certains types de
traitements :
– par le changement de la représentation des programmes
et données.
Exemples : assembleurs, compilateurs...
– par la gestion et le partage des ressources physiques et
des informations (modules du système d’exploitation). 10
• La fonction d'un logiciel de base est de compléter la
machine existante pour simuler une machine "étendue" ou
"virtuelle" capable d'interpréter(exécuter) le logiciel
d'application.

11
Les logiciels de base
• On distingue :
➢ Les logiciels de service.
Exemples : Compilateurs, éditeur de liens...

➢ Le système d'exploitation.

12
2.2 Définitions d’un système d’exploitation

➢ Un système d’exploitation : Ensemble de


programmes permettant de
- Simplifier l’utilisation de l’ordinateur,
- Faciliter la programmation des applications
utilisateur.

➢ C’est une interface ou intermédiaire entre l’utilisateur


et l’ordinateur.

13
2.3 Buts d’un système d’exploitation

➢ Fournir un environnement permettant à l’utilisateur


d’exécuter des programmes de manière pratique et
efficace.

➢ Permettre une utilisation efficace des ressources de


l’ordinateur.

14
2.4 Principales fonctions d’un système d’exploitation

1. Définition et réalisation d’une machine étendue


• Offrir aux utilisateurs un langage étendu (une interface) : Le système
simule pour ses utilisateurs une machine idéale ou une machine
virtuelle.

• La machine étendue fournit une interface de programmation plus


simple que celle fournie par le matériel; elle réalise :
➢ Les fonctions de gestion de l’information (structurer, conserver et
désigner l’information).
➢ L’exécution des programmes.
➢ L’aide à la mise au point, mesure du temps… 15
2. Gestion et partage des ressources physiques
• Gestion des ressources physiques : Allocation du processeur,
allocation de la mémoire principale, de la mémoire secondaire,
des organes d’E/S.
• Partage et échange de l’information entre utilisateurs : Régler les
conflits qui peuvent résulter de l'utilisation concurrente d’une
même ressource.
• Protection mutuelle des utilisateurs.
• Statistiques sur l’utilisation des ressources, des erreurs, …
• Informations de comptabilité (ex : temps U.C., Espace mémoire,
E/S...).

16
Résumé
❖ Un système informatique peut être divisé en 4 composants:
1. Le matériel,
2. Le système d’exploitation,
3. Les logiciels de service,
4. Les applications (programmes) des utilisateurs.

17
3. Principaux types de systèmes
d’exploitation

a) Système individuel (PC)


b) Systèmes multi-utilisateurs
c) Systèmes transactionnels
d) Systèmes en temps réel et systèmes
embarqués
e) Systèmes client – serveur
f) Systèmes pour les gros ordinateurs (mainframes)
18
a) Système individuel (PC)
❖ Un ordinateur individuel comporte dans sa configuration la
plus simple :
• Une unité centrale (ou processeur central),
• Une mémoire centrale,
• Un terminal (écran + clavier),
• Une mémoire secondaire (disque dur),
• Eventuellement une imprimante.
❖ Un système d’exploitation et des logiciels d’application.

19
– Fonctions du système :
• La gestion des fichiers.
• La réalisation des entrées/sorties.
• L’interprétation du langage de commande.
• Pas de partage de ressources entre utilisateurs.
• Partage de ressources entre les différentes tâches
d’un même utilisateur.

Qualité : Facilité d’utilisation.

20
b) Systèmes multi-utilisateurs

21
Exemples de systèmes multi-utilisateurs

– Les systèmes en temps partagé,


– Les systèmes transactionnels,
– …

22
c) Systèmes transactionnels
– Les systèmes transactionnels sont caractérisés par les propriétés
suivantes :
1. Gestion d’un ensemble d’informations(bases de données) de
taille importante.
2. Exécution de transactions prédéfinies, en mode interactif .
3. Le système possède un grand nombre de points d’accès
(terminaux) et un grand nombre de transactions peuvent se
dérouler simultanément.
4. Accès et mise à jour de données partagées avec maintien de
leur intégrité.

– Exemples: système de réservation de billets d’avions, CCP… 23


d) Systèmes en temps réel
– Les systèmes temps réel sont utilisés dans les
applications nécessitant une réponse, dans un délai
relativement court.

– Exemples :
• Contrôle de procédés industriels,
• Gestion de centraux téléphoniques,
• Pilotage d’avions, missiles, satellites,
• Surveillance médicale, Commande des robots,
• Centrale nucléaire…
24
• Fonctions du système:
– Action sur les organes externes(lecture de capteurs),
– Gestion du temps physique(déclenchement périodique
du cycle de traitement),
– Réaction aux événements externes(arrêt d’urgence),
– Gestion d’information(conservation et entretien d’un
journal des différentes opérations).

• Principale qualité : La fiabilité.

25
• Un système embarqué est un système autonome,
(souvent système temps réel) spécialisé dans une tâche
bien précise.
• Le terme désigne aussi bien le matériel que le logiciel
utilisé.
• Ses ressources sont généralement limitées.
• Cette limitation est généralement d'ordre :
➢ spatial (encombrement réduit) et
➢ énergétique (consommation restreinte).

26
e) Systèmes sur serveur
– Serveur est un gros ordinateur ou station de travail
– Gére plusieurs clients au même temps a travers le réseau.
– Permet le partage de ressources physiques et logiques.
• Exemples: Solaris, FreeBSD, Linux, Windows Server, …

27
f) Systèmes mainframes
– Systèmes utilisés par les grands sites contenant des data
centers.
– Un mainframe peut avoir jusqu’à 10000 disques, beaucoup
d’opérations différentes à gérer.
– Utiliser dans les serveurs web des grandes compagnies,
pour les serveurs de B2B transactions…
• Exemples: OS 390, Linux, MVS (Multiple Virtual Storage
d’IBM)

28
4. Architectures de systèmes d’exploitation
a) Systèmes Monolithiques
– Le système d’exploitation est un ensemble de
procédures,
– Chacune des procédures peut appeler toutes les autres à
travers un appel système ou appel superviseur. ➔
Passage du mode utilisateur en mode système.
– Inconvénient : Maintenance du système très difficile.
– Exemple: Linux est un système à noyau monolithique mais
il est modulaire : Le noyau est composé de plusieurs
modules chacun destiné à la gestion d’un composant donné
( mémoire, disque, autres périphériques,…) ce qui facilite
l’évolution du système.
29
30
• Exemple: Unix
Utilisateurs
Langages de commandes : Shells,
Compilateurs et interpréteurs,
Bibliothèques du système,
Interface d'appels système pour le noyau, ordonnancement de l'UC,
remplacement de pages, pagination à la demande, mémoire virtuelle
Signaux, Système de fichiers,
Gestion des terminaux, Swaping(gestion de la mémoire),
Système d'E/S de caractères, Système d'E/S de blocs,
Drivers de terminaux, Drivers de disques et bandes
Interface noyau pour le matériel

Contrôleurs de Contrôleurs de Contrôleur de


Terminaux périphériques : Disques, … Mémoire physique
31
b) Systèmes d’exploitation en couches
– Le système d’exploitation est composé de plusieurs
couches spécialisées:
Une couche ne peut être appelée que par des
procédures de la couches qui lui est immédiatement
supérieure.

– Exemple:
Système THE de Dijkstra (1968),
4 couches + une couche utilisateurs

32
5. La virtualisation
➢ Définition de la notion de virtualisation
La virtualisation est une technologie qui permet à des systèmes
d’exploitation (systèmes invités) de s’exécuter comme des
applications au sein d’autres systèmes d’exploitation (systèmes
hôtes).

➢ Début de la virtualisation
– Un des premiers systèmes d’exploitation à gérer le concept de
machine virtuelle a été le système CP/CMS* d'IBM (1968),
développé en collaboration avec le MIT.
– VM/370 d’IBM (1979).
*CP/CMS : Control Program/Cambridge Monitor System

33
– Le système d’exploitation contient un logiciel ou outil de
virtualisation appelé hyperviseur qui fournit à la
couche supérieure plusieurs machines virtuelles.

– Ces machines virtuelles sont des copies conformes de la


machine réelle avec ses interruptions, ses modes
noyau/utilisateur, etc.

– Chaque machine virtuelle exécute son propre système


d’exploitation.

34
Exemple1 : Machine virtuelle invitée

35
Exemple2 : Machine virtuelle native

36
• Les outils:

– Vmware (Vmware)
– Virtual Server et Hyper-V (Microsoft)
– VirtualBox (Oracle)
– Xen (Open source)
– KVM (Open source),
– …

37
Les Hyperviseurs
• Un hyperviseur, également appelé gestionnaire de machine
virtuelle(ou VMM), est un programme qui permet à plusieurs
systèmes d'exploitation de partager un seul matériel hôte.
• Deux principaux types d’hyperviseurs :
➢ Type1 : Hyperviseurs pour machines virtuelles natives, ils
s’exécutent directement sur la machine physique(hardware).
ESXi de VMware, Hyper-V de Microsoft, KVM de RedHat(open
source) , Oracle VM d'Oracle et l'hyperviseur open-source Xen.
➢ Type2 : Hyperviseurs pour machines virtuelles hôtes, ils
s'éxécutent sur un système d'exploitation (Windows, Linux,
MacOS) et non pas directement sur une machine physique.
VirtualBox (Oracle/Sun), WMware Workstation (sur Windows et
Linux) et Fusion (sur Mac), et l'hyperviseur open-source QEMU.
38
• Vmware ESXi

39
• Hyper-V

40
• Open source: Xen

41
– Open source: KVM (Kernel-based Virtual Machine)
pour Linux RedHat. C’est un Hyperviseur libre.

– KVM s’utilisent avec des outils tels que Ovirt.

– Il représente l’avenir de la virtualisation.

42
6. Le Cloud computing
• Le Cloud computing est un type de systèmes
informatiques qui fournit le calcul, le stockage, et même
des applications comme un service à travers un réseau.

• Le cloud computing utilise la virtualisation comme base pour son


fonctionnement.
• Exemple de cloud :
La plateforme Amazon Elastic Compute Cloud (EC2)
possède des milliers de serveurs, des millions de machines
virtuelles et des péta-octets de stockage disponible pour une
utilisation par tous les internautes. Les utilisateurs paient par
mois sur la base des ressources qu'ils utilisent.
43
Les différents types

• Cloud Public: cloud disponible sur Internet à quiconque


prêt à payer pour les services offerts.

• Cloud Privé: cloud géré par une entreprise pour son


propre usage.

• Cloud Hybride cloud: cloud qui inclut les composants


des clouds privés et publics.

44
• SaaS (Software as a Service / Logiciel fourni en
mode service) :
➢ Le logiciel s’exécute sur des ordinateurs qui appartiennent au
fournisseur SaaS et sont gérés par lui, au lieu d’être installé et
géré sur les ordinateurs des utilisateurs.
➢ Accessible via l’internet, le logiciel est habituellement proposé
par voie d’abonnement(mensuel ou annuel).

• IaaS (Infrastructure as a Service /


Infrastructure fournie en mode service) :
➢ Les calculs(traitements), le stockage, la mise en réseau et
d’autres éléments (comme la sécurité ou les outils) sont
assurés par le fournisseur IaaS via l’internet ou une connexion
réseau dédiée.
46
➢ Les utilisateurs sont propriétaires des systèmes d’exploitation,
des applications et des informations présents sur
l’infrastructure, et ils en assurent la gestion.
Le paiement est fonction de l’utilisation.

• PaaS (Platform as a Service / Plate-forme


fournie en mode service) :
➢ Tous les logiciels et le matériel requis pour créer et exécuter
des applications basées sur le Cloud sont fournis par le
fournisseur PaaS via l’internet ou une connexion réseau
dédiée.
➢ Les utilisateurs paient l’utilisation de la plate-forme et
contrôlent les modalités d’utilisation des applications tout au
long de leur cycle de vie. 47
L’infrastructure
• D’abord, on peut trouver plusieurs systèmes d’exploitation
traditionnels (machines réelles)

• Au delà des machines réelles, nous trouvons des hyperviseurs


ou gestionnaires de machines virtuelles (VMM) qui gèrent
plusieurs machines virtuelles.

• Dans un niveau plus haut, les VMM(hyperviseurs) eux-mêmes


sont gérés par des outils de gestion cloud:
– Eucalyptus toolset
– Vware vCloud Director
48
Exemple de Cloud computing
• Cloud public avec IaaS

49

Vous aimerez peut-être aussi