Buscar

Atividade 4 - 05-02-21

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

SISTEMAS OPERACIONAIS 
Atividade 4 - 05/02/21 
Samuel de Castro Ribeiro 0032743 
 
 
1.2) ATIVIDADE: Faça os exercícios nº 5, 8, 33, 36, 41 do livro-texto do autor 
TANENBAUM (4ª ed., pág.s 120-122 do cap. 2). 
 
5- Um sistema computacional tem espaço suficiente para conter cinco programas em 
sua memória principal. Esses programas estão ociosos esperando por E/S metade do 
tempo. Qual fração do tempo da CPU é desperdiçada? 
 
A fração de tempo desperdiçada da CPU seria de 0,5^5 = 0,03125 ou 1/32 correspondente 
à chance de todos os cinco processos estarem ociosos. 
 
8. Considere um sistema multiprogramado com grau de 6 (isto é, seis programas na 
memória ao mesmo tempo). Presuma que cada processo passe 40% do seu tempo 
esperando pelo dispositivo de E/S. Qual será a utilização da CPU? 
 
A utilização da CPU é calculada através da fórmula 1-(p^n), onde p é a fração dee tempo 
pela espera de uma entrada ou saída de um dispositivo e n corresponde ao número de 
processos. Logo, a chance de que todos os processos estejam à espera de entrada 
e saída de um dispositivo é 1-(0,4^6) = 1-0,004096 = 0,995904, ou seja, aproximadamente 
99,6% de utilização da CPU. 
 
33. Se um sistema tem apenas dois processos, faz sentido usar uma barreira para 
sincronizá-los? Por que ou por que não? 
 
Sim, faz sentido usar uma barreira para sincronizá-los. Algumas aplicações são divididas 
em fases, onde um processo não deve seguir para a fase seguinte até que os outros 
processos atinjam o estado de prontidão. A barreira é usada para bloquear os processos 
prontos, esperando que os outros processos também atinjam essa barreira. Quando 
atingida por todos os processos é que ocorrerá a sincronização entre eles. 
 
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. 
 
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 os 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. 
 
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? 
 
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. 
 
2.2) ATIVIDADE: Faça os exercícios nº 3.8, 3.11, 3.12, 3.15, 3.17 do livro-texto do autor 
SILBERSCHATZ (9ª ed., pág. 150-153 do cap. 3). 
 
3.8 Descreva as diferenças entre o scheduling de curto prazo, de médio prazo e de 
longo prazo. 
 
O scheduling de curto prazo seleciona os processos que estiverem na fila de prontos na 
memória para serem executados em sequência e faz a alocação da CPU. Já scheduling de 
médio prazo é usado normalmente em sistemas de compartilhamento de tempo com um 
nível de agendamento intermediário, onde remove da memória programas que foram 
executados parcialmente pra depois restaurá-los para retornar à execução de onde 
pararam, reduzindo assim seu grau de multiprogramação. Por fim, o scheduling de longo 
prazo controla o grau de multiprogramação (número de processos carregados na 
memória). Ele pode dispor de mais tempo para decidir que processo deve ser selecionado 
da memória e ser trazido para a fila de prontos. Além disso provê uma boa “mistura” de 
processos focados em CPU e E/S. A diferença entre os schedulings está na frequência de 
sua execução, o qual o curto prazo deve selecionar um novo processo com bastante 
frequência e o de longo prazo com menos frequência, enquanto o scheduling de médio 
prazo tem uma frequência de execução intermediária. 
 
3.11 Explique o papel do processo init em sistemas UNIX e Linux no que diz respeito 
ao encerramento de processos. 
 
Quando um processo pai não invoca um processo wait() e é encerrado antes de finalizar 
os processos-filhos, estes se tornam “órfãos”. O processo “init” vem para adotar os 
processos órfãos. Quando o “init” invoca o wait(), permite que o status de saída de 
qualquer processo órfão seja coletado, liberando o identificador (pid) do processo órfão 
e sua entrada na tabela de processos. 
 
3.12 Incluindo o processo-pai inicial, quantos processos são criados pelo programa 
mostrado na Figura 3.32? 
 
16 processos são criados. 
 
3.15 Dê um exemplo de uma situação em que pipes comuns sejam mais adequados 
do que pipes nomeados e um exemplo de uma situação em que pipes nomeados sejam 
mais apropriados do que pipes comuns. 
 
Pipe comum é onde dois processos se comunicam de forma padrão produtor-consumidor, 
onde um processo produtor gravaria uma informação na extremidade de gravação e o 
outro processo leria ela na extremidade de leitura. Os pipes comuns são unidirecionais. 
Um exemplo seria um contador de bytes de um arquivo, onde o “produtor” grava os dados 
no arquivo e o “consumidor” faz a leitura e a contagem de bytes. 
Pipe nomeado tem comunicação bidirecional, onde vários processos podem usá-lo para a 
comunicação. Um exemplo seria onde um processo do servidor cria 3 threads, onde cada 
thread aceita uma conexão de cliente. Quando o processo do cliente é conectado, este 
fornece um nome de arquivo ao servidor. Caso o cliente tenha permissão, o processo do 
servidor abrirá o arquivo e retornará seu conteúdo ao cliente. 
 
3.17 Usando o programa mostrado na Figura 3.35, explique qual será a saída nas 
linhas X e Y. 
 
Saídas da linha X: 
Child = 0 
Child = -1 
Child = -4 
Child = -9 
Child = -16 
 
Saídas da linha Y: 
Parent = 0 
Parent = 1 
Parent = 2 
Parent = 3 
Parent = 4

Continue navegando