Escolar Documentos
Profissional Documentos
Cultura Documentos
Identificação do estudante:
Observe que:
Deverá realizar a parte A diretamente no enunciado e a parte B em folha de exame.
Identifique ambas as partes com nome completo e número de estudante.
Exame com consulta de 3 folhas, frente e verso.
Não são permitidos quaisquer meios eletrónicos (calculadora, telemóvel, smartwatch, etc).
Qualquer tentativa de fraude conduzirá à anulação da prova para todos os intervenientes.
Parte A
(7 valores)
A1 – (2 valores) Assinale cada uma das seguintes frases como verdadeiras (v) ou falsas (f).
Respostas corretas somam 0.2 valores, respostas erradas subtraem 0.2 valores.
Respostas em branco não somam nem subtraem cotação.
___ A grande vantagem da memória RAM em relação aos discos rígidos é a sua velocidade.
___ É impossível ter um computador a usar um processador de 32 bits e 6GB de memória RAM.
___ Para proteger o acesso a memória, o sistema operativo guarda dois registos de cada
processo que está a correr: Base Register, endereço de memória onde começa a partição de
memória do processo e Bounds Register, onde guarda o tamanho dessa partição do
processo.
___ Uma das formas de lidar com fragmentação externa da memória RAM é correr o processo
de descompactação.
___ Uma forma de diminuir os RTTs necessários para obter uma página com vários objetos em
HTTP1.1 é através do uso de pipelining.
___ Para duas aplicações em computadores diferentes comunicarem pela rede basta saberem o
IP e o respetivo porto uma da outra.
1
A2 – (0.5 valores) Converta o número 0xAB01 (base 16) para binário (base 2). Não precisa
apresentar os cálculos.
Resultado: _____________________
A3 – (1 valor) Quantos RTTs são necessários para obter uma página HTML que referencia 2 imagens
JPEG e 2 sons WAV? Considere que está a usar HTTP 1.0 e que os tempos de transmissão de
dados são nulos. Justifique a sua resposta.
A4 – (0.9 valores) Considere que tem um sistema dinâmico de particionamento de memória com 300
kb. A figura mostra o estado de alocação da memória desse sistema num determinado instante,
representando-a em blocos de 10kb (do bloco 0 ao bloco 29, estando a sombreado os blocos já
alocados. A última partição alocada foram os blocos 22 e 23, assinalados a preto na imagem.
0 10 20 29
Considerando a seguinte fila ordenada de pedidos de alocação de memória, indique, para cada
pedido, os blocos de memória que lhe foram atribuídos, considerando o algoritmo de
particionamento dinâmico Next-Fit.
ID Arrival Time Service Time Start Time Waiting Time Finish Time Turnaround Time
P1 0 2
P2 2 8
P3 4 5
P4 6 1
P5 7 2
2
A6 – (0.6 valores) Considere que quer modelar uma base de dados para uma escola. Para o
relacionamento entre as entidades Professor e Disciplina, encontra as seguintes ligações entre
entidades (P1..5 à Professores, D1..5 à Disciplinas).
Lecionar
Professor Disciplina
3
Parte B
(5 valores)
Responda a esta parte numa folha de prova. Identifique a folha de prova com nome completo
e número de estudante.
B1 – (1.5 valores) Considere o seguinte código de um servidor. Altere-o de forma a este ficar sempre
à espera de novos clientes e, ao estabelecer ligação com um cliente, ficar repetidamente a ler e
imprimir para a consola mensagens enviadas pelo cliente, até receber a mensagem “TERMINAR”.
Apresente na folha de prova o código completo do servidor (e do servidor apenas, nada do cliente).
B2 – (1.5 valores) Considere que lhe pedem para implementar um software para gestão de uma loja
de informática. A loja tem um conjunto de componentes, que na verdade podem ser computadores
ou smartphones, e os computadores podem ser laptops ou desktops. Cada componente tem um
código de referência e uma quantidade de unidades em stock. Os smartphones têm informação sobre
o seu peso, em gramas. Os computadores têm informação sobre a sua quantidade de RAM, em GB. No
caso dos laptops, estes devem ainda ter informação sobre a autonomia, em horas. Todos os
componentes devem ter um método chamado toString, que não recebe parâmetros de entrada e
retorna uma descrição textual do componente.
Nota: se não souber representar o diagrama de classes em formato UML, indique textualmente
todas as informações pedidas (classes, atributos, métodos, etc, com as respetivas visibilidades).
4
B3 – (2 valores) Considere o seguinte diagrama de classes parcial, representativo de um canil que tem
cães e gatos. Apresente uma possível implementação em java para o mesmo. Algumas notas:
• O método registerAnimal() deve pedir ao utilizador que tipo de animal quer registar, pedir
depois as informações necessárias adicionais, criar o objeto do respetivo animal e juntá-lo
aos animais do canil.
• Os métodos speak() devem apenas imprimir para a consola o som que o animal faz,
nomeadamente “ão” para o cão e “miau” para o gato (ou outras alternativas fonéticas que
considerem mais adequadas).
Canil Animal
1 *
animals # name: String
+ Canil() + Animal(String)
+ registerAnimal()
Dog Cat