nkzao 0 Denunciar post Postado Abril 12, 2008 Ae galera tenho um trabalho a fazer e queria pedir uma ajudinha a vcs pois não sei nem por onde começar a fazer este trabalho, esperava que vcs 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 Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Abril 12, 2008 veja c te ajuda: http://www.codeproject.com/KB/cpp/pools.aspx Compartilhar este post Link para o post Compartilhar em outros sites
nkzao 0 Denunciar post Postado Abril 17, 2008 vou dar uma conferida valew ngm mais? =] Compartilhar este post Link para o post Compartilhar em outros sites