Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos ›...

148
Introdução aos Sistemas Operacionais Prof. Dr. Antônio Fernando Traina

Transcript of Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos ›...

Page 1: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução aos Sistemas Operacionais

Prof. Dr. Antônio Fernando Traina

Page 2: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Conteúdo Programático

1.Introdução aos conceitos de S.Os. 2. Processos3. Escalonamento de tarefas (Árbitro)4. Gerente de entrada saida (Supervisor)5. Gerente de memória6. Sistemas de Arquivos7. Conceitos Práticos de S.O. (Unix, NT,

DOS)

Page 3: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Escalonamento de Processos

UNIDADE III

Page 4: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Sumário

Introdução ao Escalonamento de ProcessosCritérios de EscalonamentoEscalonamento preemptivo e não-preemptivo eTipos de EscalonamentoComunicação entre ProcessosExemplos

Page 5: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

Page 6: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

Funções de um S.O.Manter o controle dos processos ativosAlocar e desalocar recursos

processadormemóriaarquivosdispositivos

Proteger recursosGarantir que o resultado de um processo independa da sua velocidade de execução

Page 7: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

Interação de Processos:Processos independentes competindo por recursosProcessos compartilhando recursosProcessos se comunicando

Page 8: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

Assim diversos processos disputam os recursos disponíveis no sistema.

Divisão do “tempo do processador”.

Uso da multiprogramação.

Escalonamento a curto prazo e a longo prazo (batch).

Page 9: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

Escalonamento é a tarefa de decidir qual o processo irá ocupar o processador quando este ficar livre.

Escalonador: é a parte do S. O. encarregada de tomar as decisões de escolha.

Page 10: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

O Escalonador decide baseado em uma política de escolha utilizando os algoritmos de escalonamento.Problemas com o comportamento de cada um dos processos. Muito I/O ou muita utilização do processador.

Page 11: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

Parâmetros de avaliaçãoJustiça: chances iguais de uso do processador.

Throughput: maximizar o número de jobsprocessados em uma unidade de tempo.

Tempo de Resposta: minimizar o tempo de resposta para os usuários interativos.

Previsível: Rodar as tarefas com igualdade

Turnaround: Minimizar o tempo.

Page 12: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

Menor overhead: Tempo de gerência.

Uso dos recursos: Deve ser balanceado.

Equilíbrio entre resposta e utilização.

Evitar a postergação indefinida.

Garantia de prioridades.

Dar preferências: Processos com recursos chaves que sejam caros para o sistemas.

Page 13: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

Oferecer serviços melhores: Para processos que exibem comportamentos desejáveis.

Evitar colapso: Situações de carga pesada.

Page 14: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

Conceito de Thread (fileira, linha) Uma thread é uma parte separada de um processo.Um processo pode consistir de várias threads cada

uma das quais sendo executada separadamente. Por exemplo, uma thread poderia tratar refresh e gráficos na tela , outra thread trataria impressão, outra thread trataria o mouse e o teclado.

Page 15: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

Threads são processo simples (ou processos mais fracos) que compartilham:

segmento de códigoconjunto de dadosarquivos

possuindo, no entanto, seus próprios:contador de programa (instruction counter ou program counter)Registradorespilha e apontador de pilha

Page 16: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

Ou seja:• Task

oMantém os recursos de um processo o Entidade passiva

• ThreadsFluxos de execução de um processo o Entidades ativas o Compartilham os recursos da tasko Cada thread tem sua própria pilha de execução e conjunto de registradores Criação e destruição com pequeno custo

Processo = 1 task + n threads

Page 17: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

Processo

Um processo ou tarefa é uma porção de um programa em alguma fase de execução. Um programa pode consistir de várias tarefas, cada uma com funcionamento próprio ou como uma unidade (talvez se comunicando entre si periodicamente).

Page 18: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

O PROCESSO de BOOTSTRAP

Descreve a ação da carga inicial do sistema operacional do disco para a RAM. Uma pequena rotina armazenada em ROM, chamada de CARREGADOR de BOOTSTRAP ou IPL (Carregador de Programa Inicial), lê uma rotina especial de carga no disquete.

Page 19: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

Em sistema baseado em disquete , essa rotina normalmente reside na trilha 00, setor 00 (ou 01), e é chamado de setor de booting.

O código contido no setor é transferido para a RAM, e então é executada. Tem a responsabilidade exclusiva de carregar o resto do sistema operacional na memória.

Page 20: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas
Page 21: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

Conceitos Importantes:Quantum: tempo de execução de cada processo

muito curto: maior o overhead de escalonamento muito longo: degenera em FCFS (FirstCome First Serve)

