Gerncia de processos Estudos de caso - BSD Unix Escalonamento - - PowerPoint PPT Presentation

ger ncia de processos estudos de caso bsd unix
SMART_READER_LITE
LIVE PREVIEW

Gerncia de processos Estudos de caso - BSD Unix Escalonamento - - PowerPoint PPT Presentation

Gerncia de processos Estudos de caso - BSD Unix Escalonamento preemptivo com prioridades dinmicas Prioridades entre 0 e 127 0 a 49 Processos executando em modo kernel 50 a 127 Processos executando em modo usurio 32


slide-1
SLIDE 1

Gerência de processos Estudos de caso - BSD Unix

 Escalonamento preemptivo com prioridades

dinâmicas

–Prioridades entre 0 e 127

0 a 49

Processos executando em modo kernel

50 a 127

Processos executando em modo usuário

– 32 filas de pronto

slide-2
SLIDE 2

Gerência de processos Estudos de caso - BSD Unix

– Prioridade recalculada a cada 4 ticks (~ 40 ms)

pusrpri=PUSER[ pestcpu 4

]2× pnice

pestcpu Estimativa para uso recente da CPU pelo processo pnice Peso entre −20 e 20

slide-3
SLIDE 3

Gerência de processos Estudos de caso - BSD Unix

– p_estcpu incrementado a cada tick, se o processo

estiver executando

 Aprox. 90% do uso da CPU acumulado em 1 s é

esquecido após um período de tempo, em função da carga no sistema.

p estcpu=2×load 

2×load1⋅p estcpu p nice

load Média amostrada da soma dos comprimentos da fila de pronto e da fila de bloqueado no minuto anterior

slide-4
SLIDE 4

Gerência de processos Estudos de caso - BSD Unix

– Para processos bloqueados por mais de 1 s,

prioridades são recalculadas quando se tornam prontos.

pestcpu=[ 2×load 2×load1 ]

pslptime

× pestcpu

p_slptime Tempo estimado do processo no estado de bloqueado (incrementado a cada 1 s).

slide-5
SLIDE 5

Gerência de processos Estudos de caso - Windows NT

 Escalonamento preemptivo com prioridades

dinâmicas

– Unidade de escalonamento: thread – Threads possuem prioridade base e prioridade

corrente (alterada temporariamente)

– Prioridades entre 0 e 31 (31 = maior prioridade)

 0

Thread ociosa

 1 a 15

Níveis variáveis

 16 a 31

Níveis de tempo-real

slide-6
SLIDE 6

Gerência de processos Estudos de caso - Windows NT

 Win32 API mapeia prioridades de processos e

threads para prioridades do NT

slide-7
SLIDE 7

Gerência de processos Estudos de caso - Windows NT

– Elevação da prioridade de threads ao sair de estado

de bloqueio ou espera

 Prioridade decrementa em uma unidade a cada ciclo, até

retornar à prioridade base da thread

slide-8
SLIDE 8

Gerência de processos Estudos de caso - Windows NT

– Elevação da prioridade de threads que vão entrar

em estado de bloqueio ou espera

 Prioridade de threads interativas incrementa de 8 para 14  Quantum dobra thread fica pronta  Prioridade volta ao normal quando termina o quantum

– Incremento do quantum de threads do processo

foreground

 Pode manter o valor, duplicar ou triplicar

slide-9
SLIDE 9

Gerência de processos Estudos de caso - Windows NT

– Elevação da prioridade de threads que estão sendo

postergadas repetidamente

 Threads prontas a mais de 300 ticks (~ 4 s) ganham

prioridade 15, e quantum é dobrado

 Prioridade volta ao normal assim que o quantum duplicado

termina

slide-10
SLIDE 10

Gerência de processos Operações sobre processos (Linux)

 Descrição de processos

– Processos possuem um ID único (PID) – Possuem um usuário dono (UID) e um usuário

efetivo (EUID), assim como grupo dono (GID) e grupo efetivo (EGID)

– Prioridade base (nice) pode ser alterada – Toda a memória e objetos de sua posse estão

protegidos de outros processos

slide-11
SLIDE 11

Gerência de processos Operações sobre processos (Linux)

 Escalonamento no Linux:

– Custo computacional independente do número de

processos

– Usa prioridades: processos são organizados em

140 filas (uma para cada prioridade)

– Fila 1 tem prioridade mais alta – Dois conjuntos de filas:

 Filas ativas: processos sendo escalonados  Filas expiradas: processos que consumiram todo o

quantum de tempo

slide-12
SLIDE 12

Gerência de processos Operações sobre processos (Linux)

 Escalonamento no Linux: filas

slide-13
SLIDE 13

Gerência de processos Operações sobre processos (Linux)

 Filas ativas X expiradas:

– Processo movida da fila ativa para expirada quando

zera seu crédito de CPU

– Seu novo crédito de CPU (e prioridade) é

recalculado, definindo sua nova fila

– Quando fila ativa de uma determinada prioridade

fica vazia, é permutada pela fila expirada correspondente

slide-14
SLIDE 14

Gerência de processos Operações sobre processos (Linux)

 Preempção de processos:

– Processo em execução (estado rondando)

preemptado imediatamente se um processo mais prioritário se torna apto

– Processo preemptado volta para sua fila de

prioridade, e seu crédito de CPU é reduzido de acordo com o tempo que ficou em execução

slide-15
SLIDE 15

Gerência de processos Operações sobre processos (Linux)

 Prioridades dinâmicas:

– Prioridades são recalculadas para se adaptarem ao

comportamento do processo

– Processos CPU-bound são penalizados, e IO bound

