Vous êtes sur la page 1sur 25

Cours Partie I

Système d'exploitation
Introduction aux SEs

1 2

Ordinateur Architecture d’un ordinateur


Processeur
Formé de deux parties: Effectue des calculs à l’aide d’un nombre limité d’instructions
Logicielle Possède des registres permettant de stocker des nombres
Un registre: un emplacement de mémoire interne à un processeur
Matérielle
Mémoire
Son architecture: Permet de stocker des nombres dans des cases repérées par une adresse.
Peut être lue ou écrite par le processeur
Un ou plusieurs processeurs, Instructions du processeur sont lues dans la mémoire
Une mémoire principale, Périphériques d’entrée/sortie
Périphériques d’entrée: clavier, souris, microphone
Des horloges,
Périphériques sortie: imprimante, écran
Des disques, Périphériques d’entrée/sortie: lecteur cd , clé USB, écran tactile…
Bus
Des interfaces de connexion à des réseaux
Transfert de l'information au sein de l'ordinateur
Des périphériques d'entrées/sorties Une complexité évidente du matériel qui nécessite la réalisation d'une
machine virtuelle qui gère le matériel
Des bus
3 4
Logiciels Pourquoi un SE ?

Ils peuvent être classés en deux catégories :


Programmes d'application des utilisateurs
Machine virtuelle:

Programmes systèmes permettant le fonctionnement de l'ordinateur


Masquer les éléments fastidieux du matériel pour fournir une
interface simple à utiliser:
Le programme « système d'exploitation »:
Transformer par sa gestion des ressources matérielles, la machine
Programme fondamental des programmes systèmes physique en une machine virtuelle ayant une interface simple à utiliser

Contrôle et gère les ressources de l'ordinateur: Gestion des ressources:


Caractérisées par une complexité évidente Ordonner et contrôler l'allocation des processeurs, des mémoires
Fournit la base sur laquelle seront construits les programmes d'application entre les programmes qui les utilisent
Assister les programmes utilisateurs
Protéger les utilisateurs dans le cas d'usage partagé

5 6

Protection réalisée par SE Définition


Qu'est-ce qu'un système d'exploitation ?
● A quel niveau ?
– Le matériel
– partage équitable, bonne utilisation
– Les programmes
les accès, le privé

– Protection assistée par le matériel
– 2 niveaux d'exécutions
● mode utilisateur → Une interface entre l’utilisateur et le matériel pour l’exécution des
● mode privilégié (ou superviseur, etc ...)
programmes
→ Ensemble d’instructions et de programmes préparés à l’avance
constituant un système complexe permettant d’exploiter les capacités
du matériel.
7 8
Place d'un SE Services du SE

Services « visibles »
Interface utilisateur
Accès aux périphériques
Gestion des disques
Lancement des programmes
Services « cachés »
Partage du processeur
Partage de la mémoire
Gestion d'événements
Mécanismes de synchronisation entre les programmes

9 10

Les sous systèmes d'un SE Gestion des processus

Un processus:
Une instance de programme en train de s'exécuter
Représenté par un code et des données

Rôle du SE pour les processus:


(Ré)Activer un processus
Suspendre un processus
Tuer un processus
Contrôler l’exécution d’ un processus de manière optimale pour
le CPU

11 12
Gestion des processus : défis Gestion de la mémoire

Comment transférer l'exécution d'un processus à un


Mémoire vive (RAM: Random Access Memory)
autre ?
Peut être lue et modifiée.
Comment choisir l'ordre des processus à exécuter ? Permet de stocker des informations pendant tout le
temps de fonctionnement de l’ordinateur
Comment s'assurer que tous les processus vont pouvoir
Contient les données et les instructions des applications
s'exécuter ? en cours
Mémoire morte (ROM: Read Only-Memory)
Comment synchroniser les processus lorsqu'ils accèdent
Ne peut pas être modifiée
à une même ressource partagée ?
Non volatile
Caractérisée par un contenu fixé lors de sa
programmation
13 14

Gestion de la mémoire Gestion de la mémoire