turnaround:Tempo decorrido da submissão de um processo até o seu término.

Page 22: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

Interrupção de um programa:Natural

Quando um processo conclui sua tarefa executa uma chamada informando o término ao sistema operacional

Forçada Na ocorrência de erros um processo pode ser abortado pelo sistema operacional Um processo pode solicitar o término de um processo subordinado quando seus serviços não têm mais interesse

Page 23: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Introdução ao Escalonamento de Processos

Tipos de EscalonadoresEscalonador de curto prazo (CPU Scheduler)

Seleciona processos da fila readyDeve ser muito eficiente

Escalonador de longo prazo (Job Scheduler) Seleciona novos processos para entrar no sistema Mantém média de processos I/O-bound e CPU-bound

Escalonador de médio prazo (Swapper) Retira processos temporariamente da memória para manter a média de processos I/O-bound e CPU-bound ou pela exaustão da mesma

Page 24: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Sumário

Introdução ao Escalonamento de ProcessosCritérios de EscalonamentoEscalonamento preemptivo e não-preemptivo.Tipos de EscalonamentoComunicação entre ProcessosExemplos

Page 25: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Critérios de Escalonamento

Page 26: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Critérios de Escalonamento

Processos limitados por E/S.Processos limitados pela CPU.Batch ou interativo.A urgência de uma resposta.Prioridade do processo.Com que freqüência perdem a CPU.Tempo de execução real.Tempo necessário para ser concluído.

Page 27: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Sumário

Introdução ao Escalonamento de ProcessosCritérios de EscalonamentoEscalonamento preemptivo e não-preemptivo.Tipos de EscalonamentoComunicação entre ProcessosExemplo

Page 28: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Escalonamento preemptivo e não-preemptivo.

Page 29: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Escalonamento preemptivo e não-preemptivo.

Escalonamento não-Preemptivo: Estratégia de rodar o processo até o fim. (batch). (não são adequados aos sistemas propósito geral)

Escalonamento Preemptivo: Estratégia de permitir a suspensão temporária dos que poderiam continuar rodando.

Page 30: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Escalonamento preemptivo e não-preemptivo

Não Preemptivo:Escalonamento First-In-First-Out -FIFO: Uma vez que o processo está com a CPU ele é executado até a sua conclusão.Escalonamento Shortest-Job-First -SJF: Tarefas com menor tempo de utilização são executadas por primeiro. Quanto tempo a tarefa irá utilizar a CPU. Livrar-se do maior número de processos quanto antes.

Page 31: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Escalonamento preemptivo e não-preemptivo

Não Preemptivo:Highest-Response-Ration-Next -HRN: A taxa de resposta mais alta. O tempo de execução da tarefa e o tempo que a tarefa tem esperado para executar.Escalonamento Cooperativo: Processo em execução entrega o processador sem a intervenção do S.O.

Page 32: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Escalonamento preemptivo e não-preemptivo

PreemptivoEscalonamento Round Robin: A cada processo atribui-se um intervalo de tempo durante o qual ele poderá utilizar o processador.(quantum). Se esgotar o seu quantum ele perde o processador.Manter uma lista de processos prontos.

Page 33: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Escalonamento preemptivo e não-preemptivo

B F D G A

F D G A B

Processo correnteRound Robin

Page 34: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Escalonamento preemptivo e não-preemptivo

PreemptivoEscalonamento por Prioridades:

Processos devem ser tratados de maneira diferente dos outros;Os processos de maior prioridades são escalonados antes.Sistemas de tempo compartilhado implementam algum tipo de prioridade de forma a dar mais importância na hora do escalonamento.

Page 35: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Escalonamento preemptivo e não-preemptivo

PreemptivoEscalonamento por Múltiplas Filas:

os processos são classificados em função do tipo de processamento realizado, e a cada grupo criado, são aplicados mecanismos de escalonamento distintos;Cada fila possui uma prioridade associada;

Page 36: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Escalonamento preemptivo e não-preemptivo

PreemptivoEscalonamento por Múltiplas Filas com Realimentação:

Possuem prioridade de execução mas não necessariamente permanecem até o final de seu processamento;mecanismo adaptativo, que tem como objetivo ajustar os processos em função do comportamento do sistema.

Page 37: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Escalonamento preemptivo e não-preemptivo

PreemptivoEscalonamento de Sistemas de Tempo Real:

o fator tempo é crítico;não existe o conceito de quantum;Para cada processo é atribuída uma prioridade associada a sua importância dentro do sistema;a prioridade é estática;Quanto maior a importância de uma tarefa, maior sua prioridade de execução.

