Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 - Ilustre a arquitetura de Von Neumann, considerando todos os seus módulos. Discorra sobre cada um dos componentes e suas funcionalidades dessa arquitetura. R: A arquitetura de Von Neumann é composta por uma memória que armazena dados e instruções em um vetor sequencial, os dados se diferem das instruções por meio de sinais de controle. A memória tem um registrador que é responsável por armazenar o dado que está sendo transferido de/para a memória (RDM) e um registrador que armazena um endereço de memória (REM). Uma unidade de controle (que possui um registrador que indica a instrução corrente (RI) e um registrador que aponta para a próxima instrução (PI)), uma unidade de processamento (que possui uma unidade lógica e aritmética (ULA)) que busca os dados e instruções na memória em tempo de execução, e os componentes de entrada e saída. Neste modelo as instruções são executadas na ordem do fluxo de controle e processadas uma instrução por vez sequencialmente a menos que haja uma instrução de controle de fluxo explícita. 2 - Suponha que o tempo de acesso à memória principal de um determinado subsistema de memória seja de 100ns e o tempo de pesquisa em cache seja de 50ns. Assumindo uma taxa de acerto de cache de 90%, qual seria o tempo médio para ler uma posição da memória principal? (Nota: Suponha que a taxa de acerto de cache é o mesmo para os dados e as tabelas de tradução de página.) R: Seja Ta o tempo de acesso com acerto, Tf o tempo de acesso com falha, Tm o tempo médio e h a taxa de acerto. Logo temos que: Ta = 50ns Tf = 50ns + 100ns = 150ns Tm = h*Ta+(1-h)*Tf Tm = 0,9*50 + (1-0,9)*150 Tm = 45 + 15 = 60ns 3 - Considere uma máquina com uma arquitetura tal que seja possível endereçar no máximo 64K células de memória onde cada célula armazena uma palavra e cada instrução tem o tamanho de uma palavra. Todas as instruções desta máquina possuem o mesmo formato: um código de operação, que permite a existência de um valor máximo de 256 códigos, e dois operandos, que indicam endereços de memória. Qual a capacidade máxima da memória em bits? R: 64K = 2^16, logo cada endereço possui 16 bits. 256 = 2^8, logo teremos 8 bits para o código de operação. Como a instrução é formada por um código de operação e dois operandos, temos: Instrução = código de operação + endereço1 + endereço2. Logo temos: Instrução = 8 + 16 + 16 = 40bits Sendo assim a capacidade máxima (CM) é: CM = 64K * 40 = 2621440 bits. Logo a capacidade máxima da memória é 2621440 bits. Qual o tamanho do barramento de endereços? R: 64K = 2^16, sendo assim, cada endereço possui 16 bits. Se a largura do barramento de dados desta máquina for igual à metade do tamanho de uma instrução, como funcionará o ciclo de busca? R: Se o barramento de dados desta máquina for igual à metade do tamanho de uma instrução teremos: 40/2 = 20 bits. Logo, cada instrução precisará ser buscada 2 vezes. 4 - Explique em detalhes a organização hierárquica do subsistema de memória nos computadores atuais. R: Na arquitetura de computadores há vários tipos de memórias e elas são interligadas de forma bem estruturada e organizadas hierarquicamente. Essa hierarquia pode ser visualizada através da ilustração de uma pirâmide. Neste caso, a parte mais alta será composta das memórias de alta velocidade e custo, no entanto com baixa capacidade e na parte mais baixa as memórias de baixa velocidade e custo, no entanto com capacidade elevada. Os registradores estão no topo da pirâmide, são o tipo de memória mais rápida e também possuem o custo mais elevado, por isso existem poucos registradores disponíveis nos sistemas de processamento. Eles armazenam os dados e endereços utilizados pelo processador. Quando o processador precisa de um novo dado ele busca na memória cache, que é o segundo nível desta hierarquia, caso o dado não seja encontrado na cache a busca é realizada na memória principal e o dado é transferido para a memória cache. A memória principal armazena os dados dos programas em execução, ela é muito mais lenta que a cache, no entanto, o seu custo é menor. Uma boa relação custo desempenho pode ser obtida equalizando os tamanhos da cache e da memória principal. Ao executar um programa o sistema operacional carrega os dados do programa que estão armazenados na memória secundária, os discos, para a memória principal. A memória secundária é o tipo mais abundante de memória disponível nos sistemas de computação. 5 - Considere uma máquina que possa endereçar 512 Mbytes de memória física, utilizando endereço referenciando byte, e que tenha a sua memória organizada em blocos de 32 bytes. Ela possui uma memória cache que pode armazenar 8K blocos, sendo um bloco por linha. Mostre o formato da memória cache, indicando os campos necessários (tag, bloco) e o número de bits para cada campo, e o formato de um endereço da memória principal, indicando os bits que referenciam os campos da cache, para os seguintes mapeamentos: Mapeamento direto. R: Como a máquina pode endereçar 512 Mbytes de memória física e a memória cache pode armazenar 8k blocos temos que: Número de blocos mp = 512Mb/32b = 2^29 / 2^5 = 2^24, sendo assim precisaremos de 24 bits para endereçar os blocos. Como a memória cache suporta 8K blocos (2^13), temos que cada linha da cache corresponderá a 2^24/ 2^13 = 2K blocos, sendo que só poderá armazenar um bloco por vez. Para endereçar os 2K blocos na cache, serão necessários 11 bits. Como cada endereço precisa de 29 bits para ser identificado, a memória cache 13, e serão necessários 11 bits para o endereçamento, temos que o número de deslocamento corresponde a: 29-11-13 = 5. Logo temos 5 bits de deslocamento. Sendo assim temos o formato do endereço da memória principal: 11 bits 13 bits 5 bits Id do bloco Id do quadro palavra Cache: 11 bits 32 bytes Tag Conteúdo do bloco Mapeamento totalmente associativo. R: Como cada endereço precisa de 29 bits para ser identificado e são 16M blocos, precisamos de 24 bits para representar o bloco. Formato da memória principal: 24 bits 5 bits Id do bloco palavra Cache: 24 bits 32 bytes Tag Conteúdo do bloco Mapeamento associativo por conjunto, onde cada conjunto possui quatro linhas, cada uma de um bloco. R: Como a memória cache possui um número de conjuntos igual a 8Klinhas/4 = 2K e cada um dos 16M blocos pode ocupar um dos 2K (2^11) conjuntos, sendo que cada conjunto poderá alocar 8K blocos (2^13) temos: Formato do endereço da memória principal: 13 bits 11 bits 5 bits Id do bloco Id do quadro palavra Cache: 13 bits 32 bytes Tag Conteúdo do bloco 6 - Qual a diferença entre endereço físico (real) e virtual? R: O endereço físico aponta para uma célula de memória RAM, o endereço virtual aponta para um quadro localizado na tabela de páginas do sistema operacional. Após um acesso ao endereço virtual o sistema operacional irá traduzir o endereço virtual em um endereço físico para acesso a memória principal. 7 - Considere um computador que possua uma UCP com CI de 16 bits e RI de 40 bits. Suas instruções possuem dois operandos do mesmo tamanho (cada um com 16 bits) e um código de operação. Cada célula de memória tem o tamanho igual ao de uma instrução. Qual o tamanho da instrução? R: 40 bits. Qual o tamanho do código de operação? R: Código de operação = 40 – 16 – 16 = 8 bits. 8 - Explique como é feita a translação entre endereços lógicos e físicos e o mecanismo de tratamento defalta de página em um sistema de memória virtual paginada. R: A unidade de gerenciamento de memória (MMU) faz o mapeamento do endereço lógico para o endereço físico. Ela faz isso utilizando uma tabela de páginas, sendo que cada processo possui uma tabela de páginas que é gerenciada pelo Sistema Operacional. A entrada da tabela de páginas é verificada. Caso seu conteúdo seja válido, os bits do endereço físico da entrada são concatenados com os bits referentes ao deslocamento no endereço lógico e o conteúdo da memória física é acessado. Caso a entrada não seja válida, ocorre uma interrupção e o sistema operacional irá carregar a página lógica em um frame livre e irá atualizar a tabela de páginas. O endereço físico será gerado concatenando-se o endereço do frame onde a página foi carregada com os bits referentes ao deslocamento no endereço lógico e o conteúdo da memória física é acessado. 9 - Por que os tamanhos de páginas e quadros são sempre potências de 2? R: Porque eles só podem armazenar 0 ou 1, sendo assim há somente duas possibilidades para cada célula. 10 - O que é uma falta de página? Quais são suas causas possíveis e como o sistema operacional deve tratá-las? R: Falta de página é o nome dado à quando uma informação buscada não está na memória, sendo necessário carrega-la do disco para a memória. Neste caso, o processador se comunica com o controlador para gerar uma interrupção. O sistema operacional coloca o processo no estado de bloqueado, faz o pedido de E/S para trazer mais páginas (ou página). Enquanto isso, o sistema operacional escolhe e deixa outro processo e o executa. Quando a página é trazida para a memória, o processo que gerou a falta de páginas entra na fila dos processos em estado pronto e o controlador envia uma interrupção. Essa interrupção significa que o evento foi realizado. 11 – Considere um sistema de memória com quatro quadros de RAM e oito páginas a alocar. Os quadros contêm inicialmente as páginas 7, 4 e 1, carregadas em memória nessa sequência. Determine quantas faltas de página ocorrem na sequência de acesso {0, 1, 7, 2, 3, 2, 7, 1, 0, 3}, para os algoritmos de escalonamento de memória FIFO e LRU. R: FIFO = 6 faltas, LRU = 5 Faltas. FIFO : 0 (falta), 1 (hit), 7 (hit), 2 (falta), 3 (falta), 2 (hit), 7 (falta), 1 (falta), 0 (falta), 3 (hit) 7 2 0 4 3 1 7 0 1 LRU: 0 (falta), 1 (hit), 7 (hit), 2 (falta), 3 (falta), 2 (hit), 7 (hit), 1 (hit), 0 (falta), 3 (falta) 7 4 2 3 1 0 3 0 12 - Usando a tabela de página abaixo, indique o endereço físico correspondente a cada um dos seguintes endereços virtuais: a) 20 R: Endereço Virtual = 20 Deslocamento = 20-0 = 20 Deslocamento em binário = 10100 Logo, temos: [ 0000 ] 000000010100 : Página virtual: 0. [ 010 ] 000000010100 : Moldura de página física: 2. Sendo assim, o endereço físico é igual a: 8192 + 20 = 8212. b) 4100 R: Endereço Virtual = 4100 Deslocamento = 4100-4096 = 4 Deslocamento em binário = 100 Logo, temos: [ 0 0 0 1 ] 0 0 0 0 0 0 0 0 0 1 0 0 : Pagina virtual: 1 [ 0 0 1 ] 0 0 0 0 0 0 0 0 0 1 0 0: Moldura de página (física): 1 Sendo assim, o endereço físico é igual a: 4096 + 4 = 4100. c) 8300 R: Endereço Virtual = 8300 Deslocamento = 8300 – 8192 = 108 Deslocamento em binário = 1101100 Logo, temos: [0 0 1 0]0 0 0 0 0 1 1 0 1 1 0 0 : Página virtual: 2 [1 1 0]0 0 0 0 0 1 1 0 1 1 0 0 : Moldura de página (física): 6 Sendo assim, o endereço físico é igual a: 24576 + 108 = 24684.
Compartilhar