1. (5) Arquitectura de Computadores. Classifique cada uma das alíneas seguintes como Verdadeira ou Falsa.

Documentos relacionados
Exame de. Arquitectura de Computadores. (Duração minutos) Classifique cada uma das alíneas seguintes como Verdadeira ou Falsa.

1. (5) Classifique cada uma das alíneas seguintes como Verdadeira ou Falsa.

2º Estudo Dirigido CAP 3

Memoria. UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Introdução à Arquitetura de Computadores

Sistemas de Microprocessadores I Lista de exercícios (questões de provas de semestre anteriores)

Memória. Gestão do espaço lógico Paginação Segmentação com paginação

Hierarquia de Memória

Arquitectura de Computadores (ACom)

Organização e Arquitetura de Computadores I

Arquitectura de Computadores (ACom)

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Gerenciamento de memória

Sistemas Operacionais. Laboratório 1 (Ambiente de Aprendizado)

Arquitetura e Organização de Computadores 2. Organização Hierárquica da Memória. Uma afirmação antiga, mas perfeitamente atual

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 3

Sistemas de Memória III

Desenvolvimento para Sistemas Embarcados (CEA 513) Sistema de Arquivos Raiz & Componentes do Kernel

Data types. In C: char. short. int/long. double/long long AC 2017/2018. Pedro Serra / Sérgio Ferreira

Execução detalhada de instruções

Memória cache (cont.) Sistemas de Computação

Introdução à Arquitetura de Computadores

Introdução aos Sistemas Operacionais. Subsistema de Entrada e Saída

Gestão de memória - Memory Management Unit (MMU)

Arquitectura de Computadores 2006/2007 2º Semestre 2º Teste (A) - 15/06/2007. Folha de Respostas

Execução detalhada de instruções

Níveis de memória. Diferentes velocidades de acesso. Memória Cache. Memórias Auxiliar e Auxiliar-Backup

LEIC/LERC 2011/12-1º Exame de Sistemas Operativos 16/Janeiro/2012

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CONTINUAÇÃO CAPÍTULO 5. Cristina Boeres

Introdução à Arquitetura de Computadores

Arquitectura de Computadores (ACom)

Instituto Superior Técnico Departamento de Engenharia Electrotécnica e de Computadores Arquitectura de Computadores. 2º sem.

Gestão de Memória. Espaço de Endereçamento

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO4: MEMÓRIAPRINCIPAL

Turma: SD-R Área: Redes Informáticas Formador: Tomás Lima Mediadora: Maria Eduarda Luz Unidade: UFCD 17 - Linux - Instalação e configuração Curso:

Estrutura do Sistema Operacional

Sistemas de Memória II

Aula 10 Processadores de Propósito Geral

Arquitectura de Computadores (ACom)

No. de bits. O primeiro IBM PC foi construído com o 8088 (versão de 8 bits do 8086).

Gerência de Entrada e Saída

ORGANIZAÇÃO DE COMPUTADORES

Arquitectura de Computadores 2006/2007 2º Semestre 2º Teste (B) - 15/06/2007. Folha de Respostas

Cache. Cache. Direct Mapping Cache. Direct Mapping Cache. Internet. Bus CPU Cache Memória. Cache. Endereço Byte offset

SSC0112 Organização de Computadores Digitais I

Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação MATA49 Programação de software básico Arquitetura Intel

Gestão de memória - Memory Management Unit (MMU)

Segmentação de Memória

CPU. CPU Unidade Central de Processamento. Função: leitura, escrita e processamento de dados

ORGANIZAÇÃO DE COMPUTADORES O PROCESSADOR E SEUS COMPONENTES

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 6

Gestão de Memória. Espaço de Endereçamento

SSC0611 Arquitetura de Computadores

2.º Teste de Introdução à Arquitetura de Computadores IST LEIC-Taguspark 1.º Semestre 2014/2015 Duração: 60 minutos 16 dezembro 2014

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

Nível do Conjunto de Instruções Prof. Edson Pedro Ferlin

Programação. Folha Prática 10. Lab. 10. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual

Organização de Computadores 1

Organização e Arquitetura de Computadores I

Computadores e Programação (DCC/UFRJ)

Sistemas Operacionais Aula 16 Memória Virtual


Conjunto de Instruções e Modelos de Arquiteturas

I. Considere os seguintes processadores A e B, ambos com arquitectura em pipeline, conforme ilustrado

