Buscar

Respostas das Pergunta do Slides sobre Capítulo 2 Processos e Threads Prof. Fernando Freitas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

INSTITUTO FEDERAL GOIANO -CAMPUS URUTAÍ
KASSIO FELIPPE DOS SANTOS SILVA
SISTEMAS DE INFORMAÇÃO 
SISTEMAS OPERACIOANAIS: ATIVIDADE 6
Urutaí - março/2019
Atividade do slide
1 - O que é pseudoparelismo?
Pseudo-paralelismo,permite que sistemas monoprocessados executem vários processos em um
determinado intervalo de tempo. O pseudo paralelismo consiste em um mecanismo usado pela
CPU para que essa venha a realizar várias vezes a troca de um processo para outro, mesmo que
virtualmente cada processo tenha uma CPU virtual.
2 - Podemos criar programas baseados somente no critério tempo? Justifique.
Sim. Os Sistema Operacional de Tempo Real são feitos dessa forma, são sistemas
operacionais destinado à execução de múltiplas tarefas onde o tempo de resposta a um evento
(externo ou interno) é pré-definido; não importando, como é comum pensar-se, se a velocidade de
resposta é elevada ou não. Esse tempo de resposta é chamado de prazo da tarefa e a perda de um
prazo, isto é, o não cumprimento de uma tarefa dentro do prazo esperado, caracteriza uma falha do
sistema.
3 – Cite eventos que causam a criação de processos.
Há várias razões para o início de um processo, os principais são:
Inicio do sistema;
Solicitação de chamada de execução ao sistema de criação de processo;
Solicitação do usuário;
Início de um job em lote.
Quando se cria um processo, o sistema operacional realiza os seguintes passos:
Atribui um identificador único ao processo. Cria-se o BCP, mas só se preenche o campo do 
identificador.
Atribui memória ao processo.
Inicializa o BCP.
Inserir o processo na lista de processos que corresponda. Por exemplo na lista de processos 
prontos.
Outras operações, como atualizar todas as estruturas de controle que mantenha o sistema opera
4 – Cite os eventos que causam o termino de um processo.
Os processos podem terminar de forma voluntária e involuntária. Aqui estão alguns exemplos
de motivos para os processos cessarem sua execução e sua forma:
Saída normal: A tarefa anteriormente solicitada já terminou sua execução (saída voluntária);
Saída por erro: O arquivo não é encontrado (saída voluntária);
Erro fatal: é efetuado uma divisão por 0 (saída involuntária);
Cancelamento por um outro processo: kill, TerminateProcess (saída involuntária).

5 – Quais os estados de um processo? Comente.
Não Submetido
É o processo que ainda não está submetido à CPU, está nas mãos do usuário. "Até onde 
interessa aos sistemas, ele não existe, porque o usuário ainda não o submeteu. Ele é simplesmente 
apresentado como sendo o primeiro passo na vida de um processo. O Sistema Operacional, 
naturalmente, não reconhece esse estado.". Pode por exemplo, ser um arquivo executável que está 
armazenado no HD.
Suspenso
É o processo que já foi submetido, porém permanece suspenso até que o horário ou evento 
programado ao usuário venha acontecer. Processo suspenso é aquele que esta no aguarde de uma 
entrada de dados de forma continua.
Pronto
O processo já foi submetido e está pronto para receber a CPU, porém ainda aguarda o 
escalonador de processos para ter controle da CPU. Processos que estão esperando E/S não se 
aplicam a esse estado.
Executando
A execução propriamente dita. O código está sendo processado. Se ocorrer durante a execução 
uma requisição de E/S o processo é colocado no estado de espera e outro processo da fila de 
prontos poderá então concorrer a CPU.
Espera
É o processo que foi colocado na fila de espera de E/S devido ao processador de E/S ser mais 
lento que a CPU principal. O processo tornaria a CPU mais escrava dele se não houvesse esse 
estado, pois como ele não está concorrendo à CPU ao executar um E/S, pode-se então colocá-lo no 
estado de espera para que os demais processos do estado pronto possam concorrer a CPU.
Ex: parte de um código em C
 scanf(“%d”, &VALOR);
 SOMA=VALOR+JUROS;
