-
Gabarito letra E:
Conceito de Não preempção: " Um algoritmo de escalonamento não preemptvo escolhe um processo para executar, e, então, o deixa executar até que seja bloqueadp (a espera de E/S ou de um outro processo) ou até que voluntáriamente libera a CPU" Sistesmas Operacionais Modernos 3a Edição, Tanebaum.
Conceito de starvation : "Em programação concorrente, ocorre inanição quando um processo nunca é executado ("morre de fome"), pois processos de prioridade maior sempre o impedem de ser executado. Em um ambiente computacional multitarefa, a execução de diversos processos simultâneos deve seguir uma regra de escalonamento destes para uso do processador. Isso se deve ao fato de que, durante a mudança de contexto pelo processador, é feita a escolha do próximo processo a ser executado a partir da prioridade deste. Quando o escalonamento não é feito adequadamente, pode haver inanição."
Resumo se é um algoritmo não-preemprivo o rpocesso poderá ficar executando indefinidamente causando a inanição(starvation) de outros processos que nunca serão escalonados para usa a CPU.
-
Lembrando que o FIFO também é não preemptivo.
-
Não consegui entender essa pois para mim tanto FIFO quanto Não preemptivo seriam possíveis respostas. Tanto que FIFO está inserido em Não preemptivo
-
Questão um pouco confusa.
-
Acho que FIFO é mais especifico que não-preenptivo, visto que qualquer algoritmo de execução, se for não-preenptivo, poderá gerar inanição. É importante saber que FIFO especifica a ordem de escolha de processos. Execução não-preenptiva faz com que processos que aguardam outro evento permaneçam em "RUM". É a não-preenpção que gera starvation (e não a execuçaõ FIFO)
-
Com a definição de Starvation na mente (Starvation (inanição) - processo nunca consegue executar sua região crítica, ou seja, acessar o recurso compartilhado. Processo com o arquivo extenso nunca consegue alocar o arquivo) temos que procurar qual política de escalonamento é não preemptiva, ou seja, processo que entra no processador e roda até terminar sem jamais ser interrompido. Ex: FIFO e SJF. A, B e C são preemptivas, o que elimina a D também. Resposta E!
-
Alternativa correta: E.
Tinha marcado A, mas agora entendo que a E é a correta mesmo.
a) ERRADA: Round Robin é um FIFO com controle de tempo de execução (cada processo executa por X tempo, depois sai da CPU e vai pro fim da fila). Não ocorre preempção desta forma;
b) ERRADA: não encontrei nenhum algoritmo com esse nome. O Round Robin usa um método que pode ter um nome parecido, mas só isso mesmo;
c) ERRADA: FIFO é uma fila simples, cada processo ocupa a CPU na ordem em que chega e só sai quando terminar a execução. Não ocorre starvation porque todos vão executar cedo ou tarde;
d) ERRADA: em um algoritmo preemptivo, um processo com menos prioridade pode ganhar mais prioridade com o tempo e eventualmente passar na frente de outro;
e) GABARITO: já aqui ocorre o oposto da explicação da letra D, por isso é que pode ocorrer starvation.
Dúvidas/sugestões: mandem mensagem.
-
No meu ponto de vista, o algoritmo First-in-First-Out (que inclusive está escrito errado na questão) e os algoritmos Não-preemptivos tem a mesma probabilidade de ocasionar um starvation, visto que o FIFO é baseado em não-preempção, a diferença é que ele especifica a ordem de escalonamento dos processos.
-
Renato Ribeiro, seu ponto de vista é interessante, porém creio estar errado.
Sendo o FIFO, uma hora a execução vai ser finalizada, independente do tempo que levar na fila, não gerando inanição.