Mémoire persistante
Stockée sur le disque dur Mémoire :
Organisée en fichiers et répertoires: Stocke le code et les données du processus pendant son
Fichier: suite d’octet identifiée par son nom
exécution
Répertoire: permet de classer les fichiers dans une hiérarchie Pas de perte de temps dans le re-calcul des calculs déjà
faits précédemment.
Rôle du SE:
Charger un processus en mémoire
Libérer la mémoire en fin d'exécution d'un processus
Allouer et libérer de la mémoire dynamiquement
demandée par les processus

15 16
Gestion de la mémoire : défis Gestion des fichiers

Fichier
Comment organiser les processus en mémoire ? Unité élémentaire de gestion des ressources.
Utilisé pour le stockage des données sur disque dur
Comment protéger les zones mémoires de et pour la gestion des entrées/sorties.
chaque processus ? Caractéristiques des fichiers: types, droits d'accès,
structure
Comment s'assurer qu'il y a assez de mémoire
Rôle du SE
pour un processus ? Création
Modification: lecture,écriture
Suppression

17 18

Gestion des autres composants Quelques exemples de systèmes d'exploitation

Gestion des E/S (clavier, souris, écran, ...) Unix, Linux


Gestion du réseau Windows 95, 98
Réseau local Windows NT, XP, 7
SE distribué
...
Gestion des comptes utilisateurs (groupes, …)
Dos
Gestion de l'alimentation
MacOS

19 20
Historique des SEs Historique des SEs

Tout SE dépend étroitement de l'architecture de l'ordinateur sur lequel il


fonctionne

21 22

Historique des SEs Historique des SEs


La 3ème génération (1965- 1980): les circuits intégrés et la
La 2ème génération (1955- 1965): les transistors et le traitement par lots
multiprogrammation
Le passage aux transistors rendait les ordinateurs plus fiables
Ils pouvaient être vendus à des utilisateurs: grandes compagnies, université ou Apparition du partage de temps, une variante de la multiprogrammation:
administrations. La capacité d'un système d'exécuter à la suite plusieurs activités sans l'intervention de
Un cout d'équipement élevé l'utilisateur

Réduction du temps grâce au traitement par lots (batch processing): Naissance du système MULTICS (MULTiplexed Information and Computing
Un enchaînement automatique d'une suite de commandes (processus) sur un ordinateur sans Service) pour ordinateur central:
intervention d'un opérateur. Un système d'exploitation en temps partagé
Utilisations principales: le calcul scientifique et l’ingénierie (équations différentielles). Apparition des mini-ordinateurs (DEC PDP1 en 1961, 4K mots de 18 bits, pour
Apparition des langages: un prix de 120 000 $).
FORTRAN (FORmula TRANslator): le plus ancien langages de programmation de haut niveau
K. Thompson écrivit une version simplifiée (mono- utilisateur) de MULTICS ; B.
Assembleur: un langage de bas niveau qui représente le langage machine sous une forme
Kernighan l'appela avec humour UNICS (Uniplexed Information and Computer
lisible par un humain
Service) ; ce nom allait devenir UNIX.
Apparition des systèmes d'exploitation (SE) :
D. Ritchie se joignit a K. Thompson pour réécrire UNIX en langage C ; ce
FMS (Fortran Monitor System)
23 système d'exploitation a été le plus porté sur toutes sortes de machine. 24
IBSYS (IBM 7094)
Historique des SEs Historique des SEs

La 4ème génération (1980 1990): les ordinateurs personnels La 5ème génération (1990- ????): les ordinateurs
Ils sont du au développement des circuits LSI (Large Scale personnels portables et de poche
Integration) contenant des centaines de transistors au cm2.
Miniaturisation des composants
Ils ont la même architecture que les mini-ordinateurs mais leur prix est
beaucoup moins élevé. Processeurs en parallèle

Il existe deux systèmes d'exploitation principaux : Nouvelles structures et représentations des données.
UNIX Très bon marché, ils sont capables de se connecter a des
MSDOS (Microsoft Inc.) : intègre petit a petit des concepts riches d'UNIX et de ordinateurs distants et performants.
MULTICS

Dans le milieu des années 80, on voit l' apparition de réseaux


d'ordinateurs individuels qui fonctionnent sous des systèmes
d'exploitation en réseau ou des systèmes d'exploitation distribués 25 26

Classe de systèmes Classe de systèmes

