Systèmes d`exploitation

publicité
Systèmes d'exploitation
Prof. D. Rossier / Prof. A. Dassatti
v2016.1.2
Série no 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),
-1-
Systèmes d'exploitation – Introduction aux systèmes d'exploitation
l'utilisation de librairies plutôt que d'appels système améliore les performances de l'application. Les librairies
sont portables grâce à des interfaces standardisées (POSIX, STL, libc, Qt, XFree86, etc.) qui permettent aux
applications d'être transportées plus facilement d'un environnement à l'autre. Les appels système sont dépendants
de l'OS et du processeur.
8.
Quels types de données (ou sections) contient typiquement l'espace mémoire d'un processus ?
Une zone (ou section) de code (section "text"), une zone contenant les variables globales initialisées/noninitialisées (section "data"/BSS), un tas ("heap"), une zone de pile ("stack") pouvant contenir plusieurs piles (une
par thread).
9.
Qu'est-ce qu'un descripteur de processus, appelé PCB, et que contient-il ?
Le PCB (Process Control Block) contient toutes les informations qui caractérisent un processus, principalement
son espace mémoire (début, longueur), son contexte d'exécution constitué par son état, sa pile, son PC et les autres
registres (le contexte d'exécution peut être lié à la notion de thread; il peut y avoir plusieurs threads lié à un
processus), la table des fichiers ouverts et la table des alarmes. Le PCB est mis à jour lors de changement de
contexte.
10. Que signifie le terme de spooling ?
Le terme de spooling provient à l'origine de SPOOL – Simultaneous Peripheral Operation On Line. C'est la
capacité à stocker plusieurs jobs ou processus ou fichiers sur disque (ou autre support) au fur et à mesure de leur
arrivée, et qui nécessitent en général l'utilisation d'un périphérique de sortie (typiquement une imprimante). Une
fois stockés, ces objets seront traités ultérieurement, en fonction de la disponibilité du périphérique. Ainsi le
système d'exploitation ne doit pas attendre la fin d'une entrée-sortie pour exécuter une autre application.
11. Nous avons vu au cours la notion de processus et de thread. Où se situe la notion d'application par rapport à ces
deux notions ?
En général, une application est constituée d'un processus ou d'un ensemble de processus. Chaque processus à
leur tour est constitué d'un ou plusieurs threads. En ce qui concerne le noyau d'un système d'exploitation, la notion
d'application n'existe pas en tant que telle.
-2-
Téléchargement