são recompensados

 CPU bound: prioridades acrescidas de até 5 unidades  IO bound: prioridades reduzidas em até 5 unidades

– Interatividade calculada com base em quanto tempo

um processo executa, comparado a quanto tempo fica bloqueado (em espera)

slide-16
SLIDE 16

Gerência de processos Operações sobre processos (Linux)

 Prioridades dinâmicas:

– O crédito de uso de CPU (chamado timeslice) é

modificado junto com a prioridade

– Prioridades maiores → timeslices também maiores – Timeslice tem valores entre:

 5 ms: menor valor possível  100 ms: valor típico  800 ms: valor máximo

slide-17
SLIDE 17

Gerência de processos Outras referências

 Para saber mais:

Vários. "The Design and Implementation of the 4.4 BSD Operating System". Addison-Wesley, 1996.

  • D. Solomon."Inside Windows NT,2nd ed.". Microsoft Press,1998.
  • R. Stevens."Advanced Programming in the Unix

Environment".Addison-Wesley, 1992. Páginas de manual do Linux (man pages)

slide-18
SLIDE 18

Gerência de memória - Introdução

 Memória primária: recurso fundamental

Todos os dados

usados por processos e sistema operacional precisam em algum momento residir em memória primária

Recurso escasso

slide-19
SLIDE 19

Gerência de memória - Introdução

 Processo

Linux em memória

slide-20
SLIDE 20

Gerência de memória - Introdução

 Problemas quanto à gerência de memória

– Alocação

 Controle de que partes da memória estão alocadas a que

  • processos. Atendimento das necessidades de memória

dos processos.

– Proteção

 Um processo não pode alterar ou ler a memória de outro

processo, a não ser que isto seja desejável.

– Eficiência no uso

 Aproveitamento da memória disponível

slide-21
SLIDE 21

Gerência de memória - Alocação

 Alocação com partições fixas

– Espaço de endereçamento dividido em partições de

tamanho fixo.

slide-22
SLIDE 22

Gerência de memória - Alocação

 Alocação com partições variáveis

– São alocadas aos processos suas necessidades

exatas de memória

Ex: processos A, B, C e D usando a memória ao longo do tempo. As áreas sombreadas são memória livre.

slide-23
SLIDE 23

Gerência de memória - Alocação

 Alocação: problemas

– Ambas abordagens apresentam sérios problemas:

 Fragmentação interna (partições fixas)  Fragmentação externa (partições variáveis)

– Atualmente usa-se endereçamento virtual

 Cada processo vê a memória como se fosse só sua  Um processo não vê os demais processos

slide-24
SLIDE 24

Gerência de memória - paginação

 Endereçamento virtual: paginação

– Dividem-se os espaços de endereçamento real e

virtual em pequenos blocos de mesmo tamanho.

 Os blocos virtuais são chamados de páginas.  Os blocos reais são chamados de page frames.

– Mapeiam-se páginas para page frames. – O mapeamento não precisa obedecer a nenhuma

contiguidade.

slide-25
SLIDE 25

Gerência de memória – paginação

Paginação (cont.)

– O mapeamento é feito através de

tabelas de páginas.

– Estas são indexadas pelo

número de página.

– Cada entrada da tabela (PTE)

possui o número do page frame correspondente, mais bits de controle.

– Cada processo possui sua tabela

de páginas.

slide-26
SLIDE 26

Gerência de memória

 Memória virtual: memória secundária usada como

se fosse memória principal

– Parece haver mais memória principal instalada. – Parte de um processo poder estar em memória principal,

e parte na memória secundária

– Ao se necessitar de parte de um processo que está na

memória secundária, transfere-se-a para memória principal.

slide-27
SLIDE 27

Gerência de memória – Memória Virtual

 Swap com

transferências de processos por completo entre memória principal e memória secundária

slide-28
SLIDE 28

Gerência de memória - Memória Virtual

 Situação em que parte das

páginas que compõem um processo estão em memória principal, e parte estão no swap.

slide-29
SLIDE 29

Gerência de memória - Memória Virtual

O que acontece num falta de página:

 Referência  Exceção (falta de página)  Página está no swap  Carrega-se a página faltosa  Atualiza-se tabela de páginas  Reinicia-se a instrução  Além disto, caso não haja

espaço na memória principal para receber a nova página, uma outra página deve ser escolhida para ser retirada de memória.

slide-30
SLIDE 30

Gerência de memória - Memória Virtual

Estatísticas de memória virtual no Linux com o programa vmstat

Ocupação da memória virtual Memória livre kB enviados para memória virtual no último intervalo kB trazidos da memória virtual no último intervalo

slide-31
SLIDE 31

Gerência de memória - Memória Virtual

Uso de memória virtual: Processo maior que memória disponível foi executado ... Repare colunas swpd, free, si e so

Processo terminou

slide-32
SLIDE 32

Gerência de memória - Memória Virtual

A operação de troca de páginas é cara !

 O tempo de acesso da memória secundária é muito maior que o

da memória principal

Devem-se procurar estratégias para minimizar as trocas de páginas

 Isto envolve evitar retirar da memória principal páginas que serão

referenciadas em breve

 Baseado no Princípio da Localidade, páginas em muito uso têm

grande probabilidade de continuarem sendo muito usadas.

slide-33
SLIDE 33

Gerência de memória – Memória Virtual

 A situação de degradação em que se gasta mais tempo

fazendo troca de páginas que processando se chama thrashing.

 No gráfico da utilização

da CPU em função do grau de multiprogramação (número de processos concorrentes), demonstra-se a existência do thrashing

slide-34
SLIDE 34

Gerência de memória – Memória Virtual

Thrashing em ação !!!

Trocas intensas de páginas Baixo uso de CPU