Você está na página 1de 16

CAPTULO 1

1 Quais so as duas principais funes de um Sistema Operacional?


Os sistemas operacionais podem ser analisados de dois pontos de vista:
como mquinas estendidas e como gerenciadores de recursos. Como mquina
estendida, o SO deve fornecer ao usurio uma viso de mquina virtual que
seja mais conveniente ao uso do que a mquina real, com abstraes dos
detalhes complicados da execuo das tarefas. J como gerenciador de
recursos, o SO tem a funo de gerenciar de forma adequada as diferentes
partes do computador (CPU, memria, acesso ao disco, etc), a fim de
que as aplicaes impostas pelo usurio sejam executadas o mais rpido
possvel.

2 Qual a diferena entre modo ncleo e modo usurio? Por que a diferena
importante para um Sistema Operacional?
O modo ncleo (tambm chamado de modo kernel ou supervisor) diz
respeito ao modo de execuo em que todas as instrues do processador
podem ser executadas. Os sistemas operacionais (SO) rodam neste modo de
execuo.
J o modo usurio refere-se um modo de execuo em que o
processador pode executar apenas instrues no-privilegiadas. Os processos do
usurio (editores de texto, compiladores, etc) rodam neste modo de execuo.
Esta distino serve para proteger o hardware da ao direta do usurio.
Caso um processo rodando em modo usurio necessite da execuo de
uma instruo privilegiada (de acesso ao hardware), o processador deve ser
chaveado para o modo usurio, por meio de uma chamada de sistema (system
call).

3 O que multiprogramao?
Multiprogramao a capacidade do sistema operacional de executar
concorrentemente vrios processos, alternando-os entre CPU e memria.
A vantagem da multiprogramao est no fato dela evitar que a CPU
fique ociosa enquanto outros processos em execuo esto realizando
operaes que no requerem seu uso (como, por exemplo, operaes de
entrada/sada).

4 O que spooling? Voc acredita que computadores pessoais avanados
tero spooling como um recurso padro no futuro?
Spooling (Simultaneous Peripheral Operation On Line Operao
Perifrica Simultnea On Line).
Spooling de entrada consiste na leitura de jobs (por exemplo, cartes)
para o disco, para que, assim que o processo em execuo termine, haja jobs
prontos para serem processados pela CPU.
Spooling de sada consiste na prvia transferncia dos arquivos de
impresso para o disco.
Nos computadores pessoais modernos, no faz mais sentido a utilizao
de spoolings de entrada, j que todos os dados j esto, desde o incio,
carregados no disco. Talvez ainda possa ser encontrado spoolings de sada em
tarefas de impresso, nas quais necessrio armazenar a fila de impresso para
que sejam liberados os recursos da CPU.

5 Nos primeiros computadores, cada byte de dados lidos ou escrito era
diretamente tratado pela CPU (isto , no havia DMA - Direct Memory Access -
acesso direto memria). Quais so as implicaes dessa organizao para a
multiprogramao?
A principal funo da multiprogramao no deixar a CPU ociosa
enquanto outros processos em execuo esto realizando operaes que
no requerem seu uso (operaes de I/O). No caso de no haver DMA, a CPU
ficaria ocupada com as operaes de I/O, que podem ser muito demoradas, no
podendo realizar outras tarefas.

6 Por que o tempo compartilhado no era comum em computadores de
segunda gerao?
Nos computadores de segunda gerao utilizava-se sistemas de
processamento em lote (batch systems).
Logo, o tempo de compartilhamento no era comum, uma vez que os
computadores utilizados para os clculos (maiores e mais caros) eram
otimizados para o processamento dos programas, ao contrrio dos utilizados
para os programas de leitura de cartes e impresso de resultados (menores e
mais baratos), que no requeriam grande capacidade de processamento.

7 Quais das seguintes instrues devem ser permitidas somente em modo
ncleo?
(a) Desabilitar todas as interrupes.
(b) Ler o relgio de hora do dia.
(c) Configurar o relgio de hora do dia.
(d) Mudar o mapeamento de memria.

(a), (c) e (d) s devem ser permitidas em modo kernel, uma vez que
atuam diretamente sobre o hardware.
(b) e poder ser realizadas pelo usurio atravs de system calls.
OBS: Chamada de Sistema (system call) constitui uma interface entre
programas aplicativos e o sistema operacional. Ela uma rotina que
prov acesso s funcionalidades do SO, tais como manipulao de arquivos,
controle de processo, gerenciamento de memria, etc.

