Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II PROVA 1 1. O que são chamadas de sistema? É o conjunto completo de instruções disponíveis para programadores de aplicação. Contem quase todas as instruções de nível ISA, bem como o conjunto de novas instruções que o sistema operacional adiciona. Uma chamada de sistema chama um serviço predefinido do sistema operacional, na verdade, uma de suas instruções. 2. Como os programadores faziam para poder executar seus programas que eram muitos maiores que a memória principal existente? O programador era responsável por fragmentar o programa em sobreposições, decidir em que lugar da memória secundaria cada uma seria mantida, resolver o transporte delas entre a memória principal e a memória secundaria e, em geral, gerenciar todo o processo de sobreposição sem nenhum auxilio do computador. 3. Uma máquina tem espaço de endereço virtual de 32 bits endereçável por bytes. O tamanho da página é de 4KB. Quantas páginas de espaço de endereço virtual existem? Explique a sua resposta. Endereço virtual = 2³². Tamanho da página = 4KB = 2¹².Quantidade de páginas = 2³²/2¹² = 2²⁰ bytes. 4. Em sistemas de memória virtual de paginação sob demanda, qual seria o critério ideal para substituição de páginas? a. Retirar a página que acabou de ser referenciada. b. [X] Retirar a página que será necessária no futuro mais distante. c. Retirar a página que está há mais tempo na memória. d. Retirar a página que foi referenciada menos vezes (e) retirar a página que está há mais tempo sem ser utilizada. 5. Explique o que é: falta de página e paginação por demanda. A falta de página é quando é feita uma referência a um endereço em uma página que não está presente na memória principal. E na paginação por demanda é quando as páginas são trazidas para a memória somente quando ocorre uma requisição de uma página, e não antecipadamente. 6. Qual é o tipo de fragmentação que encontramos na paginação. Explique como ocorre. Fragmentação interna, pois o espaço desperdiçado é interno a alguma página. Quando um programa e os dados do usuário não preenchem exatamente um número inteiro de páginas, haverá algum espaço não utilizado na última página. Se o tamanho da página for n bytes, a quantidade média de espaço desperdiçado na última página de um programa por fragmentação interna será n/2 bytes. 7. Explique resumidamente como funciona a segmentação. A segmentação consiste em dividir a memória virtual em pedaços (segmentos) e apontar um determinado segmento para uma aplicação. Isto define de maneira única a aplicação na memória virtual e vice-versa e, desta forma, pode-se executar simultaneamente várias aplicações compartilhando de maneira mais eficiente a memória sem o risco de alocarmos de maneira incorreta a aplicação. 8. Que fenômeno é denominado de tabuleiro de xadrez? Como isso pode ocorrer? Fragmentação externa, porque o espaço é desperdiçado fora dos segmentos, externamente, nas lacunas entre eles. 9. Para que serve as instruções de entrada e saída virtuais? Cite alguns exemplos. Serve para ajustar campos e bits em vários registradores de dispositivos, esperar até que a operação seja concluída e então verificar para ver o que aconteceu. Os discos têm bits de registrador de dispositivos para detectar os seguintes erros: disco endereçado, cilindro endereçado e setor endereçado, todos inexistentes. 10. Ao medir o desempenho de um certo sistema, verificou-se que este passava muito tempo com a CPU ociosa e tinha um alto volume de acessos a disco. Assinale a alternativa que apresenta a solução traduzida na melhoria de desempenho desse sistema. a. Troca da CPU por uma mais rápida. b. [X] Aumento na capacidade de memória do sistema. c. Aumento na capacidade de armazenamento do disco. d. Uso de memória cache. e. Troca do sistema operacional. 11. Por que muitos sistemas de arquivos requerem que um arquivo seja explicitamente aberto com uma chamada de sistema open antes de ser lido? O processo de abertura permite que o sistema operacional localize o arquivo em disco e traga informações da memória necessárias para acessá-lo. 2 12. Estudos de diferentes sistemas de arquivo mostraram que mais da metade dos arquivos são alguns poucos KB ou menos, e a vasta maioria dos arquivos é menor do que uns 8KB. Por outro lado, os 10% correspondentes aos maiores arquivos usualmente ocupam cerca de 95% de todo o espaço do disco em uso. Com esses dados em mãos, a que conclusão você pode chegar sobre o tamanho do bloco de disco? 13. Como surgiu a ideia de diretórios? Quais funções mínimas que o sistema operacional deve fornecer como chamada de sistema? O modo usual de um sistema operacional organizar arquivos em linha é agrupá-los em diretórios. As funções mínimas são: 1 – criar um arquivo e entrar em um diretório. 2 – apagar um arquivo de um diretório. 3 – renomear um arquivo. 4 – mudar o estado de proteção de um arquivo. 14. Explique como é realizado o processamento paralelo em um computador com apenas um processador de núcleo único. Que recurso importante do processador é utilizado para execução de dois ou mais processos? O efeito do processamento paralelo pode ser simulado fazendo o processador executar cada processo por vez durante um curto período de tempo, ou seja, o processador pode ser compartilhado entre vários processos. O recurso é chamada de sistema para criar um novo processo. 15. Embora ambos tenham seu escalonamento feito pelo gerenciamento de processos, threads e processos são estruturalmente distintos. Qual é a principal diferença entre eles? a. Apenas threads podem ser executados em paralelo. b. [X] Threads possuem contexto simplificado. c. Processos executam mais rapidamente. d. Processos apenas podem ocorrer em sistemas de grande porte. e. Threads apenas podem ocorrer em processadores multicore. 16. Técnicas eficientes para o uso da memória, como virtual e caching, podem ser utilizadas porque a. Aumentou o espaço de armazenamento em RAM. b. Memorias dinâmicas são mais rápidas que memorias estáticas. c. Aumentou a velocidade de acesso para a memória RAM. d. [X] O princípio da localidade pode ser aplicado. e. O thrashing não pode ocorrer em memorias modernas. 17. Em organização de arquivos e dados, os diretórios foram criados para organizar e controlar outros arquivos. Com base nos conhecimentos sobre o tema, considere as afirmativas a seguir. I. Um diretório geralmente contém várias entradas, sendo uma por arquivo diretamente subordinado. Cada entrada é composta pelo nome do arquivo, seus atributos e os endereços do disco onde estão armazenados. Alternativamente, após o nome do arquivo, pode haver um ponteiro para uma estrutura de dados com os atributos e os endereços. II. Em um sistema de diretórios hierárquicos, se o diretório atual, ou diretório de trabalho, de um processo for “/usr/bin/.”, para acessar o arquivo chamado cache, localizado em “/tmp/”, pode ser usado o nome de caminho absoluto “/tmp/cache”. Alternativamente, pode ser usado o nome de caminho relativo “./../../tmp/cache”. III. Para os usuários, uma das vantagens de sistemas com um diretório por usuário em relação a sistemas de diretório único é poder organizar os arquivos em subgrupos. IV.Em sistemas que suportam diretórios hierárquicos, como Windows e UNIX, há três entradas especiais em cada diretório. Elas são ‘.’ (ponto), ‘..’ (ponto-ponto) e ‘˜’ (til): o primeiro serve para voltar um nível na hierarquia; o segundo, para avançar um nível; o terceiro, para referenciar o diretório reservado ao administrador, quando utilizado em caminhos relativos. Assinale a alternativa correta. a. [X] Somente as afirmativas I e II são corretas. b. Somente as afirmativas I e IV são corretas. c. Somente as afirmativas III e IV são corretas. d. Somente as afirmativas I, IIe III são corretas. e. Somente as afirmativas II, III e IV são corretas. 18. Suponha que os números sejam representados por complemento de dois com 8 bits. Mostre o cálculo do seguinte: a. 6 + 13 b. - 6 + 13 c. 6 – 13 d. - 6 – 13 19. Prove que a multiplicação de dois números de n dígitos na base B gera um produto de não mais do que 2n dígitos. 3 20. Os seguintes números utilizam o formato IEEE de ponto flutuante com 32 bits, normalizados. Qual é o valor decimal equivalente? a. 1 -10000011 11000000000000000000000 b. 0 01111110 10100000000000000000000 PROVA 2 1. Supondo a existência das linguagens: L1: linguagem natural, do usuário (alto nível e complexa). L0: linguagem da máquina (baixo nível e simples). Um questionamento a ser respondido é como compatibilizar L1 com L0? Existem duas soluções: usar tradutor ou interpretador. Sobre tradutor e interpretador e as linguagens acima, é correto afirmar: I. O programa pode ser traduzido uma única vez e executado várias vezes. II. Na tradução, cada instrução de L1 é substituída por um conjunto de instruções equivalente de L0. III.Na interpretação o processador executa instrução de L1 (transformada para L0) antes de executar a próxima instrução. IV. O programa não precisa ser interpretado novamente para ser executado. V.Não é possível utilizar uma metodologia híbrida: tradutor + interpretador. É correto o que se afirma em: a. Todas são verdadeiras. b. I e II, apenas. c. I e III, apenas. d. III, IV e V. e. [X] I, II e III. 2. Responda V para Verdadeiro e F para Falso. As respostas assinaladas como falsas precisam ser justificadas. (V) O programador de linguagem de máquina pode dar nomes simbólicos a locais de memória e deixar para o assembler a preocupação de fornecer os valores numéricos corretos. (V) Os programas que convertem um programa de usuário escrito em alguma linguagem para outra são denominados tradutores e a linguagem do programa original é chamada linguagem-fonte e a que é convertida de linguagem-alvo. (V) Pseudoinstruções ou diretivas de assembler são comandos da linguagem de máquina para o próprio assembler. (F) Chamadas de macros são feitas durante a execução do programa e as chamadas de procedimentos são realizadas durante a montagem, por isso as chamadas de macros são diferentes das chamadas de procedimento. - Chamadas de macros são feitas durante o processo de montagem e as chamadas de procedimentos são realizadas durante a execução do programa. (V) Como resultado das operações em assembly a seguir, o registrador AX tem o valor 0Fh armazenado, isto é, AX = 0Fh. MOV AX, 10h MOV BX,1h SUB AX,BX 3. Sobre as linguagens de programação, é corretor afirmar: a. Interpretadores são programas que convertem códigos escritos em linguagem de alto nível para programas em linguagem de máquina. b. [X] Linguagens de alto nível cumprem tarefas mais substanciais com um número menor de comandos, mas exigem programas tradutores denominados compiladores para converter programas em linguagem de alto nível para linguagem de máquina. c. Um computador pode entender qualquer linguagem de máquina, pois a linguagem de máquina não é definida pelo projeto de hardware do computador. d. Programadores podem escrever instruções em várias linguagens de programação e todas são entendidas diretamente pelos computadores sem a necessidade de tradução. e. Softwares escritos em linguagens de máquina são portáveis. 4. AX e BX são, entre outros, registradores gerais de dados e endereços do processador 8086. Em linguagem assembly, a instrução para somar o valor de AX com o valor de BX e guardar o resultado em AX está corretamente representada por: a. ADD BX, AX b. ADD BX, AX MOV c. ADD AX. BX MOV AX d. ADD BX, AX PUSH e. [X] ADD AX, BX 5. Considerando as características das principais linguagens de programação, é correto afirmar que: a. C# não é considerado uma linguagem orientada a objetos. b. C# não é considerado uma linguagem orientada a objetos. 4 c. Linguagem C é classificada como baixo nível. d. [X] Linguagens de alto nível têm como característica a não necessidade de conhecimento do processador. e. Linguagens de baixo nível estão fracamente ligadas ao processador. 6. No que concerne às linguagens de montagem, considere: I. A linguagem de montagem é definida com base na linguagem de máquina, onde cada instrução da máquina é representada por um comando mnemônico em caractere alfanumérico. II. Os programas escritos nas linguagens de montagem são específicos para cada família de microprocessadores, cujas instruções costumam ser definidas pelo próprio fabricante do microprocessador. III. Meta-assembler monta, exclusivamente, programas para um mesmo tipo de arquitetura de processadores e tem como característica varrer o programa-fonte apenas uma vez, para gerar o código. IV. Os programas montadores ou Assemblers são ferramentas que permitem a tradução de programasfonte escritos em linguagem de montagem para programas-objeto. É correto o que se afirma em: a. I e II. b. II e III. c. I, II e III. d. [X] I, II e IV. e. II, III e IV. 7. Construa a tabela de símbolos para o trecho do programa assembly abaixo que utiliza instruções do Pentium 4. A primeira declaração é designada para o endereço 1000. EVEREST: POP BX (1 BYTE) K2: PUSH BP (1BYTE) WHITNEY: MOV BP, SP (2 BYTES) PUSH X (3 BYTES) FUJI: PUSH SI (1 BYTE) KIBO: SUB SI, 300 (3 BYTES) 8. O processo de montagem é realizado em 2 etapas, por que? 9. O que é tabela de símbolos e para que são utilizadas? 10. Para que serve a ligação dos módulos? 11. A seguinte sequência de instruções lógicas e aritméticas será executada por um processador em pipeline de 5 estágios: busca da instrução, leitura de registradores, execução, acesso à memória e escrita de registradores. A sequência, no entanto, apresenta conflito de dados. O pipeline foi implementado sem hardware adicional para a resolução de conflitos, mas os valores dos registradores podem ser escritos na primeira metade do ciclo e lidos na segunda metade. Sabendo-se que o primeiro operando das instruções é o registrador destino, avalie as afirmações a seguir. I. A troca de posição entre as instruções or e add soluciona o conflito de dados. II. A troca de posição entre as instruções add e and soluciona o conflito de dados. III. A inserção de uma operação nop (sem operação) entre add e mui soluciona o conflito de dados. 5 É correto o que se afirma em: a. I, apenas. b. [X] II apenas. c. I e III, apenas. d. II e III, apenas. e. I, II e III. 12. Reescreva o trecho do programa utilizando estrutura de repetição. 13. Reescreva o trecho do programa utilizando uma macro. 14. Considerando os 5 tipos de arquitetura de computadores paralelos, classifique-os de acordo com o acoplamento entre os processadores. a. Paralelismo no chip. b. Co-processador. c. Multiprocessador. d. Multicomputador. e. Grade. 15. No contexto da organização de sistemas de computadores, I. O ciclo busca-decodificação-execução pode ser executado, também, por um interpretador de software que roda em um nível mais baixo. II. computadores paralelos incluem processadores matriciais, nos quais a mesma operação é efetuada sobre múltiplos conjuntos de dados ao mesmo tempo. III. computadores paralelos incluem multiprocessadores, nos quais várias CPUs compartilham uma memória em comum. IV.computadores paralelos podem ser formados por multicomputadores, cada um com sua própria memória, mas se comunicando por transmissão de mensagens. É correto o que se afirma em: a. I e II, apenas b. II e III, apenas. c. I, II e III, apenas. d. [X] II, III e IV, apenas. e. I, II, III e IV. 16. Cite uma característica de multiprocessadores e multicomputadorese identifique nas imagens o que é multiprocessador e multicomputador e o que elas representam. a. Multicomputador com 16 CPUs, cada uma com sua memória privada. b. Imagem de mapa de bits da figura de multiprocessador dividida entre as 16 memórias. c. Multiprocessador com 16 CPUs que compartilham uma memória comum. d. Imagem repartida em 16 seções, cada qual analisada por um CPU diferente. 17. O que é topologia de rede? Escreva quais são os tipos de topologia das imagens a seguir. Estrela – Cubo – Hipercubo 3D. Topologia de rede é a forma de como vários computadores estão interconectados em um sistema. 18. Escreva V para Verdadeiro ou F para Falso. Justifique as respostas falsas. (V) Multiprocessadores UMA são aqueles em que cada CPU possui o mesmo tempo de acesso a cada módulo de memória. (F) Multiprocessadores COMA são aqueles que o tempo de acesso de cada CPU varia em função do módulo de memória acessado.- Multiprocessadores NUMA (F) Multiprocessadores NUMA são aqueles que a memória principal de cada CPU é utilizada como Cache.- Multiprocessadores COMA (V) Em relação aos multicomputadores o MPP possui várias CPU acopladas por uma rede proprietária de alta velocidade e o COW (ou NOW) também são CPUs acopladas com baixa velocidade. (V) Multiprocessadores com um único chip podem ser com pipeline dual ou de chip com dois núcleos. 19. Relacione e a coluna da esquerda com a coluna da direita. (I) Multicore (A) Múltiplos pipelines que operam em paralelo. (II) Superpipeline (B) Execução de instruções fora de ordem em um pipeline. (III) Superescalar (C) Pipelines com grande número de estágios. (IV) Pipeline dinâmico (D) Múltiplos processadores compartilhando um espaço de endereços. (V) Multiprocessadores (E) Múltiplos processadores em um único encapsulamento. Assinale a alternativa que contém a associação correta. a. I-B, II-A, III-C, IV-E, V-D. b. I-C, II-A, III-B, IV-D, V-E. c. [X] I-D, II-E, III-B, IV-A, V-C. 6 d. I-E, II-C, III-A, IV-B, V-D. e. I-E, II-C, III-A, IV-D, V-B 20. Duas possibilidades para a construção de sistemas com múltiplos processadores são: processadores idênticos com um único espaço de endereçamento interligados por um barramento único (SMP); e máquinas monoprocessadas conectadas por uma rede (cluster). Com relação a esses sistemas, assinale a opção correta. a. A comunicação entre processadores de um cluster é, potencialmente, muito mais rápida que a comunicação entre processadores de um sistema SMP, pois redes atuais possuem taxa de transmissão da ordem de gigabits/s, enquanto as melhores memórias operam somente com frequências da ordem de centenas de megahertz. b. Comunicação entre processos pode ser implementada de forma muito mais eficiente em um cluster que em um sistema SMP, pois, nesse último, todos os processos precisam compartilhar os mesmos dispositivos de entrada e saída. c. Em um sistema SMP, é mais simples substituir um processador defeituoso, pois, em um cluster, toda a rede de comunicação deve ser desabilitada para que a troca seja efetuada sem prejudicar a troca de mensagens entre os processos. d. Alocação de memória para processos é muito mais simples em um cluster, pois cada processador executa um único processo na sua memória exclusiva e, dessa forma, não existe o problema de distribuição de processos no espaço de endereçamento único da máquina SMP. e. [X] Em um cluster, o custo da escalabilidade é muito menor, pois, para a interconexão entre as máquinas, podem ser utilizados equipamentos comuns usados em uma rede local de computadores, ao passo que um sistema SMP exige conexões extras no barramento e gabinetes especiais. 21. O Escalonamento dinâmico para redistribuição de processos em um cluster tem como função a(o) a. Interoperabilidade. b. Integração de serviços. c. Automação do controle d. Eliminação da transferência de dados. e. [X] Balanceamento de carga. 22. Para análise de códigos maliciosos podem ser utilizadas ferramentas que auxiliam neste trabalho. Para isso devem ser entendidas as diferenças entre elas. A esse respeito, analise as afirmativas a seguir, I. Debbugers são ferramentas de análise em tempo de execução que podem permitir a manipulação do programa no nível de código de máquina. II. Descompiladores são ferramentas que tentam recuperar um código de alto nível a partir de um código de baixo nível. III. Disassemblers são ferramentas de análise estática que traduzem o código analisado para a linguagem Assembly. Assinale: a. Se somente a afirmativa I estiver correta. b. Se somente a afirmativa II estiver correta. c. Se somente a afirmativa III estiver correta. d. Se somente as afirmativas I e II estiverem corretas. e. [X] Se todas as afirmativas estiverem corretas.
Compartilhar