[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
RE: Mapa de bits???
- Subject: RE: Mapa de bits???
- From: Francisco Reverbel <reverbel at ime.usp.br>
- Date: Mon, 24 May 1999 10:57:19 -0300
Daniel Cukier writes:
> Eu não consegui entender direito onde eu devo usar o mapa de bits:
>
> 1 - Para saber quais páginas no heap file estão desocupadas?
> 2 - Para saber se há espaço disponível numa página?
> 3 - Para saber quais slots estão desocupados numa pagina?
Para saber quais páginas de um Database estão livres (não alocadas a
nehum heap file).
O uso de um mapa de bits não é obrigatório. Você tem duas alternativas
básicas:
a) manter um mapa de bits, no qual cada bit corresponde a um bloco do
Database, ou
b) manter uma lista ligada de blocos livres.
A vantagem do mapa de bits é que fica fácil localizar e alocar
seqüências de blocos livres contíguos e com isso evitar fragmentação do
Database. A vantagem da lista ligada de blocos livres é a facilidade de
implementação.
> E ainda: como implementar essa mapa de bits? Eu tenho que fazer um vetor
> de booleans? Ou de inteiros?
Tanto o mapa de bits como a lista ligada de blocos livres são estruturas
residentes em disco. O mapa de bits não é um vetor de booleans na
memória. É uma seqüência de bytes em disco (dentro de um Database), cada
byte representando o estado (livre/alocado) de oito blocos do Database
(um bloco por bit).
Sugestão: Só escolha o mapa de bits se você achar que o prazo do EP está
folgado. A lista ligada de blocos livres dá muito menos trabalho!
Reverbel