8 Relacione algumas diferenas entre os sistemas operacionais de
computadores pessoais e os sistemas operacionais de computadores de grande
porte.
SOs de computadores pessoais so sempre interativos, muitas vezer com
apenas um usurio.
SOs para mainframes quase sempre do nfase ao processamento em
lote (batch) ou tempo de compartilhamento (timesharing) com muitos usurios.
Proteo e uso dos recursos so muito mais problemticos nestes computadores.

9 D um motivo pelo qual um sistema operacional patenteado, de cdigo-fonte
fechado, como o Windows, deve ter qualidade melhor do que um sistema
operacional de cdigo-fonte aberto, como o Linux. Agora, d um motivo pelo
qual um sistema operacional de cdigo-fonte aberto, como o Linux, deve ter
qualidade melhor do que um sistema operacional patenteado, de cdigo-fonte
fechado, como o Windows.
Cdigo aberto: Um bug pode ser corrigido por qualquer um e a correo
disponibilizada publicamente. O mesmo vale para melhorias.
Cdigo fechado: Maior suporte e padronizao para o desenvolvimento de
softwares.


10 Um arquivo do MINIX, cujo proprietrio tem UID = 12 e GID = 1, tem o
modo rwxr-x---. Outro usurio, com UID =6, GID = 1, tenta executar o arquivo.
O que acontecer ?
Proprietrio: rwx; Grupo: rx; Outros: (nada).
r: read; w: write; x: execute

11 Em vista do fato de que a simples existncia de um superusurio pode
levar a todos os tipos de problemas de segurana, por que existe tal conceito?
Superusurio uma abstrao no nvel do funcionamento so SO. Seu
papel , basicamente, determinar quais usurios e grupos podem ler, escrever e
executar quais arquivos.
Portanto, o conceito de superusurio necessrio para restringir o acesso
irrestrito a apenas alguns usurios especiais.

12 Todas as verses do UNIX suportam atribuio de nomes de arquivo
usando caminhos absolutos (relativos raiz) e caminhos relativos (relativos ao
diretrio de trabalho). possvel descartar um deles e usar apenas o outro? Se
for assim, qual deles voc sugeriria manter?
Sim. Ao meu ver, os caminhos relativos so apenas uma abstrao do
sistema operacional para o usurio, uma vez que o caminho concatenado e o
sistema utiliza-se sempre do caminho absoluto.
Portanto, seria possvel eliminar a utilizao de caminhos relativos,
mantendo apenas a utilizao de caminhos absolutos.

13 Por que a tabela de processos necessria em um sistema de tempo
compartilhado? Ela tambm seria necessria em sistemas operacionais de
computador pessoal, nos quais existe apenas um processo, com esse processo
tomando conta da mquina inteira at que termine?
A tabela de processos necessria para manter o estado dos processos
que esto atualmente suspensos (em estado de espera ou bloqueados).
No caso de SOs com apenas um processo, esta tabela no necessria,
uma vez que o nico processo nunca entra em estado suspenso.


14 Qual a diferena bsica entre um arquivo especial de bloco e um arquivo
especial de caractere?
Os arquivos especiais so utilizados para fazer com que dispositivos de
I/O se comportem como arquivos normais. Assim, eles podem ser lidos ou
escritos utilizando-se as mesmas chamadas de sistema que se usa para arquivos
convencionais.
Os arquivos especiais de bloco so utilizados para modelar dispositivos
que consistem em um conjunto de blocos endereveis aleatriamente, como os
discos. Pode-se, por exemplo, acessar um bloco especfico deste arquivo sem se
preocupar com a estrutura do sistema de arquivos do disco por ele
representado.
Os arquivos especiais de caractere so utilizados para modelar
dispositivos que aceitam como entrada, ou tm como sada, um fluxo de
caracteres, tais como impressoras ou modems.

15 No MINIX 3, se o usurio 2 cria um vnculo (link) para o arquivo
pertencente ao usurio 1 e, ento, o usurio 1 remove esse arquivo, o que
acontece quando o usurio 2 tenta ler o arquivo?
O arquivo continuar acessvel.
Um arquivo pode ser considerado um apontador para a regio do
endereo contendo seus dados. Links nada mais so outros apontadores para a
mesma regio da memria de um arquivo. Portanto, ao remover um arquivo,
remove-se apenas o apontador, mantendo-se os dados na memria. Somente
quando todos os links forem removidos que os dados sero excludos.

