Você está na página 1de 2

⇒ EXERCÍCIO: faça os exercícios nº 3.1, 3.2, 3.3, 3.

5 do livro-texto do autor
SILBERSCHATZ (9ª ed., pág. 149-150 do cap. 3).
1. (3.1) Usando o programa mostrado na Figura 3.30, explique qual será a saída na
LINHA A.
R: 5.
2. (3.2) Incluindo o processo-pai inicial, quantos processos são criados pelo programa
mostrado na Figura 3.31?
R: 16.
3. (3.3) As versões originais do sistema operacional móvel iOs da Apple não forneciam
um meio para processamento concorrente. Discuta três grandes complicações que o
processamento concorrente adiciona a um sistema operacional.
R: 1- Proteção dos processos e recursos do sistema, incluindo a proteção entre eles mesmos,
onde qualquer processo deve ser limitado a quantidade de memória a ser utilizada, não
deixando um processo ocupar a memória de outro. 2 escolha de qual processo ser
executado, 3. Finalização do processo pai antes do filho.
4. (3.5) Quando um processo cria um novo processo usando a operação fork ( ), qual dos
estados a seguir é compartilhado entre o processo-pai e o processo-filho?
a. Pilha
b. Heap
c. Segmentos de memória compartilhada
R: Somente os segmentos de memoria compartilhada são compartilhados entre o processo
pai e o processo filho recém criado por fork. São feitas cópias da pilha e do heap para o
processo recém criado.
⇒ EXERCÍCIO: faça os exercícios nº 36, 37, 33, 41 do livro-texto do autor TANENBAUM
(4ª ed., pág. 122 do cap. 2).

1. (33) Se um sistema tem apenas dois processos, faz sentido usar uma barreira para
sincronizá-los? Por que ou por que não?
R: Faz sentido sim usar barreiras para sincroniza-los pois 1 processo pode terminar
primeiro do que o outro, assim ele ocuparia espaço na CPU a espera do processo 2 terminar,
sendo assim usamos uma barreira para sincroniza-los para que os 2 possam avançar para a
próxima fase simultaneamente.

2. (36) Uma lanchonete tem quatro tipos de empregados: (1) atendentes, que pegam os
pedidos dos clientes; (2) cozinheiros, que preparam a comida; (3) especialistas em
empacotamento, que colocam a comida nas sacolas; e (4) caixas, que dão as sacolas
para os clientes e recebem seu dinheiro. Cada empregado pode ser considerado um
processo sequencial comunicante. Que forma de comunicação entre processos eles
usam? Relacione esse modelo aos processos em UNIX.
R: A atendente se comunica através dos pedidos, os cozinheiros através da comida, os
especialistas em empacotamento através do empacotamento da comida e o s caixas através
da entrega da sacola aos clientes e do recebimento do dinheiro. Se comparado aos processos
do UNIX, os quatro processos são conectados por pipes.
3. (37) Suponha que temos um sistema de transmissão de mensagens usando caixas de
correio. Quando envia para uma caixa de correio cheia ou tenta receber de uma vazia,
um processo não bloqueia. Em vez disso, ele recebe de volta um código de erro. O
processo responde ao código de erro apenas tentando de novo, repetidas vezes, até ter
sucesso. Esse esquema leva a condições de corrida?
R: Sim. A mensagem só pode ser escolhida quando ambos lados possuírem recursos para
serem compartilhados, ou seja, quando ambos lados da região crítica.

4. (41) É possível determinar se um processo é propenso a se tornar limitado pela CPU ou


limitado pela E/S analisando o código fonte? Como isso pode ser determinado no tempo
de execução?
R: Sim, é possível. Em programas que leem todos os arquivos de entrada nos buffers no
início do código fonte, provavelmente não terá limitação pela E/S, porém se é um programa
mais complexo que lê e grava inúmeros arquivos em seus buffers durante sua execução de
forma incremental, condicional ou em laços de repetição por exemplo, é provável que
haverá limitação pela E/S, dado que a condição de parada nem sempre pode ser
determinada. Caso o sistema operacional tenha um comando que forneça a quantidade de
tempo de CPU usada por um programa, poderia comparar isso com o tempo total para
concluir a execução do programa.

Você também pode gostar