Selon les services rendus Selon leur architecture


Systèmes mono/multi-tâches:
Mono-tâche : ce système n’autorise l’allocation du processeur que pour une seule tâche Systèmes centralisés :
Multi-tâches : L'ensemble du système est entièrement présent sur la machine
Capacité du système à pouvoir exécuter plusieurs tâches « processus » simultanément considérée.
Exemple: effectuer une compilation et consulter le fichier source du programme correspondant. Les machines éventuellement reliées sont vues comme des entités
Cas d’UNIX et Windows 95 étrangères disposant elles aussi d'un système centralisé.
Systèmes mono/multi- utilisateurs: Le système ne gère que les ressources de la machine sur laquelle il
Mono-utilisateur : est présent.
Le système ne peut géré qu’un seul utilisateur
Exemple : UNIX, même si les applications réseaux (FTP, Mail ...) se
Cas de MS-DOS sont développées.
Multi-utilisateurs :
Capacité à pouvoir gérer un panel d'utilisateurs utilisant simultanément les mêmes ressources
matérielles
Cas d’UNIX
27 28
Classe de systèmes Classe de systèmes
Selon leur architecture Selon leur capacité à évoluer
Systèmes répartis : Systèmes fermés (ou propriétaires) :
Les différentes abstractions du système sont réparties sur un
ensemble (domaine) de machines (site). Une extensibilité réduite :
Le système d'exploitation réparti apparaît aux yeux de ses utilisateurs Quand on veut rajouter des fonctionnalités à un système fermé, il
comme une machine virtuelle, monoprocesseur même lorsque cela faut remettre en cause sa conception et refaire le système complet.
n'est pas le cas. Cas d’UNIX et MS-DOS
Ces systèmes :
Exploitent au mieux les capacités de parallélisme d'un domaine:
Systèmes ouverts :
Offrent des solutions aux problèmes de la résistance aux pannes. Une extensibilité accrue:
Possibilité de rajouter des fonctionnalités et des abstractions sans
avoir à repenser le système et même sans avoir à l'arrêter sur une
machine.

29 30

Conception d'un SE Sans réelle structure


Structuration hiérarchique mal définie
Plusieurs possibilités de conception pour un SE: Une entité peut faire appel aux services de toutes les couches
Sans réelle structure inférieures

En couches Restrictions limitées, peu de contrôles : pas de sécurité

à noyau Exemple : MS-DOS


Monolithique
Micronoyau

31 32
A couches A noyau
Structuration hiérarchique bien définie L'accès à la mémoire de l'ordinateur et aux ressources du
Une couche ne fait appel qu'au services de la couche directement processeur se font généralement selon deux modes :
inférieure Mode utilisateur (User Mode)
Bonne théorie générale, extensible Mode noyau (Kernel Mode)
Très peu efficace, trop d'intermédiaires:
Le noyau : espace mémoire protégé + ensemble de programmes qui
Pour faire un appel E/S (accès au forment la base minimale du SE

matériel), il est nécessaire de faire SE à noyau monolithique:


appel à toutes les couches. Tout est dans le noyau: système de fichiers, pilotes, etc
Chaque couche ajoute une Applications en mode utilisateur doivent demander des services au
surcharge à l’appel initial noyau à travers des appels système
Exemple : Linux

33 34

A noyau

SE à micronoyau:
Seulement le strict minimum: ordonnanceur + transferts de
messages entre les programmes
Système d'exploitation
Les drivers et les applications s'exécutent en mode utilisateur
UNIX
Système client-serveur:
Les fonctionnalités sont fournies par de petits serveurs indépendants
possédant souvent leur propre espace d’adressage à la demande du
client.

Portable et facilement maintenable


Cas de Mach, Minix

35 36
UNIX et Linux Le SGF de UNIX

UNIX est un système d’exploitation multi-tâche et multi-utilisateurs


Linux:
Un noyau de type Unix libre.
Créé par Linus Torvalds et un grand nombre de développeurs bénévoles
Code source disponible.
Interface utilisateur simple et puissante.
Système multitâche.
Une distribution linux (red hat, mandriva, debian, suze, gentoo, etc...) sont des
systèmes d'exploitation basés sur un noyau linux et proposant des applications.

