Changes between Version 21 and Version 22 of AS6-TME-B6


Ignore:
Timestamp:
Mar 28, 2022, 12:05:03 PM (2 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AS6-TME-B6

    v21 v22  
    147147'''
    148148}}}
    149 1. Pour libérer un objet alloué par l'allocateur de l'application, la fonction `free()` reçoit juste le pointeur rendu par `malloc()`. Comment la fonction `free()` connait-elle la taille qui avait été allouée ? 
    150 {{{#!protected ------------------------------------------------------------------
    151 '''
    152  *
    153 '''
    154 }}}
    155 1.
    156 {{{#!protected ------------------------------------------------------------------
    157 '''
    158  *
    159 '''
    160 }}}
    161 1.
    162 {{{#!protected ------------------------------------------------------------------
    163 '''
    164  *
    165 '''
    166 }}}
    167 1.
    168 {{{#!protected ------------------------------------------------------------------
    169 '''
    170  *
    171 '''
    172 }}}
    173 1.
    174 {{{#!protected ------------------------------------------------------------------
    175 '''
    176  *
    177 '''
    178 }}}
    179 1.
     1491. Pour libérer un objet alloué par l'allocateur de l'application, la fonction `free()` reçoit juste le pointeur rendu par `malloc()`. Comment la fonction `free()` connaît-elle la taille qui avait été allouée ? 
     150{{{#!protected ------------------------------------------------------------------
     151'''
     152 *
     153'''
     154}}}
     1551. L'allocateur d'objets du noyau utilise un mécanisme d'allocation par dalles ou `slab` en anglais, nommé `slab allocator`. Qu'est-ce qu'un slab ? Quelle est la taille d'un slab ? Quel est l'intérêt des slabs?
     156{{{#!protected ------------------------------------------------------------------
     157'''
     158 *
     159'''
     160}}}
     1611. L'allocateur d'objets du noyau gère des listes d'objets libres. Quel rapport y-a-t-il entre les objets alloués et les slabs ? À quel moment les slabs sont-ils alloués ? À quel moment les slabs sont ils libérés ?
     162{{{#!protected ------------------------------------------------------------------
     163'''
     164 *
     165'''
     166}}}
     1671. Lorsqu'on libère le dernier objet d'un slab, celui-ci est libéré, pensez-vous que cela puisse être un problème ? Si oui, avez-vous une solution ?
     168{{{#!protected ------------------------------------------------------------------
     169'''
     170 *
     171'''
     172}}}
     1731. Les objets alloués par l'allocateur d'objets de kO6 font au maximum 4kO, pourquoi cette limite ? Est-ce un problème selon vous ?
     174{{{#!protected ------------------------------------------------------------------
     175'''
     176 *
     177'''
     178}}}
     1791. Pour libérer un objet alloué par l'allocateur d'objets du noyau, on utilise la fonction `kfree()` qui prend en argument le pointeur
    180180{{{#!protected ------------------------------------------------------------------
    181181'''