Vous êtes sur la page 1sur 128

Module

SYSTEMES D’EXPLOITATION

Année 2022/2023
CONTENU DU MODULE
 Les générations des ordinateurs
 Rôle du système d'exploitation
 Qualités d'un système d'exploitation
 Modes d'Exploitation des Ordinateurs :
o Mode séquentiel direct
o Mode séquentiel indirect
 Multiprogrammation : classique-étendue
 Temps partagé
 Temps réel
CONTENU DU MODULE
 Gestion de la Mémoire Centrale :
o Définitions
o Espace logique
o Espace physique
 Allocation en mémoire
o Partitions statiques
o Partitions dynamiques
 Allocation par pagination
 Pagination à la demande,
 Segmentation
Introduction aux systèmes d'exploitation

1. Rappels sur le matériel (Architecture des ordinateurs)

2. Notions de systèmes d'exploitation

3. Les principaux systèmes d'exploitation

4. TD1
Rappels sur le matériel
(Architecture des ordinateurs)
Architecture de John Von Neumann
Architecture Harvard
Structure de base d’un ordinateur
Le Processeur
Architecture interne d’un microprocesseur
Les bus
Schéma des bus de communication
Un disque dur
• Un disque dur est composé :
• d un ou plusieurs plateaux circulaires, dont l une
ou les deux surfaces sont recouvertes d'un fin
matériau magnétique
• d’une tête de lecture-écriture par surface
• les surfaces sont généralement divisées en
anneaux concentriques, les pistes.
• les pistes sont divisées en secteurs (courammentp (
entre 32 et 256 mots)
• les pistes de même numéro de l’ensemble des
plateaux forment un cylindre.
Carte mère
Chipset
La connectique
Les Ports
Les générations des ordinateurs
Les générations des ordinateurs

La première génération : les tubes à vide (1945 - 1955)


La deuxième génération : les transistors (1955 - 1965)
La troisième génération : les circuits intégrés (1965 - 1973)
La quatrième génération : les microprocesseurs (1971 - 1980)
La première génération : les tubes à vide
(1945 - 1955)
La deuxième génération :
les transistors (1955 - 1965)
La troisième génération : les circuits intégrés
(1965 - 1973)
La quatrième génération : les
microprocesseurs (1971 - 1980)
L'ordinateur de vue interne
Organisation d'un système informatique
Architecture en couches
Architecture matérielle et logicielle d’un ordinateur
Notions de systèmes d'exploitation
Définition d'un système d'exploitation
 SE est un allocateur de ressource
• Gère toutes les ressources
• Décide entre plusieurs requêtes en conflit pour rendre les
ressources l’usage des ressources efficace et juste
Définition du système d'exploitation
Quatre éléments d'un système informatique
Rôle du système d'exploitation
Structure d'un système informatique
Types de système d'exploitation
•Les systèmes personnels :
Ces systèmes fournissent à un utilisateur unique une interface conviviale pour utiliser
un ordinateur personnel à des fins bureautique.

• Les systèmes temps réels :


Ces systèmes respectent des contraintes temporelles.
Les systèmes temps réels dur doivent respecter absolument les contraintes temporelles

•Les systèmes embarqués :


Ces petits systèmes d'exploitations sont spécialement conçus pour de petits ordinateurs
(téléphone intelligent, télévision).

Système pour smart cards :


Les plus petits OS pour des ordinateurs de la taille de cartes de crédit, Il s'agit ici de système souvent
propriétaire et très limité dans leur tâche.
Types de système d'exploitation
•Les systèmes pour mainframes :
Ces systèmes sont destinés à des machines avec de très grandes entrées/sorties (un millier de
disques).
Il existe 3 familles :
• le batch (tâches sans interaction)
• le transactionnel (grand nombre de petites requêtes)
• temps partagé (plusieurs en même temps)
•Les systèmes d'exploitation serveur :
Offrent à de nombreux utilisateurs des services partagés tel le réseautage, l'impression, service de
fichiers, accès web, etc.

•Système multiprocesseurs :
Il s'agit d'une variante des systèmes d'exploitation serveurs optimisés pour des machines à plusieurs
processeurs.
Evolution des systèmes d'exploitation
L’évolution des micro-ordinateurs a été encouragée par l’apparition des
systèmes d'exploitation adéquats.
• VMS
• CP/M
• MS-DOS
• Mac OS
• OS/2
• NetWare
• Unix
• Linux
• La famille des Windows :
Evolution des systèmes d'exploitation

• L’evolution des micro-ordinateurs a été encouragée par l’apparition


des systèmes d'exploitation adéquats.

• Les systèmes d'exploitation actuels sont multi-utilisateurs.

• Ils intègrent une gestion des réseaux, et permettent la protection des


utilisateurs entre eux. Nous présentons ci-dessous une liste des
principaux systèmes sur le marché dans un ordre chronologique
Evolution des systèmes d'exploitation
VMS:

VMS est la propriété de DEC. Il est apparu avec le premier ordinateur

VAX de digital. VMS (Virtuel Memory System), est un des premiers

systèmes à appliquer la mémoire virtuelle.


Evolution des systèmes d'exploitation
CP/M:
 L'histoire des systèmes d'exploitation pour PC commence avec CP/M créé par Gary Kildall en 1974.

 A cette époque, chaque ordinateur était livré avec son propre système d'exploitation, étroitement
dépendant du matériel utilisé.

 L'idée de CP/M (Control Program for Microcomputers), une première à l'époque, consistait à créer
un système d'exploitation pouvant fonctionner sur les machines de plusieurs constructeurs.

 C'est d'ailleurs avec CP/M que le Bios apparaît, cette couche logicielle basse permettant
d'interfacer matériel et système d'exploitation.

 CP/M est porté sur presque toutes les plates-formes en vue de l'époque.
Evolution des systèmes d'exploitation
MS-DOS:

• MS-DOS est le plus connu des premiers systèmes d'exploitation pour PC.
• Il est mono-utilisateur et mono-tâche.
• On a du greffer des couches logicielles pour répondre aux évolutions
matérielles et aux demandes des utilisateurs.
• Il a été rapidement supplanté par les systèmes Windows.
Evolution des systèmes d'exploitation
Mac OS:
• C'est le système d'exploitation de la firme Apple.
• Il a été livré pour le Macintosh en 1984.
• Les premiers systèmes à utiliser la souris et une interface graphique
avec plusieurs fenêtres.
• Mac OS X se distingue par un noyau Darwin qui est un open source.
Mac OS est un des principaux rivaux des Windows
Evolution des systèmes d'exploitation
OS/2:
• En 1987, IBM propose le PS/2, plus puissant que le PC avec un
nouveau système d'exploitation OS/2 (copropriété d'IBM et de
Microsoft).
• Multitâche.
• Il est renommé OS/2 Warp Server à partir de la version 3.
NetWare de Novell
• Le premier système d'exploitation réseau 32 bits pour PC.
• Il intègre un serveur de fichiers et d'impression.
Evolution des systèmes d'exploitation
Unix :
• Unix étant distribué gratuitement à ses tous débuts, il a donné naissance à de
nombreuses versions :
• Les versions les plus connues a ce jour sont Unix SYSTEM V (évolution de la
version initiale d'AT&T et Bell) et Unix BSD.
• Il fonctionne aussi bien sur PC que sur les mini-ordinateurs.
• Les principaux Unix du marché sur Intel sont :
• Open Server et Unixware de SCO (Santa Cruz Operation),
• Solaris (Sun Microsystems),
• BSD (Berkeley),
• Caldera OpenLinux.
• Trois Unix dominent le monde des serveurs :
HP/UX, Sun Solaris, IBM AIX.
Evolution des systèmes d'exploitation
Linux:
• a pris des parts de marché aux Unix, à Novell Netware et à Windows NT-
2000 serveur.
• Il s'est imposé dès la fin du 20ème siècle.
• Il est multi-utilisateurs, multi-tâches, stable et gratuit.
• Principales distributions de Linux : RedHat (la plus appréciée des
administrateurs de serveurs), MandrakeSoft (plus facile ou assistée pour
débutants), Suze (allemande), Debian, Caldera (devenue payante),
Turbolinux (plus connue en Asie).
Evolution des systèmes d'exploitation
Windows:
• Microsoft propose en 1992 Windows 3.10 et Windows pour Workgroups
3.11 dont les mots clés sont Multifenêtres et Multitâches coopératif.
• En 1993, on voit apparaître la première version de Windows NT 3.1 suivie
en 1994 par NT 3.5. L'année 1995, verra la sortie du fort célèbre Windows
95 ("Et soudain le monde devient plus beau").
• En 1996, Windows NT 4 avec deux versions station de travail et Serveur.
• Ensuite, Windows Terminal Server : un système qui simule un
environnement multi-utilisateurs et prend en charge la connexion de
plusieurs terminaux.
• En 1998 Windows 98.
• En 2000, Microsoft commercialise Windows 2000 professionnel et serveur,
Windows Millenium, suivi de Windows XP familial et serveur. Windows
2003 (initialement baptisé .NET) sort en 2003 et plus.
Interface du système d'exploitation

Interaction entre les systèmes d'exploitation et l'utilisateur se fait


généralement de deux manières:
• Linge de commande est destinée aux utilisateurs expérimentés

• Interface graphique forme de dialogue adaptée aux utilisateurs

(exemple l'affichage du contenu d'un répertoire, la création d'un répertoire,….)


Les versions des systèmes d'exploitation
Les taches des systèmes d'exploitation
Les tâches qui correspondent à la gestion de l’ordinateur:
 Gestion de la mémoire secondaire (Disque dur),

 Gestion de la Mémoire centrale,

 Gestion du Processeur

 Gestion des E/S.

 Gestion du Réseau

 Interface du système d'exploitation


Gestion de la mémoire secondaire
 Le disque dur est un support auxiliaire qui a pour objectif de
conserver de manière permanente les programmes exécutés en
mémoire centrale (celle-ci étant volatile).
 Les programmes sont stockés sous forme de fichiers sur le disque dur
et organisés en répertoires.
 La gestion de la mémoire secondaire inclut ainsi la gestion des fichiers
c'est pour cela que l'on parle de SGF : Système de Gestion des
Fichiers.
Gestion de la mémoire secondaire
 Système de fichiers doit offrir des primitives afin de créer, copier, lire,
supprimer… ces fichiers.

 Doit également gérer l'espace occupé par les fichiers ainsi que
l’espace libre.

 Doit prendre en charge le partage et la protection des fichiers dans un


environnement multi-utilisateurs
Gestion de la mémoire centrale
• La mémoire centrale est un espace de taille importante organisé en
mots (ensemble d'octets) et destiné à accueillir les données à traiter
par l'unité centrale.

• L'unité centrale charge les instructions à exécuter dans les registres


du processeur à partir d'adresses en mémoire centrale.

• Après exécution, les résultats sont placés en mémoire centrale


Gestion du processeur

La principale tâche du système d'exploitation concerne l'allocation du


processeur aux processus:
• Il s’agit de décider quel processus s’exécute à un moment donné, à quel moment
interrompre le processus, quel sera le suivant, et de quoi il a besoin comme
ressources pour son exécution.
• Le système d'exploitation doit gérer deux types de processus :
 Les siens
 Ceux des utilisateurs
Gestion des entrées/sorties

• L'existence d'entrées-sorties dans un programme introduit de


nombreux problèmes dus notamment à la différence de vitesse entre
les périphériques et l’unité centrale

• Le risque d'erreur de programmation qui peut entraîner le blocage de


l'unité centrale.
Gestion du réseau
L'interconnexion des machines par des réseaux locaux, constitue une
des majeures évolutions où ils offrent:
Un partage des fichiers utilisateurs,

 Une protection pour ces fichiers,

 L'identification des machines

L’identification utilisateurs connectés au réseau


Travaux Dirigés Série 1
1. Quels sont les composants de base d’un ordinateur? Préciser leurs tâches
2. Que fait le processeur quand il n y’a aucun programme à exécuter ?
3. Quel est la différence entre l’architecture Von Neumann et Harvard?
4. Quelle génération d'ordinateur a introduit les circuits intégrés?
5. Quel le rôle principal du traitement par lots?
6. Quel est l’avantage de la multiprogrammation ?
7. Quel est le rôle d’un système multiprocesseurs?
Travaux Dirigés Série 2
8. Quel est l’architecture matérielle et logicielle d'un ordinateur?
9. Quel est le rôle d’un système d’exploitation?
10. Quelles sont les deux principales fonctions d’un système d’exploitation ?
11. Quel est le principal inconvénient d’un système monotâche et monoutilsateur?
12. Quel es la différence entre l’architecture client serveur et peer to peer?
13. Quelles sont les taches principales d’un SE?
14. Quel est le rôle d’un API?
Interface de programmation

• Les appels système

• Les modes superviseur et utilisateur

• Exécution d'un appel système


Les appels système
• Un appel système ou syscall est une méthode utilisée par les programmes
d'application pour communiquer avec le noyau du système

• Les systèmes d'exploitation utilisent un appel système lorsqu'une


application ou un processus utilisateur a besoin de transmettre des
informations au matériel

• Un appel système est le lien entre le mode utilisateur (User Mode) et le


mode noyau (Kernel mode),
Les appels système
• Système d’exploitation propose des appels système pour chaque composant de
l'ordinateur.
• Les appels système sont l'interface proposée par le système d'exploitation pour
accéder aux différentes ressources de la machine..

• Les Appels Système sont classés en quatre catégories:


• Gestion des processus
• Gestion des fichiers
• Gestion des périphérique
• Gestion de l’informations & Communication
Les appels système
Contrôle des processus :
• Tous les processus d'un système informatique doivent être contrôlés
de manière à pouvoir être arrêtés ou contrôlés par d'autres processus
à tout moment.

• À cette fin, les appels système de cette catégorie surveillent, par


exemple, le lancement ou l'exécution ou l'arrêt/la fin des processus.
Les appels système
Gestion des fichiers :
Les appels système de ce type sont nécessaires aux programmes
d'application pour accéder aux opérations typiques des fichiers.

Ces méthodes de manipulation de fichiers comprennent entre autres


« create » (créer), « delete » (supprimer), « open » (ouvrir), « close »
(fermer), « write » (écrire) et « read » (lire).
Les appels système
Gestion des périphériques :
la catégorie « Gestion des périphériques » comprend tous les appels
système qui servent à demander ou à gérer les ressources matérielles
nécessaires, comme la puissance de calcul ou l'espace de stockage.
Les appels système
Gestion de l'information :

• Les processus sont liés à une grande quantité d'information, où la


rapidité et l'intégrité jouent un rôle important.

• Pour les échanger ou les demander, les programmes d'application


utilisent des appels système pour la gestion ou la maintenance des
informations.
Les appels système
Communication :
• Entre les processus : une interaction fluide entre le système
d'exploitation et les différents programmes d'application actifs n'est
garantie que si les différents processus sont bien coordonnés.

• Pour ce faire, la communication via des system calls correspondants


est indispensable.
Exemple d’appels système
• Faire appel au système d'exploitation pour créer un fichier sur le disque dur et cela via un appel
système comme createfile sous système d’exploitation Windows.

• Interdire au programme utilisateur d'effectuer lui–même la création pour les raisons suivantes:
• Il doit vérifier si l'utilisateur dispose du droit d'écriture dans le répertoire, autrement il
refusera de créer le fichier.
• Il doit également vérifier si un fichier du même nom n'existe pas déjà
• La création du fichier nécessite l'attribution de quelques secteurs du disque dur pour
l'enregistrement des données du fichier.
• L'utilisateur n'a aucune connaissance des zones libres du disque
Exemple d’appels système
• Faire appel au système d'exploitation pour créer un fichier sur le disque dur et cela via un appel
système comme createfile sous système d’exploitation Windows.

• Interdire au programme utilisateur d'effectuer lui–même la création pour les raisons suivantes:
• Il doit vérifier si l'utilisateur dispose du droit d'écriture dans le répertoire, autrement il
refusera de créer le fichier.
• Il doit également vérifier si un fichier du même nom n'existe pas déjà
• La création du fichier nécessite l'attribution de quelques secteurs du disque dur pour
l'enregistrement des données du fichier.
• L'utilisateur n'a aucune connaissance des zones libres du disque
Quelques exemples d'appels système Windows et Linux
Les modes superviseur et utilisateur
Afin de protéger l'exécution du S.E de celles des programmes
utilisateurs, les processeurs actuels proposent deux modes de
fonctionnement:

• Mode utilisateur

• Mode protégé ou superviseur (également appelé mode noyau)


Mode utilisateur
• Programmes utilisateurs sont exécutés

• Programme utilisateur qui perd le contrôle peut anéantir des


données d'un autre programme

• Certaines instructions sont interdites


Modes (Superviseur ou Protégé ou Noyau)
• Appels système s’exécutent

• Le processeur peut exécuter toutes les instructions

• Autorisant l'accès aux différentes ressources de la machine

• Mode protégé ou superviseur (également appelé mode noyau) est réservé à l'exécution des primitives

du système d'exploitation

• On n'autorisant l'accès aux différentes ressources de la machine qu'aux programmes s'exécutant en

mode protégé
Exécution d'un appel système
• Lorsqu'un programme effectue un appel système, son
exécution en mode utilisateur est interrompue et le
système prend le contrôle en mode superviseur
• Un appel système est exécuté en mode noyau même si le
programme ayant demandé son exécution est exécuté en
mode utilisateur
Modèles de systèmes d'exploitation
• Le système d'exploitation se présente sous la forme d'un ensemble
de primitives, chacune mettant en œuvre une partie du système
• Lorsqu'un utilisateur donne un ordre au système d'exploitation, ce
dernier doit appeler plusieurs primitives
• Trois principales manières d'organiser les primitives du système à
travers les différents types de systèmes d'exploitation
Modèles de systèmes d'exploitation

Les différents modèles de systèmes d'exploitation:


• Les systèmes monolithiques
• Les systèmes à micro-services
Les systèmes monolithiques
Une architecture monolithique est un modèle traditionnel de
programme de développement, conçu comme une unité unifiée
autonome
Avantages d'une architecture monolithique
• Déploiement facile : un seul fichier exécutable ou répertoire facilite le
déploiement.
• Développement : lorsqu'une application est conçue avec une seule base de code,
elle est plus facile à développer.
• Performances : dans une base de code et un dépôt centralisés, une API peut
souvent remplir la même fonction que celles assurées par de nombreuses API
avec les micro-services.
• Tests simplifiés : étant donné qu'une app monolithique est une unité centralisée,
les tests de bout en bout peuvent être effectués plus rapidement qu'avec une
application distribuée.
Débogage facile : comme l'ensemble du code est centralisé, il est plus facile de
suivre une demande et de trouver un ticket
Inconvénients d'une architecture monolithique
• Vitesse de développement plus lente : une app monolithique volumineuse
complexifie et ralentit le développement.
• Évolutivité : vous ne pouvez pas mettre à l'échelle des composants individuels.
• Fiabilité : si une erreur survient dans un module, elle peut affecter la disponibilité
de l'ensemble de l'app.
• Obstacle à l'adoption de la technologie : les changements apportés au
framework ou au langage affectent l'ensemble de l'app, ce qui les rend souvent
coûteux et chronophages.
• Manque de flexibilité : un monolithe est limité par les technologies déjà utilisées
en son sein.
• Déploiement : un changement mineur apporté à une app monolithique nécessite
le redéploiement de l'ensemble du monolithe.
Les systèmes Micro-services
Une architecture de micro-services, également appelée simplement micro-
services, est une méthode architecturale qui repose sur une série de services
déployables indépendamment
Avantage des systèmes Micro-services
• Agilité : promouvoir des méthodes de travail Agile avec de petites équipes qui déploient fréquemment.
• Évolutivité flexible : si un microservice atteint sa capacité de charge, de nouvelles instances de ce service peuvent être rapidement
déployées sur le cluster attenant afin de réduire la pression. Nous adoptons désormais une solution multilocataire et sans état avec des clients
répartis sur plusieurs instances. Nous pouvons prendre en charge des instances bien plus vastes.
• Déploiement continu : nos cycles de livraison sont désormais fréquents et plus rapides. Auparavant, nous réalisions des mises à jour une
fois par semaine. Maintenant, nous sommes passés à un rythme de deux ou trois fois par jour.

• Facilité d'administration et de test : les équipes peuvent tester de nouvelles fonctionnalités et revenir en arrière en cas de
problème. Cela facilite la mise à jour du code et accélère la commercialisation des nouvelles fonctionnalités. De plus, il est facile d'isoler et de corriger
les pannes ainsi que les bugs des services individuels.

• Déploiement indépendant : les microservices étant des unités individuelles, ils permettent de déployer indépendamment des
fonctionnalités individuelles de manière rapide et facile.

• Flexibilité technologique : les architectures de microservices permettent aux équipes de sélectionner les outils souhaités.
• Fiabilité élevée : vous pouvez déployer des changements pour un service spécifique, sans risquer de paralyser l'ensemble de l'app.
Équipes satisfaites : les équipes Atlassian qui travaillent avec des microservices sont beaucoup plus satisfaites, car elles sont plus
autonomes et peuvent créer et déployer elles-mêmes sans attendre l'approbation d'une pull request pendant des semaines.
Inconvénients des systèmes Micro-services
• Développement tentaculaire : les microservices ajoutent de la complexité par rapport à une
architecture monolithique, étant donné que vous avez plus de services dans un plus grand nombre
d'emplacements créés par plusieurs équipes. Si cette multiplication n'est pas bien gérée, elle freinera le
développement et dégradera les performances opérationnelles.
• Coûts d'infrastructure exponentiels : chaque nouveau microservice peut impliquer ses propres coûts
pour la suite de tests, les playbooks de déploiement, l'infrastructure d'hébergement, les outils de
surveillance, et bien plus encore.
• Frais organisationnels supplémentaires : les équipes doivent ajouter un autre niveau de
communication et de collaboration pour coordonner les mises à jour et les interfaces.
• Défis de débogage : chaque microservice possède son propre ensemble de journaux, ce qui complique le
débogage. De plus, un seul processus métier peut s'exécuter sur plusieurs machines, ce qui complique
encore le processus.
• Manque de standardisation : l'absence de plateforme commune peut entraîner une prolifération des
langages, des normes de journalisation et de la surveillance.
• Manque de responsabilité claire : lorsque de nouveaux services sont lancés, le nombre d'équipes
les exécutant augmente lui aussi. Au fil du temps, il devient difficile de connaître les services disponibles et
de savoir qui contacter pour obtenir de l'aide.
Introduction aux processus
 Un processus est l'entité créée par le système
d'exploitation pour l'exécution d'un programme.
 La gestion des processus consiste à décider quel
processus s’exécute à un moment donné,
 A quel moment interrompre le processus, quel sera le
suivant, et de quelles ressources il a besoin
 Pour son exécution. Le système d'exploitation manipule
deux types de processus :
• Exécution mode utilisateur
• Exécution mode Noyau

Etat des processus:

Elu: le processus est en cours d'exécution au niveau du processeur


Prêt: le processus est prêt et pourra s'exécuter dès qu'il sera
sélectionné par le système d'exploitation.
Bloqué: le processus est en attente ou bloqué car il attend des
données ou la libération d'une ressource afin de poursuivre son
exécution. Pendant ce temps le processeur est attribué à un autre
processus.
Terminé : le processus a terminé son exécution
Etat d’un processus
Un processus lors de sa création
La gestion des processus
Les fonctionnalités du système d’exploitation en matière de gestion de
processus sont:
• La création, suppression et interruption de processus
• L'ordonnancement des processus afin de décider d'un ordre d'exécution
équitable entre les
• Privilégiant les processus du système.
• La synchronisation entre les processus ainsi que la communication
• La gestion des conflits d'accès aux ressources partagées
• La protection des processus d'un utilisateur contre les actions d'un autre
utilisateur.
Ordonnancement de processus

 Ordonnancement est le fait d'ordonner des tâches à exécuter selon

certaines contraintes.

 Ordonnanceur désigne le composant du noyau du système

d'exploitation choisissant l'ordre d'exécution des processus sur les

processeurs d'un ordinateur


Ordonnancement de processus
L’ordonnancement de processus s’articule autour de 2 composantes :

• La file d’attente des processus : elle regroupe les descripteurs des


processus prêts. C’est à partir de cette file que l’ordonnanceur choisit
le processus à exécuter.
• L’algorithme d’ordonnancement à appliquer : il organise les
descripteurs de processus dans un ordre qui reflète la stratégie
appliquée.
Les différents types d’ordonnancement

 Ordonnanceur(Scheduleur)

 Dispatcheur
Les différents types d’ordonnancement

Ordonnanceur(Scheduleur) intègre deux types d’Ordonnanceurs:

• Ordonnanceur du processeur : c’est un Ordonnanceur court terme opère sur


une ensemble du processus présents en mémoire. Il s’occupe de la sélection
du processus qui aura le prochain cycle processeur, à partir de la file d’attente
des processus prêts
• Ordonnanceur de travail : ou Ordonnanceur long terme, utilisé en cas
d’insuffisance de mémoire, son rôle est de sélectionné le sous ensemble de
processus stockés sur un disque et qui vont être chargés en mémoire. Ensuite,
il retire périodiquement de la mémoire les processus qui sont restés assez
longtemps et les remplace par des processus qui sont sur le disque depuis
trop de temps.
Les différents types d’ordonnancement

Dispatcheur :

 Il s’occupe de l’allocation du processeur à un processus sélectionné par


l’Ordonnanceur du processeur.
Une fois alloué, le processeur doit réaliser les tâches suivantes :
 Commutation de contexte:
• Sauvegarder le contexte du processus qui doit relâcher le processeur
• Charger le contexte de celui qui aura le prochain cycle processeur.
Algorithmes d’ordonnancement

 Ordonnancement Premier Arrivé Premier Servi (FIFO:First In First Out)

 Ordonnancement du plus court d’abord (SJF: Shortest Job first)

 Ordonnanceur non préemptif SJF (sans réquisition)

 Ordonnanceur préemptif SJF (avec réquisition)

 Ordonnancement circulaire : Tourniquet (Round-Robin),circulaire à plusieurs


niveaux
Fonctionnement de l’ordonnaceur
L’ordonnancement FIFO : First In First Out

• La politique FIFO agit de la manière suivante : le premier processus

arrivé est le premier servi.

• Il n'y a aucun effort à faire de la part de l'ordonnanceur, il suffit

d'insérer le processus à la fin de la file


Exemple de l’ordonnancement avec FIFO
Processus Durée d’exécution

P1 3

P2 5

P3 2

P4 6

P5 4

• Temps de réponse TRM = (3+8+10+16+20)/5 = 57/5 = 11.4 ms


• Temps d'attente TAM = (3+8+10+16)/5 = 37/5 = 7.4 ms
Diagramme de Gantt
 Diagramme de Gantt est
utilisé en gestion de projet,
 L'un des outils les plus
efficaces pour représenter
visuellement l'état
d'avancement des différentes
activités (tâches) qui
constituent un projet.
Critère d’Ordonnanceur
 Pour calculer le temps de réponse moyen (TRM) d’exécution des processus on
utilise la formule suivante :

 TRI= TEMPS FIN D'EXÉCUTION - DATE D'ARRIVÉE


 TRM

 Pour calculer le temps de réponse moyen (TAM) d’exécution des processus on utilise la
formule suivante:

 TAI= TRI - TEMPS D'EXÉCUTION

 TAM
Exemple Algorithme (FIFO)(TRM)
 TRI= TEMPS FIN D'EXÉCUTION - DATE D'ARRIVÉE
Durée Date
Processus d’exécution d’arrivés
TRM
P1 7 0
P2 5 1
 TAI= TRI - TEMPS D'EXÉCUTION
P3 4 2
𝒏
 TAM 𝒊 𝟎 P4 8 3
7 5 4 8
P1 P2 P3 P4
0 7 12 16 24
2.TRM:
1.Diagramme de GANTT:
TRI= TEMPS FIN D'EXÉCUTION - DATE D'ARRIVÉE
TR(p1)=7-0=7 7+11+14+21
53
TR(p2)=12-1=11 TRM= = = 13,25
4 4
TR(p3)=16-2=14
TR(p4)=24-3=21
Exemple Algorithme (FIFO) (TAM)
 TRI= TEMPS FIN D'EXÉCUTION - DATE D'ARRIVÉE
Durée Date
Processus d’exécution d’arrivés
 TRM= ∑𝒏𝒊 𝟎 𝑻𝑹𝒊/𝒏
P1 7 0
 TAI= TRI - TEMPS D'EXÉCUTION
P2 5 1
 TAM= ∑𝒏𝒊 𝟎 𝑻𝑨𝒊/𝒏 P3 4 2
1.Diagramme de GANTT: P4 8 3
7 5 4 8
P1 P2 P3 P4
0 7 12 16 24
2.TAM:
 TAI= TRI - TEMPS D'EXÉCUTION

TA(p1)=7-7=0 0+6+10+13
29
TA(p2)=11-5=6 TAM= = = 7,25
4 4
TA(p3)=14-4=10
TA(p4)=21-8=13
Ordonnanceur SJF
• Dans un système à ordonnancement non préemptif ou sans réquisition le
système d’exploitation choisi le prochain processus à exécuter et lui alloue
le processeur jusqu’à ce qu’il se termine ou qu’il se bloque.

• Il n’y a pas de réquisition même si le processus s’exécuter pendant des


heures.

Voir le TD
Ordonnanceur non préemptif SJF (sans réquisition )
• Dans un système à ordonnancement non préemptif ou sans réquisition le
système d’exploitation choisi le prochain processus à exécuter et lui alloue
le processeur jusqu’à ce qu’il se termine ou qu’il se bloque.

• Il n’y a pas de réquisition même si le processus s’exécuter pendant des


heures.

Voir le TD
Ordonnanceur préemptif JSF(avec réquisition )
• Dans un schéma d’ordonnanceur préemptif ou avec réquisition le système
d’exploitation peut retirer à n’importe quel moment le processeur à un
processus même si ce dernier est en cours d’exécution.

• Au niveau des algorithmes d’ordonnancement préemptif lorsqu’un


processus est sélectionné, il s’exécute pendant un délai déterminé après
ce délai il est remplacé par un autre processus.
L’ordonnancement circulaire : le tourniquet (Round Robin)

• Le premier processus de la file est exécuté durant une période précise


fixée par le système, appelée quantum.
• Une fois le processeur alloué, ce processus s'exécute jusqu'à ce que
sa tranche de temps soit écoulée ou qu'il se bloque
• Il est alors interrompu et mis à la fin de la file d'attente
(fonctionnement circulaire).
• L'ordonnanceur retire le processus suivant et l'exécute lui aussi
durant la même période. Les processus sont placés dans la file selon
leur ordre d'arrivée
Exemple Algorithme le tourniquet (Round Robin)TAM Durée
 TRI= TEMPS FIN D'EXÉCUTION - DATE D'ARRIVÉE Processus d’exécution
1.Tracer diagramme de Gantt
 TRM= ∑𝒏𝒊 𝟎 𝑻𝑹𝒊/𝒏 2.Calculer TAM ou quantum=5
P1 12
 TAI= TRI - TEMPS D'EXÉCUTION

 TAM= ∑𝒏𝒊 𝟎 𝑻𝑨𝒊/𝒏


P2 8
1.Diagramme de GANTT:
P3 4
P1 P2 P3 P4 P5 P1 P2 P4 P1
0 5 10 14 19 24 29 32 37 39 P4 10
2.TAM:
P5 5
TR(p1)=0+(24-5)+(37-29)=27
TR(p2)=5+(29-10)=24 27+24+10+27+19
107
TR(p3)=10-0=10 TRM= = = 21,4
5 5
TR(p4)=14+(32-19)=27
TR(p5)=19-0=19
Gestion de
la mémoire
Description de la mémoire
La mémoire physique sur un système se divise en deux catégories :

la mémoire vive : composée de circuit intégrés, donc très rapide

la mémoire de masse : composée de supports magnétiques (disque

dur, bandes magnétiques...), beaucoup plus lente


Gestion de la mémoire
Mémoire virtuelle
Mémoire virtuelle (Exécution d’une défaut de page)
• Trappe au SE: page demandée pas en RAM Sauvegarder registres et
état du proc dans PCB
• Un autre proc peut maintenant gagner l ’UCT
• SE détermine si la page demandée est légale sinon: terminaison du
processus et trouve la position de la page sur disque dans le
descripteur de la page
• lire la page de disque dans un cadre de mémoire libre (supposons
qu`il y en a!)
Type de fragmentation
Gestion de la mémoire
Multiprogrammation
Programme relogeable
Les mécanismes de découpage de la mémoire

la segmentation : les programmes sont découpés en parcelles ayant des


longueurs variables appelées «segments».

la pagination: elle consiste à diviser la mémoire en blocs, et les


programmes en pages de longueur fixe.

une combinaison de segmentation et de pagination: certaines parties


de la mémoires sont segmentées, les autres sont paginées
Memory Manager Unit(MMU)
 Les processeurs disposent actuellement d'un
dispositif, le MMU "Memory Manager
Unit" qui permet de placer des processus en
mémoire sans nécessairement placer les
pages de processus dans des cadres de pages
contigus.

 On distingue les adresses logiques qui se


réfèrent aux pages de processus des adresses
physiques qui se réfèrent aux cadres de pages.
Pagination
Pagination
Algorithmes compteurs
• Garder un compteur pour les références de chaque page
• LFU (Least Frequently Used): remplace les pages avec le plus petit
compteur
• MFU (Most Frequently Used) remplace les pages bien usées pour
donner une chance aux nouvelles
• Ces algorithmes ont des implémentations couteuses et ne sont pas
beaucoup utilisés
Exemple de pagination
Exemple de segmentation
Exemple de segmentation
Système de Gestion de fichier(SGF)
Système de gestion de fichiers (SGF)
 SGF est la partie la plus visible d’un système d’exploitation qui se
charge de gérer le stockage et la manipulation de fichiers (sur une
unité de stockage : partition, disque, CD, disquette.
 SGF a pour principal rôle de gérer les fichiers et d’offrir les primitives
pour manipuler ces fichiers.
 La gestion de l’espace libre sur le disque dur
 La gestion des fichiers dans un environnement Multi-Utilisateurs
Deux types de partitionnement
• Primaire : On peut créer jusqu’à 4 partitions primaires sur un même
disque.
• Etendue est un moyen de diviser une partition primaire en sous-
partitions (une ou plusieurs partitions logiques qui se comportent
comme les partitions primaires, mais sont créées différemment (pas
de secteurs de démarrage))
Formatage
• Avant qu’un système de fichiers puisse créer et
gérer des fichiers sur une unité de stockage, son
unité doit être formatée selon les spécificités du
système de fichiers.
• Inspecte les secteurs, efface les données et crée
le répertoire racine du système de fichiers
• Il crée également un superbloc pour stocker les
informations nécessaires à assurer l’intégrité du
système de fichiers.
Le concept de fichier
• Un fichier est l’unité de stockage logique mise à la disposition des
utilisateurs pour l’enregistrement de leurs données : c’est l’unité
d’allocation
• Le SE établi la correspondance entre le fichier et le système binaire
utilisé lors du stockage de manière transparente pour les utilisateurs
• Dans un fichier on peut écrire du texte, des images, des calculs, des
programmes…
• chaque fichier a un ensemble d’attributs qui le décrivent(Nom,
Extension, Date et l’heure de sa création ou de sa dernière
modification, la taille, la protection).
La notion de répertoire
• Un répertoire est une entité crée pour l’organisation des fichiers.
• S.E a besoin d’une organisation afin de structurer ces fichiers et de
pouvoir y accéder rapidement(Cette organisation est réalisée au
moyen de répertoires également appelés catalogues ou directory)
• Un répertoire est lui-même un fichier puisqu’il est stocké sur le disque
et est destiné à contenir des fichiers.
• un répertoire est un fichier qui dispose d’une structure logique : il est
considéré comme un tableau qui contient une entrée par fichier.
Structures des répertoires
• Plate à un niveau : organisée en plusieurs répertoires mais chacun
d’eux ne peut contenir que des fichiers.
• Deux niveaux : chaque utilisateur dispose de son propre répertoire
dans lequel il peut conserver des fichiers et des répertoires.
• Arborescente : contient un nombre arbitraire de niveaux et chaque
répertoire peut contenir des fichiers et des sous répertoires.
Exemple de répertoire
Techniques d’allocation des blocs sur le disque

Allocation Contiguë

Allocation Chainée

Allocation Indexée
Exemple de système de fichier
 MS-DOS utilise la FAT (File Allocation Table) pour y conserver les chaînages
entre les blocs FAT 16 et FAT 32.
 Windows NT utilise la MFT (Master File Table) associé au système NTFS (New
Technology File System) .
 UNIX, GNU/Linux (ext3fs) utilisent le I-Node (Index node).

Vous aimerez peut-être aussi