Systèmes d'exploitation
Prof. D. Rossier / Prof. A. Dassatti
v2016.1.2
- 1 -
Série n
o
2 (
Solutions
)
Introduction aux systèmes d'exploitation
1.
Qu'est-ce que la multiprogrammation ?
La multiprogrammation est le fait de charger simultanément plusieurs processus (ou "jobs") en mémoire. Le
temps de commutation d'un processus à l'autre est ainsi minimisé et, par conséquent, le taux d'utilisation du
processeur est maximal.
2.
Quels sont les caractéristiques d'une architecture OS de type micronoyau ?
l'extensibilité; il est aisé de rajouter de nouvelles fonctionnalités au noyau.
une meilleure protection, car un maximum de fonctionnalités (sous-systèmes) se retrouvent dans
l'espace utilisateur, en utilisant la notion de client-serveur. On utilise les mêmes mécanismes de
protection pour les sous-systèmes que ceux utilisés pour les programmes utilisateur. Seul les
mécanismes de base sont implémentés dans l'espace noyau.
l'abstraction du matériel; les sous-systèmes utilisent des ressources abstraites et non les ressources
réelles.
3.
Quels sont les sous-systèmes principaux d'un système d'exploitation ?
Le gestionnaire de processus, le gestionnaire mémoire, les systèmes de fichiers, les IPCs.
4.
Comment le système d'exploitation peut-il garantir qu'une application effectuant une boucle infinie ne
"monopolise" pas la machine?
Grâce à l'utilisation d'une interruption matérielle en provenance d'une horloge (timer) par exemple et d'une
routine de service adéquate. Une interruption matérielle quelle qu'elle soit, pour autant qu'elle ne soit pas
masquée (désactivée), provoque toujours la suspension du processus en cours d'exécution.
5.
A quoi sert le mode "
superviseur
" d'un processeur ?
Le mode superviseur est utilisé lorsque le système d'exploitation désire utiliser toutes les instructions du
processeur, y compris les instructions privilégiées (instructions d'entrée-sortie, instructions d'accès aux bus, à la
RAM, etc.). Typiquement, les sous-systèmes de l'OS fonctionnent dans ce mode; les programmes utilisateur
fonctionnent eux en mode utilisateur.
6.
Que se passe-t-il lors de l'invocation d'un appel système ?
Un appel système consiste en une interruption logicielle. Comme toute interruption, celle-ci provoque la
suspension du processus en cours d'exécution ainsi que le passage en mode noyau; la routine de service
correspondante et le code de l'appel système est alors exécutée. Puis, le processeur repasse en mode utilisateur et
le processus est réactivé (cette description correspond au schéma général; en réalité, c'est un peu plus compliqué!)
7.
A votre avis, pourquoi serait-il préférable d'utiliser des fonctions de librairies comme
fopen(), fwrite(),
etc. plutôt
que des appels systèmes directement (
open(), write()
) ?
Les librairies minimisent l'utilisation d'appels système en ayant recours à des tampons (buffers) internes dans
l'espace utilisateur. Un appel système nécessitant beaucoup d'opérations dans le noyau (voir réponse 6),