Vous êtes sur la page 1sur 12

Questions TP Système d’exploitation

Année Académique 2020/2021


CHAPITRE 1 INTRODUCTION

1.1 Quels sont les trois principaux objectifs d'un système d'exploitation ?
1.2 Nous avons souligné la nécessité d'un système d'exploitation pour une utilisation efficace des
ressources matérielles. Quand est-il approprié pour le système d'exploitation d’abandonner ce principe
et de « gaspiller » les ressources ? Pourquoi un tel un système n’est-il pas vraiment inutile ?
1.3 Quelle est la principale difficulté qu'un programmeur doit surmonter pour écrire un système
d'exploitation pour un environnement temps réel ?
1.4 En gardant à l'esprit les différentes définitions du système d'exploitation, considérez si le système
d'exploitation doit inclure des applications telles que le Web navigateurs et programmes de
messagerie. Faire valoir à la fois qu'il le devrait et qu'il ne devrait pas, et étayez vos réponses.
1.5 Comment fonctionne la distinction entre le mode noyau et le mode utilisateur comme forme
rudimentaire de protection (sécurité) ?
1.6 Laquelle des instructions suivantes doit être privilégiée ?
a Définir la valeur de la minuterie.
b. Lire l'heure.
c. Mémoire claire.
d. Émettre une instruction de déroutement.
e. Désactivez les interruptions.
f. Modifiez les entrées dans la table d'état de l'appareil.
g. Passer du mode utilisateur au mode noyau.
h. Accéder au périphérique d'E/S.
1.7 Certains premiers ordinateurs protégeaient le système d'exploitation en le plaçant dans une partition
mémoire qui n'a pu être modifiée ni par le travail utilisateur ni le système d'exploitation lui-même.
Décrivez deux difficultés qui, selon vous, pourraient surgir avec un tel schéma.
1.8 Certains processeurs offrent plus de deux modes de fonctionnement. Qu'est-ce que deux utilisations
possibles de ces multiples modes ?
1.9 Des minuteries peuvent être utilisées pour calculer l'heure actuelle. Fournir une courte description de
la façon dont cela pourrait être accompli.
1.10 Donnez deux raisons pour lesquelles les caches sont utiles. Quels problèmes résolvent-ils ? Quels
problèmes causent-ils ? Si un cache peut être aussi grand que le périphérique pour lequel il met en
cache (par exemple, un cache de la taille d'un disque), pourquoi ne pas le rendre aussi grand et
éliminer l'appareil ?
1.11 Distinguer les modèles de distribution client-serveur et pair-à-pair systèmes tributaires.
CHAPITRE 2 STRUCTURES DU SYSTEME D’EXPLOITATION

2.1 À quoi servent les appels système ?


2.2 Quel est le but de l'interpréteur de commandes ? Pourquoi est-ce habituellement séparé du noyau?
2.3 Quels appels système doivent être exécutés par un interpréteur de commandes ou un shell pour
démarrer un nouveau processus sur un système UNIX ?
2.4 A quoi servent les programmes système ?
2.5 Quel est le principal avantage de l'approche en couches de la conception du système ? Quels sont les
inconvénients de l'approche en couches?
2.6 Énumérez cinq services fournis par un système d'exploitation et expliquez comment chacun crée de la
commodité pour les utilisateurs. Dans quels cas serait-il impossible pour des programmes de niveau
utilisateur pour fournir ces services ? Expliquez votre réponse.
2.7 Pourquoi certains systèmes stockent-ils le système d'exploitation dans le micro logiciel, alors que
d'autres le stockent sur disque ?
2.8 Comment un système pourrait-il être conçu pour permettre un choix de systèmes d'exploitation à partir
de laquelle démarrer ? Que devrait faire le programme d'amorçage ?

CHAPITRE 3 PROCESSUS

3.1 À l'aide du programme illustré à la figure 3.30, expliquez ce que sera la sortie sur la LIGNE A
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>

int value = 5;

int main()
{
pid t pid;
pid = fork();
if (pid == 0) { /* child process */
value += 15;
return 0;
}
else if (pid > 0) { /* parent process */
wait(NULL);
printf("PARENT: value = %d",value); /* LINE A */
return 0;
}
}

Figure 3.30 Quelle sortie sera sur la ligne A ?


3.2 Y compris le processus parent initial, combien de processus sont créés par le programme illustré à la
figure 3.31 ?

#include <stdio.h>
#include <unistd.h>
int main()
{
/* fork a child process */
fork();
/* fork another child process */
fork();
/* and fork another */
fork();
return 0;
}
Figure 3.31 Combien de processus sont créés ?

3.3 Les versions originales du système d' exploitation mobile i OS d'Apple ne fournissaient aucun moyen
de traitement simultané. Discutez de trois complications majeures qui le traitement simultané s'ajoute à
un système d'exploitation.
3.4 Certains systèmes informatiques fournissent plusieurs ensembles de registres. Décrivez ce se produit
lorsqu'un changement de contexte se produit si le nouveau contexte est déjà chargé dans l'un des
ensembles de registres. Que se passe-t-il si le nouveau contexte est en mémoire plutôt que dans un
jeu de registres et tous les jeux de registres sont dans utilisation?
3.5 Lorsqu'un processus crée un nouveau processus à l'aide de l'opération fork() , qui des états suivants
est partagé entre le processus parent et l'enfant traiter?
a. Stack
b. Heap
c. Shared memory segments
3.6 Considérez la sémantique « exactement une fois » par rapport au mécanisme RPC .L'algorithme
d'implémentation de cette sémantique s'exécute-t-il correctement même si le message ACK renvoyé au
client est perdu en raison d'un problème de travail ? Décrivez la séquence des messages et discutez si
« exactement une fois » est toujours conservé.
3.7 Supposons qu'un système distribué est susceptible de défaillance du serveur. Quoi des mécanismes
seraient nécessaires pour garantir la sémantique « exactement une fois » pour l'exécution des RPC ?

CHAPITRE 4 FILS & CONCURRENCE

4.1 Fournissez trois exemples de programmation dans lesquels le multithreading fournit de meilleures
performances qu'une solution monothread.

4.2 En utilisant la loi d'Amdahl, calculez le gain d'accélération d'une application qui a un composant
parallèle de 60 pour cent pour
a. deux cœurs de traitement et
b. quatre cœurs de traitement.

4.3 Le serveur Web multithread décrit à la section 4.1 présente-t-il une tâche ou parallélisme des données
?
4.4 Quelles sont les deux différences entre les threads au niveau utilisateur et au niveau du noyau fils?
Dans quelles circonstances un type est-il meilleur qu'un autre ?
4.5 Décrire les actions entreprises par un noyau pour basculer entre les fils de niveau.
4.6 Quelles ressources sont utilisées lors de la création d'un fil ? En quoi diffèrent-ils de celles utilisées
lors de la création d'un processus ?
4.7 Supposons qu'un système d'exploitation mappe les threads au niveau utilisateur sur le noyau en
utilisant le modèle plusieurs-à-plusieurs et que le mappage se fait par LWP s. De plus, le système permet
aux développeurs de créer en temps réel threads à utiliser dans les systèmes temps réel. Est-il nécessaire
de lier un temps réel fil à un LWP ? Expliquer.

CHAPITRE 5 CPU PLANIFICATION

5.1 Un algorithme d'ordonnancement CPU détermine un ordre d'exécution de ses processus programmés.
Étant donné n processus à planifier sur un processus, combien d'horaires différents sont possibles ?
Donner une formule en termes de n.
5.2 Expliquer la différence entre un calendrier préemptif et non préemptif
5.3 Supposons que les processus suivants arrivent pour exécution aux moments indiqué. Chaque
processus s'exécutera pendant la durée indiquée. En réponse poser les questions, utiliser une
planification non préemptive et fonder toutes les décisions sur les informations dont vous disposez au
moment où la décision doit être prise.

a. Quel est le délai d'exécution moyen de ces processus avec l’Algorithme d'ordonnancement FCFS
?
b. Quel est le délai d'exécution moyen de ces processus avec l’Algorithme d'ordonnancement SJF ?
c. L'algorithme SJF est censé améliorer les performances, mais notez que nous avons choisi
d'exécuter le processus P1 au temps 0 parce que nous ne savions pas que deux processus plus
courts arriveraient bientôt. Calculer ce que le temps d'exécution moyen sera si le processeur est
laissé inactif pour la première 1 unité, puis la planification SJF est utilisée. N'oubliez pas que les
processus P1 et P2 sont en attente pendant ce temps d'inactivité, donc leur temps d'attente peut
augmenter. Cet algorithme pourrait être connu sous le nom de connaissance future
ordonnancement.
5.4 Considérez l'ensemble de processus suivant, avec la longueur de la rafale CPU temps donné en
millisecondes :

Les processus sont supposés arrivés dans l'ordre P1, P2, P3, P4, P5, le tout au temps 0.
a. Dessinez quatre diagrammes de Gantt qui illustrent l'exécution de ces processus en utilisant les
algorithmes d'ordonnancement suivants : FCFS, SJF, non- priorité préemptive (un nombre de
priorité plus élevé implique une priorité) et RR (quantique = 2).
b. Quel est le délai d'exécution de chaque processus pour chacun des algorithmes
d'ordonnancement dans la partie a?
c. Quel est le temps d'attente de chaque processus pour chacun de ces algorithmes?
d. Lequel des algorithmes entraînent l'attente moyenne minimale temps (sur tous les processus) ?