37 38

Système de Gestion de Fichier Structure du système UNIX

39 40
Types de fichiers Accès aux fichiers

Types :
Ordinaires : ASCII ou binaires
Répertoires: contiennent des noms de fichiers et/ou de
catalogues
Spéciaux : associés aux périphériques(disques, imprimantes,..)

41 42

Compte utilisateur

Quelques commandes Unix

43 44
Commande cd Commande ls

45 46

Commande ls Droits d’accès

47 48
Opérations sur les répertoires Opérations sur les fichiers

49 50

Opérations sur les fichiers Autres commandes utiles

51 52
Autres commandes utiles Exercice
● A partir du répertoire « Home », créer l'arborescence ci-dessous
● Accéder au répertoire « Paul »
● Créer un fichier « File1 » dans le répertoire « Paul »
● Renommer le fichier « File1 » en « File2 » et supprimer « «File2»
● Renommez le nom du répertoire « collègues » en « travail »

53 54

Exercice
● Accéder au répertoire « Louise » à partir du répertoire « Home »
● Lister le contenu du répertoire « famille » en utilisant un chemin
relatif et absolu
● Supprimer le répertoire « famille » en une seule commande

Partie II
Gestion des processus

55 56
Interruption Niveaux des interruptions

Evénement externe provoquant l’arrêt du travail CPU en


cours en vue d’exécuter une autre tâche On distingue au moins 3 niveaux d'interruption :
L’exécution d’une routine d’interruption (ISR – Interrupt Service Interruptions externes : panne, intervention de l'opérateur, ....
Routine).
Déroutements: causés par une situation exceptionnelle ou une
Testée avant chaque nouvelle instruction erreur liée à l'instruction en cours d'exécution (division par 0…)
Causes: Appels système par exemple effectuer une opération d'entrée-
Interventions de l’opérateur, pannes, division par zéro, sortie comme recevoir un caractère tapé sur le clavier, afficher
dépassement capacité, violation accès mémoire, instruction non un caractère à l'écran, écrire un bloc de données sur disque.
conforme, instruction privilégiée hors mode système UNIX admet 6 niveaux d'interruption:
Interruption horloge, interruption disque, interruption console,
interruption d'un autre périphérique, appel système, autre
interruption

57 58

Interruption Déroulement des interruptions

1. Détection de l’IT (arrêt forcé de l’exécution en cours)


2. Sauvegarde d'état (registres)
3. Recherche l’adresse de la procédure à exécuter pour
traiter l’interruption:
L’adresse de la routine d’interruptions associée à ce type
d'interruption qui est stocké dans un vecteur d’interruption
4. Exécution programme correspondant à l’IT et terminaison
par instruction de retour d’IT
5. Rétablissement de l'état et reprise de l'exécution du
processus suspendu
Remarque: Lorsqu'une interruption survient, la décision de
59
suspendre ou pas un processus est déterminé par 60
l’ordonnanceur
Mode de fonctionnement CPU Appel système
Fonction appartenant au système d’exploitation :
Mode utilisateur appelée depuis un programme d’application de l’espace utilisateur via des
réservé aux applications bibliothèques spécialisées

pas d’accès à certaines parties du processeur dont l’exécution (le traitement) est effectuée dans l’espace noyau
dont le retour est effectué dans le programme appelant dans l’espace utilisateur
Mode système (mode noyau)
un moyen de communiquer directement avec le noyau de la machine
réservé au système d’exploitation et aux routines d’interruption
aucune restriction: toutes les instructions sont autorisées

61 62

Appel système Appel système

Les appels système: Déroulement


créent des processus Une fonction fait un appel système
gèrent la mémoire, effectuent des E/S,
Les paramètres sont mis dans des registres CPU
créent, utilisent et détruisent divers objets gérés par le SE (lire et écrire des
Le contrôle est donné au SE avec l'instruction TRAP (passage en
fichiers…)
mode noyau)
Exemple: nombre = read (fichier,nbOctets) => appel système READ
Le SE vérifie la validité des paramètres
En C, les appels système Unix sont directement dans le langage (fork(),
wait(), execl()…) ou dans des bibliothèques (signal.h, sys/shm.h, Le SE effectue le traitement demandé et inscrit le résultat dans un
sys/sem.h…) registre dédié.
Le SE rend la main à l'appelant avec l'instruction Return From Trap
(retour en mode utilisateur)

