ger ncia de processos estudos de caso bsd unix
play

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


  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

  2. Gerência de processos Estudos de caso - BSD Unix – Prioridade recalculada a cada 4 ticks (~ 40 ms) p usrpri = PUSER  [ ]  2 × p nice p estcpu 4 p estcpu Estimativa para uso recente da CPU pelo processo Peso entre − 20 e 20 p nice

  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

  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. p estcpu = [ 2 × load  1 ] p slptime 2 × load × p estcpu p_slptime Tempo estimado do processo no estado de bloqueado (incrementado a cada 1 s).

  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

  6. Gerência de processos Estudos de caso - Windows NT  Win32 API mapeia prioridades de processos e threads para prioridades do NT

  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

  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

  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

  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

  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

  12. Gerência de processos Operações sobre processos (Linux)  Escalonamento no Linux: filas

  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

  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

  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)

  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

  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)

  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

  19. Gerência de memória - Introdução  Processo Linux em memória

  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

  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.

  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.

  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

  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.

  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.

  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.

  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

  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.

  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.

  30. Gerência de memória - Memória Virtual Estatísticas de memória virtual no Linux com o programa vmstat kB trazidos da kB enviados Ocupação da memória virtual para memória memória virtual no último virtual no último intervalo intervalo Memória livre

  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

Recommend


More recommend