Processos.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Escalonamento de Processos Uniprocessador
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais Gerência de Processador
Sistemas Operacionais
INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Sistemas Operacionais Gerência de Processador WebDesign Redes de Computadores.
Escalonamento de Processos
Threads (Linha de execução )
Profa. Priscila Facciolli
Gerência do Processador
Gerência do Processador
Sistemas Operacionais
Processos no Unix e Linux
Escalonamento Linux.
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Chapter 4: Threads.
Capítulo 5: Escalonamento de CPU
SSC SISTEMAS OPERACIONAIS I Aulas 6 – Escalonamento de Processos
SSC SISTEMAS OPERACIONAIS I Aulas 5 – Escalonamento de Processos
Alessandro Nakamuta Bruno Guazzelli Batista
SSC SISTEMAS OPERACIONAIS I
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
Sistemas Operacionais
Escalonamento de Processos
Processos Conceitos Básicos.
Estruturas de Controle
Escalonamento Aula 7.
Arquitetura de Sistemas Operacionais
Curso Técnico em Manutenção e Suporte em Informática
Claudio de Oliveira – Gerência do Processador 09/03/10 20:13 Claudio de Oliveira –
Threads.
Sistemas Operacionais I
Sistemas Operacionais
Arquitetura de computadores
Conceitos de sistema operacional com Java – 7 a edição, 15/11/2006 Silberschatz, Galvin e Gagne ©2007 Capítulo 5: Escalonamento de CPU.
Sistemas Operacionais
Sistemas Operacionais Aula 4
Unidade 1-1 Processos e Threads
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Gerência de Recursos Processador
Sistema Operacional Processos
Sistemas Operacionais Profª Adriana Vettorazzo
Unidade 2 - Parte 1 Programação Concorrente
Escalonamento de Processos
Conteúdo Processos e threads Partes do processo
Tornar mais eficiente o aproveitamento dos recursos do computador
Processos.
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Computação L1: Infra-Estrutura Básica
Sistemas Operacionais
Escalonamento com prioridades
Prof. Alexandre Monteiro Recife
Sistemas Operacionais
Escalonamento de Processos e Threads
GERÊNCIA DE PROCESSOS Disciplina: Sistemas Operacionais II.
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
S ISTEMAS OPERACIONAIS PROCESSOS Horácio Ribeiro.
Escalonamento de Processos
Capítulo 4: Processos.
Bruno Affonso Diego Chiquito Ruan Berté.   O código de Escalonamento no Windows é implementado no Kernel.  A rotina que desempenha as tarefas do Escalonador.
Gerenciamento de Memória Sistemas Recentes
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Sistemas Operacionais
Sistemas Operacionais
Transcrição da apresentação:

Processos

Conceitos de Processos Programa: seqüência de instruções com diferentes fluxos de execução comandos condicionais e interativos (entidade passiva) Processo: um programa em execução (entidade ativa) Vários processos podem existir ao mesmo tempo no sistema Processador se reveza entre os processos 

Conceitos de Processos Quando o processador muda de um processo para outro, algumas informações devem ser salvas (identificação do processo, estado da máquina, ponteiro da área de dados, de código entre outras) Ao conceito de processo estão associadas algumas informações que caracterizam o seu contexto de execução

Conceitos de Processos Termos: job = processo Um processo inclui contador de instruções pilha área de dados

Conceitos de Multiprogramação Vantagem aumento da taxa de utilização do processador melhor utilização dos recursos redução do tempo de execução de um conjunto de programas A multiprogramação dá a idéia ao usuário de que ele possui uma máquina só para si

Conceitos de Multiprogramação

Conceitos de Processo Representação de um processo no SO bloco de controle de processo (PCB) contém informações necessárias ao controle do processo pelas áreas de código e dados na memória

Conceitos de Processo Informações associadas à cada processo estado do processo apontador de instruções registradores da CPU informações relativas ao escalonamento da CPU informações relativas ao gerenciamento de memória dados para contabilidade (estatísticas) informações relativas ao status de I/O

Process Control Block . registradores número do processo apontador de instruções limites na memória lista de arquivos abertos . estado do processo ponteiro

Criação de Processo Sistemas antigos: só o sistema operacional podia criar novos processos Sistemas atuais, os usuários podem criar e destruir processos dinamicamente. SO deve fornecer chamadas para a manipulação e gerência de processos Quando um novo processo é criado, o seu PCB é preparado com as informações básicas e colocado na fila de prontos

