Você está na página 1de 4

Sistemas Operacionais - Exercícios - Concorrência

1) O que é concorrência e como este conceito está presente nos sistemas operacionais
multiprogramáveis?
Em Sistemas Operacionais pode ser representada como um conjunto de rotinas executadas
de forma concorrente e ordenada, um exemplo é o processador que executa instruções ao
mesmo tempo em outras tarefas/operações. Esse conceito é princípio básico para sistemas
multiprogramáveis.

2) Por que o mecanismo de interrupção é fundamental para a implementação da


multiprogramação?

Pois é o mecanismo que torna a implementação do conceito de concorrência possível.

3) Explique o mecanismo de funcionamento das interrupções.

Uma interrupção é sempre gerada por algum evento externo ao programa ( sinalização de
um hardware ou até mesmo de um programa), e, nesse caso, independe da instrução que
está sendo executada.

4) O que são eventos síncronos e assíncronos? Como estes eventos estão relacionados ao
mecanismo de interrupção e exceção?

Os eventos síncronos são resultados diretos da execução do programa corrente e


são previsíveis. Já os eventos assíncronos, ocorre independentemente da
execução do programa corrente e são imprevisíveis. A interrupção gerada por
evento síncrono e Exceção gerada por evento assíncrono.

5) Dê exemplos de eventos associados ao mecanismo de exceção.


Overflow, Divisão por zero (nan – Not a Number), acesso indevido da memória
(segmentation fault) e entre outros.

6) Qual a vantagem da E/S controlada por interrupção comparada com a E/S controlada por
programa?

É mais eficiente, pois não é necessário que o processador espere pelo término de
uma operação, além de ser possível que várias operações de E/S sejam
executadas ao mesmo tempo.

7) O que é DMA e qual a vantagem desta técnica?


O Direct Memory Access surgiu de um problema, que foi a transferência de um grande
volume de dados que exigia muitas intervenções do processador, e o dma permite que um
bloco de dados seja transferido entre a memória principal e dispositivos de E/S sem a
intervenção do processador, exceto no início e no final da transferência. Assim, o
processador intervém o mínimo.

8) Como a técnica de buffering permite aumentar a concorrência em um sistema


computacional?

Com ela é possível minimizar o


problema da disparidade da
velocidade de processamento
existente entre o processador e
os dispositivos de E/S, ela
permite manter o processador e
os
dispositivos ocupados.
Com essa técnica é possível minimizar o problema da disparidade da velocidade de
processamento existente entre a CPU e os dispositivos de E/S, ela permite manter o
processador e os dispositivos ocupados na maior parte do tempo.

9) Explique o mecanismo de spooling de impressão.

No momento que um comando


de impressão é executado, as
informações que serão
impressas são gravadas antes de
tudo em um arquivo em disco,
o arquivo de spool, liberando
imediatamente o programa para
outras atividades.
Posteriormente, o SO
encarrega-se em
direcionar o conteúdo do
arquivo de spool para a
impressora.
Essa técnica utiliza uma área em disco como se fosse um grande buffer, no momento que
um comando de impressão é executado, as informações que serão impressas são gravadas
antes de tudo em um arquivo nesse disco criado disco, o arquivo de spool, liberando
imediatamente o programa para outras atividades. Posteriormente, o SO encarrega-se em
direcionar o conteúdo do arquivo de spool para a impressora.

10) Em um sistema multiprogramável, seus usuários utilizam o mesmo editor de textos (200
Kb), compilador (300 Kb), software de correio eletrônico (200 Kb) e uma aplicação
corporativa (500 Kb). Caso o sistema não implemente reentrância, qual o espaço de
memória principal ocupado pelos programas quando 10 usuários estiverem utilizando
todas as aplicações simultaneamente? Qual o espaço liberado quando o sistema
implementa reentrância em todas as aplicações?

A reentrância é a capacidade do código executável (código reentrante) ser compartilhado por


diversos usuários, exigindo que apenas uma cópia do código esteja na memória. Permite que
cada usuário execute um ponto diferente do código, manipulando dados próprios, exclusivos
de cada usuário.

Portanto, nesse caso são 10 usuários

Não implementando a reentrância: 10 x (200 Kb + 300 Kb + 200 Kb + 500 Kb) = 12.000 Kb


Implementando a reentrância: (200 Kb + 300 Kb + 200 Kb + 500 Kb) = 1.200 Kb.

R: (12.000 – 1.200) Kb = 10.800 Kb liberados na memória principal.

Você também pode gostar