Escalonamento de processos

download Escalonamento de processos

of 33

Transcript of Escalonamento de processos

Escalonamento de processosProf. Luiz Henrique Biazotto q FAJ

Escalonamento de processos O escalonamento de processos uma atividade organizacional feita pelo escalonador possibilitando executar os processos mais viveis e concorrentes, priorizando determinados tipos de processos, como os de processos I/O Bound e os computacionalmente intensivos. intensivos

Tipos Bsicos Escalonador de curto prazo Escalonador de mdio prazo Escalonador de longo prazo

Escalonador de curto prazo Seleciona entre os processos em estado de pronto que esto na memria, para serem executados pelo processador. O escalonador de processador curto prazo faz decises de escalonamento muito mais frequentemente que os de mdio e longo prazo

Escalonador de mdio prazo Seleciona entre os processos que esto na memria virtual, reduz o grau de multiprogramao. multiprogramao Ele temporariamente remove o processo da memria principal e o coloca na memria secundria (swap) fazendo as operaes de swapping in e swapping out.

Escalonador de longo prazoSeleciona entre os processos novos os que so novos, limitados por entrada/sada e os que so limitados por CPU dando prioridade aqueles CPU, limitados por I/O, j que utilizam menos tempo o processador. Este escalonador o responsvel processador pelo grau de multiprocessamento, ou seja a quantidade de processos que o sistema ir trabalhar.

Definio Para que a CPU no fique muito tempo sem executar q q p tarefa alguma, os sistemas operacionais utilizam tcnicas para escalonar os processos que esto em execuo ao mesmo tempo na maquina. p q O escalonamento de processos uma tarefa complicada, pois nenhum algoritmo totalmente eficiente e a prova de falhas, principalmente em se tratando de sistemas interativos, como o Windows, pois a interao com o usurio fundamental para este sistema onde quem o utiliza procura respostas rpidas e a todo o momento processos so interrompidos pelo usurio.

Algoritmos escalonadores Existem os algoritmos preemptivos e os no preemptivos. Os preemptivos so algoritmos que permitem que um processo seja interrompido durante sua execuo, quer seja por fora de uma interrupo de entrada/sada, quer seja em decorrncia da poltica de escalonamento adotada e aplicada por parte do escalonador de processos ou simplesmente por fora do trmino da execuo do processo.

Algoritmos escalonadores consiste em salvar o contedo dos registradores e a memoria utilizada pelo processo e conceder outro processo o privilgio de executar na CPU, restaurando assim o contexto deste ultimo processo. Cabe ressaltar que nos algoritmos no preemptivos, por serem utilizados exclusivamente em sistemas monoprocessados, esse fato no ocorre, sendo cada programa executado at o fim.

Exemplos de Algoritmos FIFO : SJF : SRT: Escalonamento garantido: RR : Mltiplas Filas:

FIFO Em engenharia da computao FIFO computao, (acrnimo para First In, First Out, que em portugus significa primeiro a entrar primeiro entrar, a sair) refere-se a estruturas de dados do tipo fila. fila Tem uma estrutura diferente da estrutura de uma LIFO (que significa Last In, First Out, as pilhas) pilhas).

FIFO As listas so amplamente utilizadas em programao para implementar filas de espera. Em uma fila de tipo FIFO os elementos p p vo sendo colocados na fila e retirados (ou processados) por ordem de chegada. A idia fundamental d fil que s podemos i f d l da fila d inserir um i novo elemento no final da fila e s podemos retirar o elemento do incio incio.

FIFO Como exemplo de aplicao p p p para filas, p , pode-se citar a fila de processos de um sistema operacional. Nela, estabelecido um tempo t a ser usado por cada um dos processos. Se durante a execuo de um processo o processos tempo passa de 0 a t, este posto na fila e o processo seguinte executado. Se o processo seguinte no terminar de ser executado no tempo t, ele posto na fila e o processo subsequente executado, e assim por diante at todos os processo serem executados executados.

