Você está na página 1de 5

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

Você também pode gostar