Institut Universitaire de Technologie                                                                                       Année 1998 – 1999
                d'Aix en Provence
       Département Informatique
 
 

Corrigé du Test de Système du 27/11/98

1) (7-9 l.) - En gestion mémoire, à quelles idées correspondent les trois algorithmes de placement dits "du premier espace libre", "du meilleur espace libre " et "du plus mauvais espace libre "?

2)   (3-5 l.) - Quels sont les avantages et inconvénients respectifs de la technique de gestion de la mémoire utilisant plusieurs listes chaînées des espaces libres selon la taille ?
3) (2-3 l.) – En gestion mémoire, qu'est-ce qu'une table associative ? A quoi sert-elle ? Quel est son principal inconvénient ?
4)  (5-7 l., éventuellement + schéma clair ...) – Qu'est-ce que la technique de gestion de la mémoire par utilisation d'une table de description de la mémoire (mapping) ? Comment calcule-t-on le taux de mémoire perdu en fonction de la granularité ? Donner un exemple pour une granularité donnée.
 5) (2-3 l.) – En gestion mémoire, à quoi correspond le principe de proximité ? Il est mis en œuvre par Windows NT. Dans quelles circonstances ?
6)  (5-6 l.) – Donner trois exemples dans lesquels la façon de programmer peut influencer fortement les performances d'un programme, par l'intermédiaire du nombre de défauts de page.
7) (3 l.) – Windows NT permet de forcer les pages physiques à zéro avant de les donner à un processus en défaut de page. Quel en est l'intérêt ?
8) (2-3 l.) – Que met-on généralement dans une page verrouillée "en lecture seulement" ?
9) (2-4 l.) – A quoi correspond une page dont l'indicateur "copie à l'écriture" est positionné ? Donner un exemple.
10)  (4-6 l.) – Dans sa politique de réquisition d'une page, Unix utilise l'algorithme dit de la page la plus anciennement utilisée (LRU : Least Recently Used). Par quel(s) mécanisme(s) peut-il la trouver ?
.
11)  (1-3 l.) – L'appel de la fonction système suivant :
 
creat (mon_fich, 0764);

donne-t-il le masque rwxrw—r-- des droits de lecture, écriture et exécution d'un fichier pour le propriétaire, le groupe et les autres, dans cet ordre standard (de gauche à droite) ? Sinon, quel masque donne-t-il, et pourquoi ?

12)  (10-15 l.) – En informatique, beaucoup de problèmes de partage de ressources se ramènent au problème dit des "lecteurs-rédacteurs". En quoi cela consiste-t-il ? Donner un exemple. Que signifient les notions de "priorité aux lecteurs", "priorité aux rédacteurs", solution équitable"?
13)  (5-7 l.) – Pourquoi est-il nécessaire de positionner le bit SET-UID de certains fichiers exécutables ? Exemple ?
14) (1 l.) –  La séquence suivante est nécessaire pour effectuer une opération particulière. Laquelle ?
 
mode_t masque = 0777;
umask (masque = umask (masque));
15) (2 l.) –  Qu'est-ce qu'un fichier core ? Dans quelles circonstances est-il créé ? A quoi sert-il ?


16) (2 l.) - Comment savoir si une commande Unix existe aussi en "built-in command" du c-shell? Comment forcer l'exécution de la commande Unix dans ce cas ?

17)  (5-6 l.) – Citez au moins 5 caractéristiques ou propriétés non héritées de son père par un processus fils lors de l'appel de la fonction système fork().
18)  (3-4 l.) – Qu'appelle-t-on un processus zombie ?
19)  (5-7 l.) - Le code ci-dessous a été présenté pour résoudre quel problème ? Comment est-il censé fonctionner ? Pourquoi est-il faux ?
 
extern int Dans_1, Dans_2;       // Indiquent si le contrôle est dans la
                                 // section critique de l'un des deux
                                 // processus ou dans aucune des deux
void  Process_1()                // Représente le coeur du processus 1
{
    FOREVER
    {
        while (Dans_2);
        Dans_1 = true;
        SectionCritique_1 ();
        Dans_1 = false;
        SectionNonCritique_1 ();
    }
} // Process_1()
20) (4-5 l.) – Quelle différente y a-t-il entre les fonctions système fork() et vfork() ?