1 / 34

Sistemas Operacionais

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;

lexi
Download Presentation

Sistemas Operacionais

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sistemas Operacionais Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari

  2. Gerência de recursosProcessador 25/09/2013

  3. 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

  4. 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

  5. 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

  6. 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

  7. Funções básicas Execução Escalonamento Espera Pronto Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. Escalonamento circular virtual Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. Fazer atividades 1 até 11 Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

More Related