Criação de Processo atribui um pid único alocar as estruturas de dados associadas a um processo alocar o espaço necessário em memória PCB deve ser iniciado consistência das listas do SO devem ser mantidas outras estruturas devem ser iniciadas (ex.: account)

Criação de Processo Estrutura com lista de processos Identificação do processo Informação do Estado de Controle Pilha do Usuário Espaço de Endereçamento privativo do usuário (programas, dados) Compartilhado Criação de Processo PCB Processo de usuário na memória PCB executando pronto bloqueado PCB PCB PCB PCB PCB Estrutura com lista de processos

Criação de Processo Processos pais criam processos filhos, que podem criar novos processos  árvore de processos Compartilhamento de recursos Pais e filhos compartilham os mesmos recursos Filhos compartilham um subconjunto dos recursos do pai Pais e filhos não compartilham algum recurso Execução Pai e filhos executam concorrentemente Pai aguarda até que os filhos terminem

Criação de Processo Espaço de endereçamento Filho é uma cópia do pai Filho tem um novo programa carregado Exemplos do UNIX Chamada ao sistema fork cria novos processos execve usada após um fork para sobrepor o espaço de endereçamento do processo com um novo programa

Árvore de Processos: SO Unix Típico root pagedaemon swaper init user 1 user 2 user 3

Finalização de Processos Processos executam a última linha  chamar o SO para controlar a terminação (exit) saída de dados do filho para o pai (wait) recursos do processo são desalocados pelo SO

Finalização de Processos Pais podem terminar a execução de processos filhos (abort) filhos excederam os recursos alocados tarefa de encumbência do filho não é mais necessária Pai está terminando SO não permite que o filho continue se o seu pai terminou terminação em cascata

Processos Cooperativos Processos independentes não podem afetar a execução de outros processos. Processos cooperativos podem afetar ou ser afetados pela execução de um outro processo envolvido Vantagens da cooperação entre processos: Compartilhamento de informações Aumento da velocidade de computação (speedup) Modularidade Conveniência

Threads Thread (ou processo leve ) é uma unidade básica de utilização da CPU, que consiste em: apontador de instruções conjunto dos registradores espaço de pilha Uma thread compartilha com threads irmãs: área de código área de dados recursos do sistema operacional (coletivamente conhecidos como tarefa) Um processo tradicional é equivalente a uma tarefa com uma única thread

Interação entre Threads Área de Dados 0100100001 000 1111010001100010101010 101001011 110 011111111111110000101010010 01 11 0000101011010100010111 111110110111111 00100 101 Área de Código Recursos do Sistema Tarefa Apontador 45B8DD Registradores AX=9 BX=0 Pilha var1, var2... Thread 1 FFE56A AX=7 BX=4 var3, var8... Thread 2

Múltiplas Threads em uma Tarefa Área de Dados Área de Código threads apontadores de instrução

Threads Numa tarefa dotada de múltiplos fluxos de execução, enquanto um fluxo está bloqueado, um outro fluxo na mesma tarefa pode continuar executando cooperação de múltiplas threads em uma mesma tarefa aumenta o throughput e o desempenho. aplicações que requerem o compartilhamento de buffers (p.ex., produtores e consumidores) se beneficiam da utilização de threads O mecanismo de threads permite que processos seqüenciais sejam executados paralelamente, apesar de poderem fazer chamadas ao sistema que bloqueiam processos

Threads Threads oferecidas pelo kernel (Mach e OS/2) Threads no nível de usuários, suportadas acima do kernel, via chamadas para um conjunto de bibliotecas no nível do usuário (Posix Pthreads) Enfoque híbrido implementa tanto threads no nível do usuário quanto threads suportadas pelo kernel (Solaris 2)

Estados de um Processo A execução de um processo é composta por ciclos de execução na CPU (CPU-burst) na E/S (I/O-burst) Durante o seu tempo de vida, um processo pode encontrar-se em diferentes estados

Estados de um Processo novo: O processo está sendo criado executando: Suas instruções estão sendo executadas espera: O processo está esperando pela ocorrência de algum evento pronto: O processo está esperando para ser escalado para a execução terminado: O processo terminou sua execução

Estados de um Processo Transições possíveis entre os estados NENHUM NOVO NOVO PRONTO PRONTO EXECUTANDO EXECUTANDO TERMINADO EXECUTANDO PRONTO EXECUTANDO BLOQUEADO BLOQUEADO PRONTO PRONTO TERMINADO BLOQUEADO TERMINADO