Como podemos notar, a instrução scanf (uma requisição de entrada e saída) é gerada se não 
fosse possível colocar o processo em estado de espera; caso o usuário não entrasse com nenhum 
valor, o programa ficaria suspenso e não liberaria a CPU para outros processos.
Completo
Neste estado temos a finalização do processo.
6 – Quais as vantagens de utilizarmos threads?
Uma das vantagens é que eles facilitam o desenvolvimento, visto que torna possível elaborar e
criar o programa em módulos, experimentando-os isoladamente no lugar de escrever em um único
bloco de código. Outro benefício dos threads é que eles não deixam o processo parado, pois quando
um deles está aguardando um determinado dispositivo de entrada ou saída, ou ainda outro recurso
do sistema, outro thread pode estar trabalhando.
7 - O que são processos multithread? Cite um exemplo. 
Multithreading é a capacidade que o sistema operacional possui de executar várias threads
simultaneamente sem que uma interfira na outra. Estas threads compartilham os recursos do
processo, mas são capazes de ser executadas de forma independente. Para possuir processamento
multithread “real”, os processadores precisam ser capazes de atender duas ou mais threads ao
mesmo tempo e não simular este efeito, atendendo-as uma por vez em um curto período de tempo.
Um Exemplo de multithread é que você pode construir uma suite e separar seu processamento em
várias instâncias para agilizar a conclusão gravando em disco os resultados.
8 – Porque não há proteção entre threads?
Threads de uma mesma tarefa, não tem proteção entre umas das outras, pois elas compartilham
dados umas com as outras, ou seja, elas cooperam. Já quando se pensa em threads de processos
distintos a proteção das threads é importante, já que elas podem ser hostis, pois ela competem pelo
processador.
9 – O que são Pthreads?
Os threads que usam a API (Interface de Programação de Aplicativos) de thread POSIX são
chamados de Pthreads. É suportado pela maioria dos sistemas UNIX. A especificação POSIX
determina que os registradores do processador, a pilha e a máscara de sinal sejam mantidos
individualmente para cada thread. A especificação POSIX especifica como os sistemas operacionais
devem emitir sinais a Pthreads, além de especificar diversos modos de cancelamento de thread. Um
novo thread é criado usando a chamada pthread_create. Quando um thread terminou o trabalho para
o qual foi designado, pode concluir chamando pthread_exit.
10 - Cite as vantagens e desvantagens de se implementar threads no espaço do usuário.
A maior vantagem de implementar threads no espaço do usuário é que elas são escalonadas
pelo programador, tendo grande vantagem de cada processo usar um algoritmo de escalonamento
que melhor se adapte a situação, o sistema operacional neste tipo de thread não faz o
escalonamento. Neste modo o programador é responsável por cria, executar, escalonar e destruir a
thread. A maior desvantagem é se um thread fizer uma chamada bloqueante, todo o processo estará
bloqueado, pois o kernel não tem acesso ao mesmo.
11 - Cite as vantagens e desvantagens de se implementar threads no núcleo.
O núcleo oferece suporte a threads. O uso delas é mais lento. O Sistema Operacional pode
escalonar mais eficientemente as threads, inclusive em máquinas multi-processadas.
No entanto, uma das desvantagens é que com vários threads o trabalho fica mais complexo,
justamente por causa da interação que ocorre entre eles.
12 – O que são ativações do escalonador?
Ativações do escalonador servem para imitar a funcionalidade dos threads de núcleo, ganha
desempenho de threads de usuário, evita transições usuário/núcleo desnecessárias, núcleo atribui
processadores virtuais para cada processo – deixa o sistema supervisor alocar threads para
processadores 
Problema: Baseia-se fundamentalmente nos upcalls - o núcleo (camada inferior) chamandoprocedimentos no espaço do usuário (camada superior).
13 – O que são threads pop-up?
 Threads pop-up são threads novas, criadas para processar algum evento , requisição de serviço