5.5 Les processus suivants sont planifiés à l'aide de l’algorithme d'ordonnancement robin.

Chaque processus se voit attribuer une priorité numérique, avec un numéro plus élevé donnant une
priorité relative plus élevée. En plus des processus énumérés ci-dessus, le système a également une
tâche inactive (qui ne consomme aucune ressource CPU et est identifié comme P ralenti ). Cette tâche a
la priorité 0 et est planifiée quand jamais le système n'a d'autres processus disponibles à exécuter. La
longueur d'un le quantum de temps est de 10 unités. Si un processus est préempté par une priorité plus
élevée processus, le processus préempté est placé à la fin de la file d'attente.
a. Affichez l'ordre de planification des processus à l'aide d'un diagramme de Gantt.
b. Quel est le délai d'exécution pour chaque processus?
c. Quel est le temps d'attente pour chaque processus?
d. Quel est le taux d'utilisation du processeur ?

5.6 Quel avantage y a-t-il à avoir différentes tailles de quantum de temps à différents niveaux d'un
système de files d'attente à plusieurs niveaux ?
5.7 De nombreux algorithmes de programmation CPU sont paramétrés. Par exemple, l'algorithme RR
nécessite un paramètre pour indiquer la tranche de temps. Multiniveau les files d'attente de retour
nécessitent des paramètres pour définir le nombre de files d'attente, les algorithmes d'ordonnancement
pour chaque file d'attente, les critères utilisés pour se déplacer processus entre les files d'attente, et ainsi
de suite.
Ces algorithmes sont donc en réalité des ensembles d'algorithmes (par exemple, l'ensemble des
algorithmes RR pour toutes les tranches de temps, et ainsi de suite). Un ensemble d'algorithmes peut
inclure un autre (par exemple, l'algorithme FCFS est l'algorithme RR avec un quantum de temps infini).
Quelle relation (le cas échéant) existe entre les paires d'ensembles d'algorithmes suivantes ?
a. Priorité et SJF
b. Files d'attente de rétroaction à plusieurs niveaux et FCFS
c. Priorité et FCFS
d. RR et SJF
5.8 Supposons qu'un algorithme d'ordonnancement CPU favorise les processus qui ont utilisé le moins de
temps processeur dans un passé récent. Pourquoi cela l'algorithme favorise les programmes liés aux E/S
et pourtant ne les affame pas de façon permanente
Programmes liés au processeur ?

