Você está na página 1de 8

QUESTÕES DE REVISÃO – SISTEMAS OPERATIVOS

1. Descreva sucintamente quais as principais funções de um Sistema Operativo.

As principais funções de um SO são:


O que é um SO?
- Gestão dos recursos (passando pela gestão de processador, Um programa que age como um

gestão de memória, gestão de ficheiros e gestão de I/O) – intermediário entre o utilizador e o


hardware, criando um ambiente adequado
promovendo uma utilização eficiente dos recursos de hardware.
para que um utilizador possa executar os
- Máquina estendida (oferecendo uma interface simples e seus programas, funcionando como
uniforme) – fazendo com que com o sistema de computação seja primeira camada de software.
mais fácil de utilizar.

2. Descreva e explique as vantagens e requisitos da multiprogramação.

As vantagens da multiprogramação num SO


Definição de MULTIPROGRAMAÇÃO
são o facto de melhorar o rendimento de
A multiprogramação consiste na execução em
utilização do processador e dos periféricos. Já
paralelo de vários programas ao mesmo tempo,
sendo que estas tarefas são mantidas em na ótica do utilizador a multiprogramação é
memória em simultâneo, sendo o CPU vantajosa porque permite a exploração de
multiplexado entre elas. tarefas concorrentes. Para além disto, a
multiprogramação é vantajosa porque permite
Aproveita as pausas de I/O, estando as tarefas
organizadas de modo a que o CPU tenha sempre
múltiplos utilizadores concorrentes que

ago a executar. partilhando o tempo de processador têm a


ilusão de que cada um tem o seu próprio computador.

Os requisitos para a multiprogramação são:

- Gestão de memória: o sistema tem de atribuir a memória às diferentes tarefas;

- Escalonamento do CPU: o sistema tem de selecionar a tarefa que irá ser executada de entre todas
as tarefas prontas a executar.
3. O CPU pode executar em modo supervisor ou modo utilizador. Dê exemplo de
operações que necessitam de ser executados em modo supervisor. Justifique.

As interrupções têm de ser efetuadas em Modo Supervisor: possui total controlo sobre o CPU. Neste
modo supervisor, o SO é executado em modo modo de execução pode-se executar todas as instruções máquina e
supervisor. As instruções E/S só podem ser pode-se referenciar todas as posições de memória. O SO é executado

executadas em modo supervisor. neste modo.


No inicio do Sistema, o hardware ativa este modo, sendo da responsabilidade do SO
Modo utilizador: neste modo não é possível executar as instruções
comutar para oprivilegiadas, podendo
modo utilizador antes executar
de transferir o controlo para um outro processo

apenas um subconjunto de instruções e pode referenciar apenas um subconjunto de posições de


memoria.
As aplicações, geralmente, são executadas nesse modo.

4. Qual das seguintes funções não corresponde a uma Função do SO?


a) Gestão de Processos;
Gestão de Processos: O SO através do gestor de
b) Gestão de Bases de Dados; processos é o responsável por criar e terminar
processos, suspender e acordar processos, oferecer
c) Gestão de Memória;
mecanismos para sincronizar processos e para a
d) Gestão de Ficheiros; comunicação entre processos, identificação de
processos em ambientes de multiprogramação (UID
e GID).
Gestão de Memória: O SO através do gestor de
memória é o responsável por manter o registo de
quais as partes de memória estão a ser usados num
dado instante e por quem, decidir sobre que processo
Gestão de Ficheiros: O SO através do gestor de
carregar para memória quando existe espaço livre e
ficheiros é o responsável por criar e apagar ficheiros,
atribuir e libertar espaço de memória quando
criar e apagar diretorias, suportar primitivas para
necessário.
manipular ficheiros e diretorias, associar ficheiros
ao sistema de memória secundária, gestão do espaço
livre em disco, atribuição de espaço em disco e
escalonamento de serviço de I/O.

5. Na sequência da submissão do comando ls -lisa ao interpretador de comandos do


