Vous êtes sur la page 1sur 14

Licence III Cybersécurité

Programmation Système
Groupe n°14

ALGORITHME D’ORDONNANCEMENT SJF (SHORT JOB

FIRST)

Réalisé par : YACINE HASSAN YACINE

Encadré par : Mr BRAHIM ISSA HASSABALLAH

Année universitaire :2022-2023


SOMMAIRE

Introduction

1 - Aperçu sur le système d’exploitation

2 - Le processus

3 - Ordonnancement

4 - Les différents algorithmes d’ordonnancement

5 - Algorithme le plus court job le premier(SJF)

6 - Les avantages

7 - Les inconvénients

8 - Quelques exemples

9 - Exécution du code

Conclusion

1
Introduction

Dans le système d’exploitation l’accès aux ressources est contrôlé et or-


ganisé de manière a ce que cela ne perturbe pas le fonctionnement et aussi la
performance de la machine. Pour cela nous avons quelques algorithmes qui per-
mettent d’organiser l’accès aux ressources d’exécuter les taches selon un certains
nombres des critères . Parmi ces algorithmes, nous avons le plus court job le pre-
mier (sjf) qui signifie en anglais shortest job first. ce dernier permet d’allouer le
processeur au processus qui a le plus court d’exécution en premier.

2
1 - Aperçu sur le système d’exploitation

le système d’exploitation est le logiciel qui prend en charge les fonction-


nalités élémentaires du matériel et qui propose une plate-forme plus efficace en vue
de l’exécution des programmes. Il gère les ressources matérielles, offre des services
pour accéder à ces ressources et crée des éléments abstraits de niveau supérieur,
tels que des fichiers, des répertoires et des processus. Un système d’exploitation
(SE) est présent au cœur de l’ordinateur coordonnant les tâches essentielles à la
bonne marche du matériel. C’est du système d’exploitation que dépend la qualité
de la gestion des ressources (processeur, mémoire, périphériques) et la convivialité
de l’utilisation d’un ordinateur.
Un SE résout les problèmes relatifs à l’exploitation de l’ordinateur en
garantissant :
— Une gestion efficace, fiable et conomique des ressources physiques de
lordinateur (notamment les ressources critiques telles que processeur,
mémoire...) : il ordonne et contrôle l’allocation des processeurs, des
mémoires, des icônes et fenêtres, des périphériques, des réseaux entre
les programmes qui les utilisent. Il assiste les programmes utilisateurs.
Il protège les utilisateurs dans le cas d’usage partagé ;
— Il propose l’utilisateur une abstraction plus simple et plus agrable
que le matriel : une machine virtuelle permettant l’interaction avec
les utilisateurs en leur presentant une machine plus simple a exploiter
que la machine reelle.

2 - Le processus

Un processus est l’entité dynamique représentant l’exécution d’un pro-


gramme sur un processeur. chaque processus est caractérisé par : un identifiant, es-
pace d’adressage, un état, un contexte,une priorité etc.Plusieurs processus peuvent
se trouver simultanément en cours d’exécution (multiprogrammation et temps
partagé), si un système informatique ne comporte qu’un seul processeur, alors, à
un instant donné, un seul processus aura accès à ce processeur. En conséquence,
un programme en exécution peut avoir plusieurs états.
Ces états peuvent être résumés comme suit :
— Nouveau : création d’un processus dans le système.
— Prêt : le processus est placé dans la file d’attente des processus prêts,
en attente d’affectation du processeur.
— En exécution : Le processus est en cours d’exécution.
— Bloqué : Le processus attend qu ’un événement se produise, comme
l’achèvement d’une opération d’E/S ou la réception d’un signal.
— Fin : terminaison de l’exécution

3
3- Ordonnancement

L’ordonnancement est effectué par un programme qui s’occupe de choi-


sir selon la politique le processus parmi les processus prêts pour lui affecter le
processeur.

Cet ordonnancement s’effectue selon un certains nombres des critères


qui :
— Utilisation du processeur : Un bon algorithme d’ordonnancement sera
celui qui maintiendra le processeur aussi occupe que possible.
— Capacité de traitement : C’est le nombre de processus terminés par
unité de temps.
— Temps d’attente : C’est le temps passé à attendre dans la file d’attente
des processus prêts.
— Temps de réponse : C’est le temps passé depuis l’admission (état prêt)
jusqu’à la terminaison (état fin).

4 - Les différents algorithmes d’ordonnancement

Nous avons quelques algorithmes d’ordonnancement qui sont :


— FIFO :cet algorithme traite les processus dans l’ordre de leur soumis-
sion (date d’arrivée) sans aucune considération de leur temps d’exé-
cution. L’organisation de la file d’attente des processus prêts est donc
tout simplement du “First In First Out”.L’algorithme FIFO consiste
à choisir à un instant donné, le processus qui est depuis le plus long-
temps dans la file d’attente, ce qui revient à choisir celui disposant du
temps d’arrivée minimal et l’exécuter pendant un temps d’exécution
bien définit. Ce procédé est répété jusqu’à épuisement des processus
dans la file d’attente.
— Le Round Robin (RR) : décrit une stratégie dite du Tourquinet où
on procède à un recyclage des processus sur le processeur tant que
ceux-ci ne se sont pas terminés . Lorsqu’un processus est élu, on lui
attribue une tranche de temps fixe, appelé quantum, pendant laquelle
il s’exécute. Au bout de ce temps, on ne poursuit plus l’exécution du
processus, on lui retire donc le processeur et on le réinsère dans la
file des processus prêts. Là, il devra attendre sa prochaine élection.
Ainsi, le processus se voit attribuer successivement plusieurs tranches
de temps avant d’atteindre sa terminaison.
— SRTF : Shortest Remaining Time First, SRTF choisit le processus
dont le temps d’exécution restant est le plus court. On procède comme
dans le cas de la stratégie du tourquinet à l’attribution d’un quan-

4
tum fixe au delà duquel on cherche à élire le processus le plus court
en terme de temps d’exécution restant pour atteindre sa terminai-
son. Le SRTF est une généralisation sans réquisition de l’algorithme
SJF.L’algorithme choisit la tâche pour laquelle le temps d’exécution
est minimal et l’affecte au processeur pendant un quantum temps Q.
Le passage d’un processus à un autre se fait en fonction du temps
d’exécution restant associé au processus se trouvant dans la file d’at-
tente.

5 - L’algorithme short job first(sjf)

SJF est l’acronyme de Shortest Job First (« plus court processus en


premier »). Il désigne une méthode d’ordonnancement des processus.Il s’agit d’un
algorithme d’ordonnancement, c’est-à-dire d’un algorithme servant à choisir lequel
de plusieurs processus sera traité en premier par le processeur. Le choix se fait
en fonction du temps d’exécution estimé du processus. Ainsi, l’ordonnanceur va
laisser passer d’abord le plus court des processus de la file d’attente.

6 - Les avantages

Les principaux avantages de l’algorithme short job first sont :


— Les emplois les plus courts sont privilégiés.
— Il est probablement optimal, en ce sens qu’il donne le temps d’attente
moyen minimum pour un ensemble de processus donné

7 - Les inconvénients

Cet algorithme a aussi ces désavantages qui sont entre autres :


— SJF peut provoquer la famine si des processus plus courts continuent
à arriver. Ce problème est résolu par le vieillissement.
— Il ne peut pas être implémenté au niveau de la planification CPU à
court terme.

8 - Quelques exemples

Exemple 1

5
nom du processus temps d’arrivée temps d’exécution
p1 0 2
p2 1 3
p3 2 4
p4 3 5

p1 p2 p3 p4

Exemple 2

6
nom du processus temps d’arrivée temps d’exécution
p1 1 2
p2 2 3
p3 3 4
p4 4 5

p1 p2 p3 p4

Exemple 3

nom du processus temps d’arrivée temps d’exécution


p1 5 2
p2 2 3
p3 4 5
p4 0 5

p4 p2 p1 p3

Exemple 4

nom du processus temps d’arrivée temps d’exécution


p1 3 2
p2 0 3
p3 4 5
p4 6 5

7
p2 p1 p3 p4

Exemple 5

nom du processus temps d’arrivée temps d’exécution


p1 3 2
p2 1 4
p3 4 3
p4 6 5

p2 p1 p3 p4

Exemple 6

nom du processus temps d’arrivée temps d’exécution


p1 6 2
p2 0 3
p3 4 5
p4 6 5

p2 p3 p1 p4

Exemple 7

nom du processus temps d’arrivée temps d’exécution


p1 0 2
p2 5 3
p3 3 5
p4 6 5

8
p1 p3 p2 p4

Exemple 8

nom du processus temps d’arrivée temps d’exécution


p1 1 2
p2 3 3
p3 2 5
p4 6 5

p1 p3 p2 p4

Exemple 9

nom du processus temps d’arrivée temps d’exécution


p1 4 2
p2 3 3
p3 2 5
p4 1 5

p4 p3 p2 p1

Exemple 10

nom du processus temps d’arrivée temps d’exécution


p1 0 2
p2 0 3
p3 4 5
p4 6 5

9
p1 p2 p3 p4

Exemple 11

nom du processus temps d’arrivée temps d’exécution


p1 3 2
p2 0 3
p3 4 5
p4 0 5

p2 p4 p1 p3

Exemple 12

nom du processus temps d’arrivée temps d’exécution


p1 3 2
p2 0 3
p3 0 5
p4 6 5

p2 p3 p1 p4

Exemple 13

nom du processus temps d’arrivée temps d’exécution


p1 3 2
p2 0 3
p3 1 5
p4 6 5

10
p2 p3 p1 p4

Exemple 14

nom du processus temps d’arrivée temps d’exécution


p1 1 2
p2 0 3
p3 4 5
p4 2 5

p2 p1 p4 p3

Exemple 15

nom du processus temps d’arrivée temps d’exécution


p1 2 2
p2 1 3
p3 4 5
p4 6 5

p2 p1 p3 p4

11
9 - Exécution du code

L’exécution du code sera effectuée en langage C .

12
Conclusion

Pour mettre terme à notre travail ,l’algorithme d’ordonnancement le plus court


job d’abord est un algorithme non-préemptif c’est-à-dire lorsqu’un processus
commence son exécution , il termine avant de libérer le processeur . Et cela
favorise le job les plus courts jobs. Par contre les jobs les plus longs auront une
longue durée d’attente seront pénalisés .

Bibliographie

- Cours de programmation système


- Cours de système d’exploitation

Webographie

- www.OpenClassron.fr
- www.Technologpro.fr

13

Vous aimerez peut-être aussi