Changes between Version 37 and Version 38 of AS6-TME-B6


Ignore:
Timestamp:
Mar 29, 2022, 4:05:47 PM (2 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AS6-TME-B6

    v37 v38  
    198198'''
    199199 * Un slab est un segment d'adresses contenant des objets de même taille.
    200  * Pour kO6, il n'y a qu'une seule taille, une page de 4kO, mais normalement la taille des slabs dépend de la taille des objets. En effet, quand la taille du slab n'est pas un multiple de la taille de l'objet, il y a un fragment inutile créé dans le slab. Ce fragment est d'autant plus grand que les objets sont grands. C'est pourquoi au delà d'1/8 de page (512 octets), on prend des slabs de 2, 4 ou 8 pages.
     200 * Pour kO6, il n'y a qu'une seule taille, une page de 4kO, mais normalement la taille des slabs dépend de la taille des objets. En effet, quand la taille du slab n'est pas un multiple de la taille de l'objet, il y a un fragment inutile créé dans le slab. Ce fragment est d'autant plus grand que les objets sont grands. C'est pourquoi au delà d'1/8 de page (512 octets), on prend des slabs de 2, 4 ou 8 pages (des puissances de 2 pour des raisons que je n'aborderai pas ici).
    201201 * Le principal intérêt de ce mécanisme c'est sa rapidité. En effet, lorsque l'allocateur a créé ses listes d'objets libres, en prendre un est très rapide, de même que le rendre.
    202202 * Le second intérêt est la réduction de la fragmentation externe, limitée aux fragments non utilisés dans les slabs.
     
    222222{{{#!protected ------------------------------------------------------------------
    223223'''
    224  *
     224 * 4kO est une taille standard utilisée pour la gestion de la mémoire des applications, et pour le système de fichiers. On ne le voit pas ici, mais le noyau gère en principe une mémoire physique découpée en pages (nommé parfois cadres). En fait, la mémoire est vue comme un réservoir de pages dans lequel le noyau peut piocher pour y mapper du code, des données, des morceaux de fichiers, etc. La page est un élément atomique.
     225 * Honnêtement, c'est difficile de dire si c'est vraiment un problème que les slabs fassent au plus une page. Ce que l'on peut dire, c'est qu'en biologie, "le besoin crée l'organe" et bien pour le système d'exploitation, le besoin doit créer la fonction, afin de ne pas créer du code mort (jamais utilisé qui sont des nids de bugs). Donc tant que le besoin est absent, ce n'est pas un problème de pas avoir la fonction :-)
    225226'''
    226227}}}