Sistema Operativo Linux, deverão ocorrer as seguintes ações no sistema:

a) O interpretador de comandos requisita a execução do programa ls com recurso à chamada exec();

b) O interpretador de comandos invoca a função ls do seu espaço de endereçamento;

c) O interpretador de comandos requisita a criação de um processo através da chamada ao


sistema fork(), sendo o novo processo responsável por requisitar a execução do programa ls
com recurso à chamada exec();

d) O interpretador de comandos lê o ficheiro ls e mostra-o no ecrã.


6. O CPU pode executar em modo utilizador e supervisor. Qual das seguintes ações
necessita de ser executada em modo
INODE: é um tipo especial de estrutura de dados,
supervisor?
responsável por conter as informações básicas sobre
a) Alterar uma entrada de um inode; os arquivos e pastas (permissões de acesso,
identificação dos utilizadores, data e hora do último
b) Adicionar o valor de duas variáveis inteiras do
acesso e alterações, tamanho e os ponteiros para os
segmento de dados de um processador do arquivos).
utilizador;
c) Percorrer uma lista ligada do segmento de dados de um processador do utilizador;

d) Escrever o resultado de uma operação no espaço de endereçamento de um processo (contexto


do utilizador).

7. O kernel do sistema operativo Linux é considerado “monolítico”. Explique o porquê,


que vantagens e inconvenientes é que esse modelo tem e que formas há em Linux de evitar
algumas das suas limitações.

O Linux é considerado um SO monolítico uma vez que integra as componentes lógicas do SO num
único módulo, ou seja, todas as atividades básicas são executadas em modo kernel e as novas
funcionalidades são providas como módulos do kernel (procura maior eficiência ao evitar trocas
de contexto). No entanto tem menor flexibilidade e as dependências entre os seus componentes
podem fazer com que ocorrendo um defeito num deles paralise todo o sistema.

Vantagens: melhor desempenho, Desvantagens: o sistema pode parar em


uma vez que a forte integração função de um erro; dificuldade em
interna dos seus componentes lhe executar alterações no próprio núcleo; o
permita que os detalhes de baixo excesso de liberdade torna-o vulnerável.
nível do hardware sejam
efetivamente explorados.

8. Num SO moderno é indispensável que um processo normal não possa controlar de forma
arbitrária o hardware, embora tenha que interagir indiretamente com ele. Como é que este
requisito é assegurado?

Uma das funções principais de um SO é a gestão de processos, onde este cria e termina processos,
acorda e suspende processos, oferece mecanismos de sincronização entre processos e mecanismos
de identificação de processos, estratégias de tratamento dos deadlocks, etc. Tudo isto ocorre sem
que o processo comunique diretamente ou manipule o hardware.

9. No contexto da conceção de arquitetura de software para SO, indique qual(ais) destas


afirmações são verdadeiras:

a) Numa arquitetura baseada num kernel modular, existem interfaces explicitas e bem
definidas entre os diferentes módulos do kernel;

b) Numa arquitetura baseada num kernel monolítico, os diferentes componentes são fáceis de
compreender, manter e alterar;

c) As arquiteturas baseadas num kernel monolítico apresentam mais funcionalidades que os SO


baseados noutras arquiteturas;

d) Um SO baseado numa arquitetura monolítica, em comparação com outro SO baseado


numa arquitetura modular, oferece um melhor desempenho do sistema de computação;
e) Um SO baseado numa arquitetura modular, em comparação com um SO baseado numa
arquitetura monolítica, apresenta um menor desperdício de memória principal porque todo o código
e estruturas de dados são agrupados num único módulo.

f) Um SO baseado numa arquitetura modular, em comparação com um SO baseado numa


arquitetura monolítica, apresenta um menor desperdício de memória principal porque
apenas requer o carregamento de alguns módulos para memória quando as funcionalidades
correspondentes são necessárias;

g) Um SO baseado numa arquitetura modular, em comparação com um SO baseado numa