63 64
Processus Processus

Programme (statique)
Les processus, à quoi ça sert ?
Enregistrement d’une suite d’instructions, un
ensemble statique Ça sert à faire plusieurs activités en "même temps".

Processus (dynamique) Par exemple :


Un programme en cours d'exécution Faire travailler plusieurs utilisateurs sur la même machine.

Entité qui exécute les instructions d’un programme Chaque utilisateur a l'impression d'avoir la machine a lui tout seul
les unes après les autres Problème : Un processeur ne peut exécuter qu'une seule
Il est éphémère instruction a la fois.
Objectif : Partager un (ou plusieurs) processeur entre
différents programmes (les processus).

65 66

Processus Contexte d'exécution d'un processus

Lors de la création d’un processus, le noyau lui attribue un numéro


unique, nommé PID (processus identifier).
Un processus nécessite des ressources : CPU, mémoire…
Ce numéro permet de repérer le processus. ; on parle de contexte d’exécution du processus:
Chaque processus a un utilisateur propriétaire, qui est utilisé par le
système pour déterminer ses permissions d’accès aux fichiers. programme où lire les instructions
Chaque processus a ainsi un processus père, qui est celui qui l’a compteur d’instructions
lancé. Le numéro du processus père est noté PPID (parent PID).
contenu des registres du processeur
Un processus n’a qu’un seul père, mais peut lancer l’exécution de
plusieurs autres processus, nommés processus fils. pile (données temporaires)
A l’initialisation du système UNIX, un premier processus, nommé init,
est créé avec un PID=1.
section de variables globales …

init est l’ancêtre de tous les processus. Deux processus peuvent exécuter le même programme,
mais se distinguent par leur contexte

67 68
Processus Unix fork()

69 70

getpid() & getppid() exit() & wait()

Fournissent respectivement les numéros du processus


appelant et celui du processus Père wait provoque la suspension du processus appelant jusqu’à ce que l’un
des processus fils se termine
exit met fin au processus courant

71 72
fork() & execl() Processus & CPU

CPU:
Exec: une famille de primitives permettant le remplacement du processus
courant par un processus construit à partir de l’exécutable spécifié en Ressource qui sert à exécuter le code des processus
paramètre. Il n’y a pas création d’un nouveau processus, mais simplement une
mutation du processus Rôle du CPU:
execl : une primitive de la famille exec dans laquelle le nombre d’arguments du
processus lancé est connu (Ré)Activer un processus
Suspendre un processus
Tuer un processus
Contrôler l'exécution des processus d'une manière
optimale

73 74

Etat d'un processus Process Control Bloc

élu : en cours d'exécution Au moment où un processus sort de l’état exécution il est nécessaire de
Un processus élu peut être arrêté, sauvegarder les informations dynamiques qui représente son état , qu’il
même s'il peut poursuivre son faudra récupérer quand il retourne à cet état
exécution, si le SE décide d'allouer le
processeur à un autre processus
Il s’agit du contexte d’un processus géré par le SE et stocké dans le
PCB (Process Control Bloc)
Bloqué :
L’ensemble des PCB est stocké dans une table des processus et géré
Il attend un événement extérieur pour
pouvoir continuer (par exemple une par le SE:
ressource); lorsque la ressource est 1: Blocage (exp. Attente
d’entrée/sortie) Chaque ligne de la table comporte le PBC d’un processus
disponible, il passe à l'état "prêt")

Prêt /éligible : 2: Election d’un autre processus


(par l’ordonnanceur)
Processus dispose de toutes les
ressources dont il a besoin à l'exception 3: Election
de l'UC. 4: Déblocage (exp. fi n
Il est suspendu provisoirement pour d’entrée/sortie)
permettre l'exécution d'un autre
processus 75 76
Process Control Bloc Commutation de contexte

