Devoirs sur le système de fichiers Linux

1. Il y a un total de 500 blocs de disque dans un espace fichier disque. Si une image bitmap d'une longueur de mot de 32 bits est utilisée pour gérer le disque, veuillez demander:

(1) De combien d'octets le bitmap a-t-il besoin?
(2) Quel est le numéro de bloc correspondant au jème bit du i-ème octet?

(1) 500/32 = 15,625, 16 octets sont requis

(2) Le numéro de bloc de disque correspondant est: 32 * i + j

2. Si la taille du bloc de disque est de 4 Ko, l'adresse de bloc est représentée par 4 octets, le système de fichiers adopte une méthode d'organisation d'index, les éléments d'index 0 à 9 sont des index directs, l'élément d'index 10 est un index indirect principal et l'élément d'index 11 est un index secondaire Index indirect, l'élément d'index 12 est un index indirect à trois niveaux. Si le nœud d'index de fichier est déjà dans la mémoire, veuillez calculer combien de blocs de disque devez-vous lire et écrire lors de la lecture de 1500 octets de données sous le fichier?

(1) 9000
(2) 180000
(3) 4200000

(1) 9000 / 4k = 2.197265625 la position 9000 est dans l'élément d'index 2

(9000 + 1500) / 4k = 2,5634765625 La position (9000 + 1500) est située dans l'élément d'index 2, et 1 bloc de disque doit être lu et écrit

(2) 180000 / 4k = 43,9453125

(180000+ 1500) / 4k = 44,3115234375 situé dans l'élément d'index 10, 3 blocs de disque doivent être lus et écrits

(3) 4200000 / 4k = 1 025,390625

(4200000+ 1500) / 4k = 1,025.7568359375 à l'élément d'index 10, 2 blocs de disque doivent être lus et écrits

3. Un système informatique utilise le bitmap illustré à la Figure 4-24 (le numéro de ligne et le numéro de colonne sont numérotés à partir de 0) pour gérer les blocs de disque libres. Si les blocs de disque sont numérotés à partir de 0, la taille de chaque bloc de disque est de 1 Ko.

Insérez la description de l'image ici

(1) Maintenant, pour allouer deux blocs de disque pour le fichier, essayez de spécifier le processus d'allocation.
(2) Que dois-je faire si je veux libérer le 1000ème bloc du disque?
(3) En supposant que le bitmap représenté par la variable de tableau global short bm [N] a été lu dans la mémoire, écrivez la fonction d'allocation alloc () qui renvoie un numéro de bloc de disque libre, et la fonction de récupération int release (intb) qui renvoie un bloc de disque b) Code de description.

(1) Trouvez un bloc de disque libre, accrochez-vous à la fin de la chaîne de blocs de disque du fichier et modifiez le FCB du fichier.

(2) Trouvez FAT, recherchez l'emplacement du 1000ème bloc de disque, supprimez les informations à cet emplacement et supprimez les autres pointeurs liés à cet emplacement.

(3)

int alloc()
{
    
    
	for(int i = 0; i < N; i++)
        for(int j = 0; j < 16; j++)
        {
    
    
            if(!(bm[i] & 1 << j)
                return i*16 + j+1;
        }
    return -1;
}
               
int release (int b)
{
    
    
	int bx = b / 16;
    int by = b % 16;
    bm[bx] &= ~(1 << by);
    return 0;
}

4. En supposant que la taille du bloc logique et du bloc physique d'un certain système sur le disque est de 4 Ko et que le numéro de bloc du disque est stocké sur 4 octets, on suppose que les informations d'attribut de chaque fichier sont déjà dans la mémoire. Pour les trois méthodes d'allocation (allocation continue, allocation de liaison et allocation d'index), en supposant que vous êtes actuellement dans le bloc logique 10 (le dernier accédé est le bloc logique 10), et que vous voulez maintenant accéder au bloc logique 4, combien de blocs physiques doit être lu à partir du disque? Donnez les raisons.

1 (Accès direct) 4 (Accès aux blocs logiques en séquence) 2 (Commencez par lire le nœud d'index, puis obtenez un accès direct à l'index)

5. La structure de répertoires d'un certain système de fichiers est illustrée à la Figure 4-30, en utilisant un répertoire intégré, chaque entrée de répertoire occupe 256B et la taille de bloc de disque est de 512B. Supposons que le répertoire actuel est le répertoire racine.

Insérez la description de l'image ici

(1) Quel est le chemin du fichier Wang?
(2) Quels fichiers de répertoire le système doit-il lire avant de trouver le fichier Wang?
(3) Le système trouve le fichier Wang, au moins combien de blocs de disque doivent être lus?
(4) Fournir une structure de répertoires qui accélère la recherche de fichiers.

(1) / D / DC / DDC / Wang

(2) 4 fichiers de répertoire: /, / D, / D / DC, / D / DC / DDC

(3) 7

(4) Adopter une gestion de catalogue décomposée

