Sistemas Operacionais

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

INTRODUÇÃO À COMPUTAÇÃO Sistemas Operacionais
Infra-estrutura de Software - Aula de Revisão -
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
Sistemas operacionais
Processos.
Profa. Priscila Facciolli
Gerência do Processador
Gerência do Processador
Evolução Arquitetural e Microprogramação
Escalonamento Linux.
Arquitetura de Sistemas Operacionais
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
Capítulo 3 Deadlocks - Impasses 3.1. Recurso
Sistemas Operacionais
Escalonamento de Processos
Estruturas de Controle
Escalonamento Aula 7.
Arquitetura de Sistemas Operacionais
Claudio de Oliveira – Gerência do Processador 09/03/10 20:13 Claudio de Oliveira –
Threads.
Sistemas Operacionais Adriana Vettorazzo
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
Sistemas Operacionais
Gerência de Recursos Processador
Gerência do processador
Processo Entidade dinâmica e efêmera
Sistemas Operacionais Profª Adriana Vettorazzo
Escalonamento de Processos
Conteúdo Processos e threads Partes do processo
Tornar mais eficiente o aproveitamento dos recursos do computador
SISTEMAS OPERACIONAIS I
SISTEMAS OPERACIONAIS I Gerenciamento de Arquivos
Escalonamento com prioridades
Prof. Alexandre Monteiro Recife
Sistemas Operacionais
Escalonamento de Processos e Threads
GERÊNCIA DE PROCESSOS Disciplina: Sistemas Operacionais II.
Sistemas Operacionais
Prof. Werley T. Reinaldo 26/05/  Sistemas Operacionais:  Visão geral  As diferentes imagens do SO:  Visão Usuários;  Visão Projeto.  Multiprogramação;
S ISTEMAS OPERACIONAIS PROCESSOS Horácio Ribeiro.
8088 Assembly Software Básico Mitsuo Takaki.
Escalonamento de Processos
Infra-Estrutura de Software
SISTEMAS OPERACIONAIS
1 Graduação de Referência (GRefe) Engenharia da Computação Escalonamento por Jorge Luis Victória Barbosa Universidade do Vale do Rio dos Sinos
Exclusão Mútua com Espera Ociosa (1)
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
Sistemas Operacionais
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Administração de Sistemas Operacionais 1 -Windows
Sistemas Operacionais
Sistemas Operacionais
Faculdade Pernambucana - FAPE Sistemas Operacionais Prof. Flávio Gonçalves da Rocha.
Comunicação Interprocesso Condições de Disputa (corrida)
Sistemas Operacionais Multimídia Aula 12. Gerência de Processos Mapeamento de processos sobre recursos de acordo com política de escalonamento Possíveis.
Processos, Threads e Sincronização em Windows NT Alisson Felipe Coelho Garcia Lucas Mateus Malaquias Rogerio Junio Leachenski.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner
Bruna Cavallero Martins Universidade Católica de Pelotas.
Transcrição da apresentação:

Sistemas Operacionais Escalonamento preemptivo

Escalonamento Preemptivo Lembrando… O Sis. Op. escalona os processos na CPU de forma a otimizar seu uso. Várias métricas possíveis. O despachante efetua a troca de contexto entre os processos. Copia os registradores, ponteiros para o espaço de endereçamento, descritores de arquivos… O escalonador pode ser preemptivo ou não. Exemplos de não-preemptivos: FIFO, SJF, Prioridades. Os diagramas de Gantt são usados para visualizar um escalonamento.

Escalonamento Preemptivo Algoritmos de escalonamento pre-emptivos Round-Robin; Por prioridades; Múltiplas filas. Estudos de caso de escalonadores: Windows Linux Minix

Escalonamento Preemptivo O escalonamento Round Robin O escalonador define um quantum (fatia de tempo) para cada processo. Após se encerrar a fatia, o processo escalonado deve ceder o lugar na CPU a um outro. Também se perde a CPU se terminar antes do fim do quantum, ou faz um pedido de E/S. Mantém-se uma lista circular de processos prontos. Deve-se usar um mecanismo de interrupção regular, ocorrendo a cada fatia de tempo. Usa o clock.

Escalonamento Preemptivo Diagrama de Gant – Escalonamento Round Robin Ex. Quantum de duas unidades de tempo.

Escalonamento Preemptivo Round-Robin: observações Deve-se ter um algoritmo de desempate entre os processos prontos quando há uma interrupção… FIFO, SJF, prioridades… Se o quantum aumenta muito, se obtém novamente um FIFO. Espera média: A: 7 B: 6 C: 5 (7+6+5)/3 = 6.

