Nome: Introdução aos Sistemas Computacionais 2008/09 Exame 2ª Época 6 Fevereiro 2009 ATENÇÃO: A duração da prova é de 3 horas. Só poderá haver desistências após a primeira hora. Não é permitido o uso de calculadoras. Todas as respostas são dadas directamente neste enunciado. Antes da resposta final, utilize as folhas de rascunho anexas ao enunciado de modo a não sujar o mesmo. É expressamente proibido desagrafar qualquer folha do enunciado. As cotações das perguntas e a forma de correcção (tipo C correcção clássica; tipo A escolha múltipla) encontram-se indicadas entre parêntesis. Exemplo: (1,0)(A). As respostas de escolha múltipla sem justificação (i.e. tipo A) são cotadas da seguinte forma: resposta certa: cotação total. ausência de resposta: zero valores. resposta errada: desconta-se a cotação da pergunta dividida pelo nº de alternativas. Nº: Estatuto Trabalhador-Estudante Melhoria de Nota GRUPO 1 (4 valores) 1.1. (1,0)(A) Relativamente às arquitecturas RISC, indique a única afirmação falsa: a partir do 80486, os processadores Intel apresentam um núcleo RISC (Reduced Instruction Set Computer) onde se executam as instruções mais simples. O processador SPARC é um exemplo de processador RISC. a partir do Pentium Pro, os processadores Intel compatíveis com o 80486 são inteiramente RISC. uma das anteriores é falsa. 1.2. (1,0)(A) Relativamente ao Paralelismo ao nível do processador, indique a única afirmação falsa: Em arquitecturas SIMD temos um único fluxo de intruções atuando sobre múltiplos conjuntos de dados simultaneamente. A CPU CELL possui 8 co-processadores SIMD. Em arquitecturas MIMD temos múltiplos fluxos de intruções actuando sobre múltiplos conjuntos de dados simultaneamente. uma das anteriores é falsa. 1.3. (1,0)(A) Relativamente às tecnologias de memória dinâmica (DRAM) utilizadas em sistemas computacionais, indique a única afirmação falsa: Na tecnologia SDRAM, a taxa de transferência de dados entre memória e processador é determinada por um sinal de relógio. Ao contrário da tecnologia SDRAM, a tecnologia DDR não exige o refrescamento das células de memória. Memórias DDR3 fornecem dados ao processador a uma taxa maior do que as memórias DDR2. Uma das anteriores é falsa. 1.4 (1,0)(A) Relativamente aos discos ópticos, indique a única afirmação falsa: Departamento de Informática da Faculdade de Ciências da Universidade de Lisboa Um CD-R (CD-Recordable) permite gravar dados múltiplas vezes em uma determinada área do disco. Leitores de Discos Blu-Ray utilizam um laser azul de 0.405 microns. É possivel armazenar dados em ambas as faces de um DVD. Uma das anteriores é falsa. ISC1-2008/2009 1
GRUPO 2 (4 valores) 2.1. (1,5)(C) Suponha que um número v está representado em binário com N bits, todos com valor 1 (exemplo: v=(11111) 2 para N=5 bits). Formule uma função algébrica v=f(n) que determine o valor do número v para as representações binárias especificadas abaixo. Considere que, por exemplo, para a representação binária sem sinal, a resposta correcta seria v=2 N -1. Sugestão: comece por calcular o valor decimal de (1111) 2, (11111) 2, (111111) 2,... nas representações pedidas. a) Representação binária em sinal e magnitude. v = -2 N-1-1 b) Representação binária em complemento para um. v = 0 c) Representação binária em complemento para dois. v = -1 2.2. (1,5)(C) Marque com V ou F se as afirmações abaixo forem verdadeiras ou falsas, respectivamente. (V ) A representação em sinal e magnitude tem a vantagem de se assemelhar à representação escrita. (F ) A representação em complemento para um tem a vantagem de ter somente um zero. (V ) A representação em complemento para dois tem a vantagem de ter um bit que representa o sinal. (V ) A representação em excesso-n tem a vantagem de facilitar a comparação de números, pois pode-se tratar todos como positivos. (V ) A principal vantagem da representação em complemento para dois reside na simplicidade com que podem ser efectuadas as operações aritméticas. 2.3. (1,0)(C) Sejam dois números em vírgula flutuante no formato IEEE 754: a=0xc02070f0 e b=0x40a0f080. Verifique se as desigualdades abaixo são verdadeiras ou falsas, justificando a sua resposta. a > b a 2 > b 2 a > b - Falso a 2 > b 2 - Falso ISC1-2008/2009 2
Número: Nome: GRUPO 3 (3 valores) 3.1. Considere a seguinte função em assembly x86. Observação: para responder às perguntas deste grupo pode utilizar a informação sobre o número das linhas. Exemplos: na linha 3 colocaria jg f12 ou entre as linhas 2 e 3 acrescentaria mov $4, %edx 1. f1: xorl %eax, %eax 2. f11: cmpl $0,(%ebx) 3. je f12 4. jmp f13 5. f12: incl %eax 6. f13: addl $4, %ebx 7. loop f11 8. ret a) (0,5)(C) Escreva um excerto de um programa que invoque a função f1, utilizando o vector myvector como argumento de entrada, e que coloque o resultado da função na variável result. myvector:.long 1, 0, 0, 1, 1, 0, 1 result:.long 0 leal myvector, %ebx movl $7, %ecx call f1 movl %eax, result b) (0,25)(C) No exemplo da alínea anterior, qual o valor final da variável result? 3 c) (0,25)(C) Considerando a definição seguinte do vector myvector2, indique as alterações que teria de efectuar à função f1 de modo a poder utilizar o vector myvector2 como seu argumento. myvector2.word 1, 0, 0, 1, 1, 0, 1 linha 2 substituir por linha 6 substituir por f11: cmpw $0,(%ebx) f13: addl $2, %ebx 3.2. Observação: Leia atentamente todas as alíneas desta pergunta antes de responder a qualquer uma delas. a) (0,5)(C) Indique quais as alterações que teria de efectuar à função f1 de modo que os parâmetros de entrada da função f1 sejam passados através da pilha. Entre as linhas 1 e 2 acrescentaria as seguintes instruções: movl %esp, %ebp movl 4(%ebp), %ecx movl 8(%ebp), %ebx b) (0,25)(C) Altere a solução da alínea anterior de modo que a função f1 não destrua valores de registos, excepto eventuais registos que estejam a ser utilizados como parâmetros de saída. ISC1-2008/2009 3
Na definição original da função substituo a linha 1 pelas seguintes instruções: f1: pushl %ebp movl %esp, %ebp pushl %ebx pushl %ecx xorl %eax, %eax movl 8(%ebp), %ecx movl 12(%ebp), %ebx e acrescento as seguintes instruções entre as linhas 7 e 8 popl %ecx popl %ebx popl %ebp c) (0,25)(C) Altere a solução da alínea anterior de modo que a função f1 deixe a pilha no mesmo estado em que esta se encontrava antes dos seus argumentos terem sido colocados na pilha. Substituo a linha 8 por: ret $8 3.3. (1,0)(C) Considerando a função f1 original, do exercício 3.1, indique quais as alterações que teriam de ser efectuadas à função de modo a permitir que todos os elementos do vector fossem passados através da pilha. Solução completa: f1: xorl %eax, %eax xorl %ebx, %ebx f11: cmpl $0,4(%esp,%ebx,4) je f12 jmp f13 f12: incl %eax f13: addl $1, %ebx loop f11 ret ISC1-2008/2009 4
Número: Nome: GRUPO 4 (5 valores) 4.1. (1,0)(C) Indique quais os elementos fundamentais que constituem uma unidade central de processamento. ALU, Unidade de controlo, registos. 4.2. (2,0)(C) Considerando a arquitectura IA-32, explique de forma sucinta mas clara quais as diferenças entre interrupções de software e excepções. Interrupções de software são geradas pela instrução INT(x). Excepções são eventos síncronos em relação ao programa em execução e acontecem devido a erros ou requisição do usuário. 4.3. (2,0) (C) Considere a utilização de segmentação de memória no processador Pentium 4. Descreva de forma sucinta, mas rigorosa, os passos realizados pela unidade de gestão de memória para gerar o endereço linear em modo protegido. - Um endereço é dado sob a forma de selector de segmento e offset. - O selector de segmento aponta para um descritor na LDT ou GDT - O descritor contém o endereço base e o limite do segmento. - O offset é somado ao endereço base. Se o resultado for menor que o limite do segmento um endereço linear válido é gerado. ISC1-2008/2009 5
GRUPO 5 (4 valores) 5.1. Considere a execução de um programa na arquitectura IA-32 com gestão de memória usando segmentação com paginação (páginas de 4 KiB). Considere que o segmento de código do programa usa a seguinte zona de endereços lineares: 0x04446000 0x04455FFF a) (1,0)(C) Indique o número total de páginas ocupadas pelo segmento de código. Justifique a sua resposta, apresentando os respectivos cálculos. 10 páginas 16 páginas 20 páginas 30 páginas 32 páginas 48 páginas b) (1,0)(C) Se além do segmento de código, o programa tiver um segmento de dados e um segmento de pilha com 256 KiB e 128 KiB respectivamente, indique o espaço total de endereçamento linear utilizado pelo programa em KiB e em número de páginas. 448 KiB, 112 páginas 5.2. Considere a execução de um programa na arquitectura IA-32 com gestão de memória paginada (páginas de 4 KiB). Para o endereço linear 0x018220FF responda às perguntas seguintes: a) (0,5)(C) Qual a posição do directório de páginas referenciada por este endereço? Justifique. Posição 6 (10 bits mais significativos do endereço linear) b) (0,5)(C) Qual é a posição na tabela de páginas correspondente que é acedida por este endereço? Justifique. Posição 34 (10 bits intermédios do endereço linear) ISC1-2008/2009 6
Número: Nome: c) (1,0)(C) Supondo que o conteúdo da posição da tabela de páginas acedida pelo endereço linear 0x018220FF aponta para o endereço físico 0x00044000, qual é o endereço físico correspondente ao endereço linear indicado? Justifique. 0x000440FF. Soma-se os 12 bits menos significativos do endereço linear a 0x00044000. ISC1-2008/2009 7