Page 38: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Escalonamento preemptivo e não-preemptivo

PreemptivoEscalonamento com Múltiplos Processadores:

Em sistemas fracamente acoplados, cada processador faz seu próprio escalonamento local;Nos sistemas fortemente acoplados épossível implementar uma única fila de pronto para todos os processadores.

Page 39: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Escalonamento preemptivo e não-preemptivo

PreemptivoTodos os processos estão presentes nesta única fila e são escalonados no primeiro processador disponível. deve ser implementada a exclusão mútua;A exclusão mútua do Escalonador pode ser obtida através de mecanismos como semáforos e monitores.

Page 40: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Sumário

Introdução ao Escalonamento de ProcessosCritérios de EscalonamentoEscalonamento preemptivo e não-preemptivo.Tipos de EscalonamentoComunicação entre ProcessosExemplo

Page 41: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Page 42: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Serão vistos:Primeiro a Chegar Primeiro atendido (FirstCome First Serve - FCFS)Round-RobinProgramas Pequenos Primeiro (ShortestJob First - SJF)Menor Tempo Restante Primeiro (ShortestRemaining Time First - SRTFFilas Multiníveis

Page 43: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Primeiro a Chegar Primeiro atendido (First Come First Serve - FCFS) Com o algoritmo FCFS, cada programa é inserido no final de uma fila Q (a fila Q é a fila RL, de processos prontos para ganharem o contrele da CPU), quando chega no sistema.

Page 44: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas
Page 45: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

O processo em execução processa atéo final do seu corrente pico de CPU (não preempção) Quando o processo em execução termina, o programa no início da fila Q é selecionado como sendo o próximo a ser executado. Este é um esquema bastante simples.

Page 46: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

A eficiência do sistema varia grandemente de acordo com a duração do pico de CPU e da ordem de chegada dos processos. T Por exemplo - três processos chegam ao mesmo tempo. O primeiro possui 24 unidades de tempo de duração (tempo de pico de CPU), o segundo e o terceiro possuem, cada, 3 unidades de tempo de duração.

Page 47: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

A media de tempo de turnaround(tempo de existência) para os três processos será:

Page 48: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Se os programas chegarem na ordem 3, 2, 1, o turnaround médio seria:

Page 49: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Portanto, o turnaround médio não é,

em geral, minimal e, pode variar muito,

para um dado conjunto de programas,

dependendo da ordem de suas

chegadas.

Page 50: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Round-RobinNeste algorítmo, todos os processos prontos para ganharem o controle da CPU estão na fila de prontos RL (Ready List). O escalonador de CPU movimenta-se, circularmente, na RL atribuindo a CPU a cada processo por vez por uma duração de tempo chamado "quantum de tempo".

Page 51: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas
Page 52: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Um quantum de tempo é usualmente 10 a 100 milisegundos ou menos. Novos processo (ou processos que são novos na RL) são adicionadaos no final da fila RL.

Page 53: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Tudo se passa do seguinte modo: o escalonador "arma" um relógio de tempo para disparar após uma deternminada unidade de quanta e despacha o processo que está no inicio da RL para ganhar controle da CPU.

Page 54: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

O escalonador escolhe um processo. O escalonador também o despacha para a CPU. Ou o processo (corrente na CPU) libera a CPU voluntariamente (ie, o pico de CPU terminou e um pico de E/S está começando) ou o relógio temporazidor dispara e uma interrupção ocorre, causando preempção do processo.

Page 55: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Se o processo libera voluntariamente a CPU, ele vai para o final da fila apropriada no estado bloqueado. Se o temporizador dispara, o processo vai para o final da fila RL. Por exemplo, com o quantum de tempo de 4 unidades:

Page 56: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

O turnaround será: (30("1") + 7("2") + 10("3")) / 3 = ~16

Page 57: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Round RobinDeterminação do tamanho do quantum.

Muito pequeno: há sucessivas trocas de contexto baixando a eficiência do processador. (overhead)

Muito Grande: pode levar a um tempo de resposta não aceitável.

Page 58: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Programas Pequenos Primeiro (Shortest JobFirst - SJF)O tamanho do próximo pico de CPU (CPU burst) de cada programa é utilizado para determinar quem será o próximo. Aquele com o próximo menor pico será o escolhido. Por exemplo - suponha que os seguintes processos, chegam ao mesmo tempo no sistema:

Page 59: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas
Page 60: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Page 61: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

SJFSJF é ótimo (sentido matemático de ótimo) para algoritmos não-preemptivos - isto é, sempre resulta em menor tempo de turnaround. Contudo, é inteiramente impossível de se implementar, devido ao fato de que não existem meios de precisamente determinar, o tamanho do próximo pico de CPU, que terá um dado processo.

Page 62: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Um método informal de se provar que o algoritmo SJF é ótimo é considerar que, se um programa menor for movido para depois de um programa maior, então o tempo de espera para o menor é aumentado mais que o decréscimo do tempo de espera do maior, aumentando assim a média do tempo do turnaround.

Page 63: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Uma aproximação do algoritmo SJF utiliza um método de média exponencial para aproximar o tamanho do próximo pico de CPU, como veremos a seguir

Page 64: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Page 65: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Menor Tempo Restante Primeiro (Shortest Remaining Time First –SRTF) Este algoritmo é como o SJF, exceto que é um algoritmo preemptivo. Se um programa torna-se pronto para ganhar o controle da CPU utilizando o algoritmo SJF, ao programa corrente é permitido finalizar o seu próximo pico de CPU.

Page 66: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas
Page 67: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas
Page 68: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Filas MultiníveisAqui, existem varias filas de processos prontos para ganharem o controle da CPU. Cada uma possui escalonamento com características diferentes.Ou seja, uma pode ser RR, enquanto uma outra utiliza FCFS, etc. Cada fila está associada a um tipo específico de programa.

Page 69: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas
Page 70: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

Page 71: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Tipos de Escalonamento

FCFSOs processos do tipo "System" podem utilizar FCFS, quanto os processos do tipo "interactive" podem utilizar RR. É necessário existir alguma política de escalonamento entre filas. Por exemplo, um programa não poderá prosseguir, a menos que não exista programas de maiores prioridades esperando ou não permitir preempção, etc, ou cada fila possui um certo percentual de tempo de CPU.

Page 72: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Sumário

Introdução ao Escalonamento de ProcessosCritérios de EscalonamentoEscalonamento preemptivo e não-preemptivo.Tipos de EscalonamentoComunicação entre ProcessosExemplo

Page 73: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

=> Deadlocks

Page 74: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Ambientes onde surge concorrência– múltiplos aplicativos– aplicativos estruturados– estrutura do S.O.• Aspectos da implementação de concorrência– comunicação– compartilhamento e disputa de recursos– sincronização– alocação de processador

Page 75: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Problemas com concorrência– compartilhamento de recursos- escritas a uma variável global– alocação de recursos- recurso alocado enquanto processo estábloqueado

Page 76: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

depuração de programas• execução não pode ser reproduzida• Os problemas são similares em

ambientes multiprogramados e multiprocessados

Page 77: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Condições de corrida ou Seção Crítica: situação onde dois ou mais processos estão acessando dados compartilhados e o resultado do processamento depende de quem roda quando.

Spool de impressão onde um processo da por encerrado a impressão sem que o processo que está gerando tenha terminado.

Page 78: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Como evitar a ocorrência de condições de corrida?

Exclusão mútua: Se um processo estiver ocupando uma variável ou arquivo compartilhados, os demais processos serão impedidos de o fazer.Evitar que mais de um processo esteja processando suas regiões críticas ao mesmo tempo.

Page 79: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Condições necessárias:Dois ou mais processos não podem estar dentro de suas regiões críticas;Sem controle de tempo, velocidade ou processadores disponíveis.Nenhum processo pode bloquear outro se este estiver rodando fora de sua região crítica.Nenhum processo pode ser obrigado a esperar indefinidamente p/entrar em sua região crítica.

Page 80: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Exclusão Mútua: Soluções de Hardware:Inibição das Interrupções: Entra na região crítica, inibe as interrupções, habilita quando sai.Instrução TSL: Test and Set Locked - Transfere o conteúdo do end. memória para um registrador

Exclusão Mútua: Soluções de Software:Variável de travamento: 0-livre, 1-ocupado.Estrita Alternância: Teste inicial e teste contínuo para habilitar-se. Solução de Peterson: O processo avisa que quer entrar, entra e libera.

Page 81: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Primitivas Sleep/Wakeup: (Produtor e consumidor): Um dos processos , o produtor coloca informação no Buffer, e o outro, o consumidor retira a informação do buffer.Semáforos: (Dijkstra) - variável do tipo semáforo pode ter o valor 0 = livre e pode ter o valor positivo indicando o número de sinais armazenados.

Page 82: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Contadores de Eventos: Lê, incrementa e espera. - contador de inserção e contador de retiradas. (antes de retirar o item x ele espera que o o contador de entradas seja igual a x).

No caso de semáforos e contadores de evento podem ocorrer deadlock.

Monitores: Os processos chamam os procedimentos do monitor mas não acessam as estruturas de dados e variáveis internas.

Page 83: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Somente um processo pode estar ativo dentro do monitor em um determinado instante.Wait e Signal - variáveis de condição.

Troca de Mensagens: através das primitivas Send e Receive.Equivalência entre as Primitivas: Método chamado seqüenciadores, expressões de caminho ou serializadores.

Page 84: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Isso dá bom tempo de resposta em programas complexos. Windows NT é um exemplo de um sistema operacional que suporta multi-thread.

Page 85: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

O problema de seções críticas (ou regiões críticas) é um sério problema em concorrência. Este problema envolve dois ou mais processos que possuem uma seção de código que não obedece as condições de Bernstein para concorrência.

Page 86: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Estas seções de processos concorrentes são chamadas seções críticas. É dentro das seções críticas de um processo que é realizado o acesso ao dado que está no conjunto de leitura ou de escrita de outro processo.

Page 87: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Em geral a solução para o problema de seção crítica provê algum método que somente permite um processo (ou em raros casos, um pequeno número fixo de processos cooperativos) acessar sua seção crítica por vez ( de cada vez).

Page 88: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Um excelente exemplo de concorrência e seção-crítica e o problema chamado Produtor/consumidor. Nesta modelagem um processo produtor produz (continuadamente) um pacote de ítens para um processo consumidor consumir (continuamente).

Page 89: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Geralmente existe uma lista compartilhada onde o produtor armazena os dados e da qual o consumidor retira os dados. Se ambos os processos tentarem acessar a lista concorrentemente, a lista poderá ficar corrompida ( estado inconsistente).

Page 90: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Portanto, é necessário e mandatórioque somente um processo acesse a lista por vez. Um implementação típica (pseudo código) do produtor e consumidor écomo se segue:

Page 91: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas
Page 92: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Note que, no exemplo acima, o problema da seção crítica não é totalmente resolvido.O produtor e o consumidor acima podem

processar juntamente, sem problemas, na maioria das execuções mas, na seção crítica (durante a manipulação da lista) o sistema falha (gera inconsistência) completamente.

Page 93: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Qualquer solução para o problema de seção crítica deve satisfazer as seguintes três condições:1.A execução da seção crítica entre processos deve ser

mutuamente exclusiva, isto é, nunca dois processos podem estar acessando a mesma seção crítica simultaneamente. As seções críticas de dois processos estão relacionadas

se elas acessam o mesmo dado compartilhado. Por exemplo, digamos que temos 3 seções críticas, uma em

cada um um dos processos A, B e C. Se A e B manipulam o dado 1 e B e C manipulam o dado 2, então A e B possuem seções críticas relacionadas e, analogamente, B e C. A e C não compartilham dados e portanto não possuem seções críticas relacionadas entre si.

Page 94: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

2. Um processo, A, fora de sua seção crítca, não pode impedir outro processo, B, entrar em uma de suas seções crítcas.

3. Quando dois processos desejarem entrar em suas seções críticas ao mesmo tempo, a decisão de qual entrará primeiro, não pode ser postergarda indefinidamente.

Page 95: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Comunicação entre Processos

Solução por software Solução de Hardware Semáforos Monitores Comunicação Inter-Processos (Inter-Process Communication -IPC).

Page 96: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Deadlock

Bloqueio permanente de um conjunto de processosque estão competindo por recursos ou secomunicando• Não existe uma boa solução para o caso geral• Surge devido a interesses conflitantes por recursos

Page 97: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas
Page 98: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Deadlock

Utilizados por um processo de cada vezO uso não acaba com o recursoProcessos adquirem, usam e liberam os recursosExemplos: processadores, canais de E/S, memória,dispositivos, arquivos, banco de dados, semáforosExemplo de deadlock: memória de 200K bytes

Page 99: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas
Page 100: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Deadlock

Recursos que são criados e destruídosUm processo produtor desbloqueado pode

criarqualquer número de recursosQuando um recurso é adquirido, deixa de

existirExemplos: interrupções, sinais, mensagens,

conteúdo de buffers de E/SExemplo de deadlock: Receive bloqueia o

processo

Page 101: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas
Page 102: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Deadlock

Condições para Deadlock:Exclusão mútua

– somente um processo pode usar o recurso

• Posse e espera– um processo pode segurar recursos enquanto

espera por outros• Sem preempção

– nenhum recurso pode ser retirado de um processo

Page 103: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Deadlock

Espera circular– uma corrente de processos existe, de

maneira que cada processo possui pelo menos um recurso desejado pelo próximo processo na corrente

– conseqüência possível das 3 primeiras– definição de deadlock

Page 104: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas
Page 105: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Deadlock

Previnir Deadlocks: Fazer com que uma das condições não se realize:

• Exclusão mútua– exemplo: spooling para impressoras– não pode ser evitada na maioria das situações

• Posse e espera– um processo deve solicitar todos os seus recursos simultaneamente– maior espera por recursos– recursos alocados desnecessariamente– conhecimento anterior dos recursos necessários

Page 106: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Deadlock

Sem preempção– devolve recurso assim que necessário– somente prático quando o estado do recurso pode ser facilmente

salvo e restaurado (processador)• Espera circular

– todos os recursos estão ordenados– recursos são solicitados em ordem – exige conhecimento prévio de todos os recursos necessários– a alocação dos recursos pode não ser a mais eficiente

Page 107: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Deadlock

Estratégias– não disparar um processo cujo uso de

recursos pode levar a um deadlock– não atender pedidos de recursos que

podem levar a um deadlock (algoritmo do banqueiro)

• Vantagens– menos restritivo que prevenção

• Desvantagens– necessidades máximas conhecidas– somente para recursos reusáveis

Page 108: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Deadlock

Detectar DeadlockO S.O. verifica periodicamente o estado dos recursose processos procurando por deadlocks• Essa procura pode demandar recursos de

processador• Recuperação

– cancelar todos os processos em deadlock– rollback e restart dos processos em deadlock– cancelar progressivamente os processos em deadlock

Page 109: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Deadlock

Algoritmo do avestruz• Assumir que deadlocks são raros• Não é justificado o (mau) uso de

recursos para prevenir, evitar ou detectar deadlocks

• Estratégia adotada pela maioria dos Sistemas operacionais

Page 110: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas
Page 111: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Sumário

Introdução ao Escalonamento de ProcessosCritérios de EscalonamentoEscalonamento preemptivo e não-preemptivo.Tipos de EscalonamentoComunicação entre ProcessosExemplo

Page 112: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Page 113: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Escalonamento Tradicional do UNIXEscalonamento com preempção usando múltiplas filas com prioridades dinâmicas A prioridade (inversa) de um processo ébase + utilização + nice

Page 114: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

A prioridade base divide os processos em grupos de prioridades (swapper, disco, arquivos, dispositivos, usuários) O parâmetro nice ajusta a prioridade do processo A utilização de CPU é dividida por 2 a cada segundo, para evitar a inanição de processos longos É utilizado Round-Robin para processos de mesma prioridade

Page 115: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Política de Escalonamento em UnixTrês tipos de aplicações: interativas, batch e real-time. Unix tradicional desenhado para aplicações interactivas. Cada processo tem uma prioridade que varia dinâmincamente. Processos de mais alta prioridade tiram outros processos do CPU mesmo quando o processo não terminou o seu quantum

Page 116: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Kernel não permite preempção: processo sóreturna o CPU quando bloqueia ou quando regressa a User Mode. Prioridades: 0 a 49 para kernel, 50 a 127 para user-mode. Em proc: p_pri, prioridade corrente; p_usrpri, prioridade em modo utilizador, p_cpu, uso de CPU, e p_nice.

Page 117: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos-NÃO

ClocksResposta a interrupt de clock deve ser o mais rápida possível: reiniciar hw, se necessário. incrementar estatísticas. recalcular prioridades e time-slice. enviar um SIGXCPU para processo se excedeu quota. alterar tempo real. processar calloutsacordar processos de sistemas como swapper e pageout

processar alarmes.

Page 118: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos-NÃO

Tipos de ThreadsKernel Threads: baratos, não são associados com processos de utilizador, e têm a sua própria pilha.

Úteis para I/O e interrupts.Equivalente ao pagedaeomn e a nfsd em

Unix.

Page 119: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos-NÃO

Lightweight Process: kernel supported user-thread.

Podem fazer syscalls e bloquear. Podem correr em CPUs diferentes. Precisam de mais estado do que KT: pilha e contexto de registos. Precisam de syscalls para serem criados, sincronização (para blocking), contextswitching e escalonamento. Isso obriga a 2 mode switches atravessando protection boundary

Page 120: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos-NÃO

User Threads: implementados por bibliotecas (C-threads ou pthreads).

Interação é rápida, escalonamento é feito pela aplicação. AIO permite não bloquear thread àcusta de complexidade de programação. Ideais para window systems. Problema: separação entre UT e LWP: kernelnão pode saber que LWP tem os melhores threads; UTs podem perder LWPs, não suportam paralelismo.

Page 121: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Implementação do EscalonadorEm Unix tradicional:

são mantidas 32 filas com as prioridades (VAX). whichqs contém um bitmask com um 1 para filas ocupadas. swtch() examina primeira fila, muda contexto, e quando retorna processo já está executando. Cada 100 ms (BSD) roundrobin() vai buscar outro processo com a mesma prioridade. Senão, o mesmo processo continua

Page 122: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos-NÃO

schedcpu() é chamada de segundo a segundo para recalcular a prioridade. clock recalcula prioridade do processo corrente cada vez em 4. flag runrun é usada para indicar que processo de mais alta prioridade está àespera de ser executada, e é verificada antes de entrar em user-mode.

Page 123: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Problemas do Escalonador Não escala bem: muitos processos faz com que recalcular prioridades seja pesado. Não se pode dar uma porção de CPU a um processo. Não há garantias de tempo de resposta para real-time apps. Aplicações não podem controlar as suas prioridades. Kernel nonpreemptive significa que processos de prioridade alta podem ter que esperar muito tempo antes de executar.

Page 124: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos-NÃO

Inicialização de Processos: forkA chamada fork() duplica processos: fork() cria um novo processo: retorna 0 para filho e PID para o pai. fork() reserva swap, aloca novo PID e proc, inicializa proc, aloca mapas de tradução de endereços, aloca u-area e copia do pai, altera a u-area com novos mapas de endereços e swap, adiciona o filho aos processos que partilham o texto do pai, duplica as áreas de pilhas e dados do pai, obtém referencias a recursos partilhados, inicializa contexto HW, põe o processo runnable e na filha de escalonamento, retorna para o filho e para o pai.

evitar cópia: copy-on-write e vfork().

Page 125: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos-NÃO

Inicialização de Processos: execA execução de um novo programa é iniciada com exec(): exec() faz overlay com um novo programa. exec() obtém o executável, verifica permissões, lê o cabeçalho, altera se SUID ou SGID, copia os argumentos de exec() e env para kernel space, aloca swap para data e swap, liberta antigos data and stack, aloca mapas de endereço e inicializa-o, restaura env e argumentos, reinicializa os signal handlers, inicializa contexto HW. entre os dois podemos fazer coisas como alterar os

descriptores de entrada-saida, etc.

Page 126: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos-NÃO

Terminação do Processoexit() é chamada ou de um signal ou do próprio processo. exit() desliga sinais, fecha ficheiros, liberta ficheiro texto e outros recursos como cwd, escreve no log, guarda estatísticas, muda para SZOMB, faz com que init herde o processo, liberta memória, envia SIGCHLD para pai, acorda pai, chama swtch()wait() espera terminação de processos. se processo morre antes do pai e este não chama wait, processo fica zombie. SVR4 permite usar SA_NOCLDWAIT

para indicar que pai não vaiu esperar pelos filhos

Page 127: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Escalonamento no UNIX SVR4160 níveis de prioridade dividido em três classes

100-159 para processos de tempo real podem fazer preempção do kernelprioridades e quantum estáticos

Page 128: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

60-99 para o kernelsofre preempção em pontos pré-determinados prioridades estáticas

0-59 para processos usuários prioridade variável (diminuída a cada quantum e aumentada a cada bloqueio) quantum maior para processos menos prioritários

Page 129: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Três classes de prioridade tempo real (16-31) variável (1-15) sistema (0)

Page 130: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas
Page 131: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Escalonamento no Windows NTPreempção prioridade

independe do modo de processamento a thread volta para o início da fila tempo a thread volta para o fim da fila

Page 132: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Quantum =>depende do tipo e da arquitetura

NT Workstation (15.6-30 ms) NT Server (93.6-160 ms)

Page 133: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Ajustes de prioridadeapós uma espera de E/S ou evento quanto mais lento o dispositivo maior o aumento a cada quantum a prioridade é diminuída após uma espera por entrada do usuário aumenta a prioridade para 14 por 1 quantum após um longo tempo (3-4 s) sem executar aumenta a prioridade para 15 por 1 quantum dobrado

Page 134: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Ajustes de prioridade após uma espera de E/S ou evento quanto mais lento o dispositivo maior o aumento a cada quantum a prioridade é diminuída após uma espera por entrada do usuário aumenta a prioridade para 14 por 1 quantum após um longo tempo (3-4 s) sem executar aumenta a prioridade para 15 por 1 quantum dobrado

Page 135: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Escalonamento Windos95PrioridadesAs threads no Windows 95 têm prioridades que vão de 0 à 31. A prioridade 0 é a mais baixa e é de uso exclusivo do sistema. As demais se classificam nos seguintes grupos:

Ocioso (1-6) Normal (5-11) Background (5-9) Foreground (6-11)Alta (11-15) Real Time (16-31)

Page 136: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

EscalonamentoO VMM possui dois escalonadores

primary schedulertimeslice scheduler

O primary scheduler tem a função de escolher o processo, ou os processos, de maior prioridade. Todos os demais permanecerão bloquedos..

Page 137: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

O timeslice scheduler divide as fatias de tempo entre os processos de maior prioridades, escolhidos pelo primary scheduler. As prioridades podem ser alteradas pelo sistema ou pelos drivers de dispositivos. Por exemplo, quando ocorre uma interrupção, a thread que lida com aquela interrupção tem sua prioridade aumentada. Depois de atender à interrupção, a prioridade da thread é novamente reduzida

Page 138: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Multitarefa Cooperativa x Preemptiva

O Windows 95 é um sistema multitarefa híbrido. Ele utiliza tanto a multitarefa cooperativa quanto a multitarefa preemptiva.

Page 139: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Multitarefa Cooperativa: um processo precisa ceder a CPU para que outro processo possa usá-la. Para abandonar a CPU um processo chama uma dessas funções: GetMessage, PeekMessage e Yield. Na multitarefa cooperativa o VMM só pode determinar o próximo processo que usará a CPU. Um programa mal escrito que não largar a CPU não poderá ser interrompido e a única solução seráreiniciar o sistema.O Windows 95 utiliza multitarefa cooperativa entre as aplicações 16 bits.

Page 140: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Multitarefa Preemptiva: o VMM pode tirar um processo da CPU a qualquer instante, sem a necessidade do processo chamar uma das funções citadas acima e ceder a CPU. Geralmente é implementada usando uma interrupção gerada por hardware (timer). Ao receber a interrupção do timer, o processador passa o controle ao SO, que executa a mudança de contexto.

Page 141: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

O Windows 95 utiliza multitarefa preemptiva entre as aplicações 32 bitse entre os programas MS-DOS.Todos os programas 16 bits juntos são vistos como um único processo para fins de escalonamento preemptivo

Page 142: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

SincronizaçãoO Windows 95 oferece várias funções que podem ser usadas em objetos para sincronizar processos. Esses objetos chamam-se objetos de sincronização e

incluem:

Semáforos: usados para limitar o número de acessos concorrentes a um recurso compartilhado. É criado com a função CreateSemaphore. Eventos: o estado de um objeto evento pode ser mudado para sinalizado ou não sinalizado. Para criar um objeto evento usamos a função CreateEvent. Para sinalizar ou não um objeto evento usa-se SetEvent e ResetEvent, respectivamente. Mutex: funcionando de forma similar a um semáforo, um objeto mutex (exclusão mútua) é possuído por uma thread quando esta entra na região crítica. Ele é liberado usando a função ReleaseMutex.

Page 143: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Outro mecanismo de sincronização é o Interlocked Variable Access.Usando as funções InterlockedIncrement e InterlockedDecrement, uma thread pode alterar o valor de uma variável e verificar o resultado de forma atômica, sem ser interrompida por outra thread (que poderia alterar a variável antes que a primeira tivesse a chance de verificar seu valor).

Page 144: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

Teste de Multitarefa no WindowsAqui apresenta-se dois programas em pascal para mostrar que a multitarefa do ambiente Windows é não preemptiva.Execute os dois programas lado a lado para ver o funcionamento. Lembre-se de executar primeiro o numeros.exe e depois o loop.exe

Page 145: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

PROGRAM Test_Multitarefa;

USES WinCrt;

VAR cont : INTEGER;BEGIN

WHILE TRUE DOFOR cont:=1 TO 9999 DO

WRITE(cont:8);END;

END.

Page 146: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Exemplos

PROGRAM Test_Multitarefa;USES WinCrt;BEGIN

Writeln ('Loop...');WHILE TRUE DO

{Sem Operação};END.

Page 147: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Bibliografia

[1] – Sistemas Operacionais – Projeto e Implementação – Andrew S. Tanenbaum, Albert S. Woodhull -Editora Bookman – 2o edição –2000.[2] – Sistemas Operacionais –Conceitos – Abraham Silberschatz e Peter Baer Galvin – Editora PrenticeHall –2000.

Page 148: Introdução aos Sistemas Operacionais - FACOM › ~claudio › Cursos › sogi › Artigos › ... · 1.Introdução aos conceitos de S.Os. 2. Processos 3. Escalonamento de tarefas

Fim da Unidade III