Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf ·...

Post on 28-Jul-2020

2 views 0 download

Transcript of Processos e escalonamentoProcessos e escalonamentosimone/scminter/contaulas/10_PROCS.pdf ·...

Sistemas de Computação

Processos e escalonamentoProcessos e escalonamento

Sistemas de Computação

Sistema operacional

• Programa que age como intermediário entre o usuário de um computador e o hardware

• Objetivos:– Executar programas do usuário e facilitar a resolução de

problemas– Tornar o sistema de computação mais conveniente para uso

• Utiliza o hardware de maneira eficiente

Sistemas de Computação

Visão abstrata dos componentes de um sistema de computação

Sistemas de Computação

Funções executadas pelo S.O

• Gerencia e aloca recursos

• Controla a execução de programas de usuário e operações de entrada e saída

• Núcleo do S.O fica executando todo o tempo

Sistemas de Computação

Esquema de memória para sistema simples de batch

Sistemas de Computação

Sistemas batch multiprogramados

• Vários jobs são colocados na memória principal ao mesmo tempo e a CPU é multiplexada entre eles.

Sistemas de Computação

Características necessárias para multiprogramação

• Rotinas de E/S fornecidas pelo S.O

• Memória deve ser alocada aos diversos jobs pelo S.O

• Sistema deve escolher entre os jobs prontos para serem executados, aquele que realmente seráexecutado

• Alocação de dispositivos

Sistemas de Computação

Sistemas time-sharing –computação interativa

• A CPU é multiplexada entre vários jobs que estão na memória e no disco ( a CPU é alocada para um job somente se ele estiver na memória)

• Um job fica sendo trocado de lugar entre memória e disco

• Comunicação on-line entre o usuário e o sistema éfornecida; quando o S.O finaliza a execução de um comando, ele procura pelo próximo comando digitado no teclado

• Sistemas on-line têm que estar disponíveis para acesso a dados e código

Sistemas de Computação

Processos

• Um sistema operacional executa uma variedade de programas:

– Sistemas batch – jobs– Sistemas time-shared – programas de usuário ou tarefas (tasks)

• Os termos job e processo são utilizados para designar a mesma coisa

• Processo é um programa em execução realizada de maneira seqüencial

• Um processo inclui:– contador de programa– pilha (stack)– seção de dados

Sistemas de Computação

Estado do processo

• À medida que o processo é executado, ele troca de estado

– novo: O processo está sendo criado– em execução (running): Instruções estão sendo executadas – suspenso (waiting): O processo está esperando pela ocorrência

de um evento– pronto (ready): O processo está pronto para ser designado para

a CPU– terminado (terminated): O processo acabou sua execução

Sistemas de Computação

Diagrama de estados do processo

Sistemas de Computação

Bloco de controle de processos

• Informação associada a cada processo

• Estado do processo

• Contador de processo

• Registradores de CPU

• Informações para escalonamento de CPU

• Informações para gerenciamento de memória

• Informações para tarifação

• Informações de estado de E/S

Sistemas de Computação

Bloco de controle de processo

Sistemas de Computação

Chaveamento da CPU

Sistemas de Computação

Processos concorrentes

• Os processos podem executar concorrentemente no sistema

• Compartilhamento de recursos físicos

• Compartilhamento de recursos lógicos

• Aceleração da computação

• Modularidade

• Conveniência

Sistemas de Computação

Criação de processos

• Um processo pai cria processos filhos, que por sua vez criam outros processos, formando uma árvore de processos

• Compartilhamento de recursos– Pais e filhos compartilham todos os recursos– Filhos compartilham um subconjunto dos recursos do pai– Pais e filhos não compartilham recursos

• Execução– Pai e filhos executam concorrentemente– Pai espera filhos acabarem

Sistemas de Computação

Criação de processos

• Espaço de endereçamento– Filho duplica espaço do pai– Filho tem um programa carregado neste espaço

• Exemplos em UNIX– fork chamada do sistema para criar processo novo– exec chamada do sistema utilizada após um fork para carregar um

novo programa no espaço de memória do processo

Sistemas de Computação

Árvore de processos em um sistema UNIX

Sistemas de Computação

Término de um processo

• Processo executa a última instrução e pede para o sistema operacional finalizá-lo (exit).

– Dados passam do filho para pai (via wait).– Recursos do processo são liberados pelo sistema operacional

• Pai pode terminar a execução de processos filhos (abort).

– Filho excedeu recursos alocados.– Tarefa designada para o filho não é mais necessária– Pai está finalizando sua execução

• S.O não permite que um filho continue executando se o pai terminou execução

• Terminação em cascata

Sistemas de Computação

Escalonamento

• Maior utilização da CPU com multiprogramação

• Ciclo de burst de CPU e E/S – Execução de um processo consiste de ciclo de execução de CPU e espera por E/S