16 Os pipes so um recurso fundamental? Alguma funcionalidade importante
seria perdida se eles no estivessem disponveis?
No, uma vez que seria possvel criar um arquivo de sada de um
processo e utiliz-lo como entrada de outro, o que realizaria a mesma tarefa dos
pipes.
Entretanto, os pipes facilitam muito a vida do usurio, uma vez que a
tcnica utilizada acima necessitaria de uma ateno do usurio quanto
excluso dos arquivos criados, depois de utilizados.



17 Os instrumentos modernos para o consumidor, como equipamentos
estreos e cmeras digitais, frequentemente tm uma tela na qual podem ser
inseridos comandos e os resultados podem ser vistos. Muitas vezes, esses
equipamentos tm interiormente um sistema operacional primitivo. A que parte
de um software de computador pessoal o processamento de comandos por meio
da tela de um equipamento estreo ou de uma cmera semelhante?
Ao shell, ou seja, ao interpretador de instues do sistema operacional.

18 O Windows no tem uma chamada de sistema fork, embora seja capaz de
criar novos processos. D um palpite abalizado sobre a semntica da chamada
de sistema utilizada pelo Windows para criar novos processos.
O Windows nao possui a system call fork, mas possui o CreateProcess
(algo similar a fork + execve).

19 Por que a chamada de sistema chroot limitada ao superusurio? (Dica:
pense nos problemas de proteo).
chroot uma system call utilizada para alterar a raz da rvore de
diretrios. Pode ser utilizado para que usurios normais (sem privilgios de
superusurio) s possam acessar a estrutura de arquivos a partir de um certo
nvel da rvore.
Portanto, por se tratar de uma chamada que envolve a segurana do
sistema operacional, deve ser limitada apenas ao superusurio.

20 Examine a lista de chamadas de sistema da Figura 1-9 (As principais
chamadas de sistema do MINIX). Qual delas voc acha que provavelmente ser
executada mais rapidamente? Explique sua resposta.
exit, pois no precisara armazenar nenhuma informao do processo, j
que este est sendo terminado.

21 Suponha que um computador possa executar 1 bilho de
instrues/segundo e que uma chamada de sistema ocupe 1000 instrues,
incluindo a interrupes e toda a troca de contexto. Quantas chamadas de
sistema o computador pode executar por segundo e ainda ter a metade da
capacidade da CPU para executar cdigo de aplicativos?
Precisaria executar 0,5 bilhes de instrues/s. Logo, se cada system call
ocupa 1000 instrues, ento sero realizadas 500.000 chamadas a system
calls/s.
22 Existe uma chamada de sistema mknod na Figura 1-9, mas no h
chamada rmnod. Isso significa que voc precisa tomar muito cuidado ao criar i-
nodes dessa maneira porque no h meios de remover todos eles?
No. Os arquivos especiais (dispositivos de I/O) so abstrados de forma a
serem tratados como arquivos normais. Desta forma, podemos remov-los
normalmente atravs do uso de rm.

23 Por que o MINIX 3 tem o programa update executando em segundo plano
(background) o tempo todo?
O programa update, que lanado na inicializao do MINIX, executa
uma chamada sync a cada 30 segundos, com o objetivo de esvaziar o cache
(flushing).
Portanto, necessrio que este programa rode em background para no
manter o sistema constantemente ocupado.

24 Faz algum sentido ignorar o sinal SIGALARM?
Se um sinal de alarme no for capturado, a ao padro ser executada, e
o processo sinalizado ser terminado.
Portanto, faz sentido o processador ignorar o sinal SIGALARM, no caso do
responsvel pelo processo desejar que este seja eliminado ao receber um sinal
de alarme.

25 O modelo cliente-servidor popular em sistemas distribudos. Ele tambm
pode ser utilizado em um sistema de um nico computador?
Sim. Um exemplo o prprio MINIX 3.
Nestes casos, o kernel chamado de microkernel, pois passa requisies
do usurio para servidores (FS, PM, etc), que rodam em modo usurio. Estes
servidores tm o objetivo de diminuir a quantidade de processos executando em
modo kernel. Desta forma, se um servidor falhar, a mquina no ser
derrubada.
Outra vantagem desta arquitetura sua capacidade de adaptao para
uso em sistemas distribudos. Se um cliente se comunica com um servidor por
meio de mensagens, o cliente no precisa saber se a mensagem manipulada
de forma local ou se foi enviada por um servidor em uma mquina remota. Para
o cliente, a situao a mesma: uma requisio foi enviada e uma resposta
retornou.
26 As verses iniciais do Pentium no suportavam um monitor de mquina
virtual. Qual caracterstica fundamental necessria para permitir que uma
mquina possa se tornar virtual?
A caracterstica fundamental necessria para que uma mquina possa se
tornar virtual o tratamento de sinais de interrupo.






















