• Aucun résultat trouvé

Cours 14 : Les Processus

N/A
N/A
Protected

Academic year: 2022

Partager "Cours 14 : Les Processus"

Copied!
8
0
0

Texte intégral

(1)

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 Priorité au

besoin # quantum restant

P1 Prêt 1 2

P2 Prêt 3 3

P3 En attente d’E/S 2 5

P4 En cours 2 1

P5 Prêt 2 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 P5 P1 P2 P4 P5 P1 P2 P5 P2 P5 P5 P5 X X

Quantum 0 1 2 3 4 5 6 7 8 9 10 11 12 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 P4 P1 P1 P2 P2 P2 P5 P5 P5 P5 P5 P5 X X

Quantum 0 1 2 3 4 5 6 7 8 9 10 11 12 13

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 P1 P1 P5 P4 P5 P5 P5 P5 P5 P2 P2 P2 X X

Quantum 0 1 2 3 4 5 6 7 8 9 10 11 12 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 P1 P1 P2 P2 P2 P4 P5 P5 P5 P5 P5 P5 X X

Quantum 0 1 2 3 4 5 6 7 8 9 10 11 12 13

(2)

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 P1 P2 P4 P5 Moyenne

Round Robin 1 2 3 0 1.5

Shortest First 1 4 0 7 3

Priorité 0 2 3 9 3.5

FIFO 0 2 4 6 3

- …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 P1 P2 P4 P5 Moyenne

Round Robin 5 8 3 11 6.75

Shortest First 3 6 0 11 5

Priorité 1 3 8 11 5.25

FIFO 1 4 5 11 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.

(3)

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.

(4)

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 2

N

Ko avec des pages de 2

M

Ko et des programmes ayant une taille max de 2

O

Ko? 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:

(5)

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, 4ko P6, 4ko 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, 3ko

P7, 1k0 P6, 4ko P1, 3ko Vide, 2ko P2, 5ko P3, 8ko Vide, 4ko P5, 2ko Vide, 1ko

c) Best-Fit (Le plus petit emplacement adéquat)

Vide, 10ko 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?

(6)

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.

(7)

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 :

CPU Mémoire

?

Requêtes du CPU et statuts

Programmes de traitement

des E/S

Données transférées

par DMA Module D’E/S Appareil

Module D’E/S Appareil Données et

instructions

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.

(8)

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.

Références

Documents relatifs

En ce qui concerne le choix de l’appartenance religieuse, les enfants de notre échantillon sont identifiés soit comme musulmans (5 familles sur 10) soit sans religion (5 familles

• File avec tourniquet (round-robin): On exécute plusieurs fois les processus nouvellement admis, puis les processus non terminés sont mis dans un tourniquet. – Avantages: Tous

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

Que ce soit la retranscription de conversations lors de rencontres solitaires, la participation à une liturgie orthodoxe ou à une série de conférences sur l'esclavage, le temps

Pour libérer de la mémoire allouée dynamiquement en C++, on utilisera l’opérateur delete...

Les auto-perceptions négatives et les barrières comportementales supplémentaires qui peuvent jouer un rôle dans la résistance psychologique à l’insuline comprennent : un vœu

Shortly afterwards we bade adieu to our hospitable entertainers with mingled feelings of gratification and regret ; gratification, because we had seen so much that