• Sistema operacional passa o controle da CPU para outro programa quando o que está sendo executado tem que esperar

Sistemas de Computação

Filas para escalonamento de processos

• Filas de jobs – conjunto de todos os processos do sistema

• Fila de prontos – conjunto de todos os processos residentes na memória principal, prontos e esperando para serem executados pela CPU

• Fila de dispositivos – conjunto de processos esperando por um dispositivo de E/S

• Os processos migram entre as diversas filas

Sistemas de Computação

Fila de prontos e várias filas de dispositivos de E/S

Sistemas de Computação

Representação do escalonamento de processos

Sistemas de Computação

Escalonadores

• Long-term scheduler (ou job scheduler) –seleciona os processos que devem ser trazidos para a fila de prontos

• Short-term scheduler (ou CPU scheduler) –seleciona o processo que deverá ser o próximo a ser executado pela CPU e aloca a CPU para ele

Sistemas de Computação

Escalonador de médio prazo

Sistemas de Computação

Escalonadores

• Short-term scheduler é acionado muito freqüentemente (milisegundos) (tem que ser rápido).

• Long-term scheduler é acionado mais raramente (segundos, minutos) (pode ser lento).

• O long-term scheduler controla o grau de multiprogramação

• Processos podem ser descritos como:– Processo I/O-bound – gasta a maior parte do tempo executando

E/S que computação, vários bursts de CPU curtos.– Processo CPU-bound – gasta a maior parte do tempo realizando

computação, poucos bursts de CPU de longa duração

Sistemas de Computação

Chaveamento de contexto

• Quando a CPU chaveia para outro processo, o sistema tem que salvar o estado do processo que estava sendo executado e carregar o estado guardado do novo processo

• Tempo de chaveamento de processo introduz overhead; o sistema não realiza trabalho útil neste tempo

• Tempo depende do suporte de hardware existente

Sistemas de Computação

Seqüência de bursts de CPU e E/S

Sistemas de Computação

Escalonamento da CPU

• Seleciona um entre os processos prontos que estão na memória para ser executado e aloca a CPU para ele

• As decisões de escalonamento da CPU podem ocorrer quando um processo:

1. Troca do estado executando para suspenso2. Troca do estado executando para pronto3. Troca do estado suspenso para pronto 4. Termina

• Escalonamento realizado nos casos 1 e 4 é não preemptivo.

• Os outros são preemptivos.

Sistemas de Computação

Chaveamento de contexto

• Quando a CPU chaveia para outro processo, o sistema tem que salvar o estado do processo que estava sendo executado e carregar o estado guardado do novo processo

• Tempo de chaveamento de processo introduz overhead; o sistema não realiza trabalho útil neste tempo

• Tempo depende do suporte de hardware existente

Sistemas de Computação

Dispatcher

• O módulo dispatcher dá o controle da CPU para o processo selecionado pelo short-term scheduler; que envolve:

– trocar o contexto– mudar o modo para modo usuário– desviar para o endereço apropriado do programa do usuário

• Latência de despacho – tempo gasto pelo dispatcher para parar um processo e iniciar a execução de outro

Sistemas de Computação

Critérios para escalonamento

• Utilização de CPU – mantém a CPU ocupada o maior tempo possível

• Throughput – número de processos que completam sua execução por unidade de tempo

• Turnaround time – quantidade de tempo para executar um determinado processo

• Waiting time – tempo que o processo fica na fila de prontos

• Tempo de resposta – tempo para produzir a primeira resposta a um pedido em sistemas de tempo compartilhado

Sistemas de Computação

Critérios de otimização

• Max utilização de CPU

• Max throughput

• Min turnaround time

• Min waiting time

• Min tempo de resposta

Sistemas de Computação

P1 P2 P3

24 27 300

First-Come, First-Served (FCFS)

Processo Tempo de burstP1 24P2 3P3 3

• Suponha que os processos chegam na ordem : P1 , P2, P3 A carta de Gantt ilustra a situação:

Tempo de espera para P1 = 0; P2 = 24; P3 = 27Tempo médio de espera: (0 + 24 + 27)/3 = 17

Sistemas de Computação

P1P3P2

63 300

FCFS (Cont.)

• Suponha que os processos cheguem na ordem P2 , P3 , P1 .

• A carta de Gantt para esta situação:

Tempo de espera para P1 = 6; P2 = 0; P3 = 3Tempo médio de espera: (6 + 0 + 3)/3 = 3Melhor que caso anterior

Sistemas de Computação

Shortest-Job-First (SJF)

• Associa a cada processo a duração do seu próximo CPU burst e escalona o processo com o menor tempo:

• Dois esquemas: – não preemptivo – a partir do momento que um processo adquiriu a

CPU, ela fica associada a ele até que o seu CPU burst acabe– preemptivo – se um novo processo chega com um CPU burst