5.9 Distinguer entre la planification PCS et SCS.

5.10 L'ordonnanceur UNIX traditionnel applique une relation inverse entre numéros de priorité et priorités :
plus le numéro est élevé, plus la priorité. Le planificateur recalcule les priorités de processus une fois par
seconde en utilisant la fonction suivante :
Priorité = (utilisation récente du processeur / 2) + base où base = 60 et l'utilisation récente du processeur
fait référence à une valeur indiquant comment souvent, un processus a utilisé le processeur depuis le
dernier recalcule des priorités.
Supposons que l'utilisation récente du processeur pour le processus P1 est de 40, pour le processus P2
est de 18, et pour le processus P3 est de 10. Quelles seront les nouvelles priorités pour ces trois
processus lorsque les priorités sont recalculées ? Sur la base de ces informations, le planificateur UNIX
traditionnel augmente-t-il ou diminue-t-il la priorité relative d'un processus lié au processeur ?

CHAPITRE 6 SYNCHRONISATION DES OUTILS

6.1 Dans la section 6.4 , nous avons mentionné que la désactivation des interruptions fréquemment peut
affecter l'horloge du système. Expliquez pourquoi cela peut se produire et comment les effets peuvent
être minimisés.
6.2 Que signifie le terme occupé en attente ? Quels autres types d’attente y a-t-il dans un système
d'exploitation? L'attente occupée peut-elle être évitée tout à fait? Expliquez votre réponse.
6.3 Expliquer pourquoi les verrous tournants ne sont pas appropriés pour les systèmes à processeur
unique, pourtant ils sont souvent utilisés dans les systèmes multiprocesseurs.
6.4 Montrer que, si les opérations de sémaphore wait() et signal() ne sont pas exécuté de manière
atomique, alors l'exclusion mutuelle peut être violée.
6.5 Illustrer comment un sémaphore binaire peut être utilisé pour implémenter l’exclusion mutuelle parmi n
processus.
6.6 Les conditions de course sont possibles dans de nombreux systèmes informatiques. Considérez un
système bancaire qui maintient un solde de compte avec deux fonctions : déposer (montant) et retirer
(montant). Quand ces deux fonctions sont exécutées le montant doit être déposé ou retiré du solde du
compte à la banque. Supposons qu'un mari et sa femme partagent un compte bancaire.
Simultanément, le mari appelle la fonction retirer () et la femme appelle déposer () . Décrivez comment
une condition de concurrence est possible et comment ça pourrait être fait pour empêcher la condition de
concurrence de se produire.

CHAPITRE 7 SYNCHRONISATION EXEMPLES

7.1 Expliquer pourquoi Windows et Linux implémentent plusieurs mécanismes de verrouillage. Décrire les
circonstances dans lesquelles ils utilisent des verrous tournants, verrous mutex, sémaphores et
variables de condition. Dans chaque cas, expliquez pourquoi le mécanisme est nécessaire.
7.2 Windows fournit un outil de synchronisation appelé slim-reader-writer-locks. Alors que la plupart des
implémentations de verrous de lecture-écriture favorisent les lectures ou les écritures, ou peut-être
commander les files d'attente en utilisant un protocole FIFO, les verrous slim-reader-writer-locks ne
favorisent ni les lectures ni les écritures, les threads en attente ne sont pas non plus classés dans une
file d'attente FIFO. Expliquez les avantages de fournir un tel outil de synchronisation.
7.3 Décrivez les changements qui seraient nécessaires pour le producteur et processus sumer dans la
figure 7.1 et la figure 7.2 afin qu'un verrou mutex puisse être utilisé à la place d'un sémaphore binaire.
7.4 Décrivez comment l'impasse est possible avec le problème des philosophes de la salle à manger.
7.5 Expliquer la différence entre les états signalés et non signalés avec Objets répartiteurs Windows.
7.6 Supposons que val soit un entier atomique dans un système Linux. Quelle est la valeur de val une fois
les opérations suivantes terminées ?
atomic set(&val,10);
atomic sub(8,&val);
atomic inc(&val);
atomic inc(&val);
atomic add(6,&val);
atomic sub(3,&val) ;

CHAPITRE 9 MEMOIRE PRINCIPALE

9.1 Nommez deux différences entre les adresses logiques et physiques.


