Processos threads senai

4.108 visualizações

Publicada em

0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
4.108
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1.095
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Processos threads senai

  1. 1. Sistemas Operacionais Processos Profº Carlos Melo
  2. 2. Livro recomendado Sistemas operacionais modernos Terceira edição ANDREW S. TANENBAUM Capítulo 2 Processos e Threads
  3. 3. O modelo de processo
  4. 4. Criação de processosEventos que causam a criação de processos:• Inicialização de sistema.• Execução de uma chamada de sistema de criação de processo por um processo em execução.• Requisição do usuário para criar um novo processo.• Inicialização de uma tarefa em lotes.
  5. 5. Término de processosEventos que causam o término de um processo:• Saída normal (voluntária).• Saída por erro (voluntária).• Erro fatal (involuntário).• Cancelamento por outro processo (involuntário).
  6. 6. Hierarquia de processos
  7. 7. Implementação de processos
  8. 8. Modelando a multiprogramação
  9. 9. Uso do thread
  10. 10. O modelo de thread clássico
  11. 11. Threads POSIX
  12. 12. Threads espaço do usuário vs núcleo
  13. 13. Implementações híbridas
  14. 14. Threads pop-up
  15. 15. Convertendo o código monothread em código multithread
  16. 16. Demais problemas a ser considerado• Bibliotecas não reentrantes • Soluções • Reescrever a biblioteca • Utilizar bloqueadores (locker)• Gerenciamento de pilhas
  17. 17. Escalonamento de processos e threads
  18. 18. Comportamento escalonamento-processo
  19. 19. Categorias dos algoritimos de escalonamento• Em lote.• Interativa.• Tempo real.
  20. 20. Objetivos dos algoritmos de escalonamento
  21. 21. Escalonamento em sistemas em lotes• Primeiro a chegar, primeiro a ser servido.• Tarefa mais curta primeiro.• Próximo de menor tempo restante.
  22. 22. Tarefa mais curta primeiro
  23. 23. Escalonamento em sistemas interativos • Escalonamento por chaveamento circular. • Escalonamento por prioridades. • Filas mútiplas. • Próximo processo mais curto. • Escalonamento garantido. • Escalonamento por loteria. • Escalonamento por fração justa.
  24. 24. Escalonamento por chaveamento circular
  25. 25. Escalonamento por prioridades
  26. 26. Escalonamento de threads (Continua)
  27. 27. (Continuação)
  28. 28. Escalonamento Windows Server1. Conceitos básicos: • Trabalho  Relaciona as cotas e limites de recursos como: o Número máximo de processos o Tempo total de CPU disponível para cada processo o Quantidade máxima de memória  Impõe restrições aos processos, como: o Não permitir que o processo obtenha privilégio de administrador, mesmo com a senha correta • Processo  Recipiente de recursos  Contém um ID único  Lista de manipuladores  Ficha de acesso  Possui uma ou mais threads  Não possuem estados
  29. 29. Escalonamento Windows Server • Thread  Base para o sistema de escalonamento  Possuem estados  Mais threads podem ser criadas dinamicamente através de chamadas ao sistema  Possui um ID, no mesmo espaço de IDs do processo  Possui duas pilhas: o Modo usuário o Modo núcleo  Pode ter uma ficha de acesso que sobreporá a ficha de seu processo  Uma thread pode transferir sua ficha de acesso a outras threads servidoras  Além dos threads de usuário, existem as threads daemons que executam somente no espaço de núcleo e não possuem processo pai
  30. 30. Escalonamento Windows Server1. Filamentos • Também conhecida como thread de usuário (mundo Unix) • Processos leves • Escalonamento no espaço de usuário, pelo programa que o criou
  31. 31. Escalonamento Windows Server
  32. 32. Escalonamento Windows Server1. Escalonamento baseado em prioridades2. Todo processo, ao ser criado, recebe uma prioridade base • Tempo real • Alta • Acima do normal • Normal • Abaixo do normal • Ociosa3. Toda thread por sua vez também possui uma prioridade base ao ser criada • Tempo crítico • Mais alta • Acima do normal • Normal • Abaixo do normal • Mais baixa • ociosa
  33. 33. Escalonamento Windows Server
  34. 34. Escalonamento Windows Server1. Prioridades de 16 a 31 pertencem a processos do sistema2. As prioridades de processos do sistema são chamadas de tempo real, mas não há garantia de atendimento em um tempo especificado3. Prioridade de 1 a 15 pertencem a processos de usuário4. Prioridade 0 é dada ao thread ocioso, responsável por zerar as páginas de memória para o gerenciador de memória5. Thread ocioso executa apenas quando o sistema está ocioso
  35. 35. Escalonamento Windows Server
  36. 36. Escalonamento (Funcionamento) Escalonamento Windows Server
  37. 37. Escalonamento Windows Server1. O escalonamento ocorre quando: • O thread bloqueia em um semáforo, mutex, evento E/S... • O thread sinaliza um objeto (up no semáforo) • O quantum do thread em execução expira • Uma operação de E/S termina • Uma espera temporizada expira2. Regras do escalonamento: • Nenhuma mudança de prioridade para threads do sistema é permitida • Uma thread de usuário nunca será promovida a uma
  38. 38. Escalonamento Windows Server• A prioridade de um thread de usuário aumenta quando:  Operação de E/S termina o 1 unidade para disco o 2 unidades para porta serial o 6 unidades para o teclado o 8 unidades para a placa de som  Ao sair de um semáforo, mutex ou outro evento o 2 unidades para processos de primeiro plano o 1 unidade para processos de segundo plano  Um processo de GUI desperta o 2 unidades para processos de primeiro plano o 1 unidade para processos de segundo plano 48
  39. 39. Escalonamento Windows Server• A prioridade de um thread de usuário diminui quando:  Quando um thread ocupa todo o seu quantum• Promoções emergenciais ocorrem quando:  Uma thread fica muito tempo sem executar (promovido para prioridade 15)  Depois de 2 quantuns, essa prioridade é retirada abruptamente, voltando para a prioridade original• Os quantum adotados são:  Windows Vista, XP, 2000 professional = 20 ms  Windows 2003 server monoprocessado = 120 ms  Windows 2003 server multiprocessado = quantum depende da frequência do clock
  40. 40. Escalonamento Windows Server 50
  41. 41. Condições de corrida e regiões críticas
  42. 42. Condições de corrida
  43. 43. Regiões críticasCondições necessárias para evitar condições de corridas:• Dois processos não podem estar simultaneamente dentro de suas regiões críticas.• Nada pode ser afirmado sobre a velocidade ou sobre o número de CPUs.• Nenhum processo sendo executado fora de sua região crítica pode bloquear outros processos.• Nenhum processo deve esperar eternamente para entrar em sua região crítica.
  44. 44. Exclusão mútua com espera ociosa Propostas para obtenção de exclusão mútua: • Desabilitando interrupções. • Variáveis do tipo trava. • Chaveamento obrigatório. • Solução de Peterson. • A instrução TSL.
  45. 45. Chaveamento obrigatório
  46. 46. Solução de Peterson
  47. 47. A instrução TSL
  48. 48. O problema produtor-consumidor
  49. 49. Semáforos
  50. 50. Mutexes
  51. 51. Mutexes em Pthreads
  52. 52. (Continua)
  53. 53. (Continuação)
  54. 54. Monitores
  55. 55. (Continua)
  56. 56. (Continuação)
  57. 57. Monitor em Java
  58. 58. O problema produtor-consumidor com troca de mensagens
  59. 59. Barreiras
  60. 60. O problema do jantar dos filósofos
  61. 61. O problema dos leitores e escritores

×