Estados de um Processo MODELO DE DOIS ESTADOS Diagrama de transição Executando Parado entrada saída despachado pausa/bloqueio (time-out ou interrupção) Diagrama de fila pausa/bloqueio Processador entrada despachado saída fila

Estados de um Processo MODELO DE CINCO ESTADOS Novo Pronto Executando CRIAÇÃO DO PROCESSO FIM DO PROCESSO Despachado (pelo escalonador) Novo Pronto Executando Saída admitir liberar Time-out (preempção) ou interrupção desbloqueado quando o evento esperado ocorre bloqueado a espera de um evento Bloqueado

Conceito de Escalonamento Para cada estado, existe uma fila que contém os PCB's nas transições entre estados, o PCB do processo é movido entre as filas apropriadas

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

memória secundária  memória principal 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

Conceito de Escalonamento Uma visão dos escalonadores do sistema operacional

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

Filas de Prontos e de I/O cabeçalho final PCB 3 PCB 1 PCB 37 registradores . PCB 5 PCB 19 Fila de Prontos PCB 22

fila de processos prontos Representação do Escalonamento término de fatia de tempo requisição de I/O em espera por uma interrupção criação de um processo filho interrupção ocorre filho em execução fila de dispositivo fila de processos prontos CPU

parcialmente removidos Adição de Escalonador Intermediário fila de espera por I/O fila de processos prontos CPU terminar processos em execução parcialmente removidos da memória carregar remover

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

Chaveamento da CPU exec. executando ocioso . SO Processo P0 interrupção ou chamada ao sistema Processo P0 exec. ocioso Processo P1 executando recarregar estado no PCB0 armazenar estado no PCB1 armazenar estado no PCB0 recarregar estado no PCB1 . interrupção ou chamada ao sistema SO

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 tempo-real 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

First-Come-First-Served Não preemptivo por definição Primeiro processo da fila é o primeiro a ser executado Processos usam a CPU até terminar todo processamento Mesmo com alguma intercalação, processos com menor prioridade podem prejudicar processos com maior prioridade inversão de prioridade starvation

First-Come-First-Served

First-Come-First-Served Exemplo: Processo Tempo de execução P1 24 P2 3 P3 3 Suponha que os processos chegaram na seguinte ordem: P1 , P2 , P3 1. Qual seria o diagrama de Gannt, o waiting time para cada um dos processos e o waiting time médio?

First-Come-First-Served Diagrama de Gantt para o escalonamento: Waiting time para P1 = 0; P2 = 24; P3 = 27 Waiting time médio: (0 + 24 + 27)/3 = 17 P1 24 27 30 P2 P3

Shortest-Job-First Pode ser preemptiva ou não-preemptiva Cada processo é associado ao seu tempo de uso do processador Escalonado o processo com o menor tempo de CPU privilegiam processos menores reduzem o tempo médio de espera na fila de prontos Problema: Como determinar quanto tempo de CPU será necessário?

Shortest-Job-First Tanto o escalonamento FIFO quanto o SJF não são utilizados em sistemas de time-sharing (por quê ?)

Shortest-Job-First A política SJF é ótima, minimizando o tempo médio de espera de um conjunto de processos Dificuldade: determinar antecipadamente o tempo de processador de cada processo Na prática, o tempo é estimado, é utilizada uma aproximação

Shortest-Job-First: não preemptivo Processo Tempo de chegada Duração da rajada P1 0.0 7 P2 2.0 1 P3 4.0 4 P4 5.0 4 SJF (não preemptivo) waiting time médio = (0 + 5 + 4 + 7)/4 = 4 7 3 16 8 12 P1 P2 P3 P4

Shortest-Job-First: preemptivo Processo Tempo de chegada Duração da rajada P1 0.0 7 terminado P2 2.0 4 terminado P3 4.0 1 terminado terminado P4 5.0 4 SJF (preemptivo) P1 2 P2 5 P3 4 7 P4 P1 11 16 waiting time médio = (9 + 1 + 0 +2)/4 = 3

Shortest-Job-First: preemptivo Processo Tempo de chegada Duração da rajada P1 0.0 7 2 P2 P2 2.0 4 tempo restante: 5 ? 16 P1 terminado P4 5.0 4 7 P2 terminado 5 P3 4.0 1 P3 4 tempo restante: 2 terminado 11 P4 terminado SJF (preemptivo) P1 ? waiting time médio = (9 + 1 + 0 +2)/4 = 3

