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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend