Você está na página 1de 4

QUESTES SOBRE PROCESSO

1.

Descreva as diferenas entre o escalonamento de curto prazo, mdio prazo e longo prazo.

Resposta:

Curto prazo(escalonador de CPU) seleciona as tarefas na memria cujas tarefas no estejam


prontas para execuo e aloca a CPU para elas.
Mdio prazo usado especialmente com sistemas de tempo compartilhado, como um nvel de
escalonamento intermedirio. Um esquema de swap implementado para retirar da memria
programas parcialmente executados e reinstanci-los mais tarde, a fim de continuar a partir de
onde pararam.
Longo prazo(escalonador de tarefa) determina quais tarefas so trazidas para a memria, para
processamento.

A diferena principal est na freqncia de sua execuo. O escalonamento de curto prazo precisa
selecionar um novo processo com muita freqncia. O de longo prazo usado muito menos freqentemente,
pois trata de colocar tarefas no sistema e pode esperar at que uma tarefa termine, antes de admitir outra.
2.

Descreva as aes tomadas por um kernel para a troca de contexto entre os processos.
Em geral, o sistema operacional precisa salvar o estado do processo correntemente em execuo
e restaurar o estado do processo escalonado para ser executado em seguida. Salvar o estado de um
processo normalmente inclui os valores de todos os registradores da CPU, alm da alocao de
memria. As trocas de contexto tambm precisam realizar muitas operaes especficas da
plataforma, incluindo o esvaziamento de caches de dados e instrues.

3.

Quais so os benefcios e as desvantagens de cada um dos seguintes? Considere os nveis tanto do


sistema quanto do programador.
a. Comunicao sncrona e assncrona.
b. Buffer automtico e explcito.
c. Enviar por cpia e enviar por referncia.
d. Mensagens de tamanho fixo e de tamanho varivel.
Resposta:
a. Comunicao sncrona e assncrona Um benefcio da comunicao sncrona que ela
permite um encontro entre o emissor e o receptor. Uma desvantagem de um envio com
bloqueio que um ponto de encontro pode no ser exigido e a mensagem poderia ser entregue
de forma assncrona, recebida em um ponto de nenhum interesse ao emissor. Como resultado,
os sistemas de troca de mensagem normalmente oferecem as duas formas de sincronismo.
b. Buffer automtico e explcito O buffer automtico oferece uma fila com tamanho indefinido,
garantindo assim que o emissor nunca ter de bloquear enquanto espera para copiar uma
mensagem. No existem especificaes de como o buffer automtico ser fornecido; um
esquema pode reservar uma memria suficientemente grande, na qual grande parte da
memria desperdiada. O buffer explcito especifica o tamanho do buffer. Nessa situao,
o emissor pode ser bloqueado enquanto espera pelo espao disponvel na fila. Porm, h
menos probabilidade de que a memria seja desperdiada com o buffer explcito.
c. Enviar por cpia e enviar por referncia Enviar por cpia no permite que o receptor altere
o estado do parmetro; enviar por referncia permite isso. Um benefcio de enviar por
referncia que permite que o programador escreva uma verso distribuda de uma aplicao
centralizada. A RMI da Java oferece ambos, porm, a passagem de um parmetro por
referncia exige a declarao do parmetro tambm como um objeto remoto.
d. Mensagens de tamanho fixo e de tamanho varivel As implicaes disso esto relacionadas,
na maioria da vezes, a aspectos da bufferizao; com mensagens de tamanho fixo, um buffer
com tamanho especfico pode manter uma quantidade de mensagens conhecida. A quantidade

de mensagens de tamanho varivel que podem ser mantidas por esse buffer desconhecida.
Considere a forma como o Windows 2000 trata dessa situao: com mensagens de tamanho
fixo (qualquer coisa < 256 bytes), as mensagens so copiadas do espao de endereos do
emissor para o espao de endereos do processo receptor. Mensagens maiores (ou seja,
mensagens de tamanho varivel) utilizam memria compartilhada para passar a mensagem.

QUESTES DE THREADS

1.

Fornea dois exemplos de programao em que o uso de multithreads oferece melhor desempenho
do que uma soluo com nica thread.
Resposta: (1) Um servidor Web que atende a cada requisio em uma thread separada. (2) Uma
aplicao paralelizada, como uma multiplicao de matriz em que diferentes partes da matriz
podem ser atuadas em paralelo. (3) Um programa GUI interativo, como um depurador em que
uma thread usada para monitorar a entrada do usurio, outra thread representa a aplicao em
execuo e uma terceira thread monitora o desempenho.

