Sistemas Informáticos
Departamento de Engenharia Informática 6 de Junho, 2023
Faculdade de Ciências e Tecnologia Exame Época Normal
Universidade de Coimbra
Duração: 2:30
Identificação do estudante:
Nome: _____________________________________________________________ Nr: ______________________________
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)
Responda a esta parte diretamente no enunciado.
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.
___ O kernel é a camada do sistema operativo mais próxima do hardware.
___ É impossível ter um computador a usar um processador de 32 bits e 6GB de memória RAM.
___ 1 megabyte corresponde a 1024 kilobytes.
___ A Memory Management Unit converte endereços físicos em endereços lógicos.
___ 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.
___ O IP 137.12.32.1 pertence à Classe B.
___ 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.
Resultado (0.2 valores): ____ RTTs.
Justificação (0.8 valores):
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.
Fila de pedidos: P1 – 30Kb, P2 – 20Kb, P3 – 40kb, P4 – 20Kb, P5 – 30Kb, P6 – 20Kb
Resposta (0.15 valores por pedido):
P1: ____________ P2: ____________ P3: ____________
P4: ____________ P5: ____________ P6: ____________
A5 – (1 valor) Considere que os seguintes processos executam de acordo com um algoritmo de
escalonamento ‘Shortest Remaining Time’ (SRT). Complete a tabela incluindo o Start Time,
Waiting Time, Finish Time, Waiting Time e o Turnaround Time para cada processo.
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).
Complete a relação seguinte com a cardinalidade e participação me melhor representam o
exemplo fornecido.
Lecionar
Professor Disciplina
A7 – (1 valor) Aplique o algoritmo de escalonamento de acesso a disco C-SCAN à seguinte fila de
pedidos de acesso a tracks. A cabeça de leitura começa na track 45 e o disco tem 200 tracks (0 – 199).
Reporte a ordem pela qual as tracks são visitadas, incluindo as extremidades do disco, se aplicável.
Indique também o movimento total da cabeça de leitura, em tracks.
Fila de pedidos: 15 58 43 181 11 108 125 178
Ordem porque são servidos os pedidos: _________________________________________________________________
Movimento total da cabeça de leitura do disco: __________ tracks
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.
Apresente o diagrama de classes do sistema acima descrito. Represente as classes, os atributos e os
métodos, incluindo a sua visibilidade, tipos de dados de entrada e saída, e a relação de cardinalidade
entre classes. Inclua os construtores das classes. Se tiver classes ou métodos abstratos, identifique-
os claramente de forma explícita.
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
- breed: String - isSteril: Boolean
+ Dog(String, String) + Cat(String, Boolean)
+ speak(): void + speak(): void