doc

publicité
Cours 14 : Les Processus
Q14.1 : Nommez quatre éléments contenus dans le Process Control Block (PCB)?
Voir l’acétate 9 du cours 14 : PID, pointeurs sur des processus parents ou enfants, program counter, registres,
pointeurs de mémoire, info pour l’ordonnancement des processus (priorité), pointeurs sur des ressources utilisés,
statistiques sur le PCB
Q14.2 : Décrivez ce qu’est un quanta (quantum au pluriel) dans le cadre de systèmes
d’exploitation multitâches?
Un intervalle de temps pendant lequel s’exécute un processus unique.
Q14.3 : Supposons la table de processus ci-dessus ou chaque processus de la table a été
admis en mémoire :
Processus
État
P1
P2
P3
P4
P5
Prêt
Prêt
En attente d’E/S
En cours
Prêt
Priorité au
besoin
1
3
2
2
2
# quantum restant
2
3
5
1
6
Supposons qu’aucun processus ne s’ajoute en mémoire que P3 demeure en attente d’E/S
éternellement. Dites quels seront les processus exécutés lors des trois prochains quantum
en fonction de l’algorithme d’ordonnancement:
a) Tourniquet (Round Robin)
P4 est en cours, donc ce sera :
Processus
Quantum
P5
0
P1
1
P2
2
P4
3
P5
4
P1
5
P2
6
P5
7
P2
8
P5
9
P5
10
P5
11
X
12
X
13
P5
9
P5
10
P5
11
X
12
X
13
b) Plus court d’abord (Shortest First)
P4 est le plus court, il finira au prochain quanta. Ensuite P1 est le plus court :
Processus
Quantum
P4
0
P1
1
P1
2
P2
3
P2
4
P2
5
P5
6
P5
7
P5
8
c) Priorité avec tourniquet (Le plus bas est le plus prioritaire. Les processus de même
priorité sont exécutés en tourniquet)
P1 est le plus prioritaire. Ensuite, c’est P4 et P5. Comme P4 est en cours, P5 sera exécuté le prochain dans le
tourniquer :
Processus
Quantum
P1
0
P1
1
P5
2
P4
3
P5
4
P5
5
P5
6
P5
7
P5
8
P2
9
P2
10
P2
11
X
12
X
13
d) Premier arrivé, premier servi (First-in, First-out; On assume que les processus sont
arrivés de P1 à P5 dans l’ordre)
P1 est le premier arrivé, mais il ne dure que 2 quantum.
Processus
Quantum
P1
0
P1
1
P2
2
P2
3
P2
4
P4
5
P5
6
P5
7
P5
8
P5
9
P5
10
P5
11
X
12
X
13
Pour chacun des quatre algos précédents :
- …dites quel processus sera terminé en premier?
a) P4
b) P4
c) P1
d) P1
- …quel sera le temps moyen (en quantum) avant de commencer l’exécution de chacun de
ces processus si on ne compte pas le processus 3?
Quanta
Algorithme
Round Robin
Shortest First
Priorité
FIFO
P1
1
1
0
0
P2
2
3
9
2
P4
3
0
3
5
P5
0
6
2
6
Moyenne
1.5
2.5
3.5
3.25
- …quel sera le temps moyen (en quantum) avant la fin de chacun de ces processus si on ne
compte pas le processus 3?
Quanta
Algorithme
Round Robin
Shortest First
Priorité
FIFO
P1
5
3
1
1
P2
8
6
3
4
P4
3
0
8
5
P5
11
11
11
11
Moyenne
6.75
5
5.25
5.25
Q14.4 : Nommez quatre objectifs des algorithmes d’ordonnancement de processus?
Voir l’acétate 14 du cours 14
Q14.5 : Qu’est-ce que la famine (starvation) pour un processus? Ce phénomène peut-il
survenir si la méthode d’ordonnancement des processus est : le Round-robin? Shortest
first? Priorité?
Starvation = Processus prêt qui n’est jamais exécuté
Round-Robin : Starvation impossible
Shortest first : Starvation possible
Priorité: Starvation possible à moins que les priorités soient dynamiques et qu’elles soient modifiées afin de
prévenir la starvation (exemple: la priorité d’un processus est augmentée à chaque intervalle de temps pendant
lequel le processus n’est pas exécuté).
Q14.6 : Décrivez la relation entre un programme, un processus et un thread.
Un processus est un programme chargé en mémoire. Un thread est une partie d’un processus exécuté
parallèlement qui partage (avec son program counter, sa pile et ses registres), avec les autres threads, les
ressources du processus.
Q14.7 : Dans un contexte de gestion du prochain processus à être exécuté, que signifie le
mot “préemption”?
Il signifie interrompre le processus en cours pour exécuter le système d’exploitation, afin, éventuellement, de
changer le processus en cours.
Q14.8 : Dans les systèmes d’exploitation modernes, le temps est divisé en quantum. Entre
chaque quantum, l’interruption du système d’exploitation (une interruption périodique
générée par une horloge) décide quel sera le prochain processus à être exécuté. Quelles
sont les tâches minimales effectuées dans l’interruption du système d’exploitation?
-
Sauvegarder le contexte du processus en cours d’exécution (registres, compteur de programme (PC,
CS :IP), pointeur de pile, état du processus, etc.).
Déterminer quel est le prochain processus à être exécuté
Charge le contexte du prochain processus à être exécuté
Lancer le prochain processus à être exécuté
Q14.9 : Quand un processus devient-il bloqué? Quand sort-il de cet état?
Un processus devient bloqué lorsqu’il accède à un périphérique ou lorsqu’il attend un délai imposé par le
programmeur.
Le processus sort de l’état bloqué lorsqu’une interruption se produit. Soit l’interruption du périphérique indique
que le périphérique a produit le résultat demandé, soit une interruption d’horloge (habituellement celle du
système d’exploitation) indique que le délai d’attente est terminé.
Q14.10 : Pourquoi le système d’exploitation a-t-il besoin de l’état “En cours d’exécution”?
Combien de processus peuvent être dans cet état simultanément?
L’état en cours sert à indiquer quel processus était exécuté lors du dernier quantum. Cet état sert afin de
déterminer quel processus est exécuté par le microprocesseur et un seul processus est dans cet état (avec un seul
cœur).
Q14.11 : Quand un processus devient-il en attente? Quand sort-il de cet état?
Un processus devient en attente lorsqu’il appelle une fonction du système d’exploitation pour dormir (exemple :
thread.sleep(1);). Un processus en attente n’est plus exécuté par le système d’exploitation jusqu’à que l’attente
soit terminée. Lors de l’interruption du système d’exploitation, qui survient à une fréquence prédéfinie, le
système d’exploitation évalue si un processus à terminer son attente.
Q14.13 : Quel périphérique produit habituellement l’interruption du système d’exploitation
déterminant le prochain processus à exécuter?
Une horloge ou une minuterie (timer) basée sur l’horloge du microprocesseur.
Q14.14 : Quelles sont les principales tâches effectuées dans l’interruption du système
d’exploitation?
- Sauvegarder l’information nécessaire à la reprise ultérieure du processus en cours d’exécution.
- Gérer le temps et les processus en attente.
- Déterminer quel sera le prochain processus à exécuter et gérer l’état des processus.
- Recharger les informations nécessaires à l’exécution du prochain processus à exécuter, puis l’exécuter.
Cours 15 : Gestion de la mémoire
Q15.1 : Décrivez , pour l’allocation contiguë de mémoire avec partitions à taille variables
pour placer des processus en mémoire , comment le MMU fait la translation entre l’adresse
logique d’une instruction d’un programme son adresse physique en mémoire.
Le MMU contient une table qui dit où commence chaque processus en mémoire. Pour faire la translation entre
une adresse de programme et une adresse de mémoire, il suffit d’additionner l’adresse du début du processus à
l’adresse du programme.
Q15.2 :Qu’est-ce que le TLB?
Table Look-Aside Buffer. Il s’agit d’une table qui fait la correspondance entre les pages d’un programme et les
frames de la mémoire, comme une table de pages. Le TLB est toutefois plus petit, plus rapide d’accès, le TLB
n’est pas en mémoire, et il ne contient que des références vers les plus récentes pages de mémoires utilisées.
Q15.3 : Supposons une mémoire de 2NKo avec des pages de 2MKo et des programmes ayant
une taille max de 2OKo? Supposons qu’une adresse de mémoire contienne 1 octet.
Supposons enfin que le SE utilise une table de page par programme afin de déterminer ou
chaque partie du programme se retrouvera en mémoire.
a) Quelle sera la taille minimum, en bits, de la table de pages pour un programme?
La taille de la table de page en nombre de bit = nombre de pages par programme * nombre de bits pour identifier
la page correspondante en mémoire.
- Il y a 2O/2M pages par programme.
- Il y aura 2N/2M pages de mémoire. Le nombre de bits pour identifier une page de la mémoire
est donc N-M. Exemple : Pour une mémoire de 8Ko avec des pages de 1Ko (N=3 et M=0), il
faudra 3 bits (0 à 7) pour identifier les 8 pages possibles.
Réponse : 2O/2M * (N-M)
b) Les adresses logiques à l’intérieur du programme seront sur combien de bits? Les
adresses physiques, à l’intérieur de la mémoire seront sur combien de bits?
Un programme fait 2OKo et il y a 1 octet par adresse.
Réponse : O + 10 (1Ko = 2^10)
c) Combien de bits constitueront le champ offset de l’adresse logique?
Les pages font 2MKo et il y a 1 octet par adresse
Réponse : M + 10 (1Ko = 2^10)
Q15.4 : Supposons que la mémoire contiennent les processus et les espaces vides suivants:
Vide, 10ko
P1, 3ko
Vide, 2ko
P2, 5ko
P3, 8ko
Vide, 6ko
P4, 1ko
Contenu de la mémoire pour Q15.4
Si la séquence d’évènement suivant survient:
P5 est admis dans la mémoire, P5 a une taille de 2ko
P6 est admis dans la mémoire, P6 a une taille de 5ko
P4 est retiré de la mémoire
P7 est admis dans la mémoire, P7 a une taille de 1ko
Donnez le contenu de la mémoire après la séquence d’évènement si la mémoire est allouée
pour des partitions de tailles variables contiguës selon l’algorithme qui suit:
a) First-Fit (Premier emplacement adéquat)
Vide, 5ko
P6, 5ko
P1, 3ko
Vide, 2ko
P2, 5ko
P3, 8ko
Vide, 4ko
P5, 2ko
P7, 1ko
b) Next-Fit (Premier emplacement adéquat après le dernier emplacement choisi)
Vide, 4ko
P7, 1k0
P6, 5ko
P1, 3ko
Vide, 2ko
P2, 5ko
P3, 8ko
Vide, 4ko
P5, 2ko
Vide, 1ko
c) Best-Fit (Le plus petit emplacement adéquat)
Vide, 5ko
P6, 5ko
P1, 3ko
P5, 2ko
P2, 5ko
P3, 8ko
P7, 1ko
P5, 5ko
Vide, 1ko
Q15.5 Quels sont les avantages et les désavantages de l’algorithme First-Fit par rapport à
l’algo best-fit lorsque l’on parle de stratégie d’allocation de mémoire pour des partitions à
taille variable?
Avantage de First-Fit : Très simple et facile à implémenter
Désavantage de First-Fit : Utilise beaucoup le début de la mémoire
Désavantage de First-Fit : Les fragments de mémoire sont plus petits et plus nombreux
L’avantage compense les désavantages de telle sorte que Best-Fit est rarement utilisé .
Q15.6 :Qu’est-ce qu’une faute de page?
Cela survient lorsqu’une page d’un programme n’est pas chargé dans la mémoire et que l’on veuille accéder à
cette page.
Q15.7 :Qu’est-ce que la défragmentation d’un disque dur ou d’une mémoire?
Un processus qui met tous les espaces de mémoire utilisés l’un à la suite de l’autre afin d’éliminer les trous
(fragmentation).
Q15.8 : Dans quelle condition une page du disque dur sera-t-elle transférée dans la
mémoire? Dans quelle condition une page de la mémoire sera transférée vers le disque
dur?
La page du disque dur sera transférée vers la mémoire lorsque le microprocesseur adressera les données ou les
instructions qui s’y trouvent.
La page de la mémoire sera transférée vers le disque dur si la mémoire est pleine et qu’une page de disque dur
doit être mise en mémoire ou si le processus est terminé.
Q15.9 : Quelles informations sont requise pour traduire une adresse virtuelle/logique en
adresse physique lorsque le système d’exploitation alloue de la mémoire pour les processus
avec des partitions de taille variable et que tout le processus est contenu dans la partition?
L’adresse de la mémoire qui correspond à l’adresse 0 du programme (l’adresse de base) et la taille du processus.
Q15.10 : Quels sont les avantages de séparer la mémoire en page de petite taille qui
contiennent une partie des processus seulement par rapport à séparer la mémoire en
grande partitions de taille fixe qui contiennent la totalité des processus? Quels sont les
désavantages?
Avantage: Les programmes peuvent être plus gros que la mémoire.
Avantage : Moins de perte de mémoire due à la fragmentation interne.
Avantage : Le nombre et la taille des partitions limitent moins le nombre et la taille des processus pouvant être
exécutés.
Désavantage : Beaucoup plus complexe, la translation d’adresse est plus lente ou coûte plus cher en matériel.
Désavantage : Beaucoup plus complexe, il faut de la mémoire pour la translation d’adresse.
Q15.11 : Pourquoi le registre Program Counter (PC, IP), c’est-à-dire le registre décrivant
l’adresse de la prochaine instruction à exécuter contient-il une adresse virtuelle/logique
plutôt qu’une adresse physique?
Toutes les instructions exécutées par le microprocesseur, c’est-à-dire celles du programme, font référence à des
adresses virtuelles, c’est-à-dire celles du programme.
Q15.12 : Les informations nécessaires afin de faire la translation d’adresse sont-elles
sauvegardées dans la mémoire ou ailleurs? Quelle composante matérielle ou logicielle de
votre ordinateur effectue la translation d’adresse?
La translation d’adresse doit être très rapide (il faut la faire au moins une fois à toutes les instructions pour aller
chercher l’instruction!). Elle est donc effectuer par du matériel spécialisé, le Memory Mangement Unit (MMU).
Le MMU est dans le chipset ou dans le même circuit intégré que le microprocesseur. Il contient des registres ou
une petite mémoire cache (comme le TLB) lui permettant de maintenir l’information nécessaire sur chaque
processus pour traduire ses adresses. Lorsque la taille des informations nécessaires à la traduction d’adresse est
trop grande (la totalité des tables de page par exemple), le gros de l’information est placé en mémoire.
Q15.13 : Supposons un système d’exploitation qui alloue de la mémoire pour des processus
avec des partitions contigues de tailles variables. Expliquez comment fonctionne la
protection de la mémoire pour cet ordinateur. En d’autres mots, dites en détail ce qui se
passera si une instruction du programme réfère à une adresse en dehors du programme.
Supposons que vous ayez un programme ayant une taille de 1000 instructi et utilisant 1000 octets de RAM pour
des données (disons qu'il y a 500 variables ayant 2 de taille dans le programme). Le fichier exécutable (le .exe)
contiendra cette information et, lorsque le programme sera mis en mémoire, le système d'exploitation allouera
5000 octets de RAM pour le programme (1000 instructions * 4 octets/instruction + 500 variables *
2octets/variables).
Supposons que l'OS ait mis le programme à l'adresse 10000. La mémoire allouée au programme sera de 10000 à
13999 pour les instruction et de 14000 à 14999 pour les variables, l'adresse de base (AB) étant 10000. Par
ailleurs, le OS programmera le Memory Management Unit: si une adresse dépasse 14999 lors de l'exécution du
programme, le MMU, à l’intérieur du mircoprocesseur déclenchera une interruption. Maintenant, supposons qu'il
y ait les instructions suivantes dans le programme: B #6000 et MOV R1, #700 suivi de LDR R0, [R1, #800].
Lorsque le B #6000 sera exécuté, PC débordera du programme. Lorsque le LDR R0, [R1, #800] sera exécuté,
l'adresse de la donnée sera en dehors de la plage de mémoire allouée au programme. Dans les deux cas, cela
déclenchera une interruption du MMU.
Le code de la sous-routine traitant l'interruption est du code provenant du système d'exploitation: lorsque
l'interruption se produira, le système d'exploitation devra prendre une décision reliée au programme fautif:
habituellement, une message d'erreur apparaît et le processus est arrêté.
Cours 16 : Les Entrées/Sorties
Q16.1 : Donnez les avantages et les inconvénients de chaque méthode d’E/S présentée dans
le cours (E/S programmée, E/S avec interruptions et DMA)?
E/S programmée : Lent, très exigent pour le CPU, très simple
E/S avec interruptions : Assez rapide, requiert des interventions ponctuelles du CPU, assez simple
DMA : Rapide, requiert du matériel additionnel, requiert peu de temps de CPU
Q16.2 : Pourquoi un module d’E/S a-t-il besoin de registres de donnée ou d’une structure
similaire (tampon pour mémoriser des données provenant du CPU ou allant vers le CPU)?
Parce le CPU et les périphériques ne communique pas à la même vitesse.
Q16.3 : Quel est le nom du contrôleur remplacé par un “?” dans la figure ci-dessous :
Donnéeset
instructions
CPU
Mémoire
Programmes
detraitement
des E/S
Requêtes
du CPU et
statuts
Données
transférées
par DMA
Appareil
Appareil
Module
D’E/S
Module
D’E/S
?
Canal Mutliplexeur.
Q16.4 : Décrivez le fonctionnement du DMA.
Le CPU demande un transfert de donnée d’un périphérique à la mémoire (ou vice-versa) au contrôleur de DMA.
Ensuite, le contrôleur de DMA demande le contrôle des bus au CPU. Ce dernier accorde le contrôle et se
déconnecte des bus (haute impédance). Ensuite, le contrôleur de DMA fait le transfert de données en contrôlant
les bus (le bus d’adresse est contrôlé par un compteur). Après le transfert de données, le contrôle des bus est
redonné au CPU.
Q16.5 : Quel est le taux de bit maximum pouvant être transmis sur un bus synchrone ayant
12 lignes de contrôle, 13 lignes d’adresses et 14 lignes de données, une horloge de 10MHz,
une méthode d’arbitrage décentralisée et supportant le DMA?
14 bits * 10MHz = 140Mbits/s
Q16.6 : Transmettre des bits en série plutôt qu’en parallèle est commun pour les interfaces
externe du PC (port série ou USB par exemple), mais très rare à l’intérieur du PC.
Pourquoi?
- Les bus de type série peuvent être plus longs que ceux parallèle (pas d’interférence entre les fils lorsqu’il n’y en
a que 1 ou 2, pas de problème de synchronisation de signaux induits par les délais de transmission si un seul
signal est transmis).
- Les bus de type série ont moins de fils que les bus de type parallèle.
- Les bus de type parallèle peuvent être plus rapides car plusieurs bits sont transmis simultanément.
On veut connecter des périphériques loin du PC sans problème et avec peu de filage, mais communiquer très
rapidement sur de courtes distances à l’intérieur du PC.
Q16.7 : À l’aide d’un diagramme simple, illustrer ce qui se passe lorsque l’usager fait un
accès à un périphérique.
Voir l’acétate 14 du cours 16.
Q16.8 : Lorsqu’un de vos programme accède à un périphérique, il appelle une fonction
d’exploitation. En plus de gérer l’accès au périphérique lui-même, quelles tâches sont
accomplies dans cette fonction?
La fonction, du système d’exploitation, change l’état du processus : elle le rend bloqué. En fonction de
l’implémentation du système, elle peut même appeler le scheduler de processus dans ce cas.
La fonction gère aussi les accès au périphérique par plusieurs processus ou thread différents.
Q16.9 : Quelles sont les principales fonctions des modules d’entrées-sorties? En d’autres
mots, à quoi sert le matériel entre le bus et le périphérique?
Il sert d’abord d’interface entre les bus de données, d’adresse et de contrôle. Avec des tampons de données, il
ajuste la vitesse entre le bus et le périphérique. Enfin. Le matériel gère et contrôle le périphérique.
Q16.10 : Pourquoi les interruptions des périphériques sont-elles gérées par le système
d’exploitation?
Il y a plusieurs raisons :
-
Le système d’exploitation permet au programmeur de concevoir ses programmes sans se soucier de la
nature des périphériques.
Le système d’exploitation gère le temps de l’ordinateur. Il est naturel qu’il gère les interruptions
matérielles.
Quand un périphérique termine une opération, le système d’exploitation le sait. Il peut ajuster les états
des processus en conséquence.
…
Q16.11 : La phrase suivante définit le bus PCI : Le bus PCI est un bus parallèle,
synchrone, multipoint, avec du multiplexage d’adresses et de données et ayant un arbitrage
central. Réécrivez cette phrase en utilisant d’autres mots!
Le PCI est un bus ayant plusieurs fils sur lesquels les bits d’un mot sont transmis simultanément (chaque bit sur
un fils différent). Le bus PCI a une ligne d’horloge, plusieurs appareils peuvent se connecter sur le bus, et
certaines lignes du bus servent à indiquer une adresse, puis une donnée. Un contrôleur principal détermine qui
échange des données sur le bus.
Q16.12 : Les deux phrases suivantes définissent le bus PCI Express: Le bus PCI Express
est un bus série, asynchrone, sur lequel les bits sont encodés en mode différentiel. Le bus
PCI express utilise un encodage 8bits/10bits est a, de ce fait, une vitesse effective qui est, au
mieux, 80% de la vitesse maximum. Réécrivez ces deux phrases en utilisant d’autres mots.
Les données sont transmises bit à bit sur le bus PCI Express à une fréquence de communication prédéterminée (il
n’y a pas de signal d’horloge). La différence de tension entre deux fils est utilisée afin de décoder les bits
transmis. Pour chaque octet transmis, 2 bits sont ajoutés afin de détecter d’éventuelles erreurs. Cela diminue la
vitesse de transmission des données utiles.
Téléchargement