2.

Fornea dois exemplos de programao em que o uso de multithreadsnooferece melhor


desempenho do que uma soluo com uma nica thread.
Resposta: (1) Qualquer tipo de programa seqencial no um bom candidato para usar threads.
Um exemplo disso um programa para calcular a devoluo de imposto de renda individual. (2)
Outro exemplo um programa de shell, como o C-shell ou o Korn shell. Esse tipo de programa
precisa monitorar de perto seu prprio espao de trabalho, como arquivos abertos, variveis de
ambiente e diretrio de trabalho atual.

3.

Cite duas diferenas entre as threads no nvel do usurio e threads no nvel do kernel. Sob que
circunstncias um tipo melhor que o outro?
Resposta: (1) As threads no nvel do usurio so desconhecidas pelo kernel, enquanto o kernel est
ciente das threads do kernel. (2) As threads do usurio so escalonadas pela biblioteca de threads
e o kernel escalona as threads do kernel. (3) As threads do kernel no precisam estar associadas a
um processo, enquanto cada thread do usurio pertence a um processo.

4.

Descreva as aes tomadas por um kernel para a troca de contexto entre as threads no nvel do
kernel.
Resposta: A troca de contexto entre as threads do kernel normalmente exige salvar o valor dos
registradores da CPU da thread que est saindo e restaurar os registradores da CPU da nova thread
que est sendo escalonada.

5.

Descreva as aes tomadas por uma biblioteca de threads para a troca de contexto entre threads
no nvel do usurio.
Resposta: A troca de contexto entre as threads do usurio bem semelhante troca entre as threads
do kernel, embora seja dependente da biblioteca de threads e de como ela mapeia as threads do
usurio em threads do kernel. Em geral, a troca de contexto entre as threads do usurio envolve
pegar uma thread do usurio do seu LWP e substitu-la por outra thread. Essa ao normalmente
envolve salvar e restaurar o estado dos registradores.

6.

Que recursos so usados quando uma thread criada? Como eles diferem daqueles usados quando
um processo criado?

Resposta: Como uma thread menor do que um processo, a criao de thread normalmente utiliza
menos recursos do que a criao de um processo. A criao de um processo exige a alocao de
um bloco de controle de processo (PCB), uma estrutura de dados um tanto grande. O PCB inclui
um mapa de memria, uma lista de arquivos abertos e variveis de ambiente. A alocao e o
gerenciamento do mapa de memria normalmente a atividade mais demorada. A criao de uma
thread do usurio ou do kernel envolve a alocao de uma estrutura de dados pequena para manter
um conjunto de registradores, pilha e prioridade.
7.

Suponha que um sistema operacional mapeie threads no nvel do usurio no kernel usando o
modelo muitos-para-muitos, no qual o mapeamento feito atravs de LWPs. Alm disso, o sistema
permite que os desenvolvedores criem threads de tempo real. necessrio associar uma thread de
tempo real a um LWP? Explique.
Resposta: Sim. A temporizao fundamental para aplicaes de tempo real. Se uma thread for
marcada como tempo real, mas no estiver ligada a um LWP, a thread pode ter de esperar para ser
conectada a um LWP antes de sua execuo. Considere se uma thread de tempo real est
executando (est conectado a um LWP) e depois bloqueie (ou seja, precisa realizar E/S, foi
preemptado por uma thread de tempo real de maior prioridade, est esperando por um lock de
excluso mtua etc.). Enquanto a thread de tempo real est bloqueada, o LWP ao qual foi
conectado foi atribudo a outra thread. Quando a thread de tempo real tiver sido escalonada para
executar novamente, primeiro ter de esperar para ser conectada a um LWP. Vinculando um LWP
a uma thread de tempo real, voc est garantindo que a thread poder ser executada com um
mnimo de atraso depois de escalonada.

QUESTES SOBRE ESCALONAMENTO


1.

Um algoritmo de escalonamento de CPU determina a ordem para a execuo de seus


processos escalonados. Dados n processos a serem escalonados em um processador, quantos
escalonamentos possveis existem? D uma frmula em termos de n.
Resposta:n!(nfatorial =nn 1 n 2 ... 2 1)

