Version 8 (modified by 3 years ago) (diff) | ,
---|
Gestion des Threads
Rappels de cours
A. Questions
La majorité des réponses aux questions sont dans le cours ou dans le rappel du cours donné au début de cette page, c'est voulu. Les questions suivent à peu près l'ordre du cours, elles sont simples, mais vous avez besoin de comprendre le cours pour y répondre :-) Quand une question vous demande si quelque chose est vrai ou faux, ne répondez pas juste "oui" ou "non », mais justifiez vos réponses avec une petite phrase. Le but de ces questions est d'évaluer vos connaissances, donc plus vous êtes précis, mieux c'est.
- Dites-en une phrase ce qu'est un processus informatique (selon Wikipédia)
- Est-ce qu'un processus utilisateur s'exécute toujours dans le mode utilisateur du MIPS ?
- Nous avons vu qu'un processus utilisateur peut faire des appels système, c'est-à-dire demander des services au noyau du système d'exploitation. Est-ce qu'un processus peut faire des interruptions et des exceptions ?
- Un processus dispose d'un espace d'adressage pour s'exécuter, qu'y met-il ?
- Dans un fichier exécutable (le programme) avant qu'il ne soit chargé en mémoire, on trouve le code du programme et les données globales. Est-ce qu'il y a aussi les piles d'exécution ? justifiez votre réponse
- Un thread de processus informatique représente une exécution de ce processus. Il est défini par une pile d'exécution pour ses fonctions, un état des registres du processeur et des propriétés comme un état d'exécution (RUNNING, READY, DEAD, et d'autres que nous verront plus tard). Combien de threads a-t-on par processus au minimum et au maximum ?
- Tous les threads d'un processus se partagent le même espace d'adressage, et donc le même code, les mêmes variables globales, les mêmes variables dynamiques (nous les verrons dans un prochain cours). Est-ce qu'ils se partagent aussi les piles ?
- Lorsque l'on crée un nouveau thread (un nouveau fil d'exécution du processus), il faut indiquer sa fonction principale, c'est-à-dire la fonction par laquelle qu'il doit exécuter.
- Est-ce que le nouveau thread pourra appeler d'autres fonctions ?
- Est-ce qu'on peut créer deux threads avec la même fonction principale ?
- Combien d'arguments la fonction principale peut-elle prendre et de quel type ?
- Que se passe-t-il lorsqu'on sort de la fonction principale d"un thread ?
- L'exécution en temps partagé est un mécanisme permettant d'exécuter plusieurs threads à tour de rôle sur le même processeur. Comment s'appelle le service du noyau chargé du changement de thread ?
- Le changement de thread a une certaine durée, quel nom porte cette durée de changement ?
- Pour l'exécution en temps partagé, le noyau applique une politique, laquelle définit l'ordre d'exécution. Si les threads sont toujours prêts à être exécutés et que le noyau les exécute à tour de rôle de manière équitable, comment se nomme cette politique ?
- Dans cette politique équitable, quelle est la fréquence type de changement de thread ?
- Le mécanisme de changement de thread (dont vous avez donné le nom précédemment) se déroule en 3 étapes, quelle que soit la politique suivie. Quelles sont ces étapes ?