SóProvas


ID
702904
Banca
AOCP
Órgão
BRDE
Ano
2012
Provas
Disciplina
Sistemas Operacionais
Assuntos

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
Comentários
  • 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