Sistemas Operacionais
Monografias: Sistemas Operacionais. Pesquise 862.000+ trabalhos acadêmicosPor: Murdock • 26/4/2013 • 1.028 Palavras (5 Páginas) • 579 Visualizações
8.1 – Introdução
• Compartilhamento da CPU em sistemas multiprogramáveis.
• Critérios de escolha da ordem dos processo a entrar em execução.
• Scheduler (escalonador):
o Uma das principais funções do Sistema Operacional
o Parte do código do Sistema Operacional responsável pelo scheduling (escalonamento).
• Funções do escalonamento:
o Manter a CPU ocupada a maior parte do tempo.
o Balancear a utilização do processador entre diversos processos.
o Maximizar o throughput do sistema
o Oferecer tempos de respostas razoáveis para os usuários interativos.
o Evitar starvation.
8.2 – Critérios de Escalonamento
• Utilização da CPU
o Em geral, é desejável que o processador permaneça a maior parte do tempo ocupado
• Throughput
o Número de processos executados em um determinado intervalo de tempo.
o Em geral, a maximização do throughput é desejada.
• Tempo de turnaroud
o Tempo que um processo leva desde sua admissão no sistema até seu término.
o Considera tempo de espera para alocação de memória, espera na fila de processos prontos, processamento e operações de entrada e saída.
o Em geral, a minimização do tempo de turnaround é desejada.
• Tempo de resposta
o Tempo decorrido do momento da submissão de um pedido ao sistema até a primeira resposta produzida.
o Em geral, a minimização do tempo de resposta é desejada.
8.3 – Escalonamento Não-preemptivo
• Existente nos primeiros sistemas multiprogramáveis, onde predominava o processamento batch.
• Quando um processo (JOB) ganha o direito de utilizar a CPU, nenhum outro processo pode lhe tirar esse recurso
8.3.1 – Escalonamento First-In-First-Out (FIFO)
• O processo que chegar primeiro, é o primeiro a ser selecionado para a execução.
• Necessário apenas uma fila de processos prontos, esperando pelo uso do processador.
• O processo utiliza a CPU sem ser interrompido.
• Problemas:
o Impossibilidade de prever quando um processo entrará em execução.
o Possibilidade de processos CPU-bound de menor importância prejudicarem processos de I/O-bound mais proprietários.
8.3.2 – Escalonamento Shortest-Job-First (SJF)
• Associa cada processo (JOB) ao seu tempo de execução.
• Quando o processador está livre, o processamento que ocupar menos tempo da CPU para terminar seu processamento é selecionado.
• Favorece os programas menores.
• Reduz o tempomédio de espera em relação ao FIFO.
• Problemas:
o Determinar, exatamente, quanto tempo de CPU o processo vai utilizar para terminar seu processamento.
8.3.3 – Escalonamento Cooperativo
• O processo está em execução libera voluntariamente o processador, retornando para a fila de pronto, cooperando com os outros processos.
• Permite uma melhor distribuição do processador entre os processos.
• Não existe intervenção do Sistema Operacional na execução do processo.
• Exemplos: Microsoft Windows 3.1 e 3.11
• Problemas:
o Um programa mal escrito pode entrar em looping, monopolizando a CPU.
8.4. Escalonamento Preemptivo
• 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.
• Critérios de preempção devem ser definidos para o overhead não se tornar crítico.
8.4.1 – Escalonamento Circular (round robin) ou preempção por tempo
• Implementado por um algoritmo semelhante ao FIFO, porém, quando um processo passa para o estado de execução, existe um tempo-limite (quantum ou time-slice) para sua utilização de forma contínua. Se o processo não terminou a execução, volta ao estado de pronto.
• Em geral, o valor do quantum de tempo está entre 100 e 300 ms.
• Nenhum processo poderá monopolizar a CPU.
• Algoritmo bastante adequado para sistemas multiusuários de tempo compartilhado.
• No caso, o processo CPU-bound tem mais chances de ser executado do que o processo IO-bound
8.4.2 – Escalonamento por Prioridades ou preempção por prioridade
• Processos possuem diferentes prioridades de execução.
• Processos de maior prioridade são escalonados preferencialmente.
• Algoritmo Implementado mediante um
...