2.

Defina a diferena entre escalonamento preemptivo e no-preemptivo. Indique por que o


escalonamento no-preemptivo estrito provavelmente no ser usado em um centro de
computao.
Resposta: O escalonamento preemptivo permite que um processo seja interrompido no meio
de sua execuo, afastando a CPU e alocando-a a outro processo. O escalonamento nopreemptivo garante que um processo abandonar o controle da CPU somente quando terminar
com seu burst de CPU atual.

3.

Considere uma variante do algoritmo de escalonamento RR, em que as entradas na fila de


prontos so ponteiros para os PCBs.
a. Qual seria o efeito de colocar dois ponteiros para o mesmo processo na fila de prontos?
b. Quais seriam as vantagens e desvantagens mais importantes desse esquema?
c. Como voc modificaria o algoritmo RR bsico para conseguir o mesmo efeito sem os
ponteiros duplicados?
Resposta:
a. Esse processo ter aumentado sua prioridade, pois ao obter tempo com mais freqncia
ele est recebendo tratamento preferencial
b. A vantagem que tarefas mais importantes poderiam receber mais tempo, em outras
palavras, maior prioridade no tratamento. A conseqncia, naturalmente, que tarefas
menores sofrero mais.

c.

4.

Distribui uma quantidade de tempo maior para os processos que merecem maior
prioridade. Em outras palavras, tenha dois ou mais quantums possveis no esquema
Round-Robin.

Que vantagem existe em ter diferentes tamanhos de quantum de tempo em diferentes nveis
de um sistema de enfileiramento multinvel?
Resposta: Os processos que precisam de atendimento mais freqente, por exemplo, processos
interativos como os editores, podem estar em uma fila com um quantum de tempo pequeno.
Os processos sem necessidade de atendimento mais freqente podem estar em uma fila com
um quantum maior, exigindo menos trocas de contexto para completar o processamento,
criando um uso mais eficiente do computador.

5.

Muitos algoritmos de escalonamento de CPU so parametrizados. Por exemplo, o algoritmo


RR requer um parmetro para indicar a fatia de tempo. As filas multinvel com feedback
exigem parmetros para definir o nmero de filas, os algoritmos de escalonamento para cada
fila, os critrios usados para mover processos entre filas, e assim por diante. Esses algoritmos
so, na realidade, conjuntos de algoritmos (por exemplo, o conjunto de algoritmos RR para
todas as fatias de tempo, e assim por diante). Um conjunto de algoritmos pode incluir outro
(por exemplo, o algoritmo FCFS o algoritmo RR com um quantum de tempo infinito). Que
relao (se houver alguma) permanece entre os seguintes pares de conjuntos de algoritmos?
a. Prioridade e SJF
b. Filas multinvel com feedback e FCFS
c. Prioridade e FCFS
d. RR e SJF
Resposta:
a. A tarefa mais curta tem a prioridade mais alta.
b. O menor nvel de MLFQ FCFS.
c. FCFS oferece prioridade mais alta para a tarefa que existe h mais tempo.
d. Nenhuma.

6.

Suponha que um algoritmo de escalonamento (no nvel de escalonamento de CPU de curto


prazo) favorece os processos que tm usado o menor tempo do processador no passado
recente. Por que esse algoritmo favorece programas I/O-Bound e no causa starvation
permanente nos programas CPU-Bound?
Resposta: Ele favorecer os programas I/O-Bound por causa da requisio de burst de CPU
relativamente curta por parte deles; os programas CPU-Bound no sofrero starvation porque
os programas I/O-Bound abriro mo da CPU com relativa freqncia para realizar sua E/S.

7.

Explique as diferenas no grau ao qual os algoritmos de escalonamento a seguir so


discriminados em favor de processos curtos:
a. FCFS
b. RR
c. Multilevel feedback queues
Resposta:
a. FCFS discrimina tarefas curtas, pois quaisquer tarefas curtas que chegam aps tarefas
longas tero um tempo de espera mais longo.
b. RR trata todas as tarefas igualmente (dando-lhes bursts iguais de tempo de CPU), de
modo que as tarefas curtas podero sair do sistema mais rapidamente, pois terminaro
primeiro.
c. Multilevel feedback queues funcionam de modo semelhante ao algoritmo RR elas
discriminam em favor de tarefas curtas.