CAPTULO 2
1 Por que a multiprogramao fundamental para a operao de um sistema
operacional moderno?
Um SO moderno precisa se adequar a um grande compartilhamento de
tempo e a uma grande demanda de processos, isso seria praticamente
impossvel sem a multiprogramao, com uma organizao adequada no
armazenamento dos processos atravs, principalmente, da tabela de processos.

2 Quais so os trs principais estados que um processo pode estar? Descreva
sucintamente o significado de cada um.


Running (executando): processo utilizando a CPU;
Ready (pronto): processo executvel. Temporariamente parado, de forma
a permitir que outro processo seja executado;
Blocked (bloqueado): processo incapaz de executar at que algum evento
externo acontea (e desbloqueie este processo);

3 Suponha que voc fosse projetar uma arquitetura de computador avanada
que fizesse a troca de processo em hardware, em vez de ter interrupes. De
quais informaes a CPU precisaria? Descreva como a troca de processo em
hardware poderia funcionar.
A CPU precisaria saber o momento em que o processo em execuo
bloqueado para fazer a troca por um processo no estado Pronto. Em uma
arquitetura mais avanada, a CPU precisaria saber o tempo que o processo est
executando e sua prioridade em relao aos outros processos que esto no
estado Pronto para realizar alternncia entre processos e gerar sensao de
simultaneidade de execuo de processos. Isto , o escalonamento de processos
precisaria ser implementado em hardware.
Para realizar a troca de processos o hardware deve empilhar o registrador
de estado e o "program counter" (PC) e salvar o estado dos registradores do
processo em execuo. Quando este processo voltar a executar, o hardware
desempilha o registrador de estado, o "program counter" (PC) e recupera o
estado dos registradores do processo que ir executar.
4 Em todos os computadores atuais, pelo menos parte das rotinas de
tratamento de interrupo escrita em linguagem assembly. Por qu?
Pois os tratamentos de interrupes requerem que a rotina comee
salvando o estado dos registradores na tabela de processos e configurando o
ponteiro da pilha para uma pilha temporria, utilizada no tratamento da
interrupo. Entretanto, estas aes no podem ser expressas em linguagens de
alto nvel, como C, e, portanto, devem ser escritas em assembly.

5 Redesenhe a Figura 2-2, adicionando dois novos estados: novo e terminado.
Quando um processo criado, ele est inicialmente no estado novo. Quando ele
sai, est no estado terminado.


6 No texto, foi dito que o modelo da Figura 2-6(a) no era conveniente para
um servidor de arquivos usando uma cache na memria. Por que no? Cada
processo poderia ter a sua prpria cache?
Se o servidor de arquivos for programado para utilizar o modelo da figura
2-6(a), mostrada abaixo, cada thread deste servidor possuir uma rea
especfica de endereamento de memria. Esta rea utilizada para
implementar cache. Logo, cada processo teria cache em uma rea diferente da
memria. Desta maneira, se uma thread realizar operao de escrita no arquivo
X e logo em seguida outra thread realizar uma operao de leitura ou escrita no
arquivo X, existe o risco de que a operao realizada pela primeira tenha efeito
apenas no cache e no no arquivo gravado, por exemplo, no HD. Logo, a
segunda thread estaria operando com um arquivo desatualizado. No momento
que uma das threads realizar flushing do cache no HD, poder existir o problema
de uma das verses do arquivo, modificada em uma das threads, ser perdida.
Desta maneira, conclu-se que cada processo no poderia ter sua prpria
cache.


7 Qual a diferena fundamental entre um processo e uma thread?
Uma thread compartilha seu espao de endereamento com outras
threads mas tem fluxo de controle prprio, ao passo que um processo possui um
espao de endereamento e fluxo de controle nicos e portanto, no compartilha
recursos com outros processos.

8 Em um sistema com threads, existe normalmente uma pilha por thread ou
uma pilha por processo? Explique.
Cada thread possui seu prprio controle e fluxo e, portanto, sua prpria
pilha. Isso necessrio para que cada thread possa ser interrompida (por
escalonamento ou bloqueio) e retomada do mesmo ponto, independente uma
das outras.