Iniciam em um novo contexto, são mais rápidas, não há contexto a restaurar, latência para iniciar
processamento é mínima e geralmente criadas no núcleo.
14 - Cite duas dificuldades para converter códigos monothreads em multithreads.
O código de um thread em geral consiste em múltiplas rotinas, exatamente como um processo.
Essas rotinas podem ter variáveis locais, variáveis globais e parâmetros. Variáveis locais e de
parâmetros não causam problema algum, mas variáveis que são globais para um thread, mas não
globais para o programa inteiro, são um problema. Essas são variáveis que são globais no sentido de
que muitos procedimentos dentro do thread as usam (como poderiam usar qualquer variável global),
mas outros threads devem logicamente deixá-las sozinhas.
O próximo problema em transformar um programa de um único thread em um programa com
múltiplos threads é que muitas rotinas de biblioteca não são reentrantes. Isto é, elas não foram
projetadas para ter uma segunda chamada feita para uma rotina enquanto uma anterior ainda não
tiver sido concluída.
15 – Defina condição de corrida.
Uma condição de corrida é uma falha num sistema ou processo em que o resultado do processo
é inesperadamente dependente da sequência ou sincronia doutros eventos. Apesar de ser conhecido
em português por 'condição de corrida' uma tradução melhor seria 'condição de concorrência' pois o
problema está relacionado justamente ao gerenciamento da concorrência entre processos
teoricamente simultâneos. O fenômeno pode ocorrer em sistemas eletrônicos, especialmente em
circuitos lógicos, e em programas de computador, especialmente no uso de multitarefa ou
computação distribuída.
16 – Defina região crítica.
Em programação concorrente, uma região crítica - também conhecida por seção crítica ou
secção crítica - é uma área de código de um algoritmo que acessa um recurso compartilhado que
não pode ser acedido concorrentemente por mais de uma linha de execução.
17 - Cite e comente 3 soluções para exclusão mútua com espera ociosa.
1a solução: O algoritmo de Peterson é um algoritmo de programação concorrente para exclusão
mútua, que permite a dois ou mais processos ou subprocessos compartilharem um recurso sem
conflitos, utilizando apenas memória compartilhada para a comunicação. Ele foi formulado por
Gary L. Peterson em 1981. Embora a formulação original de Peterson funcionasse apenas com dois
processos, o algoritmo pode ser estendido para mais processos.
Como funciona:
qi, i= 1,2: variável compartilhada, só alterada pelo processo Pi valor 0 fora da RC e colocada
em 1 quando processo Pi "quer" entrar na RC, permanecendo em 1 até Pi entrar e sair da RC. vez:
variável compartilhada, alterada por P1 e P2
P1 P2
loop forever loop forever
q1:= 1 q2:= 1
vez := 1 vez := 2
loop while(vez =1 and q2 = 1) loop while(vez = 2 and q1 = 1)
RC RC
q1:= 0 q2:= 0
RNC RNC
endloop endloop
O código executado por um processo desde o instante em que deseja entrar na RC até o
momento em que entra na RC é chamado de protocolo de entrada da RC e o código executado ao
liberar a RC é chamado de protocolo de saída da RC. Normalmente eles seriam encapsulados em
duas funções, digamos, enter_cs() e leave_cs(). No algoritmo acima o protocolo de entrada de P1
começa com a atribuição q1 := 1 e termina na saída do laço loop while(). O protocolo de saída é
simplesmente a atribuição q1 := 0.
2a solução: Ela lê o conteúdo da memória, a palavra LOCK, no registrador RX. Armazena um
valor diferente de zero (no caso, 1) no endereço da memória LOCK.
As operações de leitura e armazenamento da palavra são seguramente indivisíveis – nenhum outro
processo pode terminar.
A CPU que está executando a instrução TSL impede o acesso ao barramento de memória para
proibir que outras CPUs tenham acesso à memória enquanto ela não terminar.
enter_region:
TSL RX, LOCK
CMP RX, #0
JNE enter_region
RET
leave_region:
MOVE LOCK, #0
RET
3a solução: Algoritmo da "padaria"
idéia básica: para entrar na RC cada processo calcula o valor de um "billhte" ou "senha" > que
o maior bilhete ainda não usado pelos seus pares. O processo com o bilhete de menor número tem
preferência para entrar na RC. Pode haver empates no cálculo concorrente do valor do bilhete.
Nesse caso o processo com menor número tem preferência (regra de desempate)
Notação: 
qi, i= 1,2, ... N: tem o mesmo objetivo que acima, vale 0 fora da RC e colocada em 1 por Pi
quando Pi "quer" entrar na RC permanecendo em 1 até Pi sair da RC. ci, i= 1,2, ... N : vale 0 fora da
RC e após Pi ter obtido o seu "bilhete"; colocada em 1 por Pi quando este está calculando o valor do
seu bilhete Observe que tanto qi quanto ci só sâo escritas pelo processo Pi, mas são lidas por todos
os outros.
Código de Pi
loop forever
ci:= 1
qi:= 1 + max (q1, q2, ..., qN)
ci:= 0
for j =1, step 1 until N do
 loop while (cj != 0)
 loop while (qj != 0 and (qj, j) < (qi, i) ) (*)