9.2 Pourquoi les tailles de page sont-elles toujours des puissances de 2 ?
9.3 Considérons un système dans lequel un programme peut être séparé en deux parties : codes et
données. La CPU sait si elle veut une instruction (instruction fetch) ou des données (extraction ou
stockage de données). Par conséquent, deux bases - registre limite des paires sont fournies : une pour
les instructions et une pour les données. L'instruction la paire de registres base-limite est
automatiquement en lecture seule, de sorte que les programmes peuvent être partagés entre les
différents utilisateurs. Discutez des avantages et des inconvénients étapes de ce régime.
9.4 Considérons un espace d'adressage logique de 64 pages de 1024 mots chacune, mappé sur une
mémoire physique de 32 trames.
a. Combien y a-t-il de bits dans l'adresse logique ?
b. Combien de bits y a-t-il dans l'adresse physique ?
9.5 Quel est l'effet de permettre à deux entrées dans une table de pages de pointer vers le même cadre
de page en mémoire ? Expliquez comment cet effet pourrait être utilisé pour diminuer le temps
nécessaire pour copier une grande quantité de mémoire d'un endroit à un autre. Quel effet aurait la
mise à jour d'un octet sur un page ont sur l'autre page?
9.6 Soit six partitions mémoire de 300 Ko, 600 Ko, 350 Ko, 200 Ko, 750 Ko , et 125 Ko (dans l'ordre),
Comment est-ce que les algorithmes first-fit, best-fit, et worst-fit vont placer les processus de taille 115
Ko , 500 Ko , 358 Ko , 200 Ko et 375 Ko (dans l'ordre) ?
9.7 En supposant une taille de page de 1 Ko , quels sont les numéros de page et les décalages pour les
références d'adresses suivantes (fournies sous forme de nombres décimaux) :
a. 3085
b. 42095
c. 215201
d. 650000
e. 2000001
9.8 Le système d'exploitation BTV a une adresse virtuelle de 21 bits, mais sur certains périphériques
embarqués, il n'a qu'une adresse physique de 16 bits. Il a également une taille de la page de 2 Ko.
Combien d'entrées y a-t-il dans chacun des éléments suivants ?
a. Un tableau de pages conventionnel à un seul niveau
b. Un tableau de pages inversées
Quelle est la quantité maximale de mémoire physique dans le fonctionnement du BTV système?
9.9 Considérons un espace d'adressage logique de 256 pages avec une taille de page de 4 Ko , mappé
sur une mémoire physique de 64 trames.
a. Combien de bits sont nécessaires dans l'adresse logique ?
b. Combien de bits sont nécessaires dans l'adresse physique ?
9.10 Considérons un système informatique avec une adresse logique de 32 bits et une page de 4 Ko
Taille. Le système prend en charge jusqu'à 512 Mo de mémoire physique. Combien y a-t-il d’entrées
dans chacun des éléments suivants ?
a. Un tableau de pages conventionnel à un seul niveau
b. Un tableau de pages inversées

CHAPITRE 11 STRUCTURE DE STOCKAGE DE MASSE

11.1 La planification de disque, autre que la planification FCFS, est-elle utile dans un environnement?
Expliquez votre réponse.
11.2 Expliquer pourquoi l'ordonnancement SSTF a tendance à favoriser les cylindres du milieu par
rapport aux cylindres intérieurs et extérieurs.
11.3 Pourquoi la latence de rotation n'est-elle généralement pas prise en compte dans la planification
des disques ?
Comment modifieriez-vous SSTF, SCAN et C-SCAN pour inclure l’optimisation de la latence?
11.4 Pourquoi est-il important d'équilibrer les E/S du système de fichiers entre les disques et contrôleurs
sur un système dans un environnement multitâche ?
11.5 Quels sont les compromis impliqués dans la relecture des pages de code à partir du fichier système
par rapport à l'utilisation de l'espace d'échange pour les stocker ?
11.6 Existe-t-il un moyen de mettre en œuvre un stockage vraiment stable ? Expliquez votre réponse.
11.7 On dit parfois que la bande est un support à accès séquentiel, alors qu’un disque dur est un support
à accès aléatoire. En effet, l'adéquation d'un périphérique de stockage pour l'accès aléatoire dépend de
la taille du transfert. Le terme débit de transfert en continu désigne le débit d'un transfert de données
qui est en cours, hors effet de latence d'accès. En revanche, le taux de transfert actif est le rapport
entre le nombre total d'octets et le nombre total de secondes, y compris le temps système tel que la
latence d'accès.
Supposons que nous ayons un ordinateur avec les caractéristiques suivantes : le cache de niveau 2 a
une latence d'accès de 8 nanosecondes et un streaming de taux de transfert de 800 mégaoctets par
seconde, la mémoire principale a une latence d'accès de 60 nanosecondes et le taux de transfert en
streaming de 80 mégaoctets par seconde, le disque dur a une latence d'accès de 15 millisecondes et un
taux de transfert en continu de 5 mégaoctets par seconde, et un lecteur de bande a une latence d'accès
de 60 secondes et un transfert en streaming taux de 2 mégaoctets par seconde. L'accès aléatoire fait
que le taux de transfert effectif d'un appareil diminuer, car aucune donnée n'est transférée pendant le
temps d'accès.
Pour le disque décrit, quel est le taux de transfert effectif si
a. l'accès moyen est suivi d'un transfert en streaming de (1) 512 octets, (2) 8 kilo-octets, (3) 1
mégaoctet et (4) 16 mégaoctets ?
b. L'utilisation d'un appareil est le rapport entre le taux de transfert effectif et taux de transfert en
streaming. Calculer l'utilisation du lecteur de disque pour chacune des quatre tailles de transfert
données dans la partie a.
c. Supposons qu'une utilisation de 25 % (ou plus) soit considérée acceptable. En utilisant les
chiffres de performance donnés, calculez le plus petite taille de transfert pour un disque qui
donne une utilisation acceptable.
d. Complétez la phrase suivante : Un disque est un dispositif d'accès pour les transferts supérieurs
à octets et est un périphérique à accès séquentiel pour des transferts plus petits.
e. Calculez les tailles de transfert minimales qui donnent une utilisation acceptable.pour le cache, la
mémoire et la bande.
f. Quand une bande est-elle un périphérique à accès aléatoire et quand est-elle un périphérique à
accès séquentiel ?

11.8 Une organisation RAID de niveau 1 pourrait-elle atteindre de meilleures performances en lecture
demandes qu'une organisation RAID de niveau 0 (avec segmentation non redondante de
données) ? Si c'est le cas, comment?
11.9 Donnez trois raisons d'utiliser des disques durs comme stockage secondaire.
11.10 Donnez trois raisons d'utiliser des périphériques NVM comme stockage secondaire.

CHAPITRE 11 SYSTEMES D'E/S

12.1 Énoncez trois avantages de placer des fonctionnalités dans un contrôleur de périphérique, plutôt que
dans le noyau. Citez trois inconvénients.
12.2 L'exemple de handshaking dans la section 12.2 utilise deux bits: a b bit de USY et command prêt
peu. Est-il possible de mettre en œuvre cette poignée de main avec un seul bit ? Si c'est le cas,
décrivez le protocole. Si ce n'est pas le cas, expliquez pourquoi un bit es-il insuffisant.
12.3 Pourquoi un système peut-il utiliser des E/S pilotées par interruption pour gérer une seule série port
et interrogation d'E/S pour gérer un processeur frontal, tel qu'un terminal concentrateur?
12.4 L'interrogation d'une fin d'E/S peut gaspiller un grand nombre de cycles CPU si le processeur itère
plusieurs fois une boucle d'attente occupée avant l'E/S complète. Mais si le périphérique d'E/S est
prêt à être utilisé, l'interrogation peut être beaucoup plus efficace que la capture et l'envoi d'une
interruption. Décrivez une stratégie hybride qui combine l'interrogation, la mise en veille et les
interruptions pour les E/S services de l'appareil. Pour chacune de ces trois stratégies (scrutation pure,
pure interruptions, hybride), décrivent un environnement informatique dans lequel stratégie est plus
efficace que l'une ou l'autre des autres.
12.5 Comment le DMA augmente-t-il la simultanéité du système ? Comment ça se complique conception
matérielle ?
12.6 Pourquoi est-il important d'augmenter les vitesses du bus système et des périphériques en tant que
CPU la vitesse augmente ?
12.7 Distinguer une extrémité de pilote et un module de flux dans un STREAMS opération.