Le PCB est composé par: Consiste à mémoriser le PCB du processus courant et charger le PCB
n°processus (pid) du processus à élire
état du processus Permet au système d'exploitation de remplacer le processus élu par un
compteur d’instructions autre processus éligible
valeurs des registres de l’unité centrale
scheduling de l’UC : priorité du processus et autres paramètres
gestion mémoire : valeurs registres base et limite des adresses
mémoire, tables de pages ou segments
comptabilisation : temps processeur, temps réel utilisés...
état des E/S : liste fichiers ouverts, liste périphériques alloués...

77 78

Commande PS Ordonnancement des processus

Quand plusieurs processus sont dans l’état prêt, le système doit choisir lequel
exécuter
Rôle de l’ordonnanceur (scheduler), qui se fonde sur un algorithme
d’ordonnancement.
L’ordonnanceur est à la base de la multiprogrammation: le traitement de plusieurs
processus séquentiels entremêlés
Assignation du processeur à un processus en fonction de certains critères
Exécution du programme de la file dés qu’un emplacement se libère dans la
mémoire de l’ordinateur.
réalisée au niveau le plus bas du système et activée par des interruptions
d'horloge, de disque et de terminaux
Lorsque le système est multiutilisateur, multitâches, multiprocesseurs,
l’algorithme d’ordonnancement peut devenir très complexe.

79 80
Ordonnancement des processus Ordonnancement des processus

Le choix d’un algorithme d’ordonnancement dépend de Deux grandes catégories d’algorithmes d’ordonnancement:
l’utilisation que l’on souhaite faire de la machine et dépend de :
Algorithme préemptif
Equité : chaque processus doit pouvoir disposer de la ressource
processeur Algorithme non- préemptif
Efficacité : l’utilisation du processeur doit être maximale
Temps de réponse : il faut minimiser le temps de réponse pour les
utilisateurs interactifs
Temps d’exécution : il faut minimiser le temps d’exécution pris par
chaque travail exécuté en traitement par lots
Rendement : le nombre de travaux réalisés par unité de temps doit être
maximal.

81 82

Ordonnancement non préemptif FIFO ou PAPS

Les processus accèdent au processeur, chacun à leur tour, dans


Ordonnancement sans réquisition l'ordre d'arrivée, et monopolisent le processeur jusqu'a leur
Un processus s’exécute jusqu’à ce qu’il termine son exécution ou s’il se terminaison.
bloque (soit E/S, soit attente d’un autre processus)
Le processus ne sera jamais
suspendu par le SE

Transition de l’état élu vers


l’état prêt interdite Travaux courts pénalisés
Temps de réponse fonction de la charge du système → Stratégie
Selon les algorithmes:
indépendante du temps d'exécution des processus
PAPS (Premier Arrivé Premier Servi) ou FIFO (Fisrt In First Out).

Le plus court d’abord (SJF, Short Job First)

83 84
FIFO ou PAPS SJF

Ordonnancement «Plus court d’abord» :


Estimation de la durée de chaque processus en
attente
Exécuter le processus le plus court (le plus petit
temps d’exécution) jusqu'à la fin
Privation des travaux longs

85 86

SJF Ordonnancement préemptif

Ordonnancement avec réquisition


A chaque signal d’horloge, le SE reprend la main, décide si le processus courant a
consommé son quota de temps machine et alloue éventuellement le processeur à un
autre processus.
Transition de l’état élu vers l’état prêt est autorisée: un processus quitte le
processeur s’il a terminé son exécution, s’il se bloque ou si le processeur est
réquisitionné.
Il existe de nombreux algorithmes d’ordonnancement avec réquisition:
SRT (Short Remaining Time), Tourniquet (Round Robin), Tourniquet multi-niveaux,

87 88
SRT Tourniquet (Round Robin)

Version préemptive de SJF La liste des processus prêts est mémorisée dans une file du type FIFO
Les processus accèdent au processeur, chacun à leur tour, pour un temps
A chaque arrivée d'un nouveau processus, déterminé à l'avance (le quantum)
l'ordonnanceur compare le temps de traitement Un processus en attente d'une entrée-sortie sera placée dans une file des
bloqués
restant à celui du processus en cours de
traitement
Si temps inférieur, le processus en cours est
préempté

Priorité = Ordonnancement de la file


Cette méthode est préemptive, c'est-à-dire que le processeur est retiré à un
processus au bout d'un certain quantum.

89 90

92

Tourniquet multi-niveaux Files multi-niveaux

