Documente Academic
Documente Profesional
Documente Cultură
Escalonamento de Processos
Quando um computador multiprogramado, ele muitas vezes tem variados processos que competem pela CPU ao mesmo tempo; Essa situao ocorre sempre que simultaneamente no estado de pronto; dois ou mais processos esto
A parte do SO que faz a escolha de qual processo deve ser executado chamado de escalonador, e o algoritmo que usado chamado de algoritmo de escalonamento; Comportamento do processo A figura abaixo mostra como os programas se comportam em relao a utilizao da CPU
a)
Espera pela E/S
b)
Prof. Ms. Mrcio Andrey Teixeira Sistemas Operacionais
Escalonamento de Processos
Quando escalonar
Quando se deve escalonar ??? 1 Quando se cria um novo processo !!! 2 No trmino de um processo !!! 3 Quando um processo bloqueado !!!! 4 Quando um processo executa o evento de E/S !!!
O algoritmo de escalonamento pode ser: No preemptivo: O processo executa at o fim, sem ser interrompido; Preemptivo: O processo executa em fatias de tempo (quantum) determinado pelo sistema operacional.
Escalonamento de Processos
Em sistemas multiprogramados, mltiplos processos so mantidos na memria principal, cada qual alternando o uso do processados. Como fator principal da multiprogramao, quatro tipo de escalonamento so possveis: Longterm Scheduling: Determina os processos que sero admitidos no sistema. Mediumterm Scheduling: Determina a adio de um nmero de processos que esto parcialmente ou completamente na memria Shortterm Scheduling: Determina quais processos sero executados pelo processador
Longterm Scheduling e Mediumterm Scheduling esto diretamente relacionados com aspectos de performance, ou seja grau de multiprogramao. utilizado quando o processo dever ser admitido no sistema e quando tomar deciso de trocar parte do processo da memria primria para a memria secundria. Shortterm Scheduling aborda com alto grau de performance o escalonamento de processos que esto pronto para executar na memria principal.
Escalonamento de Processos
O objetivo do escalonador atribuir processos para serem executados pelos processadores de modo a atingir parmetros de performance, tais como tempo de resposta, vazo e eficincia do processos.
Escalonamento de Processos
Escalonamento de Processos
O escalonamento afeta a performance do sistema, pois determina quais processos devero esperar e quais devero progredir. Isso envolve o gerenciamento de filas, exemplo:
Escalonamento de Processos
Longterm Scheduling: Determina quais programas sero admitidos pelo sistema para o processamento, ou seja, controla o grau da multiprogramao. - Em alguns sistemas, um processo que acabou de ser criado inicia-se na memria secundria e, neste caso, ser adicionado a fila do escalonador intermedirio. - Em sistemas operacionais de processamento em lote, processos recm criados so direcionados para o disco e mantidos numa fila de lote. - A deciso de quando criar um novo processo geralmente tomada como resultado do grau de multiprogramao. Quanto mais processos existirem menor o tempo da tomada para cada um ser executado, pois mais processos competem pelos recursos .
- Em termos de frequncia de execuo, Long term Scheduler desempenha o gerenciamento grosseiro, e portanto, executado com baixa frequncia.
Escalonamento de Processos
Medium-term Scheduling: Responsvel pela troca (swapping) entre memria secundria e memria principal. - Executa com mais freqncia que o anterior para o gerenciamento de swapping. Short term Scheduling: Tambm conhecido como dispatcher, executado muito frequntemente sendo responsvel pela tomada de deciso de qual processo ser executado (prximo processo). - Este escalonamento executado quando da ocorrncia de um evento que conduza o bloqueio do processo corrente, cria-se uma oportunidade de preenpo em favor de outro processo. Exemplos desses eventos so: - Clock da CPU; - Interrupes de I/O; - Chamadas do sistema operacional; - O Short term Scheduling procura alocar o tempo do processador de tal maneira a otmizar um ou mais aspectos do comportamento do sistema.
Escalonamento de Processos
Os critrios utilizados para isso so distinguidos em: critrios orientados ao sistema e critrios orientados aos usurios. Critrios orientados aos usurios: Esto relacionados como os usurios ou os processos quantificam o comportamento do sistema: - Response Time: Para um processo interativo, este o tempo desde a submisso de uma requisio at a sua resposta. A disciplina de escalonamento dever maximizar o nmero de usurios interativos em um tempo de resposta aceitvel; - Turnaround time: Este o intervalo de tempo entre a submisso de um processo e o seu trmino de execuo. Este tempo inclui o tempo atual de execuo mais o tempo de espera pelo recurso, incluindo a CPU. Est a mdia apropriada de um Job em Lote; - Deadlines: Quando um deadline de um processo pode ser especificado, a disciplina do algoritmo de escalonamento deve maximizar a porcentagem da execuo dos deadlines existentes;
Escalonamento de Processos
- Throughput: A poltica de escalonamento deve tentar maximizar o nmero de processos completados por unidade de tempo. Esta a mdia de quanto trabalho iniciado executado; - Processor utilization: Porcentagem de tempo em que o processador est ocupado. Em um sistema compartilhado, este um critrio significante; - Balanceamento de recursos: A poltica de escalonamento deve manter os recursos do sistema ocupado; - Priority: A poltica de escalonamento deve favorecer os processos com maiores prioridades;
Escalonamento de Processos
Os critrios citados so independente, sendo complicado otimiz-los em conjunto e simultaneamente. Ex:. Para prover um bom tempo de resposta, pode exigir do algoritmo de escalonamento que freqentemente troque o contexto entre processos, o que aumenta o overhead do sistema, ou seja, contribui para reduzir a vazo dos processos.
Na maioria dos sistemas operacionais interativos, o tempo de resposta o critrio principal; Em muitos sistemas, cada processo atribudo uma prioridade e o escalonador ir sempre escolher com mais alta prioridade sobre o de menor prioridade; A figura a seguir ilustra um exemplo de escalonamento com filas de prioridade
Escalonamento de Processos
Um dos problemas deste algoritmo que processos com baixa prioridade podem chegar a no serem executados; Soluo: alterar a prioridade do processo de acordo com seu histrico de execuo e em funo do tempo;
Escalonamento de Processos
Escalonamento de Processos
Escalonamento de Processos
Escalonamento de Processos
Sistemas interativos: - Tempo de resposta: responder rapidamente s requisies; - Proporcionalidade: Satisfazer as perspectivas dos usurios;
Sistemas de tempo real: - Cumprimento dos prazos: evitar a perda de dados; - Previsibilidade: evitar a degradao da qualidade em sistemas multimdias
Escalonamento de Processos
Escalonamento de Processos
Escalonamento de Processos
Primeiro a chegar, primeiro a ser servido Grande vantagem desse algoritmo que: de fcil entendimento e de fcil implementao. Maior desvantagem desse algoritmo: quando tem-se programas orientados a CPU e programas orientados a E/S. Por exemplo, um programa orientado a CPU executa 1 segundo, e um programa orientado a E/S que executa pouco tempo de CPU, mas necessita de executar mil leituras no disco antes de terminar; Em um algoritmo com preempo a cada 10 milessegundos (em vez de cada um segundo), o processo terminaria em 10 segundos; Job mais curto primeiro Vejamos um outro algoritmo em lote no preemptivo que supe como previamente conhecido todos os tempos de execuo.
Escalonamento de Processos
8 A
4 B
4 C
4 D
4 B
4 C
4 D
8 A
Escalonamento de Processos
Escalonamento de Processos
Prximo de menor tempo restante Uma verso preemptiva do FCFS o prximo menor tempo restante. Com este algoritmo, o escalonador sempre escolhe o processo cujo o tempo de execuo restante seja o menor. Novamente, o tempo de execuo dever ser previamente conhecido. Quando chega um novo job, seu tempo total comparado ao tempo restante do processo em curso. Se para terminar, o novo job precisar de menos tempo que o processo atual, ento esse ser suspenso e o novo job ser iniciado.
Escalonamento de Processos
Prximo de menor tempo restante (Exemplo) Processo P1 P2 P3 P4 P5 Tempo de chegada 0 2 4 6 8 Tempo de servio 3 6 4 5 2
Escalonamento de Processos
Escalonamento de Processos
- O que interessa em um escalonador circular o tamanho do quantum. A alternncia de um processo para outro requer uma certa quantidade de tempo (Troca de contexto). Vamos supor que para cada processo, a troca de contexto dure 1ms. Suponha tambm que o quantum de 4 ms. Com este exemplo, aps 4 ms de trabalho, a CPU gastar 1 ms para alternar o processo; Nesse exemplo, 20% da CPU ser gasta com a troca de contexto dos processos gerando um overhead muito alto. Para melhorar a eficincia, vamos supor um quantum de 100 ms, agora o tempo gasto com o overhead de 1% do tempo da CPU; Considere o que pode acontecer quando 10 usurios de um sistema interativo apertem a tecla <ENTER> quase ao mesmo tempo. Dez processos sero alocados na lista de pronto para executar. O que acontecer ????????? Um quantum entre 25 a 50 ms bastante razovel
Escalonamento de Processos
Escalonamento de Processos
Escalonamento por prioridades O escalonamento circular pressupe que todos os processos so igualmente importantes. Para que haja diferenas externas de execuo, foi criado o escalonamento por prioridade. A idia bsica simples: - A cada processo atribudo uma prioridade, e o processo com maior prioridade executado primeiro; Mesmo em um PC comum com um nico proprietrio, pode haver mltiplos processos com prioridades diferentes. - Exemplo, um processo como um deamon de correio eletrnico deve ter menor prioridade que um processo que atualiza um vdeo na tela; Para evitar que processos de alta prioridade executem infinitamente, o escalonador pode reduzir a prioridade do processo a cada execuo do mesmo. As prioridades so atribudas pelo S.O. No Linux, o comando nice altera a prioridade de um processo de acordo com que o usurio desejar.
Escalonamento de Processos
Muitas vezes conveniente agrupar processos em classes de prioridade e usar o escalonamento de prioridade entre as classes, contudo em cada classe usar o escalonamento circular. A figura a seguir mostra um exemplo com quatro classes de prioridades:
Escalonamento de Processos
Escalonamento de Processos
Medidas de Desempenho dos algoritmos de escalonamento Considere as seguintes itens: Tempo de chegada: Tempo em que o processo entra no sistema; Tempo de servio: Tempo total de processamento; Turneraund Time: Intervalo entre a entrada do processo no sistema e o seu trmino; Tt / Ts: Tempo de desempenho do processo; Calcular o desempenho dos algoritmos de escalonamento utilizando a tabela abaixo:
Processo P1 P2 P3 P4 P5 Tempo de chegada 0 2 4 6 8 Tempo de servio 3 6 4 5 2
Escalonamento de Processos
Escalonamento de Processos
Escalonamento de Processos
Determine as medidas de tempo para os algoritmos abaixo: Round Roubin: Q=1; Q=4