Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1.
Descreva as diferenas entre o escalonamento de curto prazo, mdio prazo e longo prazo.
Resposta:
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.
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.
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.
2.
3.
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.
6.
7.