Buscar

1-processos-e-threads-pdf

Prévia do material em texto

Sistemas Operacionais – Lista de Exerćıcios
Processos e Threads
1. Na figura mostrada abaixo, são mostrados três estados de processo. Na teoria, com três estados de
processos, poderia haver seis transições, duas para cada estado. Contudo, apenas quatro transições
são mostradas. Há alguma circunstância na qual uma delas ou ambas as transições não ilustradas
possam ocorrer?
2. Suponha as seguintes tarefas em lote:
ID Tempo de Chegada Tempo Necessário Prioridade
1 2 10 3
2 3 6 5
3 1 2 2
4 5 4 1
5 4 8 4
Para cada algoritmo abaixo, calcule: tempo de resposta (turnaround) e tempo de espera para cada
processo, tempo de resposta médio e tempo de espera médio.
(a) Round-Robin com quantum 2;
(b) Escalonamento por prioridades preemptivo;
(c) FCFS;
(d) SJF;
(e) SRTN.
Se a tabela listada representasse um contexto comum de um SO, qual algoritmo de escalonamento
você escolheria? Justifique.
3. Cinco tarefas em lote, de A até E, chegam em um centro de computação ao mesmo tempo. Elas
tem um tempo estimado de 15, 9, 3, 6 e 12 minutos, respectivamente. Suas prioridades sao 6, 3, 7, 9
e 4 respectivamente. Quanto menor o valor de prioridade, mais prioritario é o processo. Para cada
um dos algoritmos de escalonamento abaixo, determine o tempo de resposta para cada processo e
o tempo de resposta médio. Ignore o tempo de troca de contexto. Mostre como você chegou nas
respostas. Assuma que os três últimos escalonadores não são preemptivos.
(a) Round robin com quantum = 1 minuto;
(b) Escalonamento por prioridades;
(c) FCFS (de acordo com a ordem mostrada no enunciado);
(d) SJF.
4. A maioria dos escalonadores round-robin usam um quantum fixo. Dê um argumento em favor de um
quantum pequeno. Agora dê um argumento em favor de um quantum grande. Compare e contraste
os tipos de sistemas e tarefas para os quais os argumentos se aplicam. Há argumentos que se aplicam
para qualquer sistema?
1
5. Tarefas múltiplas podem ser executadas paralelamente e terminar mais rápido do que se tivessem
sido executadas sucessivamente. Suponha que duas tarefas, cada uma precisando de dez minutos do
tempo da CPU, começassem simultaneamente. De quanto tempo a última precisará para terminar se
elas forem executadas sucessivamente? Quanto tempo se forem executadas paralelamente? Suponha
50% de tempo de espera de E/S.
6. A Figura abaixo mostra um servidor da Web multithread:
Na Figura, uma thread despachante lê as requisições de trabalho que chegam da rede. Depois de
examinar a requisição, ele escolhe uma thread operário ocioso (isto é, bloqueado) e entrega-lhe
a requisição. O despachante então acorda o operário que está descansando, colocando-o no estado
de pronto. Quando desperta, o operário verifica se a requisição pode ser satisfeita pela cache de
páginas da Web, à qual todos as threads tem acesso. Se não puder, ele inicializará uma operação de
read para obter a página do disco e permanecerá bloqueado até a operação de disco terminar.
Você acha que threads de usuário ou de núcleo estão sendo usadas para os servidor da Web? Por
quê?
7. Durante as aulas vimos que o conjunto de registradores é relacionado como um item por thread, e
não por processo. Por quê? (Afinal, a máquina tem somente um conjunto de registradores).
8. Uma thread pode sofrer preempção por uma interrupção de relógio? Em caso afirmativo, sob quais
circunstância? Do contrário, por que não?
9. Qual a maior vantagem de implementar threads no espaço do usuário? Qual a maior desvantagem?
2
10. Considere o código abaixo:
A criação das threads e as mensagens impressas pelos threads são intercaladas aleatoriamente. Há
algum modo de impor que a ordem seja estritamente thread 1 criado, thread 1 imprime a mensagem,
thread 1 sai, thread 2 criado, thread 2 imprime, thread 2 sai e assim por diante? Em caso de resposta
afirmativa, qual é esse modo? Em caso de resposta negativa, por que não?
11. Em um sistema com threads, quando são utilizados threads de usuário, há uma pilha por thread ou
uma pilha por processo? E quando se usam threads de núcleo? Explique
12. Até que ponto é posśıvel estabelecer uma medida sobre quanto um processo é limitado pela CPU
ou limitado por E/S analisando o código fonte?
13. Cinco tarefas estão esperando para serem executadas. Seus tempos de execução previstos são 9, 6,
3, 5 e X. Em que ordem elas deveriam ser executadas para minimizar o tempo médio de resposta?
(Sua resposta dependerá de X).
3

Continue navegando