Avant d'accéder au processeur, les processus sont rangés dans les files ● Types de files
correspondant à leur niveau de priorité. Un processus ne peut accéder au
processeur que s'il n'existe plus de processus dans les files de plus haute – Simples
priorité
● Pas de liens entre files
● Problème de famine (Starvation)
– Avec liens
● Définir un critère de passage d’une file à une autre
– Unidirectionnel
– Bidirectionnel
Amélioration du tourniquet simple
Priorité = 1 priorité différente par niveau

91
93

Exemple files multi-niveaux avec liens Application 1

Processus Date d'arrivée Temps de traitement


A 0 3
● Trois files
B 1,001 6
– Q0 – Tourniquet avec temps quantum 8 millisecondes
C 4,001 4
– Q1 – Tourniquet avec temps quantum 16 millisecondes
D 6,001 2
– Q2 – FCFS
1- Dessiner le schéma illustrant l'exécution des processus selon les algorithmes
● Ordonnancement
a) FIFO
– Un nouveau processus entre la file Q0 et il est servi selon son ordre d'arrivé b) SJF (Short Job First)
● Dans CPU, il est exécuté pendant 8 millisecondes
d) Tourniquet (quantum=2)
e) Tourniquet (quantum=1)
● S'il n'est pas encore fini, il est déplacé vers la file Q1
– Dans file Q1 il est servi selon son ordre d'arrivé 2- Quel est le temps moyen de séjour (rotation) (arrondi au centième) pour chaque cas?
● Il est exécuté pendant 16 millisecondes (Temps séjour= temps d'achèvement - temps d'arrivée)
● S'il n'est pas encore fini, il est déplacé vers la file Q2
3- Quel est le temps d'attente de chaque processus pour les différents cas ?
(temps attente = temps séjour - temps exécution)

4- Quel est le débit pour les différents cas ? (temps global/ nombre de processus)
94

Application 2 Application 3

Processus Date d'arrivée Cycle Priorité Soient trois processus A, B et C. Le processus A arrive en premier, suivi de B (20
A 0 4 3 msec après), puis C (46 msec après A).
B 1,001 3 4 On suppose que :
C 2,001 3 6 − L'exécution du processus A nécessite 80 msec de temps CPU
D 3,001 5 5 − L'exécution du processus B nécessite d'abord 50 msec de temps CPU
bloquera ensuite durant 20 msec pour une entrée/sortie, puis exigera
finalement 30 msec de temps CPU.
1- Dessiner le schéma illustrant l'exécution des processus selon les algorithmes
− L'exécution du processus C nécessite 40 msec de temps CPU.
(Nombre de priorité élevé correspond à une priorité plus importante)
a) Préemptif − Le temps de commutation (changement de contexte) est de 1 msec.
b) Non Préemptif Pour Tourniquet avec quantum de 30 msec, calculer :
− Le temps de séjour de chaque processus
2- Quel est le temps de séjour (rotation) pour chaque processus dans les différents cas ?
(Temps séjour= temps d'achèvement - temps d'arrivée) − Le temps de séjour moyen

3- Quel est le débit pour les différents cas ?


95 96
Application 3 : Corrigé Application 3 : Corrigé

97 98

Application 4 Application 4

On considère un système mono-processeur avec l'ensemble des processus suivants : 3. Supposons que le temps de commutation est de 1 unité,
compléter le tableau suivant:
Processus Date Durée Priorité
d'arrivée d'exécution
FIFO SRT Tourniquet
A 0 6 3
Temps de séjour moyen
B 4 7 4
C 8 2 6
D 10 3 5 4. En considérant la priorité des processus et un temps de
E 12 2 1 commutation de 1 unité, dessiner le schéma illustrant l'exécution
1. Dessiner le schéma illustrant l'exécution des processus selon les algorithmes suivants en des processus selon les algorithmes suivants : (A noter qu'un
ignorant la priorité et en supposant un temps de commutation négligeable : nombre élevé correspond à une priorité importante)
FIFO Préemptif
SRT (Short Remaining Time)
Tourniquet (quantum=2) Non préemptif
2. déterminer le temps de séjour de chaque processus et le temps de séjour moyen :

99 100

Vous aimerez peut-être aussi