Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO



Documentos relacionados
Sistemas Operacionais

Sistemas Operacionais. Roteiro. Tipos de Tarefas (temporal) Marcos Laureano

Capítulo 4 Gerência do Processador. O que sabemos é uma gota, o que ignoramos é um oceano. Isaac Newton

Capítulo 4 Gerência de Processador

Gerência do Processador

Escalonamento de CPU 2 Quadrimestre

Escalonamento de processos

Sistemas Operacionais

O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados.

Capítulo 5: Escalonamento da CPU

Sistemas Operacionais

GERENCIAMENTO DO PROCESSADOR. Prof. Maicon A. Sartin

Sistemas Operativos. Sumário. Escalonador da CPU. ! Filas Multinível. ! Filas Multinível com Feedback. ! Escalonamento em multiprocessadores

Gerência do Processador

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

4. GERÊNCIA DE PROCESSADOR (Escalonamento de processos)

Processos. Paulo Sérgio Almeida 2005/2006. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência do Processador

Algoritmos de Escalonamento

SISTEMAS OPERACIONAIS

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

PROCESSOS. Prof. Maicon A. Sartin

Gerenciamento de memória

Gerência de Processador

Capítulo 5: Escalonamento da CPU

Sistemas Operacionais Conceitos Básicos

Gerência de Processador

Sistemas Operacionais

Sistemas Operacionais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Gerência de processos Requisitos fundamentais

Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

Sistemas Operacionais Processos e Threads

Introdução à Computação: Sistemas de Computação

Arquitetura e Organização de Computadores

Sistemas Operacionais. Escalonamento de Processo. Prof. Dr. Márcio Andrey Teixeira

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

SISTEMAS OPERACIONAIS

Processos. Estruturas de Controle

Escalonamento no Linux e no Windows NT/2000/XP

Sistemas Operacionais

SSC0640 Sistemas Operacionais I

Processos e Threads (partes I e II)

Programação Concorrente Processos e Threads

Memória - Gerenciamento. Sistemas Operacionais - Professor Machado

03 GERÊNCIA DO PROCESSADOR

Sistemas Operacionais

Virtual Box. Guia. Instalação E Utilização. Criado por Wancleber Vieira wancleber.vieira@ibest.com.br

Gerenciamento de Processos

Sistemas Operacionais

Fundamentos de Sistemas Operacionais

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC. Prof. Almeida Jr

Capítulo 4 Gerenciamento de Memória

Sistemas Operativos I

Deadlocks. Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

SISTEMAS OPERACIONAIS GERÊNCIA DE TAREFAS

Sistemas Operacionais I

Arquitetura de Sistemas Operacionais

Processos. Adão de Melo Neto

4) Abaixo está representado o nó_i do arquivo SO.txt em um sistema UNIX.

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Métodos de Sincronização do Kernel

Edeyson Andrade Gomes.

Capítulo 4 Gerenciamento de Memória

Sistemas Operacionais

Fundamentos de Sistemas Operacionais. Processos. Prof. Edwar Saliba Júnior Março de Unidade Processos

Capítulo 6. Gerenciamento de Arquivos. 6.1 Arquivos 6.2 Diretórios 6.3 Implementação (6.3.1 a 6.3.6) 6.4 Exemplos

Sistemas Operacionais

Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo.

Aula 10: Escalonamento da CPU

Permitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova;

Introdução aos Sistemas

Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

8 Threads. 8.1 Introdução

Introdução. Uso do disco Vantagens Desvantagens Baixo custo, facilidade de manutenção do software e do hardware, simetria e flexibilidade

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura Exemplo

Trabalho 7 Fila de prioridade usando heap para simulação de atendimento

Nível da Arquitetura do Conjunto das Instruções

Sistemas de Computação. Processos e escalonamento

Gerenciamento Básico B de Memória Aula 07

Informática básica Telecentro/Infocentro Acessa-SP

Gerência do Sistema de Arquivos. Adão de Melo Neto

Sumário. Deadlock. Definição. Recursos. M. Sc. Luiz Alberto

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS. 2º TRIMESTRE Patrícia Lucas

Definição. ? Algoritmo de Escalonamento de CPU. ? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU

Davidson Rodrigo Boccardo

Acessando o SVN. Soluções em Vendas Ninfa 2

Sistemas Operacionais

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul

Transcrição:

Gerenciamento de processos Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO 1

Conceitos Básicos Máxima utilização da CPU obtida com a multiprogramação; Ciclo do burst de CPU e E/S A execução de um processo consiste em um ciclo de execuçãodacpueesperapore/s; Distribuição dos bursts de CPU de um ou mais processos ao longo do tempo; 2

Processos Multiprogramação: Pseudoparalelismo: coleção de processos sendo executados alternadamente na CPU; Um processo é caracterizado por um programa em execução, mas existe uma diferença sutil entre processo e programa: Um processo pode ser composto por vários programas, dados de entrada, dados de saída e um estado (executando, bloqueado, pronto) 3

Alternando a Sequênciade Burstsde CPU e E/S 4

Histograma dos tempos de burstda CPU 5

Criando Processos Processos precisam ser criados e finalizados a todo omomento: Na inicialização do sistema; Na execução de uma chamada ao sistema de criação de processo realizada por algum processo em execução; Na requisição de usuário para criar um novo processo; Na inicialização de um processo em batch (em mainframes com sistemas de batch). 6

Criando Processos Processos podem ser: Específicos para usuários específicos: Leituradeumarquivo; Iniciarumprograma(linhadecomandoouumduplocliquenomouse); Com funções específicas, que independem de usuários, que são criados pelo sistema operacional e que são processados em segundo plano(daemons): Recepçãoeenviodeemails; Serviços de Impressão; 7

Criando Processos UNIX: Fork; Cria um processo idêntico (filho) ao processo que a chamou (pai), possuindo a mesma imagem de memória, as mesmas cadeias de caracteres no ambiente e os mesmos arquivos abertos; Depois, o processo filho executa uma chamada para mudar sua imagem de memória e executar um novo programa. Windows: CreateProcess; Uma única função trata tanto do processo de criação quanto da carga do programa correto no novo processo. 8

Criando Processos Exemplo UNIX: Processo init: gera vários processos filhos para atender os vários terminais que existem no sistema; Outros processos são gerados nos terminais 9

Finalizando Processos Condições: Término normal(voluntário): Atarefaaserexecutadaéfinalizada; Chamadas: exit(unix) e ExitProcess(Windows). Término com erro(voluntário): O processo sendo executado não pode ser finalizado, por exemplo, o comando gcc filename.c resultará em erro, caso o arquivo filename.c não exista; 10

Finalizando Processos Condições(continuação): Término com erro fatal(involuntário); Errocausadoporalgumerronoprograma(bug): Divisãopor0(zero); Referência à memória inexistente ou não pertencente ao processo; Execução de uma instrução ilegal; Término causado por algum outro processo (involuntário): Kill (UNIX) e TerminateProcess (Windows); 11

Estados de Processos Um processo sendo executado não pode continuar sua execução, pois precisa de algum evento (E/S ou semáforo) para continuar; Três estado básicos Executando 1 2 3 Bloqueado 4 Pronto 12

Estados de Processos Um processo é bloqueado de duas maneiras: chamada ao sistema: block ou pause; se não há entradas disponíveis para que o processo continue sua execução; Executando 1 2 3 Bloqueado 4 Pronto 13

Estados de Processos As transições 2 e 3 ocorrem durante o escalonamento de processos: o tempo destinado àquele processo acabou e outro processo é colocado no Executando 1 2 3 processador; Bloqueado 4 Pronto 14

Estados de Processos Executando 1 2 3 Bloqueado 4 Pronto A transição 4 ocorre quando o evento esperado pelo processo bloqueado ocorre: se o processador está parado, o processo é executado imediatamente (2); se o processador está ocupado, o processo deve esperar sua vez; 15

Processos Processos CPU-bound (orientados à CPU): processos que utilizam muito o processador; Tempo de execução é definido pelos ciclos de processador; Processos I/O-bound (orientados à E/S): processos que realizam muito E/S; TempodeexecuçãoédefinidopeladuraçãodasoperaçõesdeE/S; IDEAL: existir um balanceamento entre processos CPUbound e I/O-bound; 16

Escalonador de Processos Processos 0 1... n-1 n Escalonador de Processos Nível mais baixo do SO; Manipulação de interrupções e processos; 17