menor que o tempo que ainda resta para que o processo corrente termine a sua execução, o novo processo toma o lugar do corrente (SRTF - Shortest-Remaining-Time-First ).

• SJF é ótimo – fornece o menor tempo de espera médio para um dado conjunto de processos

Sistemas de Computação

Processo Tempo de chegada Tempo de burstP1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (não preemptivo)

• Tempo médio de espera = (0 + 6 + 3 + 7)/4 - 4

Exemplo de SJF não preemptivo

P1 P3 P2

73 160

P4

8 12

Sistemas de Computação

Exemplo de SJF preemptivo

Processo Tempo de chegada Burst TimeP1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4

• SJF (preemptivo)

• Tempo médio de espera = (9 + 1 + 0 +2)/4 - 3

P1 P3P2

42 110

P4

5 7

P2 P1

16

Sistemas de Computação

:Define 4.10 , 3.

burst CPU next the for value predicted 2.burst CPU of lenght actual 1.

1n

thn nt

.t nnn 11

Como determinar duração de próximo CPU burst ?

• Só pode ser estimado

• Pode ser estimado realizando-se uma média exponencial dos valores de duração de bursts de CPU prévios

Sistemas de Computação

Predição da duração do próximo CPU burst

Sistemas de Computação

Exemplos

• =0– n+1 = n

– História recente não conta

• =1– n+1 = tn

– Somente os últimos bursts são levados em conta

Sistemas de Computação

Escalonamento de prioridades

• Um número inteiro de prioridade é associado a cada processo

• A CPU é alocada ao processo de maior prioridade (menor inteiro = maior prioridade)

– Preemptivo– não preemptivo

• SJF é um escalonamento de prioridades onde a prioridade é o próximo tempo previsto de burst de CPU

• Problema Starvation – processos de baixa prioridade nunca são executados

• Solução Aging – à medida que o tempo passa a prioridade do processo aumenta

Sistemas de Computação

Round Robin (RR)

• Cada processo recebe uma pequena unidade de tempo da CPU (time quantum), geralmente 10-100 milisegundos . Quando este tempo se esgota, o processo para de ser executado e vai para o final da fila de prontos

• Se existem n processos na fila de prontos e o time quantum é q, então cada processo recebe de cada vez no máximo q unidades de tempo. Nenhum processo espera mais que (n-1)q unidades de tempo para ser executado pela CPU.

• Desempenho– q grande FIFO– q pequeno q deve ser grande em relação ao tempo de troca de

contexto, senão overhead é muito grande

Sistemas de Computação

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162

Exemplo de RR com time quantum = 20

Processo Tempo de burstP1 53P2 17P3 68P4 24

Carta de Gantt:

• Maior média para turnaround time que SJF, mas melhor tempo de resposta

Sistemas de Computação

Time quantum e tempo de troca de contexto

Sistemas de Computação

Turnaround time varia com o time quantum

Sistemas de Computação

Múltiplas filas

• A fila de prontos é particionada em filas separadas que possuem seu próprio algoritmo de escalonamento

– foreground (interativas) - RR– background (batch) - FCFS

• Escalonamento tem que ser realizado entre as filas– Escalonamento de prioridades fixas ( serve todos da fila

foreground depois da background). Possibilidade de starvation.– Fatia de tempo – cada fila recebe uma certa quantidade de tempo

da CPU que é escalonada entre os processos da fila( 80% paraforeground em RR, 20% para background em FCFS)

Sistemas de Computação

Múltiplas filas

Sistemas de Computação

Múltiplas filas com realimentação

• Um processo pode mudar de fila

• Definido pelos seguintes parâmetros:– número de filas– algoritmos de escalonamento de cada fila– método utilizado para determinar quando um processo deve ir para

fila de maior prioridade – método utilizado para determinar quando um processo deve ir para

fila de menor prioridade– método utilizado para determinar em qual fila o processo deve

entrar quando precisa de serviço

Sistemas de Computação

Exemplo de múltiplas filas com realimentação

• Três filas: – Q0 – time quantum 8 milisegundos– Q1 – time quantum 16 milisegundos– Q2 – FCFS

• Escalonamento– Um processo novo entra na fila Q0 que é servida por FCFS.

Quando ele ganha a CPU, ele recebe 8 millisegundos. Se ele não acaba em 8 milisegundos, ele é movido para fila Q1.

– Na fila Q1, o processo é servido por FCFS e recebe 16 milisegundos adicionais. Caso ele ainda não tenha acabado, ele émovido para a fila Q2.

Sistemas de Computação

Múltiplas filas com realimentação

Sistemas de Computação

Avaliação dos algoritmos

• Modelagem determinística – obtém uma carga de trabalho pré determinada e específica e define o desempenho de cada algoritmo para esta carga

• Modelos de filas

• Implementação

Sistemas de Computação

Avaliação por simulação