CHAPITRE 13 SYSTEME DE FICHIERS INTERFACE

13.1 Certains systèmes suppriment automatiquement tous les fichiers utilisateur lorsqu'un utilisateur se
déconnecte ou un travail se termine, sauf si l'utilisateur demande explicitement qu'ils soient
conservés. D'autres systèmes conservent tous les fichiers à moins que l'utilisateur ne les supprime
explicitement. Discutez des mérites relatifs de chaque approche.
13.2 Pourquoi certains systèmes gardent-ils une trace du type d'un fichier, tandis que d'autres laissez-le à
l'utilisateur et d'autres n'implémentent tout simplement pas plusieurs fichiers les types? Quel système
est «meilleur» ?
13.3 De même, certains systèmes prennent en charge de nombreux types de structures pour données,
tandis que d'autres prennent simplement en charge un flux d'octets. Que sont les avantages et
inconvénients de chaque approche ?
13.4 Pourriez-vous simuler une structure de répertoire à plusieurs niveaux avec une structure de
répertoire dans laquelle des noms arbitrairement longs peuvent être utilisés ? Si votre la réponse est
oui, expliquez comment vous pouvez le faire et comparez ce schéma avec le schéma de répertoire à
plusieurs niveaux. Si votre réponse est non, expliquez ce qui empêche le succès de votre simulation.
Comment votre réponse changerait-elle si les noms de fichiers étaient limités à sept caractères ?
13.5 Expliquez le but des opérations open() et close() .
13.6 Dans certains systèmes, un sous-répertoire peut être lu et écrit par un utilisateur optimisé, tout
comme les fichiers ordinaires peuvent l'être.
a. Décrivez les problèmes de protection qui pourraient survenir.
b. Suggérez un schéma pour traiter chacun de ces problèmes de protection.
13.7 Considérez un système qui prend en charge 5 000 utilisateurs. Supposons que vous vouliez
permettre à 4 990 de ces utilisateurs d'accéder à un seul fichier.
a. Comment spécifieriez-vous ce schéma de protection sous UNIX ?
b. Pouvez-vous suggérer un autre schéma de protection qui peut être utilisé plus efficacement à cette
fin que le schéma fourni par UNIX ?
13.8 Des chercheurs ont suggéré qu'au lieu d'avoir un contrôle d'accès liste associée à chaque fichier
(spécifiant quels utilisateurs peuvent accéder au fichier, et comment), nous devrions avoir une liste
de contrôle des utilisateurs associée à chaque utilisateur (spécifiant à quels fichiers un utilisateur
peut accéder, et comment). Discuter du parent mérites de ces deux régimes.