Implementação de Processos Tabela de Processos: Cada processo possui uma entrada; Cada entrada possui um ponteiro para o bloco de controle de processo(bcp) ou descritor de processo; BCP possui todas as informações do processo contextos de hardware, software, endereço de memória, etc.; 18

Implementação de Processos Tabela de processos BCP P1... BCP P2... BCP Pn 19

Implementação de Processos Algumas informações do BCP 20

Escalonamento de Processos O escalonador de processos é responsável por escolher o processo que será executado pela CPU; O escalonamento é realizado com o auxílio do hardware; O escalonador deve se preocupar com a eficiência dacpu, pois o chaveamento de processos é complexo e custoso (afeta desempenho do sistema e satisfação do usuário); O escalonador de processo é um processo que deve ser executado quando da mudança de contexto (troca de processo); 21

Escalonamento de Processos Situações nas quais escalonamento é necessário: Umnovoprocessoécriado; Um processo terminou sua execução e um processo pronto deve ser executado; Quando um processo é bloqueado (semáforo, dependência de E/S), outro deve ser executado; Quando uma interrupção de E/S ocorre o escalonador deve decidir por: executar o processo que estava esperando esse evento; continuar executando o processo que já estava sendo executado ou executar um terceiro processo que esteja pronto para ser executado; 22

Escalonamento de Processos Hardware de relógio fornece interrupções de relógio e a decisão do escalonamento pode ser tomada a cada interrupção ou a cada k interrupções; Algoritmos de escalonamento podem ser divididos em duas categorias dependendo de como essas interrupções são tratadas: Preemptivo: escolhe um processo e o deixa executando por um tempo máximo; Não-preemptivo: estratégia de permitir que o processo que está sendo executado continue sendo executado até ser bloqueado por alguma razão (semáforos, operações de E/S, interrupção) ou que libere a CPU voluntariamente; 23

Escalonamento de Processos Mudança de Contexto: Overhead de tempo; Tarefa cara: Salvar as informações do processo que está deixando a CPU em seu BCP conteúdo dos registradores; Carregar as informações do processo que será colocado na CPU copiar do BCP o conteúdo dos registradores; 24

Troca de Contexto entre processos 25

Latência de Despacho 26

Escalonamento de Processos Antes da Mudança de Contexto BCP-P2 PC = 0BF4h PID = 2 Estado = pronto BCP-P4 PC = 074Fh PID = 4 Estado = executando Próximo processo PC = 076Fh Processo já executou algumas instruções CPU 27

Escalonamento de Processos Depois da Mudança de Contexto BCP-P2 PC = 0BF4h PID = 2 Estado = executando Salva o contexto no BCP BCP-P4 PC = 076Fh PID = 4 Estado = pronto PC = 0BF4h CPU 28

Escalonamento de Processos Categorias de Ambientes: Sistemas em Batch: usuários não esperam por respostas rápidas; algoritmos não-preemptivos ou preemptivos com longo intervalo de tempo; Sistemas Interativos: interação constante do usuário; algoritmos preemptivos; Processo interativo espera comando e executa comando; Sistemas em Tempo Real: processos são executados mais rapidamente, pois o tempo é crucial sistemas críticos; 29

Escalonamento de Processos Características de algoritmos de escalonamento: Qualquer sistema: Justiça (Fairness): cada processo deve receber uma parcela justadetempodacpu; Balanceamento: diminuir a ociosidade do sistema; Políticas do sistema prioridade de processos; 30

Escalonamento de Processos Características de algoritmos de escalonamento: Sistemas em Batch: Vazão (throughput): maximizar o número de jobs executados por hora; Tempo de retorno (turnaround time): tempo no qual o processo espera para ser finalizado; Eficiência: CPU deve estar 100% do tempo ocupada; Sistemas Interativos: Tempo de resposta: tempo esperando para iniciar execução; Proporcionalidade: satisfação do usuários; 31

Escalonamento de Processos Características de algoritmos de escalonamento: Sistemas em Tempo Real: Cumprimento dos prazos: prevenir perda de dados; Previsibilidade: prevenir perda da qualidade dos serviços oferecidos; 32

Escalonador de CPU Seleciona um processo, entre os presentes na memória queestãoprontosparaexecução,eoalocaàcpu; As decisões de escalonamento de CPU podem ocorrer quando um processo: 1. Passa do estado executando para o estado esperando; 2. Passa do estado executando para o estado pronto; 3.Passadoestadoesperandoparaoestadopronto; 4. Termina. Oescalonamentonoscasos1e4énão-preemptivo; Todos os outros escalonamentos podem ser preemptivos; 33

