Fundamentos de Sistemas de Informação
Exame, 10 Fevereiro, 2005
Duração: 2h00 Tolerância: 0h30
Seja sucinto. Utilize esquemas/gráficos quando mais apropriado.
Total de pontos: 210
1) (5 min – 10 pontos)
Um sistema operativo (SO) suporta abstracções, e fornece serviços às aplicações
que sobre ele executam. Explique o que se entende pelos serviços oferecidos pelo
sistema operativo, e dê alguns exemplos destes.
2) (10 min – 15 pontos)
Com excepção dos SO para sistemas embebidos, os SO executam geralmente num
modo protegido (kernel mode) o que lhes permite ter acesso a uma zona restrita de
memoria (kernel space). Explique qual a vantagem de proceder desta forma, e qual
a razão pela qual não ser por vezes utilizada em sistemas embebidos cujos CPUs
são geralmente de fracas capacidades.
3) (5 min – 15 pontos)
Faça um esquema das diversas fases pela qual passam programas em C,
começando por um ou mais ficheiros de texto, e acabando em um ficheiro com
código executável. Considere que o referido programa faz uso de diversas funções
disponibilizadas em bibliotecas.
4) (10 min – 10 pontos)
Explique o que se entende por ligação estática (static linking) e ligação dinâmica
(dynamic linking) a bibliotecas de funções. Compare estas duas abordagens no que
refere à utilização de espaço de memória em disco, e a correcção de eventuais
erros detectados no código das bibliotecas..
5) (10 min – 20 pontos)
Explique como é organizada e utilizada a zona de memória geralmente
denominada de 'stack' de um programa, e como esta organização permite que
Fundamentos de Sistemas de Informação
Exame, 10 Fevereiro, 2005
Duração: 2h00 Tolerância: 0h30
sejam invocadas funções de modo recursivo dentro de programas em C.
6) (5 min – 10 pontos)
Os processos de um SO multi­processo podem classificar­se quanto ao seu padrão
de execução como sendo processos 'I/O bound' e 'CPU bound'. Explique quais as
características dos processos que os levam a ser classificados desta forma.
7) (5 min – 10 pontos)
Explique o que distingue os processos das 'threads'.
8) (10 min – 20 pontos)
A criação de processos faz­se com recurso à chamada do sistema operativo fork().
Explique como funciona esta chamada ao sistema, e como se deve proceder caso se
deseje criar um novo processo que irá executar um ficheiro que se encontra no
disco.
9) (10 min – 10 pontos)
As threads podem ser implementadas dentro do núcleo de um SO (kernel level
threads), ou em bibliotecas de funções utilizadas pelos programas (user­level
threads). Enumere e explique duas dificuldades/desvantagens de as implementar
em bibliotecas de funções.
10)(10 min – 15 pontos)
Um zelo excessivo na eliminação de condições de competição (race conditions)
pode conduzir ao problema do deadlock. Explique o que entende por deadlock, e
dê um exemplo de código (em linguagem C) em que o mesmo possa ocorrer.
11)(10 min – 10 pontos)
Explique o que entende por um spin­lock, e indique situações em que a sua
Fundamentos de Sistemas de Informação
Exame, 10 Fevereiro, 2005
Duração: 2h00 Tolerância: 0h30
utilização pode ser vantajosa.
12)(10 min – 15 pontos)
Explique como funciona a memória virtual e como este mecanismo pode ser
utilizado para implementar a partilha de memória entre processos (dois processos
distintos acedem a endereços de memória distintos, e no entanto referenciam o
mesmo endereço de memória física).
13)(15 min – 30 pontos)
Um pequeno hospital necessita de organizar a informação relativa aos doentes e
médicos por forma a optimizar recursos. A primeira análise demonstrou:
­ Os doentes são alocados a uma enfermaria quando dão entrada no hospital. Os
dados relativos a cada doente que devem ser mantidos são: número, nome, morada,
sexo, números de telefones, data de nascimento e grupo sanguíneo. Devem ainda
ser mantidos o nome, morada e números de telefone dos parentes mais próximos.
­ Cada enfermaria pode conter vários doentes mas está reservada para tipos de
doentes particulares (pediatria, maternidade, ...). As enfermarias são identificadas
pelo número da porta respectiva.
­ Cada doente pode ser submetido a um número de operações cirúrgicas, podendo
as salas, médicos e equipamentos necessários reservados com antecedência. A
informação a manter relacionada com cada operação inclui ainda o tipo de
operação, data e hora.
­ Deve ainda ser controlado o local (enfermarias, salas de operações) onde se
encontra cada equipamento médico (ventiladores, ...) a cada momento. ­ É necessário manter o nome, morada e telefone de cada médico, por forma a
serem contactáveis em situações de emergência.
­ As enfermeiras são identificadas pelo seu número, nome, morada, telefone e
grau. As enfermeiras podem ou não estar atribuídas a uma enfermaria ou uma sala
de operações. As enfermarias e salas de operações podem ter mais do que uma
enfermeira atribuída.
Fundamentos de Sistemas de Informação
Exame, 10 Fevereiro, 2005
Duração: 2h00 Tolerância: 0h30
­ Os médicos receitam medicamentos aos doentes. Não existem restrições ao
número de médicos que podem passar receitas a cada doente, nem no número de
receitas que são passadas a cada doente. Deve ser mantida a data, dosagem,
periodicidade, data de início e data de fim de cada receita passada.
Na qualidade de consultor da empresa BUGS'R US, foi solicitado a elaborar um
modelo Entidade­Relação de uma base de dados que satisfaça os requisitos atrás
descritos.
14)(5 min – 15 pontos)
Produza um modelo Relacional correspondente ao seguinte modelo ER de uma
base de dados genérica de controlo de stocks.
Fundamentos de Sistemas de Informação
Exame, 10 Fevereiro, 2005
Duração: 2h00 Tolerância: 0h30
Rua
Número
Cod. Postal
Num.
Preço
Morada
Número
n Fornece m
Empresa
Nome
Nº Documento
Produto
Quant.
Peso
1
1
n
Transacção
Desconto
1
n
n
1
Contacto
n
Compra/Venda
Data Aniv.
Nome
FIM
Nome
Download

Fundamentos de Sistemas de Informação