Teste 1 Correction

Você também pode gostar

Você está na página 1de 6

Universidade Politécnica

A POLITÉCNICA

Curso: Engenharia Informática e Telecomunicações Disciplina: Sistemas Operativos


Tempo: 2H

TESTE 1

I.

1. Quais as duas principais funções de um sistema operativo? (1.0)


O Sistema Operativo, tem como funções proporcionar a abstração ao utilizador bem como
gestão dos recursos existentes.
Numa abordagem mais profunda, a principal função do sistema operativo é criar, gerir e
finalizar processos. Enquanto os processos estão ativos, o sistema operativo deve ver que cada
um tem um tempo alocado para execução pelo processador, coordenar suas atividades, gerir
demandas conflituantes e alocar recursos do sistema para os processos.
a. Quais são as principais diferenças entre os sistemas operacionais para computadores
mainframe e computadores pessoais? (1.0)
Obviamente, existem muitas respostas possíveis. Aqui estão algumas. Sistema Operativo de
mainframe: processamento de reclamações em uma companhia de seguros.
Sistema Operativo do servidor: serviço de conversão de fala em texto para Siri.
Sistema Operativo multiprocessador: Edição e renderização de vídeo.
Sistema Operativo de computador pessoal: aplicativo de processamento de texto.
Sistema Operativo do computador de mão: sistema de recomendação com reconhecimento de
contexto.
Sistema Operativo incorporado: Programando um gravador de DVD para gravar TV.
Sistema Operativo do nó sensor: Monitorando a temperatura em uma área selvagem.
Sistema Operativo em tempo real: Sistema de controle de tráfego aéreo.
Sistema Operativo de cartão inteligente: pagamento eletrônico.
2. Quais são as diferenças entre instruções do tipo interrupt e intruções do tipo trap? (2.0)
Um Interrupt ocorre devido a algum tipo de evento externo e independente do processo em
execução no momento, como a conclusão de uma operação de E / S. Uma trap refere-se a uma
condição de erro ou exceção gerada no momento em execução processo, como uma tentativa
ilegal de acesso a arquivos.

1
3. Qual é a diferença entre sistemas de timesharing e multiprogramados? (2.0)
Em um sistema de compartilhamento de tempo (timesharing), vários usuários podem
simultaneamente acessar e executar cálculos em um sistema de computação usando seus
próprios terminais. Os sistemas de Multiprogramação permitem que um usuário execute vários
programas simultaneamente.
Todos sistemas de compartilhamento de tempo são sistemas de multiprogramação, mas nem
todos sistemas de Multiprogramação são sistemas de compartilhamento de tempo, pois um
sistema de Multiprogramação pode executar em um PC com apenas um usuário.

4. Qual é a diferença entre o modo kernel e o modo de usuário?


O modo de usuário possui restrições nas instruções que podem ser executadas e nas áreas de
memória que podem ser acessadas. Isso serve para proteger o Sistema Operativo contra dano
ou alteração. No modo kernel, o Sistema Operativo não possui essas restrições, para que ele
possa executar suas tarefas. (1.0)
Explique como ter dois modos distintos ajuda a projetar um Sistema Operativo. (1.0)

5. Dê duas razões pelas quais os caches são úteis. (0.5)


As caches são muito úteis se dois ou mais componentes precisam trocar dados, e quando os
componentes trocam os dados a velocidades diferentes.
a. Que problemas eles resolvem? (0.5)
Os caches resolvem o problema de transferência, fornecendo um buffer de velocidade
intermediária entre os componentes. Se o dispositivo rápido encontrar os dados de que
precisa no caso, ele não deve aguardar pelo dispositivo de velocidade mais baixa.
b. Que problemas eles causam? (0.5)
Os dados no cache devem ser mantidos consistentes com os dados nos componentes. Se
um componente tiver uma alteração no valor dos dados e os dados também estiverem no
cache, o cache também deverá ser atualizado. Isso é especialmente um problema nos
sistemas com multiprocessadores em que mais de um processo pode estar acessando dados.
c. Se um cache puder ser feito tão grande quanto o dispositivo para o qual está armazenando
em cache (por exemplo, um cache do tamanho de um disco), porque não torná-lo tão grande
e eliminar o dispositivo? (0.5)
Um componente pode ser eliminado (dispensado) por um cache de tamanho igual, mas
apenas se: (a) o cache e o componente tiverem capacidade de economia de estado
equivalente (ou seja, se o componente retiver seus dados mesmo quando não houver
eletricidade, o cache também deve ser capaz de reter os dados) e (b) o cache é acessível,
porque o armazenamento mais rápido tende a ser mais caro.

II.

2
1. Assuma que no tempo 5 nenhum recurso do Sistema está a ser usado exceptuando o
processador e a memória. Agora considere aos seguintes eventos: (5.0)

No tempo 5: P1 executa o comando para ler a unidade 3 do disco;


No tempo 15: A porção do tempo de P5 expira.
No tempo 18: P7 executa o comando de escrita na unidade 3 do disco.
No tempo 20: P3 executa o comando para ler da unidade 2 do disco.
No tempo 24: P5 executa o comando para escrever na unidade 3 do disco.
No tempo 28: P5 é trocado.
No tempo 33: Ocorre uma interrupção a partir da unidade 2 do disco: A leitura do P3 é
concluída.
No tempo 36: Ocorre uma interrupção a partir da unidade 3 do disco: A leitura do P1 é
concluída.
No tempo 38: P8 termina.
No tempo 40: Ocorre uma interrupção a partir da unidade 3 do disco: Escrita de P5 é concluída.
No tempo 44: P5 é trocado de volta.
No tempo 48: Ocorre uma interrupção a partir da unidade 3: Escrita de P7 é concluída.

