Em sistemas operacionais, encontramos uma série de algorit...

Próximas questões
Com base no mesmo assunto
Q234299 Sistemas Operacionais
Em sistemas operacionais, encontramos uma série de algoritmos de escalonamento para facilitar o gerenciamento de processador. Analise as assertivas e assinale a alternativa que aponta a(s) correta(s) sobre o escalonamento Shortest-Job- First e o escalonamento Preemptivo.

I. O escalonamento Shortest-Job-First associa cada processo (ou job) ao seu tempo de execução. Dessa forma, quando o processador está livre, o processo em estado de pronto que precisar de menos tempo de UCP para terminar seu processamento é selecionado para execução.

II. O escalonamento Shortest-Job-First favorece os processos que executam programas menores, além de reduzir o tempo médio de espera em relação ao FIFO.

III. O escalonamento preemptivo permite que o sistema dê atenção imediata a processos mais prioritários, como no caso de sistemas de tempo real, além de proporcionar melhores tempos de respostas em sistemas de tempo compartilhado.

IV. Um algoritmo de escalonamento é dito preemptivo quando o sistema pode interromper um processo em execução para que outro processo utilize o processador.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: E

Vamos analisar o motivo pelo qual a alternativa E está correta, abordando cada assertiva e como ela se relaciona com os conceitos de escalonamento de processos em sistemas operacionais.

I. O escalonamento Shortest-Job-First (SJF) associa cada processo ao seu tempo de execução. Isso significa que, sempre que o processador estiver disponível, o processo que requer o menor tempo de CPU é selecionado para execução. Esse algoritmo busca minimizar o tempo médio de espera dos processos. Portanto, a assertiva está correta.

II. O escalonamento SJF favorece processos menores e reduz o tempo médio de espera em comparação ao FIFO. FIFO (First-In-First-Out) é um algoritmo simples, mas que pode causar alta latência se processos longos chegarem primeiro. SJF, ao priorizar processos menores, geralmente resulta em um menor tempo médio de espera. Portanto, essa assertiva também está correta.

III. O escalonamento preemptivo permite atenção imediata a processos mais prioritários e melhores tempos de resposta em sistemas de tempo compartilhado. Processos críticos ou de tempo real requerem respostas rápidas, e o escalonamento preemptivo pode interromper processos em execução para atender a esses processos prioritários, oferecendo assim melhor desempenho em sistemas que exigem alta interatividade. Está correta.

IV. Um algoritmo de escalonamento é dito preemptivo quando pode interromper um processo em execução. Isso é uma característica fundamental do escalonamento preemptivo. Diferente do escalonamento não-preemptivo, onde um processo continua executando até terminar ou bloquear, no preemptivo, o sistema pode interromper um processo em execução para que outro, mais urgente ou prioritário, utilize o processador. Portanto, essa assertiva está correta.

Conclusão: Todas as assertivas estão corretas, justificando porque a alternativa E (I, II, III e IV) é a correta. Este entendimento é crucial para a gerência do processador em sistemas operacionais, pois diferentes contextos e necessidades de sistemas exigem diferentes estratégias de escalonamento.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Todas certas.

Existem os algoritmos preemptivos e os não preemptivos. Os preemptivos são algoritmos que permitem que um processo seja interrompido durante sua execução, quer seja por força de uma interrupção de entrada/saída, quer seja em decorrência da politica de escalonamento adotada e aplicada por parte do escalonador de processos ou simplesmente por força do término da execução do processo. Após a interrupção deste processo, ocorre o que se chama de troca de contexto, que consiste em salvar o conteúdo dos registradores e a memoria utilizada pelo processo e conceder à outro processo o privilégio de executar na CPU, restaurando assim o contexto deste ultimo processo. Cabe ressaltar que nos algoritmos não preemptivos, por serem utilizados exclusivamente em sistemas monoprocessados, esse fato não ocorre, sendo cada programa executado até o fim.

Exemplos de Algoritmos:

  • FIFO (First in, first out) ou FCFS (First come, first served): Onde como seu próprio nome já diz, o primeiro que chega será o primeiro a ser executado;
  • SJF (Shortest Job First): Onde o menor processo ganhará a CPU e atrás do mesmo formar uma fila de processos por ordem crescente de tempo de execução;
  • SRT (Shortest Remaining Time): Neste algoritmo é escolhido o processo que possua o menor tempo restante, mesmo que esse processo chegue à metade de uma operação, se o processo novo for menor ele será executado primeiro;
  • Algoritmo Loteria: O Sistema Operacional distribui tokens (fichas), numerados entre os processos, para o escalonamento é sorteado um numero aleatório para que o processo ganhe a vez na CPU, processos com mais tokens têm mais chance de receber antes a CPU.
  • RR (Round-Robin): Nesse escalonamento o sistema operacional possui um timer, chamado de quantum, onde todos os processos ganham o mesmo valor de quantum para rodarem na CPU. Com exceção do algoritmo RR e escalonamento garantido, todos os outros sofrem do problema de Inanição (starvation).
  • Múltiplas Filas: São usadas várias filas de processos prontos para executar, cada processo e colocado em uma fila, e cada fila tem uma política de escalonamento própria e outra entre filas.

Todos os algoritmos classificam os processos em estados: Iniciando, Pronto, Executando, Entrada/ Saída e Terminado.

I. O escalonamento Shortest-Job-First associa cada processo (ou job) ao seu tempo de  execução. Dessa forma, quando o processador está livre, o processo em estado de pronto que precisar de menos tempo de UCP para terminar seu processamento é selecionado para execução. 
Correto. O escalonamento Job Mais Curto Primeiro(SJF), leva o tempo de execucao de cada processo como parametro prioritario. Assim, processos de tempo mais curto tempre sao executados primeiro.

II. O escalonamento Shortest-Job-First favorece os processos que executam programas  menores, além de reduzir o tempo médio de espera em relação ao FIFO.
Correto. Isso evita, por exemplo, q um processo menor demore muito a executar e diminui o tempo medio de espera. Eh uma conta logica. Se vc tem 2 processos, um q demore 1segundo e outro 1hora, se o processo mais curte iniciar primeiro(SJF), o tempo medio de espera sera de 1segundo. Ja o contrario, o tempo medio de espera seria de 1hora.

III. O escalonamento preemptivo permite que o sistema dê atenção imediata a processos  mais prioritários, como no caso de sistemas de tempo real, além de proporcionar melhores tempos de respostas em sistemas de tempo compartilhado. 
Correto. Essas sao as caracteristicas dos sistemas preemptivos(isso resolve tambem a  alternativa IV).
 - O Sistema pode interromper um processo em execução para que outro processo utilize o  processador.
 - Permite que o sistema dê atenção imediata a processos mais prioritários, como no caso  de sistemas em tempo real.

 - Proporciona melhores tempos de resposta em sistemas de tempo compartilhado.

- Compartilhamento do processador de uma maneira mais uniforme entre os processos.

- A troca de um processo pelo outro na CPU (mudança de contexto), causado pela preempção, gera um overhead no sistema.

IV. Um algoritmo de escalonamento é dito preemptivo quando o sistema pode interromper um
processo em execução para que outro processo utilize o processador.

Vide alternativa III.




A afirmação III é capivel de recurso, pois o Round Robin é uma política de escalonamento preemptivo e não necessariamente permite a mudança imediata do estado de pronto para o de execução. Nesse caso, a um quantum que deve ser respeitado.

Se o tempo médio de espera fosse reduzido com o SJF, não teríamos a possibilidade de starvation. Discordo do gabarito

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo