Il peut être judicieux de se reporter au cours sur les systèmes d'exploitation de 1ère NSI, notamment pour les commandes.
Deux fois, dans une épreuve de type bac sur ce chapitre, des questions se rapportaient aussi à ce chapitre de 1ère.
Contrairement à ce que l'expérience utilisateur laisse penser, un microprocesseur ne peut exécuter qu'un seul processus à la fois. Y compris le système d'exploitation lui même.
Si le système d'exploitation laissait un processus se terminer pour passer au suivant, l'expérience utilisateur serait dégradé.
A copier dans le cahier.
N'importe quel système d'exploitation moderne comporte donc un ordonnanceur (scheduler) qui organise les processus afin qu'ils aient accès au microprocesseur dans un ordre bien déterminé et afin qu'un processus ne bloque pas le système par une présence trop importante. Le but est de donner l'illusion que les processus sont actifs simultanément.
Le quantum de temps est une unité de temps permettant de mesurer le temps attribué à un processus pour accéder au microprocesseur. Il est régulé par le système d'exploitation.
A copier dans le cahier.
Un processus peut être :
A copier dans le cahier.
Chaque processus possède un PID ( Process IDenditification ) qui correspond à son identifiant au niveau du système d'exploitation.
Le PPID est le Parent Process IDentification. Il permet de connaître le parent d'un processus (celui qui l'a lancé).
A faire dans le cahier.
Cet exercice est extrait d'un sujet de type bac.
Un processeur choisit à chaque cycle d’exécution le processus qui doit être exécuté. Le tableau ci-dessous donne pour trois processus P1, P2, P3 :
Le numéro de priorité est d’autant plus petit que la priorité est grande. On suppose qu’à chaque instant, c’est le processus qui a le plus petit numéro de priorité qui est exécuté, ce qui peut provoquer la suspension d’un autre processus, lequel reprendra lorsqu’il sera le plus prioritaire.
On considère deux processus : processus1 et processus2.
Imaginons qu'ils ont besoin chacun des deux mêmes ressources : ressource1 et ressource2.
Le système d'exploitation ne permet pas que deux processus distincts aient accès à la même ressource dans le même temps : un seul accès en lecture/écriture.
Il peut donc y avoir une problème d'interblocage:
La situation est complètement bloqué. Une fois arrivé à cette situation, il est difficile pour le système d'exploitation de s'en sortir. Une des solutions est de "tuer" les deux processus.
L'un des rôles d'un système d'exploitation est donc de prévenir ce genre de situation.
A faire dans le cahier.
Pour rappel:
Un processeur choisit à chaque cycle d’exécution le processus qui doit être exécuté. Le tableau ci-dessous donne pour trois processus P1, P2, P3 :
Le numéro de priorité est d’autant plus petit que la priorité est grande. On suppose qu’à chaque instant, c’est le processus qui a le plus petit numéro de priorité qui est exécuté, ce qui peut provoquer la suspension d’un autre processus, lequel reprendra lorsqu’il sera le plus prioritaire.
On suppose maintenant que les trois processus précédents s’exécutent et utilisent une ou plusieurs ressources parmi R1, R2 et R3.
Parmi les scénarios suivants, lequel provoque un interblocage ? Justifier.
A faire dans le cahier.
Expliquer succinctement les différences entre les logiciels libres et les logiciels propriétaires.
Expliquer le rôle d’un système d’exploitation.
On donne ci-dessous une arborescence de fichiers sur un système GNU/Linux (les noms encadrés représentent des répertoires, les noms non encadrés représentent des fichiers, / correspond à la racine du système de fichiers) :
Indiquer le chemin absolu du fichier rapport.odt
.
On suppose que le répertoire courant est elsa
. Indiquer le chemin relatif du fichier
photo_1.jpg
.
L'utilisatrice Elsa ouvre une console (aussi parfois appelé terminal), le répertoire courant étant toujours le
répertoire elsa
. On fournit ci-dessous un extrait du manuel de la commande UNIX cp
:
NOM
cp - copie un fichier
UTILISATION
cp fichier_source fichier_destination
Déterminer le contenu du répertoire documents
et du répertoire boulot
après
avoir exécuté la commande suivante dans la console :
cp documents/fiche.ods documents/boulot
Un système d’exploitation est multitâche (en anglais : multitasking) s’il permet d’exécuter, de façon apparemment simultanée, plusieurs programmes informatiques. GNU/Linux, comme tous les systèmes d’exploitation modernes, gère le multitâche.”
“Dans le cas de l’utilisation d’un monoprocesseur, la simultanéité apparente est le résultat de l’alternance rapide d’exécution des processus présents en mémoire.”
Source : Wikipédia, extraits de l’article consacré au Multitâche.
Dans la suite de l’exercice, on s’intéresse aux processus. On considère qu’un monoprocesseur est utilisé. On rappelle qu’un processus est un programme en cours d’exécution. Un processus est soit élu, soit bloqué, soit prêt.
Recopier et compléter le schéma ci-dessous avec les termes suivants:
élu, bloqué, prêt, élection, blocage, déblocage.
Donner l’exemple d’une situation qui contraint un processus à passer de l’état élu à l’état bloqué.
Dans les systèmes d’exploitation, l’ordonnanceur est le composant du noyau du système d’exploitation choisissant l’ordre d’exécution des processus sur le processeur d’un ordinateur.”
Source: Wikipédia, extrait de l’article consacré à l’ordonnancement.
L’ordonnanceur peut utiliser plusieurs types d’algorithmes pour gérer les processus.
L’algorithme d’ordonnancement par “ordre de soumission” est un algorithme de type FIFO (First In First Out), il utilise donc une file.
Nommer une structure de données linéaire de type LIFO (Last In First Out).
À chaque processus, on associe un instant d’arrivée (instant où le processus demande l’accès au processeur pour la première fois) et une durée d’exécution (durée d’accès au processeur nécessaire pour que le processus s’exécute entièrement).
Par exemple, l’exécution d’un processus P4 qui a un instant d’arrivée égal à 7 et une durée d’exécution égale à 2 peut être représentée par le schéma suivant :
L’ordonnanceur place les processus qui ont besoin d’un accès au processeur dans une file, en respectant leur ordre d’arrivée (le premier arrivé étant placé en tête de file). Dès qu’un processus a terminé son exécution, l’ordonnanceur donne l’accès au processus suivant dans la file.
Le tableau suivant présente les instants d’arrivées et les durées d’exécution de cinq processus :
5 processus | ||
---|---|---|
Processus | instant d’arrivée | durée d’exécution |
P1 | 0 | 3 |
P2 | 1 | 6 |
P3 | 4 | 4 |
P4 | 6 | 2 |
P5 | 7 | 1 |
Recopier et compléter le schéma ci-dessous avec les processus P1 à P5 en utilisant les informations présentes dans le tableau ci-dessus et l’algorithme d’ordonnancement “par ordre de soumission”.
On utilise maintenant un autre algorithme d’ordonnancement : l’algorithme d’ordonnancement “par tourniquet”. Dans cet algorithme, la durée d’exécution d’un processus ne peut pas dépasser une durée Q appelée quantum et fixée à l’avance. Si ce processus a besoin de plus de temps pour terminer son exécution, il doit retourner dans la file et attendre son tour pour poursuivre son exécution.
Par exemple, si un processus P1 a une durée d’exécution de 3 et que la valeur de Q a été fixée à 2, P1 s’exécutera pendant deux unités de temps avant de retourner à la fin de la file pour attendre son tour ; une fois à nouveau élu, il pourra terminer de s’exécuter pendant sa troisième et dernière unité de temps d’exécution.
Recopier et compléter le schéma ci-dessous, en utilisant l’algorithme d’ordonnancement “par tourniquet” et les mêmes données que pour la question 9, en supposant que le quantum Q est fixé 2.
On considère deux processus P1 et P2, et deux ressources R1 et R2.
Décrire une situation qui conduit les deux processus P1 et P2 en situation d’interblocage.
Cet exercice porte sur les systèmes d’exploitation, les commandes UNIX, les structures de données (de type LIFO et FIFO) et les processus.
“Linux ou GNU/Linux est une famille de systèmes d’exploitation open source de type Unix fondée sur le noyau Linux, créé en 1991 par Linus Torvalds. De nombreuses distributions Linux ont depuis vu le jour et constituent un important vecteur de popularisation du mouvement du logiciel libre.”
Source : Wikipédia, extrait de l’article consacré à GNU/Linux.
“Windows est au départ une interface graphique unifiée produite par Microsoft, qui est devenue ensuite une gamme de systèmes d’exploitation à part entière, principalement destinés aux ordinateurs compatibles PC. Windows est un système d’exploitation propriétaire.
Source : Wikipédia, extrait de l’article consacré à Windows.”