LISTA DE
EXERCÌCIOS INTRODUÇÃO
1. Discuta
resumidamente os dois objetivos principais de um sistema operacional.
- Conveniência: esconder os detalhes do
funcionamento do hw para usuários tornando a comunicação homem-máquina
mais natural e inteligível assim tornar o
trabalho do programador mais produtivo e menos sujeito a erro
- Eficiência: Alocar os recursos do sistema da melhor
maneira possível para Homogeneizar a velocidade de operação do
componentes de HW Permitindo um uso
privado/compartilhado dos recursos do sistema
2. Explique
o que é multiprogramação, multiprocessamento e multithreading
·
Multiprogramação é quando se tem a impressão de vários processos sendo rodados, pseudoparalelismo.
·
Multiprocessamento é quando temos vários processadores, podendo
assim rodar vários programas ao mesmo tempo,
·
Multithreading. É quando se tem vários threads no em um processo
3. Comente
a seguinte frase: “As rotinas de um Sistema Operacional são executadas concorrentemente em função de eventos
assíncronos !!”
·
Eventos
assíncronos são eventos sem sincronia, ou seja as rotinas de SO são executadas
com tempo e instante não determinado
4.
Fale uma análise crítica (vantagens/desvantagens) dos sistemas
multiprogramados.
·
Em
um sistema multiprogramado temos a vantagem de resposta em menor tempo, melhor desempenho.
·
A desvantagens é alta complexibilidade e razão de tarefas processadas por unidades
podem ser menor
5. Quais
são os quatro principais componentes de um sistema operacional e quais as
funções básicas de cada um
deles?
·
Gerenciador
de processos
·
Gerenciador
de memoria
·
Gerenciador
de arquivos
·
Gerenciador
de entra e saída
6. Analise
o sistema operacional sob as visões top-down e bottom-up, discutindo suas
funções e objetivos.
·
top-down
é uma visão de cima para baixo, uma visão dos usuários muito abistrata
·
bottom-up
é uma visão de baixo para cima, uma visão mais técnica, a visão de
programadores
7. O
que diferencia um sistema de tempo real de um sistema on-line? Explique.
·
Real-time é fundamental que se tenha uma resposta mais rápida do processo
·
On-line é desejado que se tenha um menor tempo de resposta
8. Como
funciona a técnica de spooling e qual o principal benefício decorrente do seu
uso?
·
técnica de rolamento manual
Spooling e uso exclusivo de dispositivos
- A
técnica de spooling insere dados em uma área de armazenamento para uma
operação de escrita em um dispositivo de saída, como uma impressora, em
que os serviços devem ser processados um após o outro. Por exemplo
apesar de uma impressora processar apenas um serviço de cada vez, as
operações de impressão podem ser requisitadas simultaneamente por vários
programas e as impressões não devem ser misturadas umas com as outras.
- Alguns
dispositivos como fitas e impressoras, não fazem por si uma
multiplexação de requisições de E/S de programas concorrentes. A técnica
de spooling constitui uma maneira de os sistemas operacionais poderem
coordenar essas operações concorrentes em dispositivos.
·
cristianorosa.sites.uol.com.br/sistemaes.html
e também esta na pt.wikipedia.org/wiki/Spooling
9. Nos
sistemas multiprogramados o processador pode ser chaveado entre vários
processos. Neste contexto, explique o termo Pseudoparalelismo.
·
É quando
temos a visão de vários processos sendo rodados ao mesmo tempo
10. Explique
o que são system calls e quando são utilizadas.
·
São chamadas
de sistema, usadas como interface entra o SO e os aplicativos de usuário.
11. Liste a informação mantida num Process
Control Block.
·
Estado
do processo
·
Contador
de programa e apontador de pilha
·
Valor
do registro da CPU
·
Informações
sobre escalonamento
·
Informações
de contabilização de uso do processador
·
Informações
de entrada e saída
12. Para que serve o Bloco de Contexto de
Processo (BCP)? Por que ele é necessário em um sistema de tempo compartilhado?
Você acha que ele é necessário em sistemas monoprogramados? Justifique.
·
Servi
para gravar as informações numa troca de contexto. É a linha de instrução que
será rodada na hora em que o SO retornar para o processo que foi gravado no
PCB, onde o CP vai apontar , ou seja o local onde parou o processo quando foi
feita a troca de contexto pelo. Um sistema monoprogramado faz a execução em
linha por tanto não há necessidade de gravar partes do processo caso tenha que
mudar para outro, já que os Jobs so podem ser executados uma a um
PROCESSOS
E IPC
13.
Explique brevemente o que compõe um
processo.
·
Um
processo é composto de conte4xto de Software, Hardware e Endereçamento.
14.
Desenhe um gráfico com os
principais estados pelos quais um processo passa e suas respectivas transições.
Explique brevemente cada estado e cada transição.
·
Rodando
é quando o processo esta usando de fato a CPU
·
Pronto é
quando o processo esta na fila de espera com todos os seus dados acessíveis
para o processador
·
Bloqueado
é quando o processo não pode rodar por motivo de falta de dados.
15.
Explique os seguintes conceitos: Condição de Corrida,
Região Crítica e Exclusão Mútua.
·
Condição de Corrida: é quando vários threads tenta usar o mesmo
recurso ao mesmo tempo, o processo tenta usar o mesmo dado
·
Região Crítica: é a sequencia de instruções que estão sendo compartilhadas por vários
processos
·
Exclusão Mútua: é um sincronizador de processos usado
para garantir que determinadas partes do código sejam executadas por no máximo
um processo de cada vez
·
16.
Dê um exemplo de Região Crítica.
- Parte do programa
onde a memória compartilhada é acessada. Sequência de operações executadas
por um processo sobre um conjunto de variáveis compartilhadas.
ESCALONAMENTO
17. O que é escalonamento preemptivo? Qual sua
vantagem, se houver, sobre o escalonamento não preemptivo?
·
Escalonamento
preemptivo: é quando o processo perde o processador no
·
Fim do seu quantum,
- Por uma chama de sistema
- Outra tarefa que esta na fila de prontas.
A vantagem é que libera o processador
para outro processos serem executados
·
Escalonamento
não preemptivo: é quando atarefa permanece com o uso do processador o
quanto for necessário ou termine de executar suas rotinas
18.
A
maioria dos escalonadores "mesa redonda" usa um quantum de tamanho
fixo. Dê um argumento a favor de um quanto pequeno e outro a favor de um
quantum grande.
·
Quantum
pequeno é para liberar mais rápido o
processador, são frequentemente usados em situações em o SO não a visão de
quanto de quantum o aplicativo precisa, ou seja assim que ele chega pala
primeira vez na fila de prontas.
·
Quantum
grande vai demorar mais para esse liberamento, usando mais recursos do SO.
19.
Em
um sistema batch, cinco Jobs, de A a E, chegam ao CPD, nesta ordem, mais
ou menos ao mesmo tempo. Os seus tempos de processamento estimados são 3, 6, 2,
4 e 1 minutos, respectivamente. Suas respectivas prioridades são 4, 5, 1, 3 e
2. Para cada uma das políticas de escalonamento abaixo, indique a ordem de
execução dos Jobs e determine o tempo médio de espera. Desconsidere o tempo
gasto com a troca de processos.
a) Prioridade estática (6) b)
FIFO (First-In, First-Out) (2)
c) Menor Job
Primeiro (1) d) Política
circular (round robin)*(15)
* Neste caso, suponha que o sistema é
multiprogramado e que o tempo dado a cada processo é de 2 minutos.
20.
Seja
a tabela abaixo ilustrando 3 processos com seus respectivos tempos de chegada,
tempo de CPU necessário e prioridade. Com base nisto, calcule o tempo de
turnaround de cada processo, para cada uma das políticas abaixo:
PROCESSO
|
Tempo Chegada
|
Tempo CPU
|
Prioridade
|
P1
|
3
|
7
|
2
|
P2
|
0
|
11
|
1
|
P3
|
8
|
1
|
3
|
P1=
(3-7= 4) STF gera 4mms de permanência na CPU
P2= (0-11=11) Prioridade
estática não preemptiva gera 1mms de permanência na CPU
P3 = (8-1=7) Prioridade estática preemptiva gera
7mms de permanência na CPU
SJF (menor
job primeiro)
Prioridade
estática não preemptiva (maior número implica maior prioridade)
Prioridade
estática preemptiva (maior número implica maior prioridade)
Deadlock
21.
Explique
cada um das condições necessárias para a ocorrência de deadlocks. É possível
haver deadlock envolvendo apenas um processo? E com dois? Justifique.
·
Não por que é preciso que aja uma quatro
cituações para um deadlok.
Tem que ser não-preempção, ter exclusão mútua, posse-e-espera
e espera circular
Não- preemptivo isso é
atraves de uso de recursos que não pode ser tomado pelo SO e devolvido, como
impressora, fita magneti ou disco rigido
exclusão mútua é quando deixa de existir o deadlok
posse-e-espera é uma situação em que os processos estão sempre no
esta do espera e posse
espera circular nesse modo
tanto um quanto om outro prcisa dos mesmo recurso. A espera de um, é a posse do
outro e assim por diante.
22.
Explique a diferença entre deadlock e starvation.
·
Deadlock é quando dois ou mais processos
estão a esperar indefinidamente por um evento que só pode ser provocado por um
dos processos que está esperando.
- Starvation é quando o processo esta bloqueado
por causa de um deadlok. Um processo nunca pode ser removido da fila de
semáforo na qual está parado por que esta havendo um deadlok
23.
Explique quais as possíveis formas de se tratar um deadlock.
·
Assegurar, através da prevenção, que o sistema nunca vai entrar em
estado de deadlock.
·
Permitir que o sistema entre em estado de deadlock e então detectar e
recuperar.
·
Evitar, através da alocação cuidadosa dos recursos.
·
Ignorar o problema e fazer de conta que deadlocks nunca ocorrem no
sistema.
24.
Considere um sistema com seis processos (A, B, C, D, E e F)
e cinco recursos (R, S, T, U e V), com a alocação apresentada abaixo:
- A possui S e quer V
- C não
possui nada e quer U deadlok
- E
possui V e quer U deadlok
- B possui R e quer S
- D possui U e quer R deadlok
- F possui T e quer R deadlok
Este sistema possui deadlock? Se possui, quais processos
estão envolvidos? Analise a existência de cada uma das condições para
ocorrência de deadlock.
Os processos D, B, E, A
D possui U esta esperando R
B possui R esta S
A possui S que por sua vez esta esperando V
E possui V que esta esperando U
Portando um sistema que possui quatro processo em deadlok
em destaque.