RE: Atividade 1 - Fórum Avaliativo
Trabalho Universitário: RE: Atividade 1 - Fórum Avaliativo. Pesquise 862.000+ trabalhos acadêmicosPor: danadodan • 17/11/2014 • 1.883 Palavras (8 Páginas) • 508 Visualizações
Gerência do Processador
Com o surgimento dos sistemas multiprogramáveis a gerência do processador tornou-se uma das atividades mais importantes em um sistema operacional. Com muitos processos no estado de pronto, devem ser estabelecidos critérios para determinar qual deles será escolhido para fazer uso da UCP. Os critérios utilizados para esta escolha compõem a chamada política de escalonamento, que é a base da gerência da UCP e da multiprogramação em um sistema operacional.
Funções Básicas
Dentre as funções básicas da política de escalonamento estão manter a UCP ocupada a maior parte do tempo, balancear o uso da UCP entre processos, privilegiar a execução de aplicações críticas, maximizar o throughput do sistema e oferecer tempos de resposta razoáveis para usuário interativos.
O escalonador (scheduler) é a rotina do sistema operacional que tem como principal função implementar os critérios da política de escalonamento. Todo o compartilhamento da UCP depende dessa rotina.
O dispatcher é a outra importante rotina na gerência da UCP. Ela é responsável pela troca de contexto dos processos após o escalonador determinar qual processo deve fazer uso da UCP. O período de tempo para substituição de um processo por outro é denominado latência do dispatcher.
Em ambientes que implementam apenas processos, o escalonamento é realizado com base nos processos prontos para execução. Em sistemas que implementam threads, o escalonamento é realizado considerando os threads no estado de pronto. Neste caso, podemos considerar o processo como sendo a unidade de alocação de recursos, enquanto o thread é a unidade de escalonamento.
Critérios de Escalonamento
A seguir são apresentados os principais critérios que devem ser considerados em uma política de escalonamento.
Utilização da UCP: na maioria dos sistemas é desejável que a UCP permaneça ocupada a maior parte do seu tempo.
Throughput: representa o número de processos executados em um determinado intervalo de tempo. Quanto maior o throughput, maior o número de tarefas executadas em função do tempo. A maximização do throughput é desejada na maioria dos sistemas.
Tempo de UCP: é o tempo que um processo leva no estado de execução durante seu processamento. As políticas de escalonamento não influenciam o tempo de UCP de um processo, sendo esse tempo função apenas do código do programa e da entrada de dados.
Tempo de espera: é o tempo total que um processo permanece na fila de pronto durante seu processamento, aguardando para ser executado. A redução do tempo de espera dos processos é desejada pela maioria das políticas de escalonamento.
Tempo de turnaround: é o tempo que um processo leva desde a sua criação até ao seu término, levando em consideração todo o tempo gasto na espera para alocação de memória, espera na fila de pronto, processamento na UCP e na fila de espera, como nas operações de E/S. As políticas de escalonamento buscam minimizar o tempo de turnaround.
Tempo de resposta: é o tempo decorrido entre uma requisição ao sistema ou à aplicação e o instante em que a resposta é exibida. Em sistemas interativos, podemos entender o tempo de resposta como o tempo decorrido entre a última tecla digitada pelo usuário e o início da exibição do resultado no monitor. Em geral, o tempo de resposta não é limitado pela capacidade de processamento do sistema computacional, mas pela velocidade dos dispositivos de E/S. Em sistemas interativos, como aplicações on-line ou acesso à Web, os tempos de resposta devem ser da ordem de poucos segundos.
De uma maneira geral, qualquer política de escalonamento busca otimizar a utilização da UCP e o throughput, enquanto tenta diminuir os tempos de turnaround, espera e resposta. Apesar disso, as funções que uma política de escalonamento deve possuir são muitas vezes conflitantes.
Escalonamentos Não-Preemptivos e Preemptivos
As políticas de escalonamento podem ser classificadas segundo a possibilidade de o sistema operacional interromper um processo em execução e substituí-lo por um outro, atividade conhecida como preempção.
Nas políticas de escalonamento não-preemptivo, quando um processo está em execução nenhum evento externo pode ocasionar a perda do uso da UCP. O processo somente sai do estado de execução caso termine seu processamento ou execute instruções do próprio código que ocasionem uma mudança para o estado de espera.
O escalonamento preemptivo é caracterizado pela possibilidade do sistema operacional interromper um processo em execução e passá-lo para o estado de pronto, com o objetivo de alocar outro processo na UCP. Com o uso da preempção é possível ao sistema priorizar a execução de processos e balancear melhor o uso da UCP entre processos. A maioria dos sistemas operacionais modernos utiliza políticas de escalonamento preemptivas.
Escalonamento First-In-First-Out (FIFO)
No escalonamento FIFO, também conhecido como first-come-first-serve (FCFS), o processo que chegar primeiro ao estado de pronto é o selecionado para execução. Este algoritmo é do tipo não-preemptivo e necessita apenas uma fila, onde os processos que passam para o estado de pronto entram no seu final e são escalonados quando chegam ao seu início. Quando um processo em execução termina seu processamento ou vai para o estado de espera, o primeiro processo da fila de pronto é escalonado. Quando saem do estado de espera, todos os processos entram no final da fila de pronto.
O principal problema desse escalonamento é a impossibilidade de se prever quando um processo terá sua execução iniciada. Outro problema nesse tipo de escalonamento é que processos CPU-bound são privilegiados no uso da UCP sobre os processos I/O-bound.
Escalonamento Shortest-Job-First (SJF)
No escalonamento SJF, também conhecido como shortest-process-next (SPN), o algoritmo de escalonamento seleciona o processo que tiver o menor tempo de UCP ainda por executar. Dessa forma, o processo em estado de pronto que necessitar de menos tmepo de UCP para terminar seu processamento é selecionado para execução.
Um problema existente nesta implementação é não ser possível ao sistema operacional saber quanto tempo um processo permanecerá utilizando a UCP na próxima vez em que for selecionado, contudo é possível prever o tempo com base no seu comportamento passado.
O escalonamento SJF é do tipo não-preemptivo. Sua vantagem sobre o FIFO está na redução
...