nkzao Postado Abril 12, 2008 Denunciar Share Postado Abril 12, 2008 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 bufferpool deverá ser constituído de 100 buffers, sendo cada um deles capaz de armazenar 1 único setorde disco em memória principal. O gerenciamento do buffer pool deverá ser implementado na formade 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 duplamenteencadeada. 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 umshutdown 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á acessostambém deverá ser simulada. As requisições de setores do disco, denotadas pelo endereço do setorbuscado, o número de bytes a serem transferidos e a operação que se pretende realizar, deverão sergeradas randômicamente e de forma ininterrupta. As operações a serem consideradas são: “r” paraapenas leitura, “w” para apenas escrita e “r/w”para leitura e escrita. A cada nova requisição deacesso a disco, primeiramente o buffer pool será pesquisado para saber se o setor buscado já seencontra em memória principal. As situacões em que o setor não se encontrar em nenhum dosbuffers resultaram em acessos a disco. Acesso a setores que estiverem presentes no buffer poolresultaram na atualização da posição do buffer que o contém dentro da lista duplamente encadeadasegundo a política LRU e modificação do tipo de operação que se deseja realizar (se for o caso). Osnós da lista duplamente encadeada e da tabela hash deverão armazenar as informações deendereç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 acessoa disco (endereço do setor inicial, número de bytes, e operação), o estado e elementos constituintesda 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 queindiquem 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 vezem que um setor for encontrado no buffer pool e o tempo de acesso para cada operaçãoefetivamente realizada em disco. O encerramento do programa de simulação deve ser encaradocomo um shutdown do sistema: a lista LRU será esvaziada buffer a buffer de modo que buffers quecontenham setores modificados serão gravados em disco e os outros descartados.Dados:Número de buffers no buffer pool: 100Número de setores por buffer: 1Número de posições da tabela hash: 10Número de bytes por setor: 1 BNúmero de setores por trilha: 10Número de trilhas por cilíndro: 10Número de cilíndros: 10Tempo médio de seek: 10 milésimos de segundoVelocidade do Disco: 4500 RPMTempo de acesso a um setor na memória primária: 71,7 milhonésimos de segundoQuanto a linguagem de ProgramaçãoO trabalho deverá ser implementado em CObrigado a qm ajudar!Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nkzao Postado Abril 17, 2008 Autor Denunciar Share Postado Abril 17, 2008 ngm? =/ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 == Douplus == Postado Abril 18, 2008 Denunciar Share Postado Abril 18, 2008 Só me diz uma coisa, os dados de velocidade apresentados no final do exercício devem coincidir com os resultados do programa a ser feito? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
nkzao
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.