Sistemas Operacionais ESCALONAMENTO DE PROCESSOS
Processos e Recursos
Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que executam no sistema. A questão fundamental é: Que informações o sistema operacional precisa manter para poder controlar os processos e gerenciar os recursos em benefícios deles?
Imagem do Processo Nome dado à coleção formada por: Código do programa a ser executado. Pilha (de usuário e do sistema) para controle de chamadas de procedimentos e de SVCs. Área de dados para armazenamento de variáveis locais e globais. Coleção de atributos do processo (mantidos no Bloco de Controle de Processos).
Imagem do Processo
Bloco de Controle de Processo (BCP) Estrutura de dados (registro) usada para representar um processo dentro do sistema operacional. Mantém todas as informações que o S.O precisa para poder controlar a execução do processo (coleção de atributos do processo). Número fixo ou variável de blocos descritores de processos (alocação estática x alocação dinâmica de memória). Process Control Block.
Informações Típicas do BCP Prioridade do processo. Localização na memória principal. Identificação dos arquivos abertos. Estado do processo. Contexto de execução (conteúdo dos registradores). Ponteiros para encadeamento nas filas. Informações de accounting (ex:tempo de CPU).
BCPs e as Filas do Sistema
Tipos de Informações do BCP As informações mantidas no BCP podem ser divididas em três categorias: Identificação do processo; Informações de estado do processador; Informações de controle do processo.
Identificação do Processo Os seguintes identificadores podem estar armazenados no BCP : Identificador do processo; Identificador do processo que o criou (processo pai); Identificador do usuário.
Informações de Controle do Processo Registradores visíveis ao usuário Aqueles que podem ser referenciados por meio da linguagem de máquina que o processador executa. Registradores de controle e estado Program Counter (PC); Flags: sign, zero, carry, equal, overflow; Status: modo supervisor x usuário, interrupção habilitada x disabilitada. Stack Pointers.
Informações de Controle do Processo Informações de Escalonamento e Estado: Estado do processo (ready, running, suspended, etc.) Prioridade (default, corrente, máxima) Tempo de espera na fila Tempo de execução na última fatia de tempo Evento que o processo está aguardando Estruturação de dados: Um processo pode estar encadeado a outros em uma fila, lista ou outra estrutura de dados.
Informações de Controle do Processo Comunicação entre processos: Flags, sinais e mensagens podem estar associados com a comunicação entre dois processos independentes. Algumas ou todas essas informações podem estar mantidas no BCP. Privilégios em termos de memória que pode ser acessada, instruções que podem ser executadas, ou mesmo serviços e utilitários do sistema.
Informações de Controle do Processo Gerência de Memória: Ponteiros para tabelas de páginas ou de segmentos que descrevem a memória virtual assinalada ao processo. Ownership e utilização de recursos: Arquivos abertos; Histórico de uso da UCP ou de outro recurso (para usos do escalonador);
Razões para Suspender Processos Do SO Swapping: para liberar espaço na memória principal para trazer outro processo da memória secundária SO pode suspender um processo em background utilitário suspeito de estar causando problemas Solicitação de usuário interativo Temporização: determinados processos são executados periodicamente Solicitação do processo pai
Conceito de Escalonamento Escalonamento consiste em determinar, dentre os processos prontos, qual o próximo processo a ser executado Realizado por um componente do sistema operacional denominado escalonador Dois tipos de escalonadores longo prazo curto prazo
Conceito de Escalonamento Escalonador longo prazo memória secundária memória principal Escalonador curto prazo memória principal processador Principais objetivos maximizar a utilização do processador maximizar o número de processos completados por unidade de tempo garantir que todos os processos recebam o processador minimizar o tempo de resposta para o usuário
Nas transições entre estados, o PCB do processo é movido entre as filas apropriadas Conceito de Escalonamento Para cada estado, existe uma fila que contém os PCB's executando pcb3 prontos pcb1 pcb5 pcb2 e/s disco pcb4 pcb6 bloqueados e/s terminal pcb9 e/s impressão pcb8 pcb7 pcb10
Conceito de Escalonamento Uma visão dos escalonadores do sistema operacional Longo-Prazo Curto-Prazo Fila de Prontos CPU FIM I/O Fila Espera
Conceito de Escalonamento Dispatcher: responsável por passar o controle da CPU para o processo selecionado pelo escalonador de curto prazo, envolve: mudança de contexto mudança para o modo usuário salto para a posição adequada dentro do processo selecionado para reiniciar sua execução Latência de despacho Tempo gasto pelo dispatcher para interromper um processo e começar a execução de um outro
Representação do Escalonamento fila de processos prontos CPU I/O fila de dispositivo requisição de I/O término de fatia de tempo filho em execução criação de um processo filho interrupção ocorre em espera por uma interrupção
Adição de Escalonador Intermediário carregar processos em execução parcialmente removidos da memória remover fila de processos prontos CPU terminar I/O fila de espera por I/O
Conceito de Escalonamento Mudança de contexto CPU é chaveada para outro processo SO deve salvar o estado do processo antigo e carregar o estado do novo processo Implica overhead SO não realiza nenhum trabalho útil durante os chaveamentos Tempo consumido é dependente do suporte de hardware fornecido
exec. ocioso ocioso executando ocioso exec. Chaveamento da CPU interrupção ou chamada ao sistema SO armazenar estado no PCB 0. recarregar estado no PCB 1 interrupção ou chamada ao sistema Processo P 0 armazenar estado no PCB 1. recarregar estado no PCB 0 Processo P 1
Troca de Contexto Contexto de execução: estado do processador Ações na troca de contexto Salvar o contexto do processador, incluindo o PC e outros registradores. Alterar o BCP do processo que está no estado emexecução (running). Mover o BCP para a fila apropriada. Selecionar outro processo para execução. Alterar o BCP do processo selecionado. Alterar as tabelas de gerência de memória. Restaurar o contexto do processo selecionado.
Características dos Escalonadores Escalonador da CPU é invocado muito freqüentemente (milissegundos) precisa ser rápido Escalonador de processos é invocado com muito pouca freqüência (segundos, minutos) pode ser lento O escalonador de processos controla o grau de multiprogramação do sistema
Conceito de Escalonamento Os escalonadores são implementados por algoritmos dentro do sistema operacional Critérios para comparar a eficiência dos algoritmos utilização da CPU (1) taxa de saída (throughput) (2) turnaround time (3) tempo de espera (4) tempo de resposta (5) Objetivos maximizar (1) e (2) minimizar (3), (4) e (5)
Conceito de Escalonamento Considerações Tipo de processamento batch interativo CPU bound I/O bound Tipo de sistema monoprogramado (?) multiprogramado time-sharing tempo-real multiprocessado política de escalonamento (scheduling policies)
Critérios de Escalonamento Orientados ao Usuário e Desempenho Uso do processador mede a porcentagem de tempo em que a CPU está ocupada importante em tempo compartilhado não muito importante em sistemas monousuário e temporeal Tempo de resposta processos interativos tempo entre uma requisição e o início da resposta do ponto de vista do usuário qual seria o tempo de resposta ideal?
Critérios de Escalonamento Orientados ao Usuário e Desempenho Deadlines (prazos) quando o prazo de término pode ser especificado o sistema deveria fazer o melhor esforço para atender todos os prazos Previsibilidade um dado processo deveria executar sempre em um tempo médio previsível a carga do sistema não deveria impor variações
Critérios de Escalonamento Orientados ao Sistema e Desempenho Throughput (vazão) número de processos completados por unidade de tempo, depende: do tamanho dos processos das políticas de escalonamento Turnaround intervalo de tempo entre a submissão de um processo e o seu término inclui o tempo de execução, espera por recursos medida para sistemas batch Waiting time quantidade total de tempo que um processo esteve esperando na fila de prontos
Critérios de Escalonamento Orientados ao Sistema Justiça processos devem ser tratados igualmente, a menos que especificado o contrário processos não deveriam sofrer starvation Prioridades processos mais prioritários devem efetivamente ser favorecidos problema da inversão de prioridade Balanceamento de recursos recursos devem ficar ocupados o máximo possível processos que não vão utilizar recursos sobrecarregados devem ser favorecidos
Escalonamento de Processos Longa duração decisão de se adicionar um processo ao pool de processos para serem executados admissão ao sistema Duração média decisão de se adicionar ao número de processos que está completamente ou parcialmente na memória swapping, memória virtual
Escalonamento de Processos Curta duração decisão de qual processo disponível será executado interrupção de clock e I/O, chamadas ao sistema, signals I/O decisão de qual processo que está na fila de espera por uma requisição de I/O será tratado
Escalonamento de Processos Tipos não-preemptivo: processo executando não pode ser interrompido preemptivo: processo pode ser retirado do processador Políticas mais comuns: First-Come-First-Served (FCFS) Shortest Job First (SJF) Prioridade Múltiplas Filas Round-Robin