Académique Documents
Professionnel Documents
Culture Documents
3. Le compteur ordinal :
a. est un registre qui contient l'adresse mémoire de l'instruction prochainement exécutée
b. est un registre qui contient l'adresse mémoire de l'instruction déjà exécutée
c. fait partie de la mémoire virtuelle
d. fait partie de la mémoire vive
7. Un processeur 64 bits :
a. est un processeur dont la largeur de ses registres est 64 bits
b. est un processeur dont la largeur de ses mémoires internes est 64 bits
c. est un processeur dont la largeur de ses entrées/sorties est 64 bits
8. Un processeur x86-64 :
a. est un processeur dont la largeur de tous ses registres est 64 bits
b. est un processeur dont la largeur de tous ses registres est x86
c. contient des registres de largeur 64 bits et des registres de largeur 32 bits
d. contient des registres de largeur 64 bits et des registres de largeur 8 bits
11. Quelle est le niveau le plus rapide en temps d’accès au niveau de la mémoire cache ?
a. Niveau L1
b. Niveau L2
c. Niveau L3
d. Niveau L4
Temps Temps
Processus
d'Arrivée CPU
A 0 2
B 2 5
C 4 4
D 6 6
E 8 2
a. Supposons qu’on travaille en mode monoprocesseur, donnez les diagrammes de Gantt des
algorithmes suivants : FIFO, SJF, SRTF et le Tourniquet (Quantum = 2ms) montrant
l’allocation de ces processus et l’évolution de leurs états. (Tracer un diagramme pour
chaque algorithme)
(NB : Veuillez utiliser 2 stylos de couleurs différentes afin de distinguer les états des
processus).
b. Calculer le temps moyen d’attente et le temps moyen de séjour pour chaque algorithme.
Enfin, quand il finit de manger, il repose ses deux fourchettes et commence à penser à nouveau.
Précisons que les philosophes mangent et pensent durant des temps aléatoires différents, leur
changements d'état, se produisent donc de manière totalement asynchrone.
Le problème même du dîner des philosophes consiste donc à réguler les changements d'état de ces
derniers suivant la disponibilité des fourchettes, qui dépend bien entendu de l'état des voisins du
philosophe concerné.
Question 1 : Soit l’algorithme ci-dessous, d’après-vous quelles sont problèmes rencontrées suite à son
implémentation.
Void philosophe()
{
While(1)
{
Sleep();
Prendre_fourchette_droite();
Prendre_fourchette_gauche();
Manger();
Deposer_fourchette_droite();
Deposer_fourchette_gauche();
}
}
Question 2 : Soient les 2 procédures suivantes, veuillez les compléter par des variables sémaphores
correspondantes afin de garantir l’exclusion mutuelles et éviter l’interblocage des processus.
Début
………….
Etat = …………
Sinon
Etat = veut_manger()
attente
Fin Si
…………
…………
Fin
Début
…………
Etat = …………
…………
pense
Fin
/. Bon travail ./