Вы находитесь на странице: 1из 3

Universidade Federal de Santa Catarina

Curso de Graduação em Tecnologias da Informação e Comunicação


Arquitetura de Sistemas Operacionais – ARA7131
Prof. Anderson Luiz Fernandes Perez

LISTA DE EXERCÍCIOS – GERÊNCIA DE PROCESSOS

1. Por que o é importante o escalonador distinguir processos voltados para CPU (CPU bound) e para E/S
(I/O bound)?

2. Quais são as cinco principais atividades de um sistema operacional em relação à gerência de


processos?

3. Descreva as diferenças entre escalonadores de médio, longo e curto prazos.

4. Descreva as ações realizadas por um kernel para a troca de contexto entre processos?

5. Quais são os componentes do estado do programa que são compartilhados pelas threads em um
processo multithreads?

6. Uma solução multithreads usando múltiplas threads em nível de usuário pode conseguir desempenho
melhor em um sistema mutiprocessadores do que em um sistema de um único processador?

7. Quais dos seguintes algoritmos de escalonamento poderiam resultar em espera ocupada?


I. Primeira a chegar, primeiro a ser servido – FCFS;
II. Menor tarefa primeiro – SJF;
III. Revezamento – Round Robin;
IV. Prioridade.

8. Explique as diferenças no grau em que os algoritmos de escalonamento a seguir são discriminados em


favor de processos curtos:
a. FCFS
b. RR
c. Filas multiníveis com feedback

9. Considere o seguinte conjunto de processos, com o tamanho do tempo de burst (CPU) dado em
milissegundos:

Processo Tempo de Prioridade Tempo de


burst chegada
P1 10 3 0
P2 1 1 3
P3 2 3 7
P4 1 4 8
P5 5 2 10
a) Desenho os diagramas de Gantt que ilustram a execução desses processos usando os
seguintes algoritmos de escalonamento: FCFS, SJF, SRTF, prioridade não-preemptivo e o RR
(com quantum de 2 ms).
b) Qual é o tempo de resposta de cada processo para cada um dos algoritmos de escalonamento?
c) Qual é o tempo de espera de cada processo para cada um dos algoritmos de escalonamento?
d) Qual dos algoritmos resulta no menor tempo de espera médio?

10. Considere um sistema implementando escalonamento por fila multinível. Que estratégia um usuário de
computador pode empregar para maximizar a quantidade de tempo de CPU alocada ao processo do
usuário?

11. Desenvolva um programa em C que simule algum dos algoritmos de escalonamento de processos
estudados.

12. O que é um sistema de tempo real?

13. Quais as diferenças entre sistemas de tempo real brando (soft) e sistemas de tempo real duro (hard)?

14. O escalonamento de processos tradicional do UNIX impõe um relacionamento inverso entre números
de prioridade e prioridades: quanto mais alto o número, menor a prioridade. O scheduler recalcula as
prioridades dos processos uma vez por segundo usando a função a seguir: Prioridade = (uso recente
da CPU/2) + base, onde base = 60 e uso recente da CPU se refere a um valor indicando a frequência
com que um processo usou a CPU desde que as prioridades foram recalculadas pela última vez.
Supondo que o uso recente da CPU pelo processo P1 fosse igual a 40, pelo processo P2 fosse igual a
18 e pelo processo P3 fosse igual a 10. Quais serão as novas prioridades para esses três processos
quando as prioridades forem recalculadas? Com base nessas informações, o scheduler tradicional do
UNIX elevará ou rebaixará a prioridade relativa de um processo limitado pela CPU?

15. Considere um algoritmo de escalonamento por prioridades com preempção baseado na alteração
dinâmica de prioridades. Números de prioridade mais altos implicam prioridade mais alta. Quando um
processo está esperando a CPU (na fila de prontos, sem ser executado), sua prioridade muda a uma
taxa igual a α; quando ele está em execução sua prioridade muda a uma taxa igual a β. Todos os
processos recebem uma prioridade igual a 0 quando entram na fila de prontos. Os parâmetros α e β
podem ser configurados de modo a fornecer vários algoritmos de escalonamento diferentes.

a. Qual é o algoritmo que resulta de β > α > 0?


b. Qual é o algoritmo que resulta de α < β < 0?

16. Considere um sistema executando dez tarefas de I/O (I/O bound) e uma tarefa de CPU (CPU bound).
Supondo que as tarefas I/O emitissem uma operação de I/O a cada milissegundo de processamento da
CPU e que cada operação de I/O levasse 10 milissegundos para ser concluída. Supondo também que o
overhead da mudança de contexto fosse de 0,1 milissegundos e que todos os processos fossem tarefas
de execução longa. Descreva a utilização da CPU para um escalonador round-robin quando:
a. O quantum de tempo é de 1 milissegundo
b. O quantum de tempo é de 10 milissegundos

17. Considere uma variante do algoritmo de escalonamento round-robin – RR em que as entradas da fila de
prontos são ponteiros para as PCBs.
a. Qual seria o efeito da inserção de dois ponteiros para ao mesmo processo na fila de
prontos?
b. Cite duas grandes vantagens e duas desvantagens desse esquema?
c. Como seria possível modificar o algoritmo RR básico para obter o mesmo efeito sem os
ponteiros duplicados?
18. Explique como os pares de critérios de escalonamento a seguir entram em conflito em certas
configurações.
a. Utilização de CPU e tempo de resposta.
b. Tempo médio de turnaround e tempo máximo de espera.
c. Utilização de dispositivos de I/O e utilização da CPU.

19. Considere dois processos P1 e P2, onde p1 = 50, t1 = 25, p2 = 75 e t2 = 30.


a. Estes dois processos podem ser alocados a um escalonador de taxa monotônica?
Demonstre sua resposta utilizando um diagrama de Gantt.
b. Refaça o diagrama de Gantt para o algoritmo EDF.

Вам также может понравиться