Shortest-Job-First Determinação do tempo de CPU, pode: somente estimar a próxima duração ser feita usando a duração de tempo de CPU anteriores, usando-se média exponencial

Shortest-Job-First  =0 n+1 = n  História recente não conta  =1 n+1 = tn  Somente o último tempo de CPU (rajada) é condiserado Se expandirmos a fórmula teremos n+1 =  tn+(1 - )  tn-1 + … +(1 -  ) j  tn-1 + … +(1 -  )n+1 tn 0 Uma vez que tanto  como (1 - ) são menores ou iguais a 1, cada termo tem peso menor do que o seu predecessor

Shortest-Job-First Preemptivo Permite que se dê atenção mais rapidamente a processos mais prioritários Melhores respostas em sistemas time-sharing Compartilhamento do processador tende a ser mais uniforme Troca de processos na CPU gera overhead Estabelecer de forma otimizada os critérios para a preempção Procurar utilizar processos leves quando possível

Prioridade A cada processo é atribuída uma prioridade O processo com maior prioridade é atribuído ao processador Pode ser não-preemptiva ou preemptiva não-preemptiva: o processo libera espontaneamente o processador preemptiva : o processo executando é interrompido caso chegue à fila de prontos um processo com maior prioridade

Prioridade Atribuição de prioridades estática: o processo tem uma prioridade fixa durante o seu tempo de vida dinâmica: prioridade muda ao longo do tempo de vida do processo, de acordo com o seu comportamento

Prioridade Atribuição de prioridades Dinâmica pode ser ajustada de acordo com tipo de processamento realizado a carga do SO quando o processo passa do estado de espera para o estado executando ele é penalizado e sua prioridade é reduzida, processos  CPU bound terão suas prioridades reduzidas a cada passagem para o estado executando  I/O bound ficam em estado de espera com freqüência, processos CPU bound não serão prejudicados Atribuição de prioridades normalmente é feita pelo SO pode ser configurada pelo superusuário processos de usuário recebem uma prioridade máxima de usuário usuário pode diminuir a prioridade de seus processos ex.: comando renice do Unix Estática é atribuída quando o processo é iniciado não é alterada durante a existência do processo pode oferecer tempos de resposta aceitáveis Observação SO pode associar à alta prioridade um número escalar pequeno  0 significa a maior prioridade

Prioridade Processo A Processo B 4 u.t. 4 u.t. 2 u.t. 3 u.t. 2 u.t. B solicita I/O preempção por B 4 u.t. B solicita I/O 2 u.t. A solicita I/O 3 u.t. 2 u.t. B solicita I/O 5 u.t. preempção por B 3 u.t. B solicita I/O 1u.t. 4 8 10 13 16 18 23 26 27 tempo Tempo de CPU (u.t.) Característica do Processo Prioridade Processo A 13 CPU bound 1 menor Processo B 11 I/O bound 0 maior

Prioridade Vantagens é possível fazer diferenciação entre processos adaptabilidade (prioridades dinâmicas) Desvantagem starvation: um processo com baixa prioridade pode nunca ser atribuído ao processador solução: aumentando, em intervalos regulares, a prioridade dos processos que estão há muito tempo esperando

Round-Robin Escalonamento do tipo preemptivo Cada processo executa durante uma fatia de tempo (time-slice ou quantum) Ao final da fatia de tempo, o processo executando é inserido no final da fila de prontos Processo na frente da fila de prontos recebe o processador

Round-Robin

Round-Robin Bom para tempo compartilhado Similar a FIFO + tempo limite para execução (time-slice ou quantum) terminado o quantum, o processo é devolvido (preempção) para o final da fila de prontos processos não monopolizam a CPU quantum entre 100 a 300 ms

Round-Robin Processo A Processo B tempo 5 u.t. 4 u.t. 2 u.t. 2 u.t. termina quantum de A 4 u.t. B solicita I/O A solicita I/O 2 u.t. B solicita I/O 2 u.t. 5 u.t. termina quantum de A 2 u.t. B solicita I/O 3 u.t. A solicita I/O 5 9 11 13 16 21 23 26 27 tempo Tempo de CPU (u.t.) Característica do Processo Processo A 15 CPU bound Processo B 8 I/O bound

