350 likes | 571 Views
Sistemas Operacionais. Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari. Gerência de recursos Processador. 25/09/2013. Introdução. Muitos processos concorrentes demandam gerenciamento do uso do processador;
E N D
Sistemas Operacionais Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari
Gerência de recursosProcessador 25/09/2013
Introdução • Muitos processos concorrentes demandam gerenciamento do uso do processador; • Quando muitos processos estão em estado de pronto, deve existir critérios para escalona-los; • Esses critérios compreendem a política de escalonamento. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Funções básicas • As principais funções da política de escalonamento são: • Manter o processador ocupado a maior parte do tempo; • Balancear o uso da CPU entre os processos; • Privilegiar a execução de aplicações críticas; • Maximizar o throughput do sistema; • Oferecer tempo de resposta aceitável para os usuários. • Cada SO tem suas políticas próprias de escalonamento, de acordo com suas características. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Funções básicas • A rotina que implementa as políticas de escalonamento é o Scheduler; • Em SO multiprogramável, o escalonador é fundamental, pois o compartilhamento da CPU depende dessa rotina; • Outra rotina importante é o dispatcher, responsável pela troca de contexto; • O período de tempo gasto para substituir os processos chama-se latência do dispatcher. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Funções básicas • Para processos monothreads, o processo em estado de pronto é uma unidade de escalonamento; • Para processos multithreads, as threads em estado de pronto são unidades de escalonamento; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Funções básicas Execução Escalonamento Espera Pronto Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Critérios de escalonamento • Os critérios de escalonamento são determinados de acordo com as características de cada SO; • Os principais critérios são: • Utilização da CPU; • Thoughput; • Tempo de CPU; • Tempo de espera; • Tempo de turnarond; • Tempo de resposta; • De maneira geral, a política de escalonamento visa aumentar a utilização da CPU e o Thoughput, e diminuir o tempo de espera, turnarond e resposta. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Critérios de escalonamento • Utilização do processador: • CPU deve ser mantida mais ocupada possível; • Utilização na faixa de 30% é considerada baixa; • Utilização na faixa de 90% é considerada alta; • Thoughput: • Número de processos executados em um intervalo de tempo; • Quanto maior o Thoughput, maior o número de tarefas executadas em função do tempo; • Maximizar o Thoughput é desejado por todos os SOs. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Critérios de escalonamento • Tempo de CPU: • Tempo de execução de um processo; • O escalonamento não interfere nesse tempo; • Depende da quantidade de código e de dados de I/O. • Tempo de espera: • Tempo total do processo na fila de escalonamento com estado de pronto; • A redução deste tempo é desejada por todos os SOs. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Critérios de escalonamento • Tempo de turnarond: • Tempo gasto entre a criação do processo e seu fim, considerando: • Tempo de criação, de alocação de recursos, de espera na fila de escalonamento como pronto e em estado de espera por I/O. • Busca-se minimizar este tempo; • Tempo de resposta: • Tempo decorrido entre uma requisição e sua resposta; • Exemplo: Uma tecla apertada e sua resposta no monitor; • Geralmente limitada pela capacidade de I/O; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Escalonamento preemptivo e não preemptivo • A política de escalonamento depende da possibilidade de interrupção de processos; • Interromper um processo e trocar a execução por outro processo é conhecido como preempção; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Escalonamento preemptivo e não preemptivo • Escalonamento não preemptivo: • Foram os primeiros a serem criados em sistemas multiprogramáveis: • Processamento batch; • O processo não deixa de executar, a menos que termine ou o próprio processo mude seu estado; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Escalonamento preemptivo e não preemptivo • Escalonamento preemptivo: • O SO pode interrompe-lo, mudando seu estado de execução para pronto; • O SO pode priorizar a execução de processos; • Políticas de escalonamento podem melhorar o uso da CPU, balanceando a carga de processamento. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Escalonamento preemptivo e não preemptivo • Atualmente a maioria dos SO possuem políticas de escalonamento preemptivos: • SO mais complexos; • Possibilita a implantação dos critérios de escalonamento. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Escalonamento FIFO • No escalonamento first-in-first-out (FIFOScheduling) o primeiro processo a ficar em estado de pronto é escalonado; • Constitui em uma fila muito simples de ser implementada; • Quando o processo sai da execução vai para o final da fila. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Escalonamento FIFO • Apresenta duas deficiências: • Não tem previsão de inicio de processamento do processo, pois depende dos tempos de execução dos outros processo na fila; • O algoritmo não se preocupa em melhorar o tempo médio de espera na fila; • Isso é perceptível no tempo de turnaround de processos que demandam menor tempo de execução; • Processos CPU-bound levam vantagem sobre processos I/O-bound. • Se existirem processos I/O-bound mais importantes que processos CPU-bound, estes não podem ser priorizados. • Pouco utilizado atualmente Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Escalonamento SJF • No escalonamento shortes-job-first os processos com menor uso de CPU são escalonados primeiro; • Implementado nos primeiros sistemas batch; • Um tempo estimado de CPU era associado ao seu contexto de software através de analises passadas; • Se o tempo estimado fosse muito inferior ao tempo de real processamento, o processo era interrompido; • Difícil de implementar em sistemas interativos devido ao uso intensivo de I/O: • Uma alternativa para implementar esse algoritmo é com base no uso fragmentado da CPU, e não no tempo total de uso da CPU; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Escalonamento SJF • Na sua concepção inicial era um escalonamento não preemptivo; • Sua vantagem em relação ao FIFO é a redução do tempo de turnaround; • Pode ocorrer starvation em processos com tempo de processador muito alto ou CPU-bound. • Uma implementação com preempção é conhecida como shortestremaining time: • Quando um processo estimado menor que o processo em execução está em estado de pronto, ocorre uma preempção e o SO substitui em execução. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Escalonamento cooperativo • O escalonamento cooperativo busca implementar preempção em processos que não a possuem; • FIFO e SJF não preemptivo; • Processos em execução podem voluntariamente liberar a CPU para outros na fila de escalonamento; • O processo em execução verifica a fila de escalonamento e decide se deve deixar a CPU ou não. • A interrupção do processo em execução deixa de ser responsabilidade do SO; • Problemas podem ocorrer se um processo não verificar a fila, podendo nunca deixar a CPU. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Escalonamento circular • O escalonamento circular, ou round robin, foi projetado para sistemas de tempo compartilhado; • É preemptivoe muito semelhante ao FIFO; • Quando um processo passa para o estado e execução, existe uma fatia de tempo para sua utilização da CPU – quantum; • Quando expira o tempo de uso de CPU, o processo vai para a fila de escalonamento; • Mecanismo conhecido como preempção por tempo. • O processo pode deixar a CPU quando terminar a execução, quando ocorrer uma preempção, ou quando expirar o seu tempo de CPU. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Escalonamento circular • A principal vantagem é impedir que um processo monopolize a CPU; • Um problema é a desigualdade no processamento entre processos CPU-bound e I/O-bound; • Processos CPU-bound tendem a utilizar toda a fatia de tempo; • Processos I/O-boundpodem não utilizar toda a fatia de tempo devido ao I/O; • Isso ocasiona balanceamento desigual do uso do processador. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Escalonamento circular • Buscando reduzir esse problema, desenvolveu-se o escalonamento circular virtual; • Introduz-se uma fila circular auxiliar, onde os processos em estado de espera, ao voltarem para prontos, têm preferencia aos demais; • O escalonamento somente volta a selecionar processos da fila de pronto, quando a fila auxiliar estiver vazia; • Quando um processo da fila auxiliar for executar, a fatia de tempo dada para ele é: • O tempo gasto antes de ir para espera; • O tempo restante para processamento. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Escalonamento circular virtual Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Escalonamento por prioridades • Escalonamento por preempção baseada na prioridade de execução; • Processos com maior prioridade em estado de prontos são colocados na frente da fila de escalonamento; • Processos com prioridades iguais recebem escalonamento FIFO; • Não existe fatia de tempo e a preempção por tempo não pode ocorrer; • Processos somente deixam o processador voluntariamente ou quando outro processo com prioridade maior entra na fila de prontos; • Processo chamado de preempção por prioridade; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Escalonamento por prioridades • A preempção por prioridade é implementada por uma interrupção de clock, gerada em determinados intervalos de tempo; • Caso haja processos a serem escalonados, o SO realiza a preempção; • Pode ser implementado sem preempção, e caso um processo de maior prioridade entre em estado de pronto, ficará aguardando o término da execução corrente na frente da fila; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Escalonamento por prioridades • A prioridade faz parte do contexto de software do processo e pode ser estática ou dinâmica; • Estática: não pode ser alterada durante a execução do processo; • Dinâmica: ajustada de acordo com critérios do SO. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Escalonamento por prioridades • O grande problema é o stavation, onde processos com prioridades muito baixas podem nunca ser escalonados; • Uma solução para isso é a técnica de aging: • A prioridade de processos muito tempo em espera na fila de pronto é incrementado de tempo em tempo; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Escalonamento circular com prioridades • Implementa o conceito de fatia de tempo e prioridades no escalonamento; • Nesse algoritmo um processo deixa a CPU quando: • Termine o processamento; • Voluntariamente; • Ocorra preempção: • Por tempo; • Por prioridade. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Escalonamento circular com prioridades • Permite maior balanceamento no uso da CPU, diferenciando o grau de importância dos processos; • Utilizado em sistemas de tempo compartilhado. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Escalonamento por múltiplas filas • Existem várias filas com prioridades diferentes; • Processos são associados às filas de acordo com: • Importância para aplicação; • Tipo de processamento; • Área de memória. • Possibilita a implementação de vários mecanismos de escalonamento em um único SO. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Escalonamento por múltiplas filas • O conceito de prioridade é atribuído à fila, e não ao processo diretamente; • Processos sofrem preempção caso outro processo entre em uma fila com maior prioridade. • Associação de processos em cada fila é feita na criação do processo; • O processo não pode mudar de fila em sua vida; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Escalonamento por múltiplas filas com realimentação • Semelhante ao anterior, porém os processos pode mudar de fila durante o processamento; • Permite ao SO identificar o comportamento do processo e direcioná-lo para a fila adequada ao longo do seu processamento; • É mais complexo para implementar; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Fazer atividades 1 até 11 Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013