Apresentacao Aula04 So

1,821 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,821
On SlideShare
0
From Embeds
0
Number of Embeds
64
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Apresentacao Aula04 So

  1. 1. Sistemas Operacionais – Aula 4 Gerenciamento de Processos e Threads Baseado no Livro Sistemas Operacionais Modernos Andrew S. Tanenbaum
  2. 2. Roteiro - Gerenciamento de Processos e Threads • Processos; • Threads; • Escalonamento;
  3. 3. Processos • Vários computadores modernos são capazes de fazer várias coisas ao mesmo tempo; • Como os computadores conseguem fazer isso quando possuem apenas uma CPU ? Pseudoparalelismo Processos Seqüenciais
  4. 4. Processo – O Modelo de Processo • Modelo de Processos -> Todos os softwares que podem ser executados em um computador são organizados em vários processos seqüenciais (ou simplesmente processo). • Processos – Programa em execução; – Valores atuais do contador de programa (CPU Virtual); – Registradores; – Variáveis (dados do programa);
  5. 5. Processos – Criação de Processos • Os processos são criados quando: – Se inicia o sistema: • Processos de segundo plano: servidores, messenger, impressão. (daemons) • Processos de primeiro plano: usados para interagir com usuários (humanos). – Se executa uma chamada ao sistema de criação de processo; – Solicitação do usuário para se criar um novo processo; – Início de um Job em lote;
  6. 6. Processos – Término de Processos • Condições que levam a término do processo: – Saída normal (voluntária); – Saída por erro (voluntária); – Erro fatal (involuntária); – Cancelamento por um outro processo (involuntário);
  7. 7. Processos - Hierarquia de Processos
  8. 8. Processos - Estados de Processos • Possíveis estados de um processo: – Em execução; – Bloqueado; – Pronto para executar;
  9. 9. Processos - Implementação de Processos • Sistema operacional mantém uma tabela chamada de tabela de processos;
  10. 10. Processos – Tratamento de Interrupção 1. A cada E/S existe uma posição de memória com o endereço de procedimento a ser executado; 2. O usuário digita uma tecla. O hardware coloca no barramento a interrupção do E/S teclado; 3. Imediatamente o contador de programas é colocado na pilha pelo HW de interrupção juntamente com outras informações necessárias; 4. Então o contador de programas assume o endereço de procedimento apontado pela interrupção teclado;
  11. 11. Processos – Tratamento de Interrupção 5. Com o CP (PC) apontando para o endereço do procedimento certo a CPU executa o procedimento que quase sempre começa salvando os registradores atuais do processo anterior; 6. Quando o procedimento é terminado, o escalonador volta em ação para colocar outro processo a disposição da CPU Resumidamente:
  12. 12. Modelo de Threads • Processos ->Espaço de endereçamento protegido com um único fluxo de controle; – Agrupamento de recursos (dados, arquivos, processos filhos); – Código de execução; – Execução única (thread de execução); • Threads -> Um espaço de endereçamento e múltiplos fluxos de controle; – Recursos particulares (CP, registradores, pilha); – Recursos compartilhados (espaço de endereço – variáveis globais, arquivos e etc); – Múltiplas execuções no mesmo ambiente do processo – com certa independência entre as execuções; – Unidade a ser escalonada
  13. 13. Analigia - Threads
  14. 14. Threads
  15. 15. Threads
  16. 16. Threads
  17. 17. Threads
  18. 18. Threads - Vantagens • É mais fácil criar uma thread do que um processo (cerca de 100 vezes mais rápido); • É mais rápido terminar uma thread do que um processo; • É mais rápido chavear entre threads de um mesmo processo; • Threads podem se comunicar sem invocar nenhuma primitiva ou dispositivo do SO, jáque compartilham memória e arquivos de um mesmo processo;
  19. 19. Threads - Desvantagens • Suspender um processo implica em suspender todas as threads deste processo já que compartilham o mesmo espaço de endereçamento; • O término de um processo implica no término de todas as threads deste processo;
  20. 20. Threads – Exemplo de Uso • Aplicação: Processador de Texto • Uso de 3 Threads: – Interação com o usuário; – Formatação de texto; – Cópia de documento; • Solução com 3 processos X Solução com 3 threads; – Processos não compartilham memória (documento que esta sendo editado);
  21. 21. Threads - Exemplo de Uso
  22. 22. Escalonamento
  23. 23. Escalonamento
  24. 24. Escalonamento
  25. 25. Threads
  26. 26. Threads
  27. 27. Threads
  28. 28. Obrigado

×