Repescagem - 2.º Teste de Introdução à Arquitetura de Computadores 1.º Semestre 2014/2015 Duração: 60 minutos 16 janeiro 2015

Capítulo 1 1. UNIDADE DE INTERFACE DE BARRAMENTO

Organização de um Sistema Operativo

5 de Maio de Aula 15

Capítulo 5 Livro do Mário Monteiro Conceituação. Elementos de projeto de memória cache

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade

Programação. Module Introduction. Cap. 1 Fundamentos de Computadores

Conjunto de Instruções. Alisson Brito

Memória Cache. Memória Cache. Localidade Espacial. Conceito de Localidade. Diferença de velocidade entre Processador/MP

CONJUNTO DE INSTRUÇÕES

Correção de Erros. Erros de memória de semicondutores podem ser:

Arquitectura de Computadores

2ª Lista de Exercícios de Arquitetura de Computadores

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador

ORGANIZAÇÃO DE COMPUTADORES

SSC0611 Arquitetura de Computadores

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior -

EEL Microprocessadores

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída

Introdução aos Sistemas Operacionais. Subsistema de Arquivos

1/24 FICHEIROS DE TEXTO

SUMÁRIO. 1.3 CONCEITOS DE SISTEMA OPERACIONAL Processos Arquivos O shell 42

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

Arquitectura de Computadores 2007/2008 2º Semestre 2º Teste (A) - 16/06/2008

Sistemas Operativos I/O. Rui Maranhão

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Arquitetura e Organização de Computadores

Transcrição:

Exame de Época Normal (Duração 45+45 minutos) Nome: Número: 1. (5) Classifique cada uma das alíneas seguintes como Verdadeira ou Falsa. 1.1. Num sistema baseado no processador Intel Pentium em modo protegido, a) V o barramento externo de dados tem 64 bits de largura. b) V utilizam-se Call Gates para implementar chamadas a procedimentos menos privilegiados. c) V são utlizados dois TLB (Tanslation Lookaside Buffer) integrados. d) F a dimensão de cada página de memória é especificada na tabela de páginas. e) V utilizam-se endereços físicos de 32 bits. f) F os registos de uso genérico têm 64 bits. g) F pode ser utilizado um mecanismo de segmentação de memória a dois níveis. h) V a dimensão de um segmento de memória é definida na tabela de segmentos. 1.2. a) F O processador Intel 386DX possui uma unidade processamento SIMD (Single Instruction Multiple Data) integrada. b) V O processador Intel Pentium 4 utiliza 2 níveis de cache integrados. c) V O processador Intel Pentium possui uma unidade de vírgula flutuante integrada. d) V Um processador Intel Pentium III utiliza um Buffer de Reordenação. e) V O processador Intel Pentium III utiliza dois TLBs distintos. f) F Um BTB (Branch Target Buffer) só se justifica em arquitecturas com segmentação. g) V Um TLB (Tanslation Lookaside Buffer) só se justifica em arquitecturas com paginação de memória. h) V Um TLB pode utilizar políticas de substituição do tipo LRU (Least Recently Used). 1.3. a) F Uma cache vítima utiliza-se para acelerar o processo de segmentação b) V É possível utilizar políticas de leitura do tipo Read-Through com uma cache completamente associativa. c) V Uma cache pode utilizar blocos de dados mais largos do que o barramento de dados externo. d) V É possível utilizar políticas de escrita do tipo Write-Back com uma cache de mapeamento direto. e) V Um TLB pode ser implementado com uma cache completamente associativa. f) V Uma cache vítima pode ser completamente associativa.

