X-Git-Url: https://git.llucax.com/z.facultad/75.00/informe.git/blobdiff_plain/6eefbae7d9d9a1e30f7637ecc41f56a21dc93567..6c0df59fa61822652c03d8589cbe1d0cfe8d6b26:/source/dgc.rst?ds=inline diff --git a/source/dgc.rst b/source/dgc.rst index 7443d90..f087aef 100644 --- a/source/dgc.rst +++ b/source/dgc.rst @@ -1058,6 +1058,28 @@ C ``malloc()``, ``realloc()`` y ``free()`` directamente. La estructura ``Pool`` está compuesta por los siguientes atributos (ver figura :vref:`fig:dgc-pool`): +.. fig:: fig:dgc-pool + + Vista gráfica de la estructura de un *pool* de memoria. + + .. aafig:: + :scale: 120 + + /--- "baseAddr" "ncommitted = i" "topAddr" ---\ + | V | + |/ |/ |/ + +---- "committed" -----+------- "no committed" ----------+ + /| /| /| + V V V + +--------+--------+-----+--------+-----+-------------------+ + páginas | 0 | 0 | ... | i | ... | "npages - 1" | + +--------+--------+-----+--------+-----+-------------------+ + A A A A A A + | | | | | | + +--------+--------+-----+--------+-----+-------------------+ + pagetable | Bins 0 | Bins 1 | ... | Bins i | ... | "Bins (npages-1)" | + +--------+--------+-----+--------+-----+-------------------+ + *baseAddr* y *topAddr* punteros al comienzo y fin de la memoria que almacena todas las páginas del *pool* (*baseAddr* es análogo al atributo *pages* utilizado en las @@ -1088,28 +1110,6 @@ La estructura ``Pool`` está compuesta por los siguientes atributos (ver figura ``B_UNCOMMITTED`` (valor que tienen las páginas que no fueron encomendadas aún) y ``B_FREE``. -.. fig:: fig:dgc-pool - - Vista gráfica de la estructura de un *pool* de memoria. - - .. aafig:: - :scale: 120 - - /--- "baseAddr" "ncommitted = i" "topAddr" ---\ - | V | - |/ |/ |/ - +---- "committed" -----+------- "no committed" ----------+ - /| /| /| - V V V - +--------+--------+-----+--------+-----+-------------------+ - páginas | 0 | 0 | ... | i | ... | "npages - 1" | - +--------+--------+-----+--------+-----+-------------------+ - A A A A A A - | | | | | | - +--------+--------+-----+--------+-----+-------------------+ - pagetable | Bins 0 | Bins 1 | ... | Bins i | ... | "Bins (npages-1)" | - +--------+--------+-----+--------+-----+-------------------+ - Como se observa, además de la información particular del *pool* se almacena toda la información de páginas y bloques enteramente en el *pool* también. Esto simplifica el manejo de que lo es memoria *pura* del *heap*, ya que queda