6. Considérez un fichier contenant 100 blocs de données. Si le bloc de contrôle de fichier (et le bloc d'index, lorsqu'il est alloué avec un index) est déjà en mémoire, le bloc logique a la même taille que le bloc physique. Lors de l'utilisation de stratégies d'allocation d'index continue, liée et à un seul niveau, combien d'opérations d'E / S disque sont nécessaires pour chacune des opérations suivantes? Supposons que pendant l'allocation continue, il n'y a pas d'espace d'extension au début, mais il y a end, et il est supposé que le bloc doit être ajouté. Les informations sont déjà en mémoire.

(1) Ajoutez un bloc au début.
(2) Ajouter un morceau au milieu
(3) Ajoutez un morceau à la fin.
(4) Supprimez un bloc au début.
(5) Supprimez un bloc au milieu.
(6) Supprimez un morceau à la fin.

Continu: 101, 51, 1, 99, 49, 0

Liens: 1, 50, 100, 1, 50, 100

Niveau unique: 1, 1, 1, 0, 0, 0

7. Considérez un système de fichiers qui utilise des inodes pour représenter les fichiers. La taille du bloc de disque est de 8 Ko et le pointeur vers le bloc de disque nécessite 4 octets. Ce système de fichiers comprend 12 blocs de disque direct, ainsi que des blocs de disque indirect simple, double et triple. Quelle est la taille maximale des fichiers pouvant être stockés dans ce système de fichiers?

8 kb / 4b = 2048

8 * 12 + 8 * 2048 + 8 * 2048 * 2048 + 8 * 2048 * 2048 * 2048 = 68 753 047 648 Ko

8. Pourquoi le bitmap de l'allocation de fichier doit-il être stocké dans la mémoire de masse plutôt que dans la mémoire principale?

En cas de panne du système ou de défaillance de la mémoire, le bitmap de l'allocation de fichier ne sera pas perdu car il est stocké dans la mémoire principale.

9. Comparez les performances de trois technologies qui allouent des blocs de disque (continu, lien et index) pour l'accès séquentiel et aléatoire aux fichiers

Accès séquentiel aux fichiers: Continu> Lien> Index

Accès séquentiel aux fichiers: Continu> Index> Lien

10. Quels sont les avantages de la variante d'allocation de lien qui utilise FAT pour lier des blocs de fichiers entre eux?

L'avantage est que lors de l'accès à un bloc stocké au milieu du fichier, l'emplacement peut être déterminé en suivant le pointeur stocké dans le FAT, au lieu d'accéder séquentiellement à tous les blocs individuels du fichier pour trouver le pointeur vers le bloc cible. La plupart des FAT peuvent être stockées en mémoire, de sorte que le pointeur peut être déterminé par l'accès à la mémoire sans avoir à accéder au bloc de disque.

11. Si un nœud d'index est 128B, le pointeur de bloc de disque a une longueur de 4B, les informations d'état occupent 68B et la taille de chaque bloc est de 8 Ko, combien d'espace reste-t-il dans le nœud d'index pour le pointeur de disque? Quelle taille de fichiers peut-on représenter par des pointeurs indirects directs, primaires, secondaires et tertiaires?

Espace restant pour le pointeur de disque: 128-68 = 60 B

Nombre d'index directs: 60 / 4-3 = 12

Index direct: 12 * 8 Ko = 96 Ko

Le nombre d'index que chaque bloc de disque peut contenir: 8 Ko / 4 Go = 2048

Index primaire: 2048 * 8KB = 16,384KB

Index secondaire: 2048 * 2048 * 8KB = 33,554,432KB

Indice à trois niveaux: 2048 * 2048 * 2048 * 8KB = 68.719.476.736

12. Considérez un système de fichiers sur le disque. Le système de fichiers a des fonctions logiques et physiques. La taille de bloc est de 512 octets. Supposons que les informations sur chaque fichier sont déjà en mémoire. Pour ces trois stratégies d'allocation (continue, lien et index), veuillez répondre aux questions suivantes:

a. Comment terminer le mappage d'adresse logique à adresse physique dans ce système? (Pour l'allocation d'index, supposons qu'un fichier comporte toujours moins de 512 blocs.
b) Si nous sommes actuellement dans le bloc logique 10 (le dernier bloc accédé est le bloc 10) et que nous voulons accéder au bloc logique 4, combien de blocs physiques doivent être lus à partir du disque?

a. Allocation continue: l'adresse logique est égale à l'adresse physique / à la taille du bloc de disque

Allocation de lien: configurez une table pour l'ensemble du disque ou de la partition de disque. Le numéro de séquence de chaque entrée de table correspond au numéro de bloc de disque et au numéro de disque où se trouve le bloc de données suivant (adresse logique) du fichier.

Allocation d'index: les dix premières adresses logiques du fichier sont conservées sur le numéro de bloc de disque qui est directement indexé en séquence, et l'index primaire suivant, l'index secondaire et l'index tertiaire peuvent contenir 1024, 1024 * 1024, 1024 * 1024 * En séquence 1024. Adresse logique.

b.1 4 2

Certaines réponses ne sont pas sûres, j'espère que vous pourrez aider à corriger les erreurs

Je suppose que tu aimes

Origine blog.csdn.net/Qingyuyuehua/article/details/115146233
conseillé
Classement