pequena: tempo de troca de contexto torna-se significativo Round-Robin Vantagem do escalonamento Robin Round  simplicidade Tamanho da fatia de tempo é crucial no escalonamento circular pequena: tempo de troca de contexto torna-se significativo grande: aumenta o tempo de resposta dos processos no final da fila de prontos

Round-Robin Se existem n processos na fila de prontos Se quantum = q  cada processo tem 1/n do tempo de CPU em fatias de no máximo q unidades de tempo cada Nenhum processo espera por mais de (n-1) q unidades de tempo para ser atendido

Round-Robin Desempenho quantum = muito grande  FIFO quantum = muito pequeno  q deve ser grande comparado a mudança de contexto, caso contrário, o overhead é muito elevado

Round-Robin Processo Tempo de execução P1 53 P2 17 P3 68 P4 24 Diagrama de Gantt (quantum = 20 u.t.) Tipicamente, temos turnaround time médio maior que na SJF, mais em compensação melhor resposta 20 37 57 77 97 117 121 134 154 162 P1 P2 P3 P4

Como um pequeno quantum de tempo aumenta as mudanças de contexto tamanho do processo: 10 u.t. 10 12 6 10 1 1 2 3 4 5 6 10 7 8 9

Múltiplas Filas Política do tipo preemptiva Prioridades são atribuídas às classes de processos Processos das classes de maior prioridade recebem o processador Processos podem migrar entre classes de acordo com seu comportamento Vantagem: adaptabilidade de acordo com o comportamento do processo

Múltiplas Filas Processos são classificados em função do tipo de processamento Cada grupo formado  fila associada Fila de prontos associada a cada grupo permite aplicação de tipos de escalonamento diferentes

Múltiplas Filas Cada fila possui uma prioridade SO só vai escalonar processos em uma fila se todos os processos das filas de maior prioridade estiverem vazias

Múltiplas Filas

algoritmo de escalonamento por prioridades interativo sistema mais prioritário algoritmo de escalonamento por prioridades interativo prioridade intermediária escalonamento Round-Robin batch menor prioridade usa Round-Robin ou FCFS Exemplo Maior Prioridade Fila de Processos do Sistema Fila de Processos Interativos Fila de Processos Batch Menor Prioridade

Múltiplas Filas com Realimentação Escalonamento anterior a classificação dos processos era estática Se processo alterar seu comportamento, o esquema pode falhar (não existe reclassificação) Seria interessante que o SO reconhecesse a alteração de comportamento de um processo ajustasse dinamicamente o seu tipo de escalonamento

Múltiplas Filas com Realimentação No escalonamento por múltiplas filas com realimentação (multi-level feed-bak queues) é permitido que os processos sejam movimentados entre as filas ajuste dinâmico (mecanismo adaptativo) processo é direcionado para uma das filas em função de seu comportamento

Múltiplas Filas com Realimentação: Funciomanto Criação do processo  prioridade mais alta e quantum mais baixo Cada fila pode implementar uma política de escalonamento diferente para chegar a CPU: FIFO com quantum SJF RR

Múltiplas Filas com Realimentação: Funciomanto Processo é reescalonado dentro da mesma fila quando processo volta ao estado de pronto sofre preempção por outro processo de uma fila mais prioritária Processo é direcionado para fila de menor prioridade e maior quantum quando processo esgota o seu quantum (sofrendo preempção)

Múltiplas Filas com Realimentação: Funciomanto Quanto maior a prioridade menor o quantum Escalonamento de uma fila só acontece depois que todas as outras filas de prioridade mais alta estão vazias Fila de menor prioridade  Round-Robin

Múltiplas Filas com Realimentação: Características Atende as necessidades de escalonamento de diversos tipos de processos Processos I/O bound bom tempo de resposta: maior prioridade permanecem a maior parte do tempo nas filas de alta prioridade usa pouco a CPU

Múltiplas Filas com Realimentação: Características Processos CPU bound com o transcorrer do processamento sua prioridade vai sendo reduzida É um mecanismo complexo e gera overhead, mas os resultados são satisfatórios

Múltiplas Filas com Realimentação: Exemplo 1 Maior Prioridade Menor Prioridade Maior quantum Menor quantum Fila 1 (escalonamento FIFO) preempção por término de quantum Fila 2 (escalonamento FIFO) preempção por término de quantum Fila 3 (escalonamento FIFO) ... preempção por término de quantum Fila m (Round-Robin)

Múltiplas Filas com Realimentação: Exemplo 2 quantum = 8 quantum = 16 FCFS