g) V Uma cache externa pode ser gerida por políticas de substituição do tipo LRU (Least Recently Used) h) F Uma cache externa pode ser virtualmente indexada. 1.4. a) F Uma tabela de partições reside normalmente numa partição do tipo FAT. b) F Um dispositivo de armazenamento tem sempre uma tabela de partições. c) V Um bootloader pode utilizar recursos do BIOS (Basic Input Output System). d) F Um bootloader é gravado na tabela de partições. e) V O Journaling é uma técnica utilizada para facilitar a recuperação de sistemas de ficheiros. f) F O uso de Journaling é importante em sistemas de ficheiros voláteis. g) F Os sistemas de ficheiros do tipo FAT utilizam Journaling. h) V Um sistema de ficheiros do tipo UnionFS pode juntar, no mesmo directório, conteúdos voláteis e conteúdos armazenados num CD. 1.5. a) V Um kernel Linux pode ser compilado numa máquina com uma arquitectura distinta da máquina a que se destina. b) V Um kernel Linux pode incluir módulos desenvolvidos por entidades distintas. c) V Uma biblioteca pode utilizar funcionalidades disponibilizadas pelo kernel Linux. d) F Os ficheiros de dispositivos (device files) residem normalmente no directório /proc/devices e) F A lista de módulos carregados pode ser obtida com o comando modinfo f) F Num sistema Linux, todos os módulos de kernel têm associados os números Major e Minor. g) V Um ficheiro de dispositivos pode implementar uma comunicação bidireccional entre uma aplicação e o kernel. h) V O comando insmod é utilizado para carregar módulos de sistema operativo. 2. (2) Em alguns processadores, utilizam-se como apontadores para a memória, registos internos mais estreitos do que o barramento externo de endereços. Comente esta afirmação, referindo exemplos de processadores que conhece. Justifique esta opção técnica e as consequências respectivas. A afirmação é verdadeira. Um exemplo é o Intel 8086 que usa registos de 16 bits e tem barramento externo de endereços de 20 bits. Com esta solução, só é possível aceder a um conjunto limitado de segmentos de cada vez. Para aceder a outras posições é necessário alterar a segmentação. Usa-se para permitir alargar a capacidade de endereçamento de memória sem alargar a arquitectura interna.

3. (1) Compare as tecnologias MMX e SSE2 (SIMD Streaming Extensions 2) em termos de desempenho espectável no tratamento de cadeias de dados do tipo inteiro de 16 bits. Com MMX é possível tratar 4 dados do tipo inteiro de 16 bits empacotados nos registos MM (de 64 bits) com única instrução. Com SSE2 é possível tratar 8 dados do tipo inteiro de 16 bits empacotados nos registos XMM (de 128 bits) com única instrução. Logo, é expectável que o desempenho com SSE2 seja o dobro do obtido com MMX. 4. (2) Um determinado fabricante pretende adicionar à sua linha de processadores uma memória cache associativa por conjuntos com 4 vias, que permita o armazenamento de 4096 blocos de 512 bits de dados. Sabendo que os processadores em causa possuem barramentos de endereços de 24 bits, barramento de dados de 32 bits e que utilizam endereçamento ao Byte, indique qual deverá ser, para esta cache: a) O número de comparadores. NComp = NVias = K = 4 b) O número de bits utilizados na indexação. NSets = NBlocos / NVias = 4096/4 = 1024 #Idx = log(1024)/log(2) = 10 bits c) A dimensão das etiquetas Bloco = 512 bits = 64 Bytes #BO = log 2 (64) = 6 bits #Tag = 24 - #BO - #Idx = 24-6 - 10 = 8 bits

