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 multiprocesso podem classificarse 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 fazse 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 (userlevel 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 spinlock, 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 EntidadeRelaçã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