Para cada tempo 22, 37 e 47, identifique qual o estado em que estado cada processo se encontra.
Nos casos em que o processo esteja blocked, identifique o evento que propiciou o bloqueio.

No tempo 22:
P1: blocked for I/O
P3: blocked for I/O
P5: ready/running
P7: blocked for I/O
P8: ready/running
No tempo 37
P1: ready/running
P3: ready/running
P5: blocked suspend
P7: blocked for I/O
P8: ready/running
No tempo 47
P1: ready/running
P3: ready/running
P5: ready suspend
P7: blocked for I/O
P8: exit

2. Na figura abaixo, contêm 7 estados. Em principio, cada estado pode transitar para qualquer de
2 estados, num total de 42 transições diferentes.
a. Lista todas transições possíveis e dê exemplo do que poderá causar cada uma das
transições. (2.5)

3
New → Ready or Ready/Suspend:
Quando um novo processo é criado, ele pode ser adicionado à fila Pronto ou Pronto /
Suspender. Em ambos casos, o Sistema Operativo deve criar um bloco de controle de processo
e alocar um espaço de endereço para o processo. Pode ser preferível que o Sistema Operativo
execute essas tarefas domésticas deveres precoces, para que ele possa manter um grande
conjunto de processos que não estão bloqueados. Com esta estratégia, muitas vezes haveria
espaço insuficiente na memória principal para um novo processo; portanto, daí a necessidade
do uso da transição (New → Ready or Ready/Suspend:).

Ready → Running or Ready/Suspend:


Normalmente, o Sistema Operativo prefere suspender um processo bloqueado em vez de
pronto, porque agora o processo pronto pode ser executado, enquanto o processo bloqueado
está ocupando espaço na memória principal e não pode ser executado. No entanto, pode ser
necessário suspender um processo, se essa for a única maneira de liberar um bloco
suficientemente grande de memória. Além disso, o Sistema Operativo pode optar por
suspender um processo pronto de prioridade mais baixa em vez de um processo bloqueado de
alta prioridade, se acreditar que o bloqueio processo estará pronto em breve.

Ready/Suspend → Ready:
Quando não há processos prontos na memória principal, o Sistema Operativo precisará trazer
um para continuar a execução. Além disso, Pode ser que um processo no estado Pronto /
Suspender tenha maior prioridade do que qualquer um dos processos no estado Pronto. Nesse
caso, o designer do SO pode ditar que é mais importante chegar ao processo de maior
prioridade do que minimizar a troca.

Blocked → Ready or Blocked/Suspend:


Se não houver processos prontos, pelo menos um processo bloqueado é trocado para dar lugar
a outro processo que não está bloqueado. Essa transição pode ser feita mesmo se houver
processos prontos disponível, se o Sistema Operativo determinar que o processo atualmente
em execução ou um processo que gostaria de despachar requer mais memória principal para
manter desempenho adequado.

Blocked/Suspend → Ready /Suspend or Blocked:


Um processo no estado Bloqueado / Suspender é movido para o estado Pronto / Suspender
quando o evento para o qual foi espera ocorre. Observe que isso requer que as informações do
estado relativas processos suspensos devem estar acessíveis ao Sistema Operativo.

Running → Ready, Ready/Suspend, or Blocked:

4
Normalmente, um processo em execução é movido para o Pronto quando a alocação de tempo
expirar. Se, no entanto, o Sistema Operativo estiver se antecipando o processo porque um
processo de alta prioridade no Bloco / Suspender fila acabou de ser desbloqueada, o Sistema
Operativo pode mover o processo em execução diretamente na fila (Pronto / Suspender) e
libere alguma memória principal

Any State → Exit:


Normalmente, um processo termina enquanto está em execução, porque foi concluído ou
devido a alguma condição de falha fatal. No entanto, em alguns sistemas operacionais, um
processo pode ser encerrado pelo processo que criou ou quando o processo pai é encerrado. Se
isso for permitido, um processo em qualquer estado pode ser movido para o estado Exit.

b. Lista todas transições impossíveis e explique porquê. (2.5)

New → Blocked, Blocked/Suspend, or Running: Um processo recém-criado permanece no


novo estado até que o processador esteja pronto para assumir um processo, quando é
direcionado para um dos estados Pronto.
Ready → Blocked or Blocked/Suspend: Normalmente, um processo pronto não pode ser
bloqueado posteriormente até que seja executado. Alguns sistemas podem permitir a SO para
bloquear um processo que está pronto no momento, talvez para liberar recursos comprometido
com o processo pronto.
Ready/Suspend → Blocked or Blocked/Suspend: O mesmo raciocínio que a explicação
anterior.
Ready/Suspend → Running: O Sistema Operativo primeiro traz o processo para a memória,
que coloca no estado Pronto.
Blocked → Ready /Suspend: essa transição seria feita em duas etapas. Um processo blocked
não pode ao mesmo tempo ser ready e suspend, porque essas transições são acionadas por duas
causas diferentes.
Blocked → Running: Quando um processo é desbloqueado (unblocked), ele é colocado no
estado Ready (pronto). O expedidor (dispacher) escolherá apenas um processo no estado Ready
para executar.
Blocked/Suspend → Ready: mesmo raciocinio como o caso Blocked → Ready /Suspend
Blocked/Suspend → Running: mesmo raciocinio como o caso Blocked → Running
Running → Blocked/Suspend: esta trasição aconteceráem 2 fases
Exit → Any State: não é possível voltar ao início do contador

5
Bom Trabalho!
Docente: Ismael Chutumiá

Você também pode gostar