Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Universidade Estácio de Sá Cursos Superiores – Engenharia e Informática – 1.o período Arquitetura e Organização de Computadores – Prof: Affonso de Cusatis Junior Lista de exercícios preparatória para a 2ª prova (AV2) – SOLUÇÕES 1) Resp: são os níveis mostrados na imagem abaixo, mais o nível de aplicações de usuário (nível 6), que compreende os programas de usuário já prontos. 2) Resp: UC (Unidade de Controle), ULA, clock, barramento(s) interno(s), registradores....... 3) Fios (ou barramento) de dados, fios (ou barramento) de endereços, e de controle. 4) RAM estática (SRAM) e RAM dinâmica (DRAM). Mas complete com as principais características de cada uma. 5) São exemplos de padrões comerciais de barramentos de computadores, nas últimas 4 décadas: a) ISA, PCI, MBR, MAR, AGP b) ISA, VLB, PCI, AGP, USB c) PCI, FireWire, AGP, XTG, BUSPlus d) PCI, USB, IDE, TX11, ACC e) USB, ULA, DCC, MAR, MBR 6) Cite 3 ou 4 formas pelas quais barramentos podem ser classificados (ex: “barramentos de computador podem ser: pretos x brancos; tricolores, flamenguistas ou vascaínos; etc ”): Resp: serial x paralelo; síncrono x assíncrono; 2 dedicado x multiplexado. E ainda há uma outra classificação (não muito precisa), que divide barramentos em: local (ou ‘de memória’), de sistema e de expansão. 7) A transmissão de dados, em barramentos e de um modo geral, pode ser serial ou paralela. Explique a diferença. Resposta textual e individual. 8) Tema: BITS DE BARRAMENTO Barramentos de dados de barramentos de computadores modernos (dos anos 80 até hoje), em geral, possuem quantos bits? a) 128 ou 512 bits b) 8, 64, 128 ou 512 bits c) 8, 16, 32 ou 64 bits d) 16, 32 ou 128 bits e) 6, 12, 18 ou 28 bits 9) O conjunto de instruções definido para uma determinada Unidade Central de Processamento (UCP) é constituído basicamente de uma mistura de formatos de instruções e modos de endereçamento. Sobre este assunto, qual das afirmações abaixo é incorreta? a) O modo de endereçamento por registrador é bem rápido, pois não exige acesso à memória b) O modo de endereçamento direto apresenta como desvantagem a limitação do espaço de endereçamento ao tamanho do campo de operando. c) Considerando o modo de endereçamento indireto, palavra de 16 bits, instrução de um operando e campo de operação de 8 bits, a memória endereçável é de 32 MB. d) O modo de endereçamento imediato tem a menor relação de tempo de acesso ao dado. e) O modo de endereçamento indexado (base + índice) é usado diretamente na tradução de trechos de programas que manipulam a estrutura de dados conhecida como vetor. 10) Qual é o objetivo de se utilizar a memória cache nos computadores modernos? E a tecnologia de memória RAM utilizada? Por que não usar toda a memória principal nesta tecnologia? Resp: acelerar, na média, a busca de informações na memória, baseando-se no princípio da localidade. SRAM (memória RAM estática). Por questão de custo!! (além disso, o espaço ocupado pela memória SRAM também é maior). 11) Quais são os níveis de memória cache presentes na maioria dos processadores do ‘mundo PC’ atualmente? Resp: durante muito tempo os níveis L1 (level 1) e L2. Atualmente é comum: L1, L2 e L3. 12) Quais são as formas se organizar uma memória cache? Resp: capítulo subsitemas de memória, do MMonteiro. Mas há várias decisões a serem tomadas, como o tamanho da cache, se será ou não dividida em dados x instruções, o tamannho e quantidade dos ‘slots’/páginas, e a estratégia de substituição de páginas (FIFO, LRU, LFU...). 13) Descreva o funcionamento da memória cache para uma típica operação de leitura. Resp: capítulo subsitemas de memória, do MMonteiro 14) Que tipos de classificação são possíveis quando falamos de barramentos? Resp: *** questão repetida. 3 15) Qual será a taxa de transferência de dados em um barramento XPTO, com 16 bits de linhas de dados, um ‘clock’ de 66 MHz, e que efetua 2 transferências de dados completas por ciclo de clock? Resp: 16 bits = 2 bytes. Taxa = 2B * 66M/seg * 2 (transferências/ciclo) = 264 MB/seg 16) Releia o material (slides de resumo) sobre barramentos e faça uma tabela contendo: ano de lançamento, bits de dados, clock, para os principais padrões de barramentos surgidos (no mundo PC) dos anos 80 até hoje (ISA, EISA,..., PCI, AGP, PCI express). Resp: é particular. Mas tanto o livro Mário Monteiro, quanto o livro Stallings têm tabelas assim. 17) Cite os registradores de propósito específico normalmente encontrados em uma CPU. Resp: CI (ou PC), REM (ou MAR), RDM (ou MBR), RI (ou IR), ACC (acumulador), PSW....... (início capítulo 6, Mário Monteiro, ed.4, e/ou resumo do professor, em .doc). 18) O que vem a ser o chamado PSW, na CPU (cite inclusive alguns informações que ele normalmente armazena, ou representa)? Livro MM-5, cap 6; Slides sobre CPU. 19) Qual é a função do circuito decodificador de instruções, dentro da CPU? Resp: decodificar as instruções buscadas na memória, ou seja: informar a Unidade de Controle qual é a instrução sendo executada, a partir de seu código de operação (opcode). 20) Quais são os 3 insumos (entradas) nos quais a Unidade de Controle se baseia para poder gerar, a cada intervalo de tempo, os sinais de controle necessários para coordenar todo o trabalho da CPU (busca e execução de cada diferente tipo de instrução)? Resp: a saída do decodificador (que instrução é aquela), o sinal de clock (que pode ser subdividido em intervalos ou subciclos menores), e o registrador de status (PSW). 21) O que ocorreria se não houvesse o passo de incremento automático do PC, no ciclo de instrução de uma CPU? Resp: a execução de qualquer programa ficaria em ‘loop’ eterno, buscando sempre a mesma instrução. 22) Quais são as principais categorias de instruções que encontramos no chamado nível ISA (instruction set architecture), ou nível de instruções, ou CIM (conjunto de instruções de máquina) dos computadores? • Instruções Aritméticas: adição, subtração, e eventualmente, outras. • Instruções lógicas: AND, OR, NOT (complemento), deslocamentos, etc. • Instruções de movimentação de dados CPU � CPU ex: “move” Da CPU � memória ex: “load” Da memória � CPU ex: “store” • instruções de desvio (desvio incondicional, condicionais e “CALLs” (chamada a subrotina)), • instruções de entrada e saída (atualmente, poucas CPUs incluem este tipo de instrução) • instruções especiais de controle (ex: HALT, WAIT ou NOOP, etc). 23) Quais são os micro-passos (ou seja, as etapas em termos de micro-arquitetura) que compõem a busca da próxima instrução? E como pode ser resumida esta seqüência de passos? 24) De acordo com a discussão sobre formatos de instruções (slides de resumo e cap.6 do livro Mário Monteiro), responda: que formatos de instrução são possíveis para uma instrução de multiplicação (que logicamente exige a especificação de 3 informações: os 2 valores a serem multiplicados, e o local para o resultado). Exemplifique. Resp: instruções com os 3 operandos explícitos (fonte 1, fonte 2 e destino), com apenas 2 operandos (destino implícito), com apenas 1 operando (um dos fontes e destino implícitos, baseada em 4 registrador ‘acumulador’), e com 0 operandos (tanto fontes como destino estarão no topo da pilha). Obs: ver ‘desenhos’ e exemplos, nos slides e/ou no livro Mário Monteiro (capítulo “Representação de instruções”). 25) Em que consiste, em termos práticos (ou seja, em termos de ações a serem tomadas no nível de micro-arquitetura da CPU) a execução de uma instrução de desvio incondicional (ex: JUMP <endereço> )? Resp: na prática, consiste basicamente em fazer: CI <endereço> 26)Diga quais são os principais modos de endereçamento utilizados em instruções básicas, no nível de instruções de um computador. Veja resumo do professor (em .doc) e/ou capítulo 6 do livro do Mário Monteiro (ed.4). Resp: modo imediato, em registrador (direto em registrador), direto (em memória), indireto em memória, indireto em registrador, modo indexado e base + deslocamento. Veja resumo do professor (em .doc) e/ou capítulo 6 do livro do Mário Monteiro (ed.4). 27) Explique (de preferência, através de um exemplo), como funciona o modo de endereçamento ‘base + índice’, ou indexado. Resp: é o modo de endereçamento criado para que os programas possam trabalhar com ‘vetores’ ou ‘arrays’, que são as variáveis compostas indexadas (diversos valores do mesmo tipo de dados com um único nome inicial e uma posição ou índice, guardados de forma contígua ou adjacente na memória). O endereço de um elemento do vetor é sempre indicado por um par: endereço base + índice (do elemento dentro do vetor). Exemplo: (na linguagem Pascal) VAR valores : array[1..5] of integer; {declara um vetor chamado valores, com 5 elementos inteiros} BEGIN . . . . . valores[1] := 5; { atribui (guarda) o valor 5 no 1.o elemento (o de índice 1) do vetor } valores[2] := 2; . . . . . valores[5] := 0; { preenche com valor 0 o 5.o e último elemento do vetor valores } Sabendo-se que cada valor do tipo integer ocupa 2 bytes, e supondo, em nosso exemplo que, em dada execução do programa, o vetor valores seja carregado a partir do endereço 100 da memória; e supondo que o enderço inicial do vetor valores (que é 100) foi colocado em um registrador R7: LDX R7, 1 (load indexed) Carrega acumulador com conteúdo da posição de memória dada por: (R7) + (1-1)x(2) = 100 + 0 = 100 Já para LDX R7, 5 (load indexed) (R7) + (5-1)x(2) = 100 + 8 = 108 ...... e assim por diante. Assim é acessado cada elemento do vetor (tanto para leitura quanto escrita). 28) Cite um exemplo de uso (no processo de tradução) das instruções de desvio condicional (como JPZ – “Jump if zero”, ou BNE – “Branch if note qual”). 29) Descreva sucintamente a diferença entre transmissão serial e paralela. Resp: consulte slides sobre barramentos e transmissão, ou livro (Stallings). 30) Quais são as funções básicas de um módulo de entrada e saída, e os elementos principais que normalmente são encontrados dentro destes módulos? 5 Sugestão de fonte: livro do Stallings, 5.a edição, seção 6.2 (pág. 198) (na 8.a edição, não mapeei o local exato do assunto ainda). Resp: consulte a seção do livro indicada. 31) Quais são as 3 grandes técnicas para a implementação de entrada e saída em computadores (capítulo 6, “Entrada e Saída”, do livro Stallings)? Resp: E/S programada, E/S por interrupção e E/S com DMA (acesso direto à memória) *** dê uma lida rápida no capítulo do livro do Stallings (E/S), da 192 à 220, exceto 196-197, e 209- 214. 32) No conjunto de instruções apresentado como exemplo em nosso material, quais são as instruções que se referem a E/S? Resp: são as instruções de GET e PUT, as quais, em nosso exemplo fictício de ISA – conjunto de instruções – poderiam ser usadas para fazer a leitura e a escrita de valores especificando uma ‘porta’ (um endereço específico de memória no qual é ‘mapeado’ um dispositivo de E/S), e um id de dispositivo. 33) Um processador possui um RDM com capacidade de armazenar 32 bits e um REM com capacidade de armazenar 24 bits. Sabendo-se que em cada acesso são lidas 2 células da memória RAM (MP) e que o barramento de dados (BD) tem tamanho igual ao da palavra, pergunta-se: a) Qual é o tamanho da palavra e de cada célula da memória? Célula de memória: 16 bits (pois RDM = 32 = 2 x a palavra de memória). Da palavra = 32 (pois barramento de dados deve ter o mesmo tamanho do RDM = 32, e neste caso, tem o mesmo tamanho da palavra). b) Qual é a capacidade máxima de endereçamento do computador em questão? 2 elevado a 24 (=tamanho do REM, ou MAR) = 2**20 * 2**4 = 1M * 16 = 16M endereços (ou células). c) Qual é o total máximo de bits que podem ser armazenados na memória RAM (MP)? = 16M células x 16 bits (tamanho de cada célula) = 256Mbits (ou 32MB). 34) Descreva (nome e descrição sucinta) os tipos de controle em processadores (ou seja, as duas formas básicas de projeto e implementação de Unidades de Controle, em CPUs). (fonte: livro Mário Monteiro, 5.a edição, pág.555) Para detalhes: veja final do capítulo 6, livro MMonteiro. Resp (parcial): controle microprogramado (ou por micro-programação / micro-código), e controle “direto em hardware”, ou “hardwired”. Para detalhes: veja final do capítulo 6, livro MMonteiro. 35) Cite os principais marcos da evolução histórica da arquitetura ‘x86’, da empresa Intel e concorrentes (de preferência, monte uma tabela). Fonte: livro do Stallings, 5.a edição, seção 2.3 (pág. 46). Resp: consulte a seção do livro indicado. 36) O que vem a ser a técnica de Pipeline? Que tipo de instrução mais atrapalha a melhoria de desempenho desta técnica? Resp: veja informações sobre pipeline na seção específica nos livros Mário Monteiro, ou Stallings. 37) Quais são os dois grandes paradigmas (filosofias) para o projeto e construção de CPUs e de conjuntos de instruções (cite as siglas e seus significados)? Resp: CISC (Complex Instruction Set Computer) – “computadores com conjunto de instruções complexas”; e RISC (Reduced Instruction Set Computer) – “computadores com conjunto de instruções reduzido” (na verdade, o termo simples seria melhor do que reduzido). *** para maiores detalhes, veja questões específicas na parte 2 da lista de exercícios da AV2! 6 38) Com relação ao capítulo “Nível do Sistema Operacional”, responda: a) quais são as duas funções básicas de um Sistema Operacional? b) quais os conjuntos de informação que compõem o contexto de um processo? Resp: Contexto de hardware, contexto de software e espaço de endereçamento. c) e o nome normalmente dado à estrutura de dados usada para implementar este contexto? Resp: normalmente é chamada de PCB (process control block). d) quais são os estados pelos quais pode passar um processo? Resp: executando (running), pronto (ready) e bloqueado, ou em espera (wait). Além dos estados especiais ‘criado’ e ‘terminado’, que são mais raros e ocorrem apenas uma vez, por pouco tempo. e) o que é um código “relocável”? Resp: é aquele código (ou seja, o conjunto de instruções que compõem um programa) que foi traduzido, montado e ‘ligado’ de forma a poder ser carregado em qualquer ponto da memória para funcionar. f) o que é a técnica conhecida como swap? g) qual é o objetivo principal do uso da memória virtual? h) quais são as formas básicas de ‘mapeamento’ da memória virtual? E a diferença entre eles? i) qualquer instrução pode ser executada por qualquer programa, num dado momento? j) o que é fragmentação de memória? Sugestão de fonte: slides do professor sobre Sistemas Operacionais; livro ST-8, cap.8; livro ST-5, cap.7. 7 PARTE II 1) Considerando o que você aprendeu durante o curso, tente responder, resumidamente: como podemos dividir/classificar os tipos de informação que são armazenados e manipulados pelos computadores digitais? Resp: toda informação manipulada e armazenada por computadores digitais encontra-se no formato binário (sequencias de bits). Mas ela pode ter diferentes significados, dependendo do local, do momento e do contexto. Basicamente, pode ser: instruções, dados e endereços (alguns consideram endereço como um tipo de dado, também). Instruções dependem muito do tipo de processador. Dados podem ser, resumidamente: numéricos enão-numéricos. Dados numéricos podem ser divididos basicamente em: números inteiros e números não-inteiros (em geral, representados no formato “ponto- flutuante”). Dados não-numéricos podem ser: alfa-numéricos (caracteres e strings) e lógicos (V ou F). E, eventualmente, endereços de outros dados (usados em algumas situações, na programação). De modo esquemático, temos: Informações digitais binárias: - Instruções - Dados (incluindo endereços) - Dados Numéricos Inteiros Decimais/reais (“ponto-flutuante”) - Dados não-numéricos Caracteres e cadeias de caracteres (“strings”) Lógico (ou “booleano”) Endereços de Memória Obs: Outra classificação possível seria: Informações digitais binárias (manipuladas pela CPU): - Endereços de memória - Palavras (conteúdo) de memória - Instruções - Dados - Numéricos - Inteiros - Decimais/reais (“ponto-flutuante”) - Não-numéricos Caracteres e cadeias de caracteres (“strings”) Lógico (ou “booleano”) Endereços de outros dados (** são os “ponteiros”, em programação) 2) Qual é a função básica do carregador (ou loader), parte do Sistema Operacional, e que tarefas são envolvidas na execução desta função? Resp: A função do loader é carregar os programas na memória principal e iniciar sua execução. Este trabalho envolve ao menos 3 tarefas: 8 a – copiar o conteúdo do programa de um local fonte para a memória (os bytes que compõem instruções e dados); b – alocar (reservar) espaço em memória para os dados (a maioria das variáveis ainda não possui um valor neste momento); c – recalcular os endereços (referências) de memória (de variáveis e instruções de desvio, etc), que em geral são endereços relativos; d – por fim, colocar o endereço da 1.a instrução do programa no PC (Programa Counter, ou CI). 3) Considere a fórmula básica para estimativa do tempo de CPU de um programa (vista em nossos slides sobre CPU), abaixo. Responda: Um programa com processamento altamente determinístico está prestes a ser executado. O compilador varreu o programa e detectou: 200 instruções simples (de um ciclo – consomem apenas um ciclo em sua execução); 200 instruções médias (dois ciclos); 100 instruções longas (quatro ciclos). Sabendo-se que este programa será executado em uma máquina com clock de 100 MHz, quanto tempo deverá levar a execução deste programa? Calcule o termpo de um ciclo de clock para esta máquina (T = 1/freqüência), como em exercício na lista para a AV1. Some as instruções multiplicadas pelos ciclos de clock de cada tipo (ex: 200 x 1 + 200 x 2 + ...) para obter o total de ciclos de clock, e por fim, multiplique o n.o de ciclos pelo tempo de um ciclo. 4) Barramentos paralelos (que transmitem simultaneamente com 8, 16, 32, 64 bits...) são obrigatoriamente mais rápidos do que barramentos seriais? Ilustre sua resposta com um exemplo. Não. A princípio, pode parecer que um barramento com 8 a 128 fios ou trilhas paralelas sempre será mais rápido do que um serial. Se compararmos ambos como mesmo clock, sim. Entretanto, problemas e limitações de engenharia na transmissão paralela (como, por exemplo, o atraso ou delay, na velocidade de diferentes fios paralelos, que por geralmente serem obrigados a fazer ‘curvas’ nas placas, acabam por ter comprimentos diferentes) impedem que sejam adotados ‘clocks’ (freqüências) muito altos. Já as conexões seriais têm conseguido adotar clocks cada vez mais altos, já superando, em vários casos, as taxas de transferência dos barramentos paralelos. O grande exemplo atualmente é o da moderna conexão PCIe (PCI Express – nome comercial adotado para uma conexão serial ponto a ponto, que pouco tem a ver com o barramento PCI, e nem é considerado exatamente um barramento), que veio para substituir barramentos e slots PCI e AGP, já evoluiu e está na versão 3.0 e chega a funcionar em até 8GHz. (Conexões PCIe 3.0, em 16X e a 8GHz transmitem até 16.000 MB/s !!!). ** Para saber mais, leia: http://www.clubedohardware.com.br/artigos/Tudo-o-que-Voce-Precisa-Saber- sobre-a-Conexao-PCI-Express/1060 5) Um arquivo com exatamente 2 GB dever ser transmitido da CPU para um módulo de E/S, através de um barramento paralelo, síncrono, com largura 32, clock de 200MHz, e que realiza apenas uma transferência por ciclo de clock. Ignorando-se possíveis atrasos, quanto tempo levará a transferência deste arquivo? 6) Assinale cada uma das características de arquitetura (CPU / conjunto de instruções) abaixo com um ‘C’ (caso seja mais comum em projetos de máquinas CISC), ou com um ‘R’ (caso seja mais comum em projetos de máquinas RISC). [C] Conjunto grande de instruções [C] Instruções executadas por microcódigo [R] Instruções com formato fixo [C] Diversos formatos de instrução [R] Apenas um, ou poucos ciclos de máquina p/ instrução [R] Uso intensivo de pipeline [R] Instruções executadas diretamente pelo HW (hardwired) [C] Instruções pederosas, de ‘alto nível’ (mais próximas aos comandos de linguagens alto nível) [C] Uso pouco efetivo de pipeline [C] Vários ciclos de máquina p/ instrução [R] Conjunto reduzido de intruções básicas [R] Poucos modos de endereçamento 9 [R] Muitos registradores [C] Diversos modos de endereçamento 7) Assinale cada uma das ‘famílias’, ou linhas de processadores abaixo com um ‘C’ (caso sejam mais influenciadas pela filosofia CISC), ou com um ‘R’(caso sejam mais influenciadas pela filosofia RISC). [C] família ‘x86’ / Pentium (Intel e concorrentes) [C] DEC VAX [R] MIPS [C] Motorola 68xxx [R] PA-RISC [R] Arquitetura Power (incluindo PowerPC) [R] SPARC (SUN) [R] IBM RS-6000 [R] DEC Alpha (DEC) [R] ARM 8) Diga quais são os modos de endereçamento usados em cada uma das instruções abaixo: Sintaxe (formato) Efeitos (em termos de micro-arquitetura) Resposta a) LDAI oper ; acc oper modo imediato b) LDAM oper ; acc (oper) modo (direto em) memória c) ADD op1, op2 ; regs[op1] regs[op1] + regs[op2] (direto em) registrador, em ambos d) SUB oper ; acc acc + mp[ oper ] (direto em) memória e) LDIM oper ; acc ( (oper) ) indireto em memória f) ADD r, op2 ; regs[r] regs[r] + (op2) (direto) em registrador e em memória g) LDAX rx, ender ; acc mp[ ender + regs[ rx ] ] indexado (ou base + índice) h) JMP oper ; (“jump”) pc oper direto em memória, ou imediato i) BRZ oper ; (“branch if zero”) if acc = 0, pc oper direto em memória, ou imediato j) CPYR op1, op2 ; regs[ op1 ] mp[ op2 ] (direto) em registrador e em memória k) ADD ; acc mp[tos]; acc acc + mp[tos+1]; tos tos-2; mp[tos] acc; tos tos – 1 (** onde tos é o “top of stack”) endereçamento “em pilha” 9) O que é a pilha de memória (por vezes chamada pilha de hardware) utilizada na execução de programas? Quais sãos as principais operações que podem ser efetuadas sobre a pilha, em qualquer arquitetura? Resp: a pilha é uma área de memória onde os dados são inseridos e retirados segundo o critério de entrada e saída LIFO (last in, first out – o úlimo a entrar será o primeiro a sair). Geralmente a base da pilha está em um endereço ‘alto’ e ela vai crescendo em direção ao início da memória. As principais operações são: push, ou ‘empilha’ (insere um novo dado no topo da pilha); e pop, ou ‘desempilha’ (retira o dado do topo da pilha). 10) Considere um computador com uma CPU baseada em acumulador, em que a pilha de memória (stack) associada a um programa está no estado inicial mostrado abaixo: a base da pilha (registrador BOS – base of stack) é o endereço FF08, e o topo da pilha (registrador TOS – top of stack) é o endereço FF06. Desenhe a configuração da pilha após a execução de cada uma das instruções abaixo: endereç o valo r FF00FF01 FF02 FF03 FF03 FF04 FF05 FF06 30 FF07 42 10 FF08 45 FF09 FF0A POP ACC (ACC mp(TOS) ) PUSH 25 (modo imediato) PUSH 20 POP ACC ADDS (instrução “Add in stack” – adição em pilha) MULS (instrução “Multiply in stack” – multiplicação em pilha) endereç os valores valores valores valores valores valores valores FF00 FF01 FF02 FF03 FF03 FF04 FF05 � 20 FF06 � 25 25 � 25 FF07 � 42 42 42 42 � 67 FF08 45 45 45 45 45 � (67*45) FF09 FF0A ** a seta (�), a cada passo, indica o topo da pilha. 11) Qual o tipo de memória usado nas caches (ROM, RAM, DRAM, PROM, ou alguma outra)? A memória SRAM (Static RAM – RAM estática), um tipo de RAM mais rápida, mais cara e menos densa que a DRAM. 12) Quantos e quais são os níveis de cache encontrados atualmente, na maioria dos sistemas micro- computadores? A memória cache é sempre única, ou pode ser dividida em mais de um tipo de informação? Hoje em dia boa parte dos computadores tem 3 níveis de cache: L1, L2 e L3. E é comum a divisão da cache (L1 e, por vezes, a L2) em cache de instruções e cache de dados, para aumentar a eficiência pela redução do número de ‘cache faults’. 13) Além da questão do custo, há algum outro motivo para que não se aumente indefinidamente a quantidade de memória cache em um sistema? Há sim. Por uma série de motivos (estatísticos, inclusive), há um ponto em que o aumento da quantidade de cache, apesar de aumentar o custo, traduz-se cada vez menos em ganho de performance. 14) Observe as ações listadas abaixo: 1 - trazer a próxima instrução da memória até o registrador 2 - alterar o contador de programa para iniciar a próxima instrução 3 - determinar o tipo de instrução trazida 4 - se a instrução usar uma palavra na memória, determinar onde esta palavra está 5 - trazer uma palavra para dentro de um registrador da CPU se for necessário 6 - executar a instrução 7 - voltar a etapa 1 para iniciar a execução da instrução seguinte As ações acima são levadas a cabo pelo(a): a) MEMÓRIA RAM b) ULA c) CPU d) MÁQUINA VIRTUAL e) CICLO DE INSTRUÇÕES 15) Com relação a compiladores, ligadores (link-editores) e interpretadores, é CORRETO afirmar que: a) uma função importante do tradutor é a realocação de código; b) o link-editor é o utilitário responsável por carregar, na memória principal, um programa para ser 11 executado c) o depurador é o utilitário responsável por gerar, a partir de um ou mais módulos-objeto, um único programa executável d) o link-editor é o utilitário responsável por gerar, a partir de um ou mais módulos-objeto, um único programa executável e) a grande vantagem do uso de interpretadores é o tempo gasto na tradução de suas instruções sempre que é executado 16) São exemplos de políticas de substituição de páginas na memória cache: a) FIFO, LRU, JTU, Random b) aleatório, FIFO, LILO, LFU c) aleatório, FIFO, LRU, LFU d) FIFO, LILO, LFU, TCU e) aleatório, FIFO, DMA, GPU Resp: letra C 17) Sabemos que a memória cache é dividida em blocos ou páginas, e que há um número menor de menos páginas do que na memória principal. Quando uma leitura é solicitada pela CPU e o dado já se encontra na cache, ok, temos um ‘cahe hit’. Mas quando há um ‘cache fault’, deve ser lida a memória principal, e uma nova página deve ser trazida para a cache. Quando a cache está cheia e precisa ter seus dados substituídos, é utilizada algum algoritmo (ou política) de substituição de páginas da cache. Dentre eles, há aquele que substitui o bloco presente na cache que foi menos referenciado desde sua carga. Outro substitui o bloco que foi carregado há mais tempo. Estes métodos são, respectivamente: a) Random (aleatório) e FIFO (First In First Out) b) LFU (Least Frequently Used) e FIFO c) LRU (Least Recently Used) e Random d) FIFO e LFU e) LILO (Last In Last Out) e FIFO Resp: letra B 18) NÃO se trata de uma função de um Módulo de Entrada/ Saída, que faz a interface entre o periférico que ele controla e o barramento do sistema. a) Comunicação com dispositivos. b) Controle e Temporização. c) Comunicação com o processador. d) Processar cálculos matemáticos. e) Armazenamento temporário de dados. Resp: letra D 19) Sabemos que a estrutura interna dos HDs (discos rígidos) é formada por pratos (em geral com duas faces), divididos em cilindros (trilhas) e setores. (abaixo). 12 Qual é a capacidade teórica (em MB) de um disco rígido com 4 pratos duplos (2 faces em cada prato, cada uma com sua própria cabeça de leitura/gravação), 64K trilhas por face, 16 setores por trilha e setores com tamanho de 1KB? a) 256 MB. b) 8 GB c) 128 GB d) 8 MB e) 64 MB Resp: Qtd = 8 x 64K x 16 x 1K = 2**3 x 2**16 x 2**4 x 2**10 (bytes) = 2**(3+16+4+10) = 2**33 = 2**3 x 2**30 = 8 x 1G = 8 G (em bytes) = 8 GB (letra B) 20) Considere as alternativas abaixo sobre Overclock em processadores/placas: I) Técnica que permite com que o processador trabalhe em uma frequência maior do que aquela para a qual o mesmo foi projetado. II) Permite com que ocorra uma queda na emissão de calor por parte do processador. III) É usado também para aumentar a frequência de trabalho em outros periféricos, como placas de vídeo. Estão correta(s): a) Somente a alternativa I b) Somente a alternativa II c) Somente a alternativa III d) Somente I e III e) Somente I e II Resp: letra D 21) (*** uma questão curiosa e interessante) Pergunta: A maioria das pessoas conta em seus dedos de 1 a 10, em decimal. Entretanto, quem trabalha 13 com informática pode fazer melhor. Se você olhar cada dedo seu como um dígito binário, sendo o dedo estendido igual a 1 e o dedo recolhido igual a 0, você pode contar até: a) 33 b) 1023 c) 50 d) 31515 e) 512 Resp: 1023 (que é o maior valor até o qual se consegue contar com 10 bits/dedos – 2**10 = 1024). 22) Você possui um link de internet em sua residência de 1 Mbps. Considerando este link, informe em quanto tempo você conseguiria efetuar o download de um arquivo de 600 MB. a) 100 minutos b) 90 minutos c) 80 minutos d) 70 minutos e) 60 minutos Resp: letra c) 80 min. -> 1 Mbps -> 600 MB = 600x8 Mb = 4800Mb ---> 4800 Mb / 1Mbps = 4800s = (4800/60)min = 80 min. 23) Prova: VUNESP - 2013 - CTA - Técnico em Informática Disciplina: Arquitetura de Computadores A Unidade Central de Processamento de um computador típico é constituída pela Unidade Lógica Aritmética (ULA) e pela Unidade de Controle (UC).Uma das atividades realizadas pela UC é: a) a execução de instruções em ponto-flutuante. b) a execução de todos os tipos de instruções c) a decodificação de instruções d) o armazenamento de instruções em disco. e) o gerenciamento da memória dinâmica Resp: letra C 24) Diga quais são os 2 métodos de detecção/correção de erros mais comuns utilizados em sistemas de computação. Resp: O esquema mais simples é o bit paridade (apenas para detecção), podendo usar um ou mais bits de paridade, e usar “paridade par” ou “ímpar”. Em sua forma mais simples, acrescenta-se um único bit a uma cadeia original de bits (por exemplo: 1 bit para cada 7), de forma a garantir que o número de bits ‘1’ será sempre ‘par’ (ou ‘ímpar’) antes da transmissão. Após a transmissão, no ponto receptor, o número de bits ‘1’ é conferido. Se não estiver de acordo coma ‘regra combinada’, ouve um erro, e é solicitada retransmissão do dado. Observe que este esquema só é capaz de detectar a troca de um único bit, e apenas detecta, não sendo capaz de identificar qual bit foi trocado, muito menoscorrigir o erro. Um esquema mais poderoso (detecção e correção), e bem mais complexo, é o chamado Código de Hamming, que também pode acrescentar um número variável de bits à palavra original. Baseia-se na idéia básica dos bits de paridade. Bits extra são acrescentados no meio da palavra original, nas posições correspondentes a potências de 2 (bit 1, 2, 4, 8, etc). Cada bit de paridade será calculado com base em todos os bits originais que usam aquela potência de 2 em sua composição binária. (parece um pouco complicado, não?!! Mas é um bom exemplo da engenhosidade humana, sempre presente no universo da computação. Procure ler sobre o assunto no livro Stallings ou Tanenbaum, ou na web). 25) Em um sistema de memória que utiliza o método “bit-paridade” para a detecção de erros, com paridade par, qual será a sequencia de bits, antes da transmissão, das seguintes palavras? a) 10011100 b) 11100110 14 Resp: a) 10011100 0 (pois o número de bits 1 é 4, logo, já é par) b) 10011100 1 (pois o número de bits 1 é 5, ímpar) 26) Qual é a diferença básica entre uma instrução de CALL (cujo nome pode variar um pouco, mas que é a instrução de máquina típica usada para a “chamada de subrotinas” em programas de alto nível) para uma instrução de desvio incondicional, como JUMP <endereço>? Resp: a grande diferença é que uma instrução de CALL é uma espécie de desvio incondicional que têm que saber voltar, mais tarde (no momento do ‘return’) para o mesmo ponto do programa onde estava (é o chamado ‘retorno de subrotina’). Para isso, a instrução deve salvar o conteúdo atual do registrador CI (ou PC), em geral, na pilha. 27) Quais são as funções básicas de um linkeditor, ou linker, no processo de programação / criação de novos programas? Resp: Fazer a ‘ligação’, ou ‘linkedição’ dos diversos módulos que normalmente compõem o programa executável, o que significa basicamente: juntar os módulos de programa – trechos de código objeto – necessários (por exemplo, diferentes arquivos .obj ou .lib que são ligados, na compilação de um programa em linguagem C, para compor um arquivo “.exe”) e recalcular os endereços de memória trazidos nas instruções (de modo que não sejam absolutos, mas relativos (isto é, quando da geração de código relocável, que é a maioria dos casos atualmente) ao início do programa como um todo). 28) Explique sucintamente o conceito por trás das DLLS e do processo de ligação dinâmica. Resp: A idéia central no uso da técnica de ligação dinâmica, que envolve as ‘bibliotecas de vínculo dinâmico’ (DLL – Dynamic Link Library) é de que as rotinas de bibliotecas, e outros trechos de código necessários ao programa, só sejam ligados a este no momento de sua carga, isto é, quando o programa está sendo carregado na memória (função executada pelo loader, ou carregador, que é parte do SO), para ser executado. As principais vantagens desta técnica são: primeiramente, cada programa criado fica menor (seu(s) arquivo(s) no HD, após a ligação); e, além disso, quando há uma atualização (melhoria ou correção de erros) em uma DLL (ou em algumas de suas rotinas) todos os programas que as utilizam receberão os benefícios, a partir da próxima vez que forem carregados em memória. 29) Considere um processador XPTO-4, da empresa ACME, que foi projetado utilizando um pipeline, com apenas 3 estágios (busca, decodificação e busca de operandos, execução). Cada estágio, em geral, gasta um ciclo de clock para ser executado, para qualquer instrução (uma simplificação, para facilitar nossos cálculos). Qual será o tempo (número de ciclos) para que sejam executadas 8 instruções, com o pipeline, e qual seria este número sem o recurso do pipeline? OBS: considere que não há, entre estas instruções, nenhuma de desvio (ou seja, trata-se de uma sequência de “pipeline perfeito”). Resp: representemos a ideia básica do pipeline em uma tabelinha: Estágio/ciclos 1 2 3 4 5 6 7 8 9 10 11 12 E1 I1 I2 I3 I4 I5 I6 I7 I8 E2 I1 I2 I3 I4 I5 I6 I7 I8 E3 I1 I2 I3 I4 I5 I6 I7 I8 Logo: como podemos ver acima, com o pipeline, seriam consumidos 10 ciclos. Sem o pipeline (ou seja, com a busca da próxima instrução sendo iniciada apenas após o término da execução da instrução anterior), seriam 8 x 3 ciclos, = 24 ciclos. 15 30) Para que serve o registrador geralmente chamado de PSW, presente nas CPUs, e qual o significado da sigla PSW? Consulte slides sobre CPU e nível de instruções de máquina, ou o livro (Mário Monteiro, cap.6 e 8). PSW = Program Status Word, um registrador especial (não acessível ao programador de sistema) que possui bits independentes que são ‘setados’ automaticamente ao final de cada operação da ALU, e são consultados pela UC durante a execução de diversas instruções. (ex: valor de saída da ALU é par? Valor é zero? Houve overflow?).
Compartilhar