CHAPITRE 14 SYSTEME DE FICHIERS MISE EN ŒUVRE

14.1 Considérons un fichier composé actuellement de 100 blocs. Supposons que le bloc de contrôle de
fichier (et le bloc d'index, dans le cas d'allocation) est déjà en mémoire. Calculer le nombre
d'opérations d'E/S de disque requis pour les allocations contiguës, liées et indexées (à un seul
niveau) stratégies de, si, pour un bloc, les conditions suivantes sont remplies. Dans le cas d'allocation
contiguë, supposons qu'il n'y a pas de place pour croître au début mais il y a de la place pour grandir
à la fin. Supposons également que les informations de bloc à ajouter sont stockées en mémoire.
a. Le bloc est ajouté au début.
b. Le bloc est ajouté au milieu.
c. Le bloc est ajouté à la fin.
d. Le bloc est supprimé depuis le début.
e. Le bloc est retiré du milieu.
f. Le bloc est retiré de la fin.
14.2 Pourquoi le bitmap pour l'allocation de fichiers doit-il être conservé sur le stockage de masse, plutôt
que dans la mémoire principale ?
14.3 Envisager un système qui prend en charge les stratégies de contiguïté, et l'allocation indexée. Quels
critères utiliser pour décider quel la meilleure stratégie est-elle utilisée pour un fichier particulier ?
14.4 Un problème avec l'allocation contiguë est que l'utilisateur doit avoir suffisamment d'espace pour
chaque fichier. Si le fichier devient plus volumineux que l'espace qui lui est alloué, des mesures spéciales
doivent être prises. Une solution pour ce problème est de définir une structure de fichier consistant en une
zone contiguë d'une taille spécifiée. Si cette zone est remplie, le système d'exploitation définit
automatiquement une zone de débordement qui est liée à la zone contiguë. Si la zone de débordement
est remplie, une autre zone de débordement est alloué. Comparez cette implémentation d'un fichier avec
la norme implémentations contiguës et liées.
14.5 Comment les caches aident-ils à améliorer les performances ? Pourquoi les systèmes n'utilisent-ils
pas des caches plus ou plus grands s'ils sont si utiles ?
14.6 Pourquoi est-il avantageux pour l'utilisateur qu'un système d'exploitation allouer ses tables internes ?
Quelles sont les sanctions à l'exploitation système pour le faire?

CHAPITRE 15 SYSTEME DE FICHIERS INTERNES


15.1 Expliquer comment la couche VFS permet à un système d'exploitation de prendre en charge les
types de systèmes de fichiers facilement.
15.2 Pourquoi avoir plus d'un type de système de fichiers sur un système donné ?
15.3 Sur un système Unix ou Linux qui implémente le système de fichiers procfs, déterminer comment
utiliser l'interface procfs pour explorer le nom du processus espacer. Quels aspects des processus
peuvent être visualisés via cette interface ? Comment les mêmes informations seraient-elles
recueillies sur un système dépourvu des procfs système de fichiers?
15.4 Pourquoi certains systèmes intègrent-ils des systèmes de fichiers montés dans le fichier racine
structure de nommage du système, tandis que d'autres utilisent une méthode de nommage distincte
pour les systèmes de fichiers montés ?
15.5 Étant donné une fonction d'accès aux fichiers distants telle que ftp, pourquoi les fichiers distants des
systèmes comme NFS créés ?

Vous aimerez peut-être aussi