SJF O SJF (Shortest Job First ou Processo mais curto ( primeiro) um algoritmo de escalonamento que executa, dentre processos igualmente importantes, o mais curto primeiro primeiro. O escalonador SJF funciona a partir de um conceito bem simples: os p p processos menores tero p prioridade, ou seja, , j , sero executados primeiro. Isso tem como resultado um tempo mdio mnimo de espera para cada conjunto de processos a serem executados executados.

SJF O clculo de cada tempo mdio feito a partir da prxima alocao de CPU, ou seja, o processo que utilizar a CPU por menos tempo ser executado primeiro. Existem dois esquemas j conhecidos desse tipo de escalonamento:

SJF No-Preemptivo No Preemptivo Uma vez a CPU atribuda a um processo, este no pode ser interrompido at completar a execuo do processo.

Preemptivo i Se um novo processo chega ao estado "pronto" com um tempo de alocao menor que o tempo restante do processo em execuo, ento h preempo (interrupo). Este esquema conhecido por Shortest-Remaining-Time-First (SRTF).

SRT SRT (sigla de Shortest Remaining Time ou Time, "tempo mais curto remanescente") um algoritmo de escalonamento de processos que tem a finalidade de escolher, dentre os processos que esto na fila de prontos, o processo que prontos tenha o menor tamanho para ser executado.

Vantagens A principal diferena p p p para o algoritmo SJF a g preempo, digamos que um processo X esteja em execuo na CPU e nesse meio tempo chegue um processo Y menor do que o restante do processo X nesse X, momento ocorrer uma preempo, ou seja, o processo X ir parar sua execuo e ceder lugar para o processo Y executar. Caso chegue um processo ainda menor que o restante do processo Y, esse processo ganhar a CPU e o processo Y retornar para a fila de prontos antes de terminar e ir aguardar um momento para ser executado.

Escalonamento garantido Escalonamento garantido um dos tipos de algoritmos escalonadores. Ele garante aos processos sua execuo dando a todos eles a execuo, mesma quantidade de tempo de execuo utilizando a CPU CPU.

Escalonamento garantido Se acontecer de um processo utilizar menos tempo de execuo do que poderia, sua prioridade de execuo aumentada. Se outro aumentada processo utilizou mais do que deveria, sua prioridade diminuida diminuida.

Round-robin algoritmo de escalonamento Round-Robin Round Robin um dos mais antigos e simples algoritmos, alm de ser totalmente imune a problemas de starvation. usado em projetos de sistemas operacionais multitarefa e foi projetado multitarefa, especialmente para sistemas time-sharing, pois este algoritmo depende de um temporizador (Timer).

Funcionamento O funcionamento deste algoritmo acontece da seguinte forma: uma unidade de tempo, denominada quantum, definida pelo sistema quantum operativo, onde determina o perodo de tempo entre cada sinal de interrupo Todos os interrupo. processos so armazenados em uma fila circular. Como no exemplo abaixo abaixo.

Mltiplas Filas Mltiplas Filas um tipo de algoritmo de p p g escalonamento, no qual so usadas filas de processos. Cada fila tem um determinado nvel de prioridade. Sendo um dos mais antigos agendadores de prioridade prioridade, estava presente no CTSS (Compatible Time-Sharing System - Sistema Compatvel de Diviso por Tempo). No algoritmo de Mltiplas Filas, tambm pode ser aplicado particularmente, em cada fila, diferentes algoritmos como por exemplo, o algoritmo RR ou FCFS exemplo FCFS.

Estados de processos Para o sistema operacional organizar os processos que sero atendidos eles so atribudos estados para os mesmos mesmos.

Diagrama de Estados de Processos Quem armazena essas informaes como os estados de processos e outras como: tempo e execuo, execuo por exemplo o PCB (Process Control exemplo, Block).

Distribuio de Prioridades Para melhorar essa distribuio da CPU entre os processos, alguns algoritmos utilizam diferentes prioridades, essas prioridades podem ser mudadas no Windows, por exemplo, pelo prprio usurio. Com ,p p ,p p p intuito de gerenciar melhor as prioridades de processo, o sistema operacional cria filas de processos. Em cada fila existem processos de mesma p p prioridade, e existe , tambm fila para processos de entrada e sada. Prioridades podem ser mudadas pelo usurio, ou atribudas automaticamente pelo sistema operacional em questo.

Alterando prioridades no Windows Existem ainda sistemas em que quando um processo inicia sua execuo, o sistema garante que este processo vai ser terminado, so chamados sistemas garantidos. Nestes sistemas a interveno do usurio mnima, ao contrario do que ocorre em sistemas em tempo real como o Windows em que o usurio interrompe processos a todo instante por isso o sistema no garante que um processo vai ser Terminado.

Trocas de contexto Processos so interrompidos e retomados a todo tempo, p p , para que o sistema operacional possa fazer esse tipo de ao, necessrio a troca de contexto. Para que o sistema operacional possa interromper um processo e retomar ele mais tarde, ele usa a PCB (Process Control Block) para guardar todas as informaes que a CPU estava usando naquele momento e possa consulta-la mais tarde para que retome exatamente no ponto em que foi interrompido anteriormente anteriormente.

Dvidas??? Prof. Luiz Henrique Biazotto E-mail: [email protected]

Exerccios1. 2. 3. 4. 4 5. 6. 7. 8. 9. O que Escalonamento de processos ? q p Defina Escalonador de curto prazo ? Defina Escalonador de mdio prazo? Defina Escalonador de longo prazo? O que so Algoritmos escalonadores ? E quais so eles? O que Estados de processos? O que Distribuio d Prioridades? i ib i de i id d ? Como possvel Alterar prioridades no Windows? Defina Trocas de contexto?