Escalonamento Preemptivo Round-Robin: limitações e problemas O grande interesse do R.R. é sua “equidade” Todos os processos acabam tendo uma chance regular de executar. Como definir o quantum? Muito grande: = FIFO! Muito pequeno: só se faz troca de contexto… Processos I/O bound são prejudicados! Esperam tanto como os outros, mas não chegam a usar seu quantum todo! Solução: juntar Round Robin e prioridades com preempção

Escalonamento Preemptivo Prioridades com preempção Define-se prioridades para os processos. Logo que surgir um processo com maior prioridade que o que está executando, ele preempta o mesmo que volta para a fila dos “prontos”. Caso haja mais de um processo com uma dada prioridade, se aplica um segundo algoritmo de desempate. Tipicamente Round-Robin; Também pode ser um FIFO ou SJF. Neste caso, obtém-se uma lista por nível de prioridades. Quando uma fila está vazia, considera-se a lista de prioridade inferior. Múltiplas filas, com realimentação. Pode ter um algoritmo distinto de desempate em cada fila.

Escalonamento Preemptivo R.R. com prioridades e Prioridades com R.R. O Round-Robin com prioridades usa-as para desempatar processos prontos no início de uma fatia de tempo.

Escalonamento Preemptivo R.R. com prioridades e Prioridades com R.R. O algoritmo de prioridades com Round-Robin usa-o para desempatar os processos que têm uma prioridade idêntica.

Escalonamento Preemptivo Definição de prioridades Estática: a prioridade é dada na criação do processo Pelo Sis. Op., pelo usuário… Problema: há risco de postergação indefinida (starvation) para um processo com baixa prioridade. Dinâmica: a prioridade evolui durante o ciclo de vida do processo. Começa com um valor estático . Evolui depois: Aumenta a medida que o processo usa a CPU; Aumenta proporcionalmente à fração do quantum que não usou. Assim, os processos I/O bound voltam na fila de espera com alta prioridade!

Escalonamento Preemptivo Estudo de caso: windows 2000 Escalonador preemptivo com prioridades, com R.R. O quantum varia conforme a prioridade. Default (XP): 2 “clock intervalos” (10 ms em x86). Duas classes com 16 prioridades: Maior o valor, maior a prioridade. Prioridades estáticas (para tempo real) Níveis 16-31 Prioridades dinâmicas Níveis 0-15 (0 é reservado) Categorias: high (13) above normal (10) normal (8) below normal (6) idle (4) Cada nível tem uma fila usando um Round_Robin para desempatar.

Escalonamento Preemptivo Detalhes: Variação das prioridades e do quantum no Windows O processo recebe uma prioridade de base (herdada do processo pai. ) Pode ser alterada com o explorador de processos. O quantum varia conforme o ciclo de vida A prioridade varia conforme o ciclo de vida: Se há preempção, o processo preemptado entra no início da fila. Se termina uma E/S o processo sofre aumento de prioridade O aumento depende do driver de E/S. O aumento baixa com o tempo. Nunca desce em baixo da base (0 ou 16), nem aumenta acima do teto (15 ou 32).

Escalonamento Preemptivo Estudo de caso: LINUX 2.4 Duas classes de processos: Regulares: interativos & batches Tempo real. Quanto maior o valor, maior a prioridade. Regulares: de 0 até 999 Tempo real: de 1000 a 1099. A prioridade se chama “goodness” No caso tempo real, usa-se um mecanismo de prioridades estáticas Fixadas pelo usuário entre 1 e 99 (+ 1000). Com RR para desempatar (SCHED_RR); Com FIFO para desempatar (SCHED_FIFO);

Escalonamento Preemptivo Estudo de caso: LINUX 2.4 Define-se “epochs” (duração fixa de tempo). No início de uma “época”, os processos recebem um quantum de base Qi. Quando todos zeram seu quantum, começa uma nova época. Ao ser criado, um processo i recebe uma prioridade inicial (p) O usuário pode diminuir o default através da chamada de sistema nice()/setpriority()

Escalonamento Preemptivo Estudo de caso: LINUX 2.4 Sua prioridade definitiva = p + tempo de sobra em seu quantum. Enquanto o processo executa, seu quantum é decrementado. Quando zera, o processo é bloqueado. Se é preemptado antes do fim de seu quantum, prioridade = p + sobra Ou seja, obtém uma prioridade maior do que um recém-criado “normal”. Quando não tem mais nenhum processo pronto, começa um novo epoch. Prioridade(i) = p + (quantum restante)/2 Todos processos ganham novos créditos, mas quem ainda tinha tem mais!