endfor
RC
qi := 0
RNC
endloop
(*) (qj, j) < (qi, i) se qj < qi ou qj = qi e j < i (comparação lexicográfica)
18 - Descreva o funcionamento do chaveamento obrigatório.
Chaveamento obrigatório Utiliza a variável inteira turn . A variável turn indica a vez de quem é
de entrar na região crítica; Se um dos processos for mais lento que o outro requer a solução
estritamente alternada; Espera ocupada: teste contínuo do valor esperando por uma mudança.
while (TRUE) { while (TRUE) { 
while (turn != 0); while (turn != 0);
turn = 1; turn = 1;
critical_region(); critical_region();
turn = 0; turn = 0; 
noncritical_region(); noncritical_region();
} } 
(a) (b)
19 - Descreva o funcionamento da instrução TSL.
• Testa e modifica o conteúdo de uma posição de memória de forma atómica. 
• A instrução corresponde à função: 
int TSL(int *m){
int r;
r= *m; 
*m= 1; 
return r; 
}
• A execução da função TSL(m) tem de ser indivisível, i.e. nenhum outro processo pode 
aceder à posição de memória m até que a instrução tenha sido executada.
20 - Qual o problema de se trabalhar com espera ociosa.
O problema de se trabalhar com espera ociosa é que o processo ficará conferindo se o processo 
em execução já saiu da zona crítica e isso por si só já consome processamento sem o processo em 
espera estar realmente em execução.
21- De forma resumida, diga no que consiste o problema do produtor-consumidor.
Chamado de Produtor e o Consumidor (também conhecido como o problema do buffer
limitado), consiste em um conjunto de processos que compartilham um mesmo buffer. Os processos
chamados produtores põem informação no buffer. Os processos chamados consumidores retiram
informação deste buffer. 
22 – Como funciona as variáveis de condições?
Variáveis tipo condição associadas a um mutex (i. é, a uma RC - Região Crítica) e operações
sobre as mesmas foram introduzidas na biblioteca pthreads com o objetivo específico de evitar
"uma situação de corrida onde um thread se prepara para esperar por uma condição e um outro
thread sinaliza a condição imediatamente antes do primeiro thread realmente esperar por ela" (do
man page: pthread_cond_wait).
22 – O que são os monitores?
O monitor consiste de um conjunto de procedimentos para permitir a manipulação de um
recurso compartilhado, uma trava de exclusão mútua, as variáveis associadas ao recurso e uma
invariante que define as premissas para evitar disputa de recursos.
23 - Cite as vantagens e desvantagens dos monitores sobre os semáforos.
Monitores dependem de uma linguagem de programação – poucas linguagens suportamMonitores;
Nenhuma das soluções provê troca de informações entre processo que estão em diferentes
máquinas; 
Sistemas baseados em algoritmos de exclusão mútua ou semáforos estão sujeitos a erros de
programação. Embora estes devam estar inseridos no código do processo, não existe nenhuma
reivindicação formal da sua presença. Assim, erros e omissões (deliberados ou não) podem existir e
a exclusão mútua pode não ser atingida.
24 – Quais os principais problemas enfrentados pela troca de mensagem?
Se nenhuma mensagem estiver disponível, o receptor pode bloquear até que uma chegue.
Alternativamente, ele pode retornar imediatamente com um código de erro.
Outro fator importante a considerar é o da autenticação, de forma a garantir que os dados estão
sendo realmente recebidos do servidor requisitado, e não de um impostor, e também para que o
servidor saber com certeza qual cliente que requisitou. Em geral a encriptação das mensagens com
alguma chave é útil.
25 - Porque nos computadores pessoais o escalomanento não é tão importante quanto nos
servidores e estações de trabalho?
Com os Sistemas de tempo compartilhado, o algoritmo de escalonamento tornou-se mais
complexo porque, em geral, havia vários usuários esperando por um serviço. Alguns computadores
de grande porte ainda combinam serviços em lote de tempo compartilhado, exigindo assim, que o
escalonador decida se um Job em lote ou um usuário interativo em um terminal deve ser atendido.
Com o advento dos computadores pessoais, a situação mudou de duas maneiras. Primeiramente, na
maior parte do tempo existe apenas um processo ativo. É improvável que um usuário esteja,
simultaneamente, entrando com um documento em um processador de textos e copilando um
programa em segundo plano. A maioria dos programas para computadores pessoais é limitada pela
velocidade com que o usuário pode entrar dados e não pela taxa na qual a CPU é capaz de processá-
los.
Quando nos concentramos em servidores e estações de trabalho de alto desempenho em rede, a
situação muda. Nesse caso, é comum haver múltiplos processos competindo pela CPU, e, portanto,
o escalonamento torna-se importante.
26 - Em qual(is) situação(ões) deve ser tomada a decisão de escalonar um processo? 
A decisão de escalonar um processo deve ser tomada quando a mais de um processo tentado
requisitando o acesso a zona crítica.
27 - Diferencie vazão e tempo de retorno.
A vazão é o número de tarefas por horas que o sistema completa. Considerados todos os
fatores, terminar 50 tarefas por hora é melhor que terminar 40 tarefas por hora. O tempo de retorno
é estatisticamente o tempo médio do momento em que a tarefa em lote é submetida até o momento
em que ela é concluída. Ele mede quanto tempo o usuário médio tem de esperar pela saída. Aqui a
regra é: menos é mais.
28 - Um dos objetivos dos sistemas interativos é a proporcionalidade. O que vem a ser
proporcionalidade?
Proporcionalidade é satisfazer às expectativas dos usuário.
29 - O escalonador nem sempre toma as melhores decisões. Como melhorar isto?
A solução desse problema é separar o mecanismo de escalonamento da política de
escalonamento, um princípio há muito estabelecido (LEVIN et al., 1975). O que isso significa é que
o algoritmo de escalonamento é parametrizado de alguma maneira, mas os parâmetros podem estar
preenchidos pelos processos dos usuários.
30 - Diferencie o funcionamento dos algoritmos: menor tempo restante e tarefa mais curta
primeiro.
O algoritmo de escalonamento proporciona os menores tempos médios de execução e de espera
é conhecido como menor tarefa primeiro, ou SJF (Shortest Job First). Como o nome indica, ele
consiste em atribuir o processador à menor (mais curta) tarefa da fila de tarefas prontas.
Uma versão preemptiva da tarefa mais curta primeiro é o tempo restante mais curto em seguida
(shortest remaining time next). Com esse algoritmo, o escalonador escolhe o processo cujo tempo
de execução restante é o mais curto. De novo, o tempo de execução precisa ser conhecido
antecipadamente. Quando uma nova tarefa chega, seu tempo total é comparado com o tempo
restante do processo atual. Se a nova tarefa precisa de menos tempo para terminar do que o processo
atual, este é suspenso e a nova tarefa iniciada. Esse esquema permite que tarefas curtas novas
tenham um bom desempenho.
31 - Como funciona o algoritmo de escalonamento round-robim.
Round-robin (RR) é um dos algoritmos mais simples de agendamento de processos em um
sistema operacional, que atribui frações de tempo para cada processo em partes iguais e de forma
circular, manipulando todos os processos sem prioridades. Escalonamento Round-Robin é simples e
fácil de implementar.
Este escalonamento também pode ser aplicado em outros problemas de agendamento, como
agendamento de transmissão de pacotes de dados em redes de computadores. O nome do algoritmo
vem do principio de round-robin conhecido em outras áreas, onde cada pessoa compartilha
equatorialmente uma determinada tarefa
32 - Diferencie escalonamento por prioridade e escalonamento por filas múltiplas.
No escalonamento por prioridades a cada processo é designada uma prioridade, e o processo
executável com a prioridade mais alta é autorizado a executar. Para evitar que processos de
prioridade mais alta executem indefinidamente, o escalonador talvez diminua a prioridade do
processo que está sendo executado em cada tique do relógio (isto é, em cada interrupção do
relógio). Se essa ação faz que a prioridade caia abaixo daquela do próximo processo com a
prioridade mais alta, ocorre um chaveamento de processo. 
Um dos primeiros escalonadores de prioridade foi em CTSS, o CTSS tinha o problema que o
chaveamento de processo era lento, pois o 7094 conseguia armazenar apenas um processo na
memória e isso era mais lento. Os projetistas do CTSS logo perceberam que era mais eficiente dar
aos processos limitados pela CPU um grande quantum de vez em quando, em vez de dar a eles
pequenos quanta frequentemente (para reduzir as operações de troca), e dar a processos grandes
quantidades de quanta é ruim, porque demanda tempo. A solução foi estabelecer classes de
prioridade. Processos na classe mais alta seriam executados por dois quanta. Processos na classe se-
guinte seriam executados por quatro quanta etc. Sempre que um processo consumia todos os quanta
alocados para ele, era movido para uma classe inferior. Assim funcionava o escalonador por filas
múltiplas.
32 - Quais os tipos de escalonamento de threads possíveis?
• Escalonador de curto prazo:
Seleciona entre os processos em estado de pronto que estão na memória, para serem executados
pelo processador. O escalonador de curto prazo faz decisões de escalonamento muito mais
frequentemente que os de médio e longo prazo.
• Escalonador de médio prazo:
Seleciona entre os processos que estão na memória virtual. Ele temporariamente remove o processo
da memória principal e o coloca na memória secundária (swap) fazendo as operações de swapping
in e swapping out.
• Escalonador de longo prazo:
Seleciona os processos que estão na memória secundária e que serão levados para a memória
principal. Geralmente este escalonador é responsável pelo Grau de Multiprogramação.
33 - Descreva no que consiste a idéia básica envolvida no problema do jantar dos filósofos.
Em ciência da computação, o problema do jantar dos filósofos é um exemplo ilustrativo de um
problema comum de programação concorrente. É mais um problema clássico de sincronização
multi-processo.
O problema pode ser resumido como cinco filósofos sentados ao redor de uma mesa redonda,
cada qual fazendo exclusivamente uma das duas coisas: comendo ou pensando.Enquanto está
comendo, um filósofo não pode pensar, e vice-versa.
Cada filósofo possui um prato cheio de spaghetti à sua frente. Além disso, um garfo é
posicionado entre cada par adjacente de filósofos (portanto, cada filósofo tem exatamente um garfo
à sua esquerda e exatamente um garfo à sua direita).
Como spaghetti é uma comida díficil para se servir e comer com um único garfo, assume-se
que um filósofo necessita de dois garfos para poder comer. E, além disso, um filósofo só pode
utilizar um garfo que esteja imediatamente à sua esquerda ou imediatamente à sua direita.
A falta de disponibilidade de garfos é uma analogia à falta de recursos compartilhados em
programação de computadores. Em geral, o problema do jantar dos filósofos é um problema
genérico e abstrato que é utilizado para explicar diversas situações indesejáveis que podem ocorrer
em problemas que tem como principal idéia a exclusão mútua. Por exemplo, assim como no caso
acima, deadlock/livelock é um conceito que pode ser bem explicado através do problema dos
filósofos.
	Não Submetido
	Suspenso
	Pronto
	Executando
	Espera
	Completo
	Escalonador de curto prazo:
	Escalonador de médio prazo:
	Escalonador de longo prazo:

Continue navegando