Despachador(dispatcher) O despachador passa o controle da CPU ao processo selecionado pelo escalonador de curto prazo; isso envolve: Troca do contexto; Trocadomododousuário; Desvio para o local apropriado no programa do usuário a fim de reiniciar esse programa. Latência de despacho tempo gasto para o despachante interromper um processo e iniciar a execução de outro 34

Critérios de Escalonamento Utilização de CPU mantém a CPU ocupada pelo máximo de tempo possível; Vazão número de processos que são completados por unidade de tempo; Turnaround o tempo necessário para executar um determinado processo; Tempo de espera tempo que um processo gasta esperando na fila de prontos; Tempo de resposta tempo percorrido desde que uma requisição é submetida até a primeira resposta produzida, não até a saída (para ambiente de tempo compartilhado); 35

Critérios de otimização Utilização de CPU máxima; Throughput máxima; Turnaround mínimo; Tempo de espera mínimo; Tempo de resposta mínimo. 36

Escalonamento First-Come, First-Served Served (FCFS) Processo Burst P 1 24 P 2 3 P 3 3 Suponha que o processo chegue na ordem: P1, P2, P3.. O diagrama de Gantt para o escalonamento será: P 1 P 2 P 3 0 24 27 30 TempodeesperaparaP1 =0;P2 =24;P3=27 Tempodeesperamédio: (0+24+27)/3=17 37

Escalonamento First-Come, First-Served Served (FCFS) Suponha que o processo chegue na ordem P2,P3,P1 O diagrama de Gantt para o escalonamento será: P2 P 3 P 1 0 3 6 30 TempodeesperaparaP1=6;P2=0;P3=3 Tempodeesperamédio: (6+0+3)/3=3 Muito melhor do que no caso anterior Efeito comboio processo curto atrás de processo longo 38

Escalonamento ShortestJobFirst (SJF) Associa a cada processo a duração do seu próximo burst de CPU.Usaessestemposparaescalonaroprocessocomotempo mais curto Dois esquemas: Não-preemptivo uma vez dada ao processo, a CPU não pode ser preemptada até que complete seu burst de CPU Preemptivo se um novo processo chegar com tamanho de burst de CPU menor do que o tempo restante do processo atualmente em execução, ele é retirado. Esse esquema é conhecido como Shortest Remaining Time First (SRTF) O SJF é o ótimo provê o menor tempo de espera médio para um determinado conjunto de processos 39

Exemplo de SJF não-preemptivo Processo Chegada Burst P 1 0.0 7 P 2 2.0 4 P 3 4.0 1 P 4 5.0 4 SJF(não-preemptivo) P 1 P 3 P 2 P 4 0 3 7 8 12 16 Tempodeesperamédio=(0+6+3+7)/4=4 40

Exemplo de SJF preemptivo Processo Chegada Burst P 1 0.0 7 P 2 2.0 4 P 3 4.0 1 P 4 5.0 4 SJF(preemptivo) P 1 P 2 P 3 P 2 P 4 P 1 0 2 4 5 7 11 16 Tempodeesperamédio=(9+1+0+2)/4=3 41

Determinando o próximo burstde CPU Épossívelapenasestimaratempo; Pode serfeitousandoaduraçãodos burstdecpu anteriores, através da média exponencial; τ n+1 = αt n +(1- α) τ n t n :duraçãorealdoenésimoburstdecpu; τ n+1 :duraçãoprevistadopróximoburstdecpu; τ n :últimaprevisãodeduraçãode burstdecpu; α,0 α 1 42

Previsão da duração do próximo burstde CPU 43

Escalonamento por Prioridade Um valor de prioridade (inteiro) é associado a cada processo A CPU é alocada para o processo com a prioridade mais alta(menor inteiro = prioridade mais alta) Preemptivo; Não-preemptivo. 44

Escalonamento por Prioridade SJF é um escalonamento por prioridade em que a prioridadeéopróximotempode burstdecpuprevisto Problema Estagnação processos de baixa prioridade podem nunca ser executados Solução Envelhecimento conforme o tempo passa, aumente a prioridade do processo 45