9 O que uma condio de corrida?
Condio de corrida a situao em que dois ou mais processos realizam
leitura ou escrita de dados compartilhados e o resultado final depende da ordem
e tempo de execuo dos processos.


10 D um exemplo de uma condio de corrida que poderia acontecer no
momento de comprar passagens de avio por duas pessoas que desejam viajar
juntas.
O comprador A verifica que existem dois acentos juntos disponveis;
Neste mesmo instante, um comprador B realiza a compra de um dos
acentos desejados por A;
Quando o comprador A tenta concluir sua compra, verifica que um dos
acentos no se encontra mais disponvel, impossibilitando-o de comprar
os dois acentos juntos.
Concluso: o resultado da compra foi afetado pela ordem das compras
realizadas pelos compradores A e B.

17 Na seo 2.2.4, foi descrita uma situao com um processo de alta
prioridade, H, e um processo de baixa prioridade, L, que leva H a entrar em um
lao infinito. O mesmo problema ocorrer se for usado escalonamento round-
robin, em vez de escalonamento por prioridade? Discuta.
No, uma vez que, no escalonamento round-robin, o controle da ordem
dos processos feito atravs do quantum. Portanto, caso um processo entre em
seu estado crtico, em loop infinito, o escalonamento ir alternar para outro
processo da fila aps o fim de seu quantum.

18 Dentro dos monitores, o sincronismo utiliza variveis de condio e duas
operaes especiais, WAIT e SIGNAL. Uma forma mais geral de sincronizao
seria ter uma nica primitiva, WAITUNTIL, que tivesse como parmetro um
predicado booleano arbitrrio. Assim, algum poderia escrever, por exemplo:
WAITUNTIL x < 0 or y + z < n
A primitive SIGNAL no seria mais necessria. Esse esquema claramente mais
geral do que o de Hoare ou Brinch Hansen, mas no utilizado. Por que no?
(Dica: pense a respeito da implementao.)
Pois seria de implementao custosa, uma vez que, cada vez que h uma
mudana em alguma varivel que aparece em um predicado no qual algum
processo est esperando, a rotina de sistema reavalia o predicado para ver se o
processo pode ser desbloqueado.
Com os monitores de Hoare e Brinch Hansen, os processos s podem ser
acordados por meio de uma primitiva de sinal.
19 Um restaurante fast food tem quatro tipos de funcionrios: (1) os
atendentes, que anotam os pedidos dos clientes; (2) os cozinheiros, que
preparam o alimento; (3) os embaladores, que colocam o alimento em
saquinhos; e (4) os caixas, que entregam os saquinhos para os clientes e
recebem o dinheiro. Cada funcionrio pode ser considerado um processo de
comunicao seqencial. Que forma de comunicao entre processos eles
utilizam? Relacione este modelo com os processos no MINIX 3.
A comunicao entre os empregados se d por meio de mensagens:
pedidos, comida e saquinhos.
Se compararmos com a comunicao de processos do MINIX 3, podemos
dizer que os quatro processos esto conectados atravs de pipes.

20 Suponha que temos um sistema de passagem de mensagens usando caixas
de correio (mailbox). Ao enviar para uma caixa de correio cheia ou ao tentar
receber de uma caixa vazia, um processo no bloqueado. Em vez disso, ele
recebe um cdigo de erro. O processo responde ao cdigo de erro apenas
tentando novamente, repedidamente, at ser bem-sucedido. Esse esquema leva
a condies de corrida?
No, uma vez que nada nunca perdido. Mas trata-se de uma espera
ativa (loop de espera).

21 Na soluo do problema da janta dos filsofos (Figura 2-20), por que a
varivel de estado configurada como HUNGRY na funo take_forks?
Pois caso o filsofo seja bloqueado, seus vizinhos podem, depois, por
meio de um teste, verificar seu estado (faminto) atravs da varivel, para que
este possa ser desbloqueado assim que os garfos estiverem disponveis.

22 Considere a funo put_forks da Figura 2-20. Suponha que a varivel
state[i] tenha sido configurada como THINKING aps as duas chamadas para
test e no antes. Como essa alterao afetaria a soluo para o caso de 3
filsofos? E para 100 filsofos?
Nessas condies, assim que o filsofo terminasse de comer, nenhum de
seus vizinhos seriam escolhidos para comer, mesmo com os garfos disponveis.
Desta forma, o sistema convergiria para um estado em que todos os
filsofos ficam pensando (tanto para 3 quanto para 100 filsofos).

