Atividade 3 - 29-01-21
Atividade 3 - 29-01-21
Atividade 3 - 29-01-21
Atividade 3 - 29/01/21
Samuel de Castro Ribeiro 0032743
1. Na Figura 2.2, são mostrados três estados de processos. Na teoria, com três
estados, poderia haver seis transições, duas para cada. No entanto, apenas quatro
transições são mostradas. Existe alguma circunstância na qual uma delas ou ambas
as transições perdidas possam ocorrer?
As duas transições que faltam no diagrama de estados são “bloqueado para em execução”
e de “pronto para bloqueado”. Na primeira opção, supondo que um processo de entrada e
saída de um dispositivo esteja bloqueado e esse processo termina, caso a CPU esteja
ociosa, esta transição poderia acontecer. Já a segunda opção não é possível de acontecer,
já que somente os processos em execução podem ser bloqueados.
Isso ocorre, pois, algumas ações como salvar os registradores e configurar o ponteiro da
pilha não podem ser expressas em linguagens de alto nível, ou seja, essas linguagens não
permitem acesso ao hardware da CPU. Normalmente a linguagem de montagem é a
mesma para todas as interrupções, pois a forma de salvar os registros é idêntica, não
importando a causa da interrupção.
Isso pode ser explicado pela separação de privilégios e seguranças exigidas. O intuito é
proteger o sistema já que um usuário malicioso pode tentar acessar dados e informações
de outros processos caso o kernel deixe dados da pilha em um espaço na memória de um
programa de usuário. Além disso, ajuda a cuidar contra interferência e falhas entre os
processos.
Presumindo que o tempo de espera de E/S é de 50%, a última tarefa terminará aos 60
minutos caso seja executada sequencialmente. Isso porque como cada tarefa corresponde
a 50% de tempo da CPU (10 minutos x 2 tarefas = 20 minutos de espera para cada
execução de tarefa), logo, se cada uma for executada sequencialmente seria 30 minutos
para a o término da primeira tarefa, e somente após esse tempo decorrido a segunda tarefa
seria inicializada, terminando sua execução com 60 minutos.
Para o caso da execução em paralelo, o tempo gasto seria de 30 minutos, já que as duas
tarefas são executadas simultaneamente em 30 minutos, onde 20 minutos desse tempo
correspondem ao tempo da CPU e os outros 10 minutos correspondem ao tempo de espera
de cada processo.
São criados quatro processos, pois existe uma bifurcação no primeiro fork(), entre uma
cópia do processo pai e a criação de um processo filho, e logo depois cada um deles se
bifurca novamente no fork() seguinte, onde mais dois processos são criados.
2.2) ATIVIDADE: Faça os exercícios nº 3.1, 3.2, 3.3, 3.5, 3.9 do livro-texto do autor
SILBERSCHATZ (9ª ed., pág. 149-152 do cap. 3).
3.1 Usando o programa mostrado na Figura 3.30, explique qual será a saída na
LINHA A.
O valor na saída na Linha A será 5. O processo filho atualiza seu próprio valor, e quando
retorna ao pai, o valor ainda permanecerá 5.
3.2 Incluindo o processo-pai inicial, quantos processos são criados pelo programa
mostrado na Figura 3.31?
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.
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
3.9 Descreva as ações executadas por um kernel para a mudança de contexto entre
processos.