5. Parte B - 45 minutos O dispositivo de armazenamento de um sistema dedicado encontra-se ligado a uma estação de trabalho GNU/Linux, tendo ficado associado ao ficheiro de dispositivo /dev/sdb. O sistema dedicado é baseado numa distribuição GNU/Linux, com executáveis baseados na biblioteca GNU Libc. a) Analise o output do comando apresentado abaixo. $ cat /proc/partitions grep sd 8 0 31457280 sda 8 1 512000 sda1 8 2 24576000 sda2 8 16 1000000 sdb 8 17 200000 sdb1 8 18 500000 sdb2 i) (0.5) Pretende-se criar uma nova partição no dispositivo associado a /dev/sdb. Indique o tamanho máximo para essa partição, assumindo que não se pretende alterar as partições existentes. Sdb-sdb1-sdb2 = 1000000-200000-500000 = 300000 blocos ii) (0.5) Apresente o(s) comando(s) necessário(s) para criar um sistema de ficheiros do tipo ext2 na partição criada na alínea anterior. mkfs -t ext2 /dev/sdb3 iii) (1.0) Apresente os comandos necessários para copiar o conteúdo da pasta./build (incluindo eventuais diretórios) para a partição preparada nas alíneas anteriores. mkdir part mount /dev/sdb3 part cp -a./build/* part/ umount part b) No diretório atual encontram-se os seguintes ficheiros, correspondentes a uma aplicação dedicada: makefile, myapp, libutils.a, libutils.so, myapp.h, myapp.o, utils.c, myapp_devices.c e myapp_main.c. Analise o output dos seguintes comandos: [user@localhost]$ file myapp setuid ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), stripped [user@localhost]$ readelf -d myapp grep NEEDED 0x0000000000000001 (NEEDED) 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] Shared library: [libutils.so] i) (1.0) Pretende-se instalar esta aplicação no sistema de ficheiros principal do sistema dedicado. Indique que ficheiros teria que copiar para o sistema alvo, indicando o diretório mais indicado para cada um deles. myapp -> /bin /usr/bin /usr/local/bin libutils.so -> /lib /usr/lib /usr/local/lib

ii) (0.5) Analise o resultado do seguinte comando, executado na estação de trabalho: Mestrado em Eng. Electrotécnica e de Computadores [user@localhost]$ uname -a Linux localhost.localdomain 4.1.6-200.fc22.x86_64 #1 SMP Mon Aug 17 19:54:31 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux Seria possível executar o ficheiro myapp mencionado acima numa linha de comando da estação de trabalho? Justifique. Não porque as arquitecturas não coincidem. ARM!= x86_64

6. Considere um processador da família x86 a funcionar em modo real em que o estado de alguns dos registos é o apresentado na tabela seguinte: ax bx cx dx si di Listagem 1 0x215 0x300 0x600 0x4A0 0x5C0 0x7C0 bp sp cs ds ss es 0x10C 0x40A 0x100 0x800 0x4400 0x5000 mov [0xFF], ax mov si, #0xFF mov bx, [si] mov bp, cx mov ax, [bp] mov [bx], cx Listagem 2 entry start start: run_system evento1: iret var1: db 100 a) i) (1,5) Determine os endereços físicos das posições de memória lidas ou escritas pela sequência de instruções da Listagem 1. mov [0xFF], ax ; EndFis = DS*0x10 + 0xFF = 0x800*0x10+0xff= 0x8000+0xff=0x080ff mov si, #0xFF ; SI := 0xff mov bx, [si] ; EndFis = DS*0x10 + SI = 0x080ff mov bp, cx ; BP := 0x600 mov ax, [bp] ; EndFis = SS*0x10 + BP = 0x44000+0x600 = 0x44600 mov [bx], cx ; EndFis = DS*0x10+BX = 0x8000+0x215 = 0x08215 ii) (0,5) Indique o valor contido no registo bx após a execução da sequência de instruções da Listagem 1. BX = AX = 0x215 b) (0,5) Altere o código da rotina evento1, na Listagem 2, de modo a que o valor da variável var1 seja carregado para o registo ax. Assuma que o programa é carregado no endereço 0x7100. Os registos podem ter qualquer valor no arranque da rotina e deverão manter os mesmos valores após a execução da mesma. 7. entry start start: run_system evento1: push ds mov ax, 0x710 mov ds, ax mov al, [var1] mov ah, 0x0 pop ds iret var1: db 100 Pretende-se implementar, na forma de um módulo de Linux, um controlador orientado ao carácter para o dispositivo XYZCrypt, com o nome de dispositivo mod2, major number 1100 e minor number 0.

a) (1) Implemente uma função que faça o registo do dispositivo aquando do carregamento do módulo, incluindo o registo da função mod_read, definida abaixo, como função de tratamento de leituras do dispositivo. struct file_operations fops = {.owner = THIS_MODULE,.read = mod_read }; static ssize_t mod_read(struct file *f, char *buf, size_t len, loff_t *off) { int bytes_read = 0; while ( len && *msgp ) { put_user( *(msgp++), buf++); len--; bytes_read++; } return bytes_read; } int init_module(void) { return register_chrdev(1100, "mod2", &fops); } b) (3.0) O ficheiro../build/initrd.img é o initrd de um sistema GNU/Linux. Pretende-se enviar a string HELLO para o dispositivo o XYZCrypt durante a execução do script linuxrc desse initrd. Apresente a sequência de comandos necessária para alterar esse initrd, assim como eventuais edições do respetivo script linuxrc, de modo a implementar essa operação. mkdir initrd mount../build/initrd.img initrd/ mknod initrd/dev/mod2 c 1100 0 vi initrd/linuxrc ( acrescentar : ) insmod /modules/xyzcrypt.ko echo HELLO >/dev/mod2 mkdir initrd/modules cp XYZCrypt.ko initrd/modules/ umount initrd cp../build/initrd.img (Sistema alvo)