Algoritmo de escalonamento Round-Robin(RR) Cada processo obtém uma pequena unidade do tempo de CPU (quantum de tempo), normalmente 10-100 milissegundos. Após decorrido esse tempo, o processo é escalonado e colocado no final da fila de prontos. Sehouver nprocessosnafiladeprontoseoquantumde tempo for q, então cada processo recebe 1/n do tempo de CPU em, no máximo, q unidades de tempo de cada vez. Nenhum processo espera mais do que (n-1)q unidades de tempo. 46

Algoritmo de escalonamento Round-Robin(RR) Desempenho quantumgrande FIFO quantum pequeno qprecisa ser grande com relação aotempodetrocadecontextoouocustoadicionalserá muito alto 47

Exemplo de RR com Quantum de Tempo = 20 Processo Burst P 1 53 P 2 17 P 3 68 P 4 24 OdiagramadeGantt é: P 1 P 2 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P 3 0 20 37 57 77 97 117 121 134 154 162 Normalmente, turnaround médio mais alto do que SJF, mas melhora a resposta 48

Quantum de Tempo e Tempo de Troca de Contexto 49

O Turnaround varia Conforme o Quantum de Tempo 50

Exercício Suponha que existam os seguintes processos para serem executados em um processador: Processo Tempo de execução Tempo de chegada A 12 0 B 6 3 C 2 5 D 5 8 E 9 11 F 8 13 Forneça o diagrama de Gantt e o tempo de espera médio para os métodos de escalonamento: FCFS, SJF(preemptivo enão-preemptivo)eroundrobincom quantumiguala3. 51

MultilevelQueue(fila multiníveis) Filadeprontosédivididaemfilasdistintas: primeiro plano(interativa) segundo plano(batch) Cada fila possui seu próprio algoritmo de escalonamento primeiroplano RR segundoplano FCFS 52

Multilevel Queue É necessário haver escalonamento entre as filas Escalonamento de prioridade fixa; (ou seja, serve a todos a partir do primeiro plano e depois do segundo plano). Possibilidade de estagnação. Fatia de tempo cada fila recebe uma certa parte do tempo de CPU, que pode ser escalonado entre seus processos; por exemplo, 80% para o primeiro plano no RRe20%paraosegundoplanonoFCFS 53

Escalonamento Multilevel Queue 54

Multilevel Feedback Queue Um processo pode se mover entre as várias filas o envelhecimento pode ser implementado desta forma; Escalonador da multilevel feedback queue é definido pelos seguintes parâmetros: númerodefilas; algoritmos de escalonamento para cada fila; método usado para determinar quando elevar um processo; método usado para determinar quando rebaixar um processo; método usado para determinar em que fila um processo entrará quando esse processo precisar de atendimento; 55

Exemplo de MultilevelFeedback Queue Três filas: Q 0 quantumdetempo8milissegundos; Q 1 quantumdetempo16milissegundos; Q 2 FCFS; Escalonamento Uma nova tarefa entra na fila Q 0, que é atendida com base no RR.QuandoganhaaCPU,atarefa recebe8milissegundos. Se não terminar nesse tempo, a tarefa é movida para a fila Q 1. Em Q 1, a tarefa é atendida novamente com base no RR e recebe 16 milissegundos adicionais. Se ainda não estiver completa, a tarefa é apropriada e movida para a fila Q 2, que por utilizar o FCFS, executará o processo até que termine, quando ele estiver no início da fila. 56

Multilevel Feedback Queue 57

Escalonamento em múltiplos processadores Escalonamento da CPU mais complexo quando várias CPUs estão disponíveis; Processadores homogêneos dentro de um multiprocessador; Compartilhamento de carga; Multiprocessamento assimétrico apenas um processador acessa as estruturas de dados do sistema, reduzindo a necessidade de compartilhamento de dados; 58

Escalonamento em Tempo Real Sistemas de tempo real rígido necessários para completar uma tarefa vital dentro de um período de tempo garantido; Computação em tempo real flexível exige que processos vitais tenham prioridade sobre os menos importantes; 59

Avaliação de Algoritmo Modelagem determinística define o desempenho de cada algoritmo para uma carga de trabalho predeterminada; Modelos de enfileiramento; Implementação; 60

Avaliação dos Escalonadores de CPU via Simulação 61