Lista 1 publicada em 05/09/13.

Propaganda
Universidade Federal de Minas Gerais - Departamento de
Ciência da Computação - Segundo Semestre de 2013
Sistemas Operacionais
Professor:
Monitor:
Sérgio Vale de Aguiar Campos
[email protected]
Carlos Antônio Caetano Júnior
[email protected]
Lista 01 de Exercícios
1.
O que é concorrência e como este conceito está presente nos sistemas operacionais
multiprogramáveis?
2.
Escreva as ações tomadas por um kernel para fazer a troca de contexto entre processos.
3.
Quais são duas diferenças entre os threads em nível de usuário e os threads em nível de
kernel? Sob quais circunstâncias um tipo é melhor que o outro?
4.
Quais as vantagens e desvantagens do compartilhamento do espaço de endereçamento entre
threads de um mesmo processo?
5.
Qual é a função de um escalonador? Explique detalhadamente.
6.
Explique porque:
a. A implementação básica do problema clássico do Jantar dos Filósofos pode
ocasionar DeadLock.
b. A implementação do problema clássico do Jantar dos Filósofos, que possibilita ao
filósofo soltar o primeiro garfo se o segundo estiver ocupado pode causar
Starvation.
7.
A maioria dos escalonadores Round Robin usa um quantum de tamanho fixo. Dê um
argumento em favor de um quantum pequeno. Agora pense em um argumento que justifique
um quantum grande.
8.
Considere os processos A, B e C executam o mesmo código com região crítica definida
através do semáforo binário mutex (código parcial apresentado abaixo). O algoritmo de
escalonamento é circular (Round Robin). Suponha que a região crítica gaste o tempo de 1
(um) quantum (intervalo de tempo) para ser executada e fora da rc gaste 2 (dois) quantuns.
Preencha, justificando, a tabela abaixo com o estado de cada processo (P = Pronto; E =
Execução; B = Bloqueado) em cada intervalo de tempo até que todos os processos tenham
executado dentro e fora da região crítica, iniciando pelo processo C, depois B e A (fila de
pronto).
//Código do Processo
semaphore mutex = 1;
void main( ){
while(TRUE) {
wait(&mutex);
dentro_ da _região_crítica( );
signal(&mutex);
fora _da _região_crítica( );
}
}
FILA DE PRONTO: C, B, A (inicia pelo processo C)
TABELA A SER PREENCHIDA (AUMENTAR A TABELA CASO SEJA
NECESSÁRIO): (ESCREVA AS JUSTIFICATIVAS AO LADO DA TABELA)
(OBS: Tabela preenchida sem as justificativas não será considerada)
Intervalo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Mutex
A
B
C
Justificativa
Download