Exercícios de revisão V2 1 Uma empresa que possui partições FAT em seus servidores, estava impressionada com um processo em específico na memória, onde o mesmo ocupava um espaço grande. Este servidor dedicado possui em média 500 arquivos abertos simultaneamente onde a média de tamanho é de 10 MB para cada arquivo. O tamanho da partição é 300 GB. Quantos MB da RAM estão sendo ocupados? Caso a partição mude para i-node, quantos MB da RAM passarão a ser ocupados? (). Considere o tamanho do bloco 2 kb e a estrutura de ponteiros com endereços de 64 bits. Desconsidere espaço para cabeçalho do i-node (nome do arquivo, data de criação, etc..) FAT: 300 GB / 2KB = 150MB X 8 bytes (64 bits / 8) = 1.2GB i-node: Em 1 bloco cabem 256 ponteiros, pois 2kb / 8 bytes = 256 1 arquivo de 10mb precisa de 40 blocos de ponteiros, pois 10MB / 256 = 40 1 arquivo com 40 blocos de ponteiros ocupará 80kb na RAM, pois 40x2kb = 80kb 500 arquivos abertos ocuparão 40MB de RAM, pois 80kb x 500 = 40000kb ou 40MB. 2 - Uma empresa que possui partições FAT em seus servidores, estava impressionada com um processo em específico na memória, onde o mesmo ocupava um espaço grande. Este servidor dedicado possui em média 1000 arquivos abertos simultaneamente onde a média de tamanho é de 1 MB para cada arquivo. O tamanho da partição é 500 GB. Quantos MB da RAM estão sendo ocupados? Caso a partição mude para i-node, quantos MB da RAM passarão a ser ocupados? (). Considere o tamanho do bloco 1 kb e a estrutura de ponteiros com endereços de 32 bits. Desconsidere espaço para cabeçalho do i-node (nome do arquivo, data de criação, etc..) FAT: 500GB / 1KB = 500MB x 4 (32 bits/8) = 2GB
i-node: Em 1 bloco cabem 256 ponteiros, pois 1kb / 4 bytes = 256 1 arquivo de 1mb precisa de 4 blocos de ponteiros, pois 1MB / 256 = 4 1 arquivo com 4 blocos de ponteiros ocupará 4kb na RAM, pois 4x1kb = 4kb 1000 arquivos abertos ocuparão 4MB de RAM, pois 4kb x 1000 = 4000kb ou 4MB. 3 - Considere a imagem abaixo: 1.1 Caso o usuário desejasse ir até o endereço 45000 da MMU, qual seria o endereço correspondente na memória RAM? Responda em hexadecimal e em binário. Obs: 45000 = 1010111111001000 Neste contexto, serão utilizados 4 bits para página e 12 para deslocamento, totalizando 16 bits. São 4 bits para página pois a lista possui 16 elementos,e 2 elevado a 4 é 16 São 12 bits para deslocamento pois cada página possui 4kb, logo 2 elevado a 12 é 4kb São 16 bits o total pois 2 elevado a 16 é 64 kb. Separando o número 1010111111001000 em 4 bits para página e 12 para deslocamento, tempos:
1010 página 10, esta página aponta para page fault. 4 - Qual seria a resposta se o tamanho de cada página fosse 8k? e 16 k? Considere os mesmos valores para cada posição das páginas. 8kb 56 64 kb página X 48 56 kb - página X 40 48kb página 3 32 40kb página 4 24 32kb página 0 16 24 kb página 6 8 16kb página 1 0 8k - página 2 Neste contexto, serão utilizados 3 bits para página e 13 para deslocamento, totalizando 16 bits. São 3 bits para página pois a lista possui 8 elementos,e 2 elevado a 3 é 8 São 13 bits para deslocamento pois cada página possui 8kb, logo 2 elevado a 13 é 8kb São 16 bits o total pois 2 elevado a 16 é 64 kb. Separando o número 1010111111001000 em 3 bits para página e 13 para deslocamento, tempos: 101 página 5, esta página aponta para a página 3 da memória física. Logo, 3 em binário é 011, portanto a resposta final será 0110111111001000 16kb 48-64kb página 0 32 48 kb página 6 16 32kb página 1 0 16k - página 2
Neste contexto, serão utilizados 2 bits para página e 14 para deslocamento, totalizando 16 bits. São 2 bits para página pois a lista possui 4 elementos,e 2 elevado a 2 é 4 São 14 bits para deslocamento pois cada página possui 16kb, logo 2 elevado a 14 é 16kb São 16 bits o total pois 2 elevado a 16 é 64 kb. Separando o número 1010111111001000 em 2 bits para página e 14 para deslocamento, tempos: 10 página 2, esta página aponta para a página 6 da memória física. Como esta página não existe na memória física, o erro também é de page fault. 5 - Descreva as 2 soluções para acelerar a paginação. Explique detalhadamente A real necessidade de cada uma. As soluções são: TLB e Tabela de páginas multinível. A TLB visa criar um cache da tabela de páginas dentro do próprio processador, para que não seja necessário buscar na RAM os ponteiros para a tabela física. Assim, quando a TLB não possuir o endereço em questão, será gerado erro de page miss, e atualizará seu cache para que o endereço seja entregue. As tabelas de páginas multinível visam quebrar a tabela de páginas em várias tabelas, tornando-se desnecessário ter uma lista de várias páginas que não estão sendo utilizadas na RAM, economizando espaço. A quantidade de elementos de cada tabela será definida pela quebra dos bits que irão compor a definição da página. Logo, se por exemplo, forem definidos 8 bits para a página, 4 destes estarão no primeiro nível, e outros 4 no segundo nível, formando várias tabelas com 16 elementos cada (2 elevado a 4 totaliza 16). 6 Qual é a função da MBR? Você conseguiria descrever algum tipo de problema que poderia ocorrer se existisse um vírus na MBR?
A MBR tem por objetivo mapear as partições ativas de cada disco rígido e entregar para a BIOS qual destas está apta a inicializar um sistema operacional. 7 Por que a alocação contígua é vantajosa em estruturas de arquivo como CDs e não HDs? Explique qual é a proposta para o FAT e quais são as suas desvantagens Porque a busca da alocação contígua é extremamente rápida, já que os blocos são posicionados de forma adjacente. E como a gravação em CDs ocorre apenas uma vez, elimina a grande desvantagem da alocação contígua que é a fragmentação dos blocos livres. O FAT procura criar uma tabela na memória para mepar todos os blocos,estejam ocupados ou livres. A grandes desvantagem é que o tamanho da tabela cresce linearmente com o tamanho da partição, ou seja, quanto maior é a partição, maior é a tabela. Com isso, em HDs grandes, o FAT se torna uma alternativa inviável. 8 - Um computador possui cinco molduras de página, conforme mostra a tabela abaixo. Nesta, são mostrados o número da página, o tempo de carregamento, o tempo da última referência, os bits de referenciada e modificada, o tempo virtual atual e a constante de tempo. Levando em consideração que, nos instantes 700, 800 e 900 entrarão três novas páginas, desenhe uma nova tabela de como ficarão as páginas após a entrada das novas páginas, para cada um dos algoritmos abaixo (2,0 pontos): 0 80 260 0 0 Constante t: 100 1 50 300 0 1 2 190 190 1 0 4 100 330 0 1 - FIFO - LRU - NRU
FIFO: 0 800 800 0 0 Constante t: 100 1 700 700 0 0 2 190 190 1 0 4 900 900 0 0 LRU: 0 800 800 0 0 Constante t: 100 1 900 900 0 1 2 700 700 1 0 4 100 330 0 1 NRU 0 700 700 0 0 Constante t: 100 1 800 800 0 1 2 190 190 1 0
4 900 900 0 1 9 - Um computador possui cinco molduras de página, conforme mostra a tabela abaixo. Nesta, são mostrados o número da página, o tempo de carregamento, o tempo da última referência, os bits de referenciada e modificada, o tempo virtual atual e a constante de tempo. Levando em consideração que, nos instantes 700, 800 e 900 entrarão três novas páginas, desenhe uma nova tabela de como ficarão as páginas após a entrada das novas páginas, para cada um dos algoritmos abaixo: 0 80 260 0 0 Constante t: 100 1 50 300 0 1 2 190 190 1 0 4 100 330 0 1 a) WSClock b) Segunda chance c) LRU WSClock 0 700 700 0 0 Constante t: 100 1 800 800 0 0
2 190 190 1 0 4 900 900 0 0 Segunda chance 0 800 800 0 0 Constante t: 100 1 700 700 0 0 2 190 190 1 0 4 900 900 0 0 LRU 0 800 800 0 0 Constante t: 100 1 900 900 0 1 2 700 700 1 0 4 100 330 0 1 10 - Considere a lista encadeada abaixo, que gerencia o espaço livre em Swapping
Considere que serão feitas duas operações novas: incluir um novo processo de tamanho 2, e excluir o processo que começa na posição 8. Faça um desenho de como ficará a lista encadeada após estas operações, para os algoritmos: best fit e next fit. Após este desenho e, converta a lista para o algoritmo quick fit. Best fit P 0 5 -> L 5 9 -> P 14 4 -> P 18 2 -> P 20 6 -> P 26 3 -> L 29 3 Next fit P 0 5 -> P 5 2 -> L 7 7 -> P 14 4 -> L 18 2 -> P 20 6 -> P 26 3 -> L 29 3 Quick fit terá duas listas, uma para espaços vazios e outras para processos L 5 3 -> L 29 3 -> L 18 2 P 0 5 -> P 8 6 -> P 14 4 -> P 20 6 -> P 26 3 11 - Um fabricante de aeronaves resolveu criar um novo sistema operacional, com o intuito de facilitar o gerenciamento de seus Softwares. Estes sistemas operacionais geralmente são fechados, para dificultar a entrada de códigos maliciosos, além do que são exclusivos para auxiliar a operação das aeronaves, não necessitando da instalação de novos Softwares. Qual solução de gerenciamento de memória (seja com ou sem abstração) você sugeria para este fabricante? A solução sem abstração poderia atender, levando em consideração que não seria necessário instalar novos Softwares, cada um poderia saber antecipadamente qual parte da memória utilizar, com isso a abstração torna-se desnecessária. 12 - João comprou um novo computador, com 1 TB de HD. Por algum motivo desconhecido, este só permitia a instalação de partições FAT. Contudo, ao criar a partição, apareceram opções para selecionar o tamanho dos blocos, que eram 2k, 4k, 8k, 16k e 32k. Qual destas opções você escolheria no lugar de João? Justifique sua resposta. Escolheria 32k, pois iria reduzir consideravelmente a quantidade de elementos para a tabela de blocos. Claro que existiriam desvantagens como o tamanho dos arquivos que
não poderia ser inferior a 32 kb, mas mediante o tamanho do HD, vejo como uma desvantagem mínima 13 - Uma empresa criou um servidor simples de internet, com uma máquina Pentium 133 com 8 MB de RAM e 1 GB de HD. Esta estava na dúvida sobre utilizar Coyote Linux (com i-node) ou Windows 95 (com Fat 32). Este servidor deveria possuir na memória apenas parte do sistema operacional e o Software de internet, que ocupam cerca de 6 MB, espalhados em arquivos com tamanho em média de 100 Kb cada. Ao testar, percebeu-se que, com Windows 95, seria ocupado 1 MB adicional na RAM para gerenciar os arquivos. Encontre o quanto seria ocupado com o Coyote Linux. 1 MB FAT / 4bytes = 256k. 1 GB / 256k = 4kb (tamanho da página). 4kb/4bytes = 1024 -> quantidade de ponteiros que cabem dentro de cada página Arquivo 100kb / 4kb -> 25 blocos são necessários por aquivo. Se cada bloco cabem 1024 ponteiros, então será necessário apenas 1 bloco de dados por arquivo. 6MB / 100kb = 60 arquivos x 4kb (1 bloco) = 240 kb (quantidade que irá ocupar na RAM para endereçamento).