On suppose qu’une taille de bloc de 1024 octets est utilisé pour stocker des enregistrements d’une taille variable. Chaque bloc contient parie entête (header) fixe de 24 octets qui contient le nombre total d’enregistrements du bloc. De plus l’entête contient un pointeur de 4 octets pour chaque enregistrements du bloc. La taille de chaque enregistrement n’est pas stockée explicitement puisque ces tailles peuvent être calculées depuis les pointeurs.
a. Combien d’enregistrements d’une taille de 50 octets peuvent être complètement (sans répartition des enregistrements, no-spanning en anglais) avec un tel type de bloc ?
b. On souhaite stocker complètement 20 enregistrements (tous de la même taille) dans un bloc. Quelle est la taille maximum des enregistrements ?
c. On considère un autre type de bloc qui est adapté à des enregistrements dont la taille est fixe. La taille d’un bloc est toujours de 1024 octets, l’entête reste également de 24 octets et stocke la taille commune des enregistrements du bloc. Combien d’enregistrements d’une taille de 50 octets peuvent être stockés dans ce type de bloc ?
d. Dans cette question, on permet les enregistrements répartis (spanning en anglais). Les enregistrements sont de taille fixe mais puisqu’il est possible d’avoir des fragments d’enregistrement, il nous faut ajouter un entête de 5 octet à chaque fragment (complet ou pas) pour stocker sa taille (et d’autres informations). Le bloc est toujours de 1024 octets et l’entête de bloc de 24 octets. On considère 2 blocs et on veut stocker 3 enregistrements de 600 octets. Le système alloue autant d’enregistrements qu’il peut dans le premier bloc et utilise ensuite l’espace du second bloc. Une fois que les 3 enregistrements ont été stockés, combien d’espace de stockage non utilisé reste-t-il dans le premier bloc ? Dans le second bloc ?
Partager