arquitetura monolítica, é mais robusto no contexto de ocorrência de erros.

Arquitetura Modular: Um módulo Linux é um conjunto de funções e estruturas


de dados compilados como um programa independente, sendo que estes módulos
podem ser instalados estaticamente quando o kernel inicial, ou dinamicamente em
tempo de execução.
Os módulos Linux oferecem uma interface para ser utilizada pelas aplicações. Estes
executam em modo supervisor.
VANTAGENS: novas funcionalidades podem ser adicionadas sem necessidade de
modificar o kernel; maior facilidade de debug e menos memória utilizada.

10. Explique brevemente as funcionalidades básicas da componente de Gestão de


Processos de um SO e justifique porque é que a integração desta componente num SO
facilita a utilização do sistema de computação.

As funcionalidades básicas da Gestão de Processos de um SO são:

- Criar e terminar processos;

- Suspender e acordar processos;

- Oferecer mecanismos para a sincronização de processos e a comunicação entre processos;

- Identificação de processos em ambientes de multiprogramação (UID e GID).


11. No processo de desenvolvimento de um Editor de Texto é necessário considerar o
suporte a várias atividades cooperantes e concorrentes, e por isso considerar a utilização
de múltiplos processos ou threads. Indique justificando qual seria a solução mais adequada
para esta situação particular.

Threads.

12. O comando time du /lib/modules/2.6.23.1-21.fc7/kernel executa o comando du com os


respectivos argumentos e retorna o seguinte resultado:
real 0m0.091s (tempo total de execução)
user 0m0.003s (tempo de execução em modo utilizador)
sys 0m0.035s (tempo de execução em modo supervisor).
12.1. Explique brevemente o significado de tempo de execução em modo utilizador e
tempo de execução em modo supervisor.

O tempo de execução em modo utilizador é o tempo de processador utilizado a executar


código/programas/processos de utilizador. Ao passo, que o tempo de execução em modo supervisor
corresponde ao tempo de processador utilizado a executar processos/programas/código pertencente
ao Kernel.

12.2. Explique porque é que a soma de user e sys é menor que real.

O tempo real de execução inclui acessos ao disco, à memória, execuções do SO, mudanças de
contexto.

13. Utilizando sempre o mesmo sistema, uma máquina com S.O. multi-utilizador do tipo
Linux, efectuaram-se diversas medições do tempo de execução de um programa não
interactivo (após a sua invocação executa até ao fim sem necessidade de input do
utilizador). Os resultados mostraram que execuções sucessivas do mesmo programa no
mesmo sistema não tinham sempre a mesma duração, havendo sempre algumas variações
originadas por factores diversos no seu contexto de execução. Justifique.

Tal situação ocorre dado que devido ao escalonamento não é possível determinar a ordem de
execução dos processos, que de execução para execução pode variar, não apresentando sempre a
mesma linha de execução, e por isso, pode levar a um maior número ou menor número de
interrupções.

16. A diferença entre um processo e um programa é (escolha uma única resposta):

a) Um processo pode ter várias threads enquanto que um programa tem apenas uma thread;

b) Um processo pode ter várias threads enquanto que um programa pode ter vários processos e não
tem threads;
c) Um processo é um conjunto de instruções (e respectivos dados) em execução enquanto que um
programa é apenas um conjunto passivo de instruções e dados guardados no disco;

d) Um processo é um programa na memória principal enquanto que um programa é um processo


temporariamente no disco, suspenso, à espera de tempo de execução.

17. Indique qual das seguintes afirmações não corresponde a uma vantagem da utilização
de múltiplas threads no desenvolvimento de aplicações:

a) Os programas interactivos podem ser mais solícitos a responder aos pedidos dos utilizadores;

b) Permite uma melhor utilização das arquitecturas multi-processador

c) Em comparação com a utilização de múltiplos processos, facilita a partilha de recursos como


por exemplo memória d) Melhora sempre o desempenho de uma aplicação