exam_Syst_30_04_2013.doc - UFR de mathématiques et informatique

30 avr. 2013 ... Exercice 1 : MÉMOIRE VIRTUELLE (5 pts - 25 minutes) .... Que contient-elle ?
Corrigé: SEMAPHORES: 1/ Le processus P va produire ...

Part of the document

EXAMEN
(aucun document autorisé)
Exercice 1 : MÉMOIRE VIRTUELLE (5 pts - 25 minutes) Segmentation paginée On considère une mémoire segmentée paginée pour laquelle les cases en
mémoire centrale sont de 4Ko. La mémoire centrale compte au total 15 cases
numérotées de 1 à 15. Dans ce contexte, on considère deux processus A et B. Le Processus A a un espace d'adressage composé de trois segments S1A, S2A
et S3A qui sont respectivement de 8 Ko, 12 Ko et 4 Ko. Le processus B a un
espace d'adressage composé de deux segments S1B et S2B qui sont
respectivement de 16 Ko et 8 Ko. Pour le processus A, seules les pages 1 et 2 du segment S1A, la page 2 du
segment S2A et la page 1 du segment S3A sont chargées en mémoire centrale
respectivement dans les cases 4, 5, 10 et 6. Pour le processus B, seules les pages 2 et 3 du segment S1B et la page 1 du
segment S2B sont chargées en mémoire centrale respectivement dans les cases
11, 2 et 15. 1.1 Représentez sur un dessin les structures allouées (table des segments,
tables des pages) et la mémoire centrale correspondant à
l'allocation décrite. 1.2 Si 4098 et 12292 sont des adresses linéaires pour A, déterminez les
adresses virtuelles et réelles correspondantes. 1.3 Même question avec 16389 pour A et 8212 pour B.
Exercice 2 : Algorithmes de remplacement de pages (5 pts - 25 minutes) Pagination Un ordinateur a 16 pages d'adressage virtuelles mais seulement 4 pages
physiques. Au départ, la mémoire est vide. Un programme référence les pages
virtuelles dans l'ordre : 0,7,2,7,5,8,9,2,4,2. 2.1 Quelles sont les références mémoire qui provoqueront des défauts de
page : avec OPTIMAL, avec LRU, avec FIFO, avec FINUFO. 2.2 Trouvez un exemple où FINUFO n'est pas optimal. 2.3 Donner l'algorithme FINUFO. 2.4 Proposez une amélioration de FINUFO en considérant qu'en plus du bit de
référence, chaque entrée dans la table des pages dispose aussi d'un bit de
modification. Exercice 3 : SYNCHRONISATION (5 pts - 20 minutes) Synchronisation : le coiffeur Une illustration classique du problème de la synchronisation est celui du
salon de coiffure.
Dans le salon de coiffure, il y a un coiffeur C, un fauteuil F dans lequel
se met le client pour être coiffé et N sièges pour attendre. S'il n'a pas de clients, le coiffeur C somnole dans le fauteuil F.
Quand un client arrive et que le coiffeur C dort, il le réveille, C se
lève. Le client s'assied dans F et se fait coiffer.
Si un client arrive pendant que le coiffeur travaille :
si un des N sièges est libre, il s'assied et attend,
sinon il ressort. Il s'agit de synchroniser les activités du coiffeur et de ses clients avec
des sémaphores. Les sémaphores utilisés sont initialisés ainsi : SCF = CS(0);
SP= CS(0);
SX =CS(1); |Programme client : |Programme coiffeur : |
|Client() { |Coiffeur(){ |
|P(SX); |while (1){ |
|if(Attend < N) { |P(SP); |
|Attend = Attend + 1; |P(SX); |
|V (SP); |Attend = Attend -1; |
|V (SX); |V(SCF); |
|P (SCF); |V(SX); |
|SeFaireCoifferEtSortir(); |Coiffer(); |
|} |} |
|else { |} |
|V(SX); | |
|Sortir(); | |
|} | |
|} | |
3.1 Détailler (« prend, attend, décrémente, coiffe... ») le fonctionnement
du coiffeur et de ses clients tels qu'ils sont représentés par les deux
fonctions Coiffeur et Client. 3.2 Quel est le rôle de chacun des sémaphores SCF, SP et SX ?
Exercice 4 : Questions de cours (5 pts - 20 minutes) Répondez
brièvement. 4.1 Qu'est-ce qu'une mémoire virtuelle ? Quelles sont ses avantages et ses
inconvénients? 4.2 Définir la fragmentation interne et externe 4.3 Comment ça marche la pagination ? A quoi ça sert la zone de swap ? 4.4 Comment le SE essaye de réduire l'overhead causé par la pagination ? 4.5 Qu'est-ce qu'est la TLB ? Que contient-elle ? Corrigé: SEMAPHORES: 1/ Le processus P va produire successivement les valeurs dans la variable
« valeur » ecrassant les précedentes. * Il faut utiliser une variable suplementaire « val » pour que chaque
processus mette de coté la valeur qu'il doit traiter. * Il faut ajouter un second semaphore « SemP » initialisé à 1 pour indiquer
que la variable « valeur » est disponible pour recevoir la valeur suivante.
SemQ = CreerSemaphore(0);
SemP = CreerSemaphore(1); 2/ SemQ = CreerSemaphore(0);
SemP = CreerSemaphore(1);
SemR = CréerSemaphore(0);
Barème: FORK: SEMAPHORES: 1/ 3pt 1 pt: pour une justification correcte.
1,5 pt: pour une solution qui fonctionne
0,5 pt: reponse avec le min de modifications 2/ 2pt 1,5 pt: solution qui fonctionne
0,5 pt: solution optimale