Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com Buffer Pool em C


nkzao

Pergunta

Ae galera tenho um trabalho a fazer e queria pedir uma ajudinha a vocês pois não sei nem por onde começar a fazer este trabalho,

esperava que vocês me desse uma luz de como fazer, por onde começar, onde pesquisar sobre!

tenho que fazer o seguinte:

O trabalho consiste na implementação simulada de um gerenciador de buffer pool. O buffer

pool deverá ser constituído de 100 buffers, sendo cada um deles capaz de armazenar 1 único setor

de disco em memória principal. O gerenciamento do buffer pool deverá ser implementado na forma

de uma lista duplamente encadeada segundo a política LRU de substituição de buffers. Ademais,

uma tabela hash de 10 posições deverá agilizar a pesquisa de um setor na lista duplamente

encadeada. Essa tabela hash deverá tratar colisões pelo uso de uma lista de encadeamento simples.

Uma vez que ocorra a modificação de um setor de disco presente no buffer pool, o mesmo deverá

ser gravado em disco apenas quando: ( a ) for substituído do buffer pool; ou ( b ) quando ocorrer um

shutdown no sistema. Setores não modificados serão descartados em ambos os casos.

Por se tratar de um trabalho de simulação, a memória secundária à qual se fará acessos

também deverá ser simulada. As requisições de setores do disco, denotadas pelo endereço do setor

buscado, o número de bytes a serem transferidos e a operação que se pretende realizar, deverão ser

geradas randômicamente e de forma ininterrupta. As operações a serem consideradas são: “r” para

apenas leitura, “w” para apenas escrita e “r/w”para leitura e escrita. A cada nova requisição de

acesso a disco, primeiramente o buffer pool será pesquisado para saber se o setor buscado já se

encontra em memória principal. As situacões em que o setor não se encontrar em nenhum dos

buffers resultaram em acessos a disco. Acesso a setores que estiverem presentes no buffer pool

resultaram na atualização da posição do buffer que o contém dentro da lista duplamente encadeada

segundo a política LRU e modificação do tipo de operação que se deseja realizar (se for o caso). Os

nós da lista duplamente encadeada e da tabela hash deverão armazenar as informações de

endereçamento do setor e uma flag que indica se houve ou não modificação no mesmo.

O simulador deverá apresentar de forma atualizada em sua interface as requisições de acesso

a disco (endereço do setor inicial, número de bytes, e operação), o estado e elementos constituintes

da lista LRU e da tabela hash, além de sinalizar por meio de mensagens os acessos a disco,

identificando a razão pela qual o cada um foi necessário. A apresentação de dados estatísticos que

indiquem o número e o tempo de acesso economizado pelo uso do buffer pool também é necessária.

Os dados de tempo economizado podem ser obtidos calculando-se o tempo de acesso para cada vez

em que um setor for encontrado no buffer pool e o tempo de acesso para cada operação

efetivamente realizada em disco. O encerramento do programa de simulação deve ser encarado

como um shutdown do sistema: a lista LRU será esvaziada buffer a buffer de modo que buffers que

contenham setores modificados serão gravados em disco e os outros descartados.

Dados:

Número de buffers no buffer pool: 100

Número de setores por buffer: 1

Número de posições da tabela hash: 10

Número de bytes por setor: 1 B

Número de setores por trilha: 10

Número de trilhas por cilíndro: 10

Número de cilíndros: 10

Tempo médio de seek: 10 milésimos de segundo

Velocidade do Disco: 4500 RPM

Tempo de acesso a um setor na memória primária: 71,7 milhonésimos de segundo

Quanto a linguagem de Programação

O trabalho deverá ser implementado em C

Obrigado a qm ajudar!

Abraços

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...