23 O problema dos leitores e escritores pode ser formulado de vrias maneiras
com relao a qual categoria de processos pode ser iniciada e quando. Descreva
completamente trs variaes diferentes do problema, cada uma favorecendo
(ou no favorecendo) alguma categoria de processos. Para cada variao,
especifique o que acontece quando um leitor ou um escritor se torna pronto para
acessar a base de dados e o que acontece quando um processo tiver terminado
de usar a base de dados.
Variao 1: leitores tm prioridade. Assim, nenhum escritor pode iniciar
enquanto um leitor estiver ativo. Quando um leitor aparece, pode ser iniciado
imediatamente, a no ser que um escritor esteja ativo. Neste caso, quando o
escritor terminar, se houver leitores esperando, todos so iniciados,
independente da presena de escritores esperando.
Variao 2: escritores tm prioridade. Neste caso, nenhum leitor pode
iniciar enquanto houver escritoires esperando. Quando o ltimo processo ativo
terminar, o escritor iniciado, se houver um. Caso contrrio, todos os leitores,
se houver algum, so iniciados.
Variao 3: verso simtrica. Quando um leitor est ativo, novos leitores
podem ser iniciados imediatamente. Quando o escritor terminar, um novo
escritor tem prioridade, se algum estiver esperando. Ou seja, uma vez iniciado
os leitores, continua-se com leitores at no haver mais nenhum. Da mesma
forma, uma vez iniciado escritores, todos os escritores pendentes esto
habilitados para rodar.

24 Os computaodres CDC 6600 podiam manipular at 10 processos de E/S
simultaneamente, usando uma forma interessante de escalonamento round-
robin, chamada compartilhamento de processador. Uma troca de processo
ocorria aps cada instruo, de modo que a instruo 1 vinha do processo 1, a
instruo 2 vinha do processo 2, etc. A troca de processo era feita por um
hardware especial e a sobrecarga era zero. Se um processo precisasse de T
segundos para terminar na ausncia de concorrncia, de quanto tempo ela
precisaria se fosse usado compartilhamento de processador com n processos?
Iria precisar de n*T segundos.





25 Normalmente, os escalonadores round-robin mantm uma lista de todos os
processo executveis, com cada processo ocorrendo exatamente uma vez na
lista. O que aconteceria se um processo ocorresse duas vezes na lista? Voc
pode imaginar um motivo para permitir isso?
Se um processo ocorre mltiplas vezes na lista, significa mltiplos quanta
por ciclo para este processo. Isto pode ser usado para dar um maior
compartilhamento da CPU para processos de maior importncia (uma espcie de
prioridade). Entretanto, caso este processo seja bloqueado, preciso remover
todas suas entradas na lista de processos Prontos.

26 Medidas de determinado sistema mostraram que o processo mdio
executado por um tempo T antes de ser bloqueado na E/S. Uma troca de
processo exige um tempo S, que efitivamente desperdiado (sobrecarga). Para
escalonamento round-robin com quantum Q, escreva uma frmula para a
eficincia da CPU para cada uma das opes a seguir:
(a) Q = infinito
(b) Q > T
(c) S < Q < T
(d) Q = S
(e) Q quase 0







(a)


(b)


(c)


(d)


(e)

)


27 Cinco tarefas esto esperando para serem executadas. Seus tempos de
execuo esperados so 9, 6, 3, 5 e X. Em que ordem elas devem ser
executadas para minimizar o tempo de resposta mdio? (Sua resposta
depender de X.)
Para minimizar o tempo de resposta mdio, utiliza-se o algoritmo de
escalonamento SJT (Shortest Job First):
Se X < 3 X, 3, 5, 6, 9;
Se X = 3 X, 3, 5, 6, 9 ou 3, X, 5, 6, 9;
Se X = 4 3, X, 5, 6, 9;
Se X = 5 3, X, 5, 6, 9 ou 3, 5, X, 6, 9;
Se X = 6 3, 5, X, 6, 9 ou 3, 5, 6, X, 9;
Se X = 7 ou X = 8 3, 5, 6, X, 9;
Se X = 9 3, 5, 6, X, 9 ou 3, 5, 6, 9, X;
Se X > 9 3, 5, 6, 9, X;