Sistemas Operacionais         -Gerência de Processos                                 Ernesto Massa                        ...
Processos e Threads               Processos               Threads               Comunicação  interprocesso             ...
Processos        a)   Multiprogramação        b)   Como vemos a multiprogramação:                   processos sequenciais...
Transições de Estado                                          programa                                carga               ...
Estados de Processos           Camada mais inferior de um SO em            camadas trata interrupções,            escalon...
Processos: Contexto           Implementado através dos “Blocos de            Controle de Processos” – (BCP), também      ...
Threads           (a) Três processos cada um com um            thread           (b) Um processo com três threadsPearson ...
Threads           Contexto do Processo                   Items compartilhados por todas as threads em                   ...
Threads           Cada thread tem sua própria pilhaPearson Education                                               9     ...
Uso de Threads           Um processador de texto com três threadsPearson Education                                       ...
Uso de Thread           Um servidor web com múltiplos            threadsPearson Education                                ...
Threads de Usuário           Modelo de pacote            de threads de            usuário                   Vantagem    ...
Threads de Núcleo           Modelo de            pacote de            threads            gerenciado            pelo kerne...
Threads Pop-Up           Criação de nova thread quando chega uma            mensagem                   (a) antes da mens...
Comunicação entre Processos           Processos Independentes.                   Não afetam nem são afetados por outros ...
Comunicação entre Processos           Interprocess Comunication (IPC)           Dois processos querem escrever          ...
Condições de Corrida (Disputa)           Condições de Corrida:                   Situações onde dois ou mais processos e...
Condições de Corrida           Exemplo 1:            1                     3                              7              ...
Condições de Corrida           Exemplo 2:                           Processo                                             ...
Condições de Corrida           Região Crítica:                   Parte do código onde é feito acesso a recursos         ...
Concorrência em programas           Enquanto um processo estiver usando um            recurso, os outros devem aguardar a...
Regiões Críticas           Quatro condições são necessárias            para prover exclusão mútua:                     N...
Regiões Críticas           Exclusão mútua usando regiões            críticasPearson Education                            ...
Soluções de Hardware           Desabilitação das interrupções:                   Solução mais simples para a exclusão mú...
Soluções de Software           Em geral, as soluções por software            resolvem a exclusão mútua, mas geram a      ...
Soluções de Software           Variável de Travamento;                   Uma variável é utilizada para informar se algum...
Soluções de Software           Estrita Alternância               Solução      proposta para o problema da               ...
Soluções de Software           Solução de Peterson:               Chamadas   a rotinas antes de entrar e                ...
Soluções de Software           Solução de Peterson:Pearson Education                                               29    ...
Soluções de Software           Problema de Inversão de            Prioridades:               Processo  com baixa priorid...
Soluções de Software           Implementações de uso das regiões            críticas sem a espera ocupada:              ...
Soluções de Software           Chamadas sleep e wakeup:               Sleep:                       Coloca o processo ch...
Soluções de Software           Semáforos:                   Ferramenta de sincronização criada por                    Di...
Upcoming SlideShare
Loading in...5
×

2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos

697

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
697
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
49
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos

  1. 1. Sistemas Operacionais -Gerência de Processos Ernesto Massa (slides fornecidos pela Prentice Hall e adaptados para esta disciplina) 1Pearson Education Sistemas Operacionais Modernos – 2ª Edição
  2. 2. Processos e Threads  Processos  Threads  Comunicação interprocesso  Problemas clássicos de IPC  EscalonamentoPearson Education 2 Sistemas Operacionais Modernos – 2ª Edição
  3. 3. Processos a) Multiprogramação b) Como vemos a multiprogramação:  processos sequenciais  independentes a) Ocupação real do processadorPearson Education 3 Sistemas Operacionais Modernos – 2ª Edição
  4. 4. Transições de Estado programa carga novo encerrado final de admissão execução em pronto escalonamento execução espera por evento ou I/O evento ou I/O concluído em esperaPearson Education 4 Sistemas Operacionais Modernos – 2ª Edição
  5. 5. Estados de Processos  Camada mais inferior de um SO em camadas trata interrupções, escalonamento.  Acima desta camada estão os processos sequenciais.Pearson Education 5 Sistemas Operacionais Modernos – 2ª Edição
  6. 6. Processos: Contexto  Implementado através dos “Blocos de Controle de Processos” – (BCP), também chamada de “Tabela de Processos”;  Dividido em três elementos básicos:  Contexto de Software:  Id do Processo;  Descrição dos Arquivos utilizados;  Parâmetros de Escalonamento;  Estado Corrente, etc.  Contexto de Hardware:  Registradores;  Dispositivos alocados, etc.  Espaço de Endereçamento.Pearson Education 6 Sistemas Operacionais Modernos – 2ª Edição
  7. 7. Threads  (a) Três processos cada um com um thread  (b) Um processo com três threadsPearson Education 7 Sistemas Operacionais Modernos – 2ª Edição
  8. 8. Threads  Contexto do Processo  Items compartilhados por todas as threads em um processo  Contexto da Thread  Itens privativos de cada threadPearson Education 8 Sistemas Operacionais Modernos – 2ª Edição
  9. 9. Threads  Cada thread tem sua própria pilhaPearson Education 9 Sistemas Operacionais Modernos – 2ª Edição
  10. 10. Uso de Threads  Um processador de texto com três threadsPearson Education 10 Sistemas Operacionais Modernos – 2ª Edição
  11. 11. Uso de Thread  Um servidor web com múltiplos threadsPearson Education 11 Sistemas Operacionais Modernos – 2ª Edição
  12. 12. Threads de Usuário  Modelo de pacote de threads de usuário  Vantagem  Velocidade  Desvantagem  Gerenciamento de threads no espaço do usuário  O Bloqueio de uma thread bloqueia todo o processoPearson Education 12 Sistemas Operacionais Modernos – 2ª Edição
  13. 13. Threads de Núcleo  Modelo de pacote de threads gerenciado pelo kernelPearson Education 13 Sistemas Operacionais Modernos – 2ª Edição
  14. 14. Threads Pop-Up  Criação de nova thread quando chega uma mensagem  (a) antes da mensagem chegar  (b) depois da mensagem chegarPearson Education 14 Sistemas Operacionais Modernos – 2ª Edição
  15. 15. Comunicação entre Processos  Processos Independentes.  Não afetam nem são afetados por outros processos.  Processos Cooperados.  Compartilham:  Memória;  Arquivos;  Dispositivos de E/S;  Etc.Pearson Education 15 Sistemas Operacionais Modernos – 2ª Edição
  16. 16. Comunicação entre Processos  Interprocess Comunication (IPC)  Dois processos querem escrever simultaneamente em uma memória compartilhadaPearson Education 16 Sistemas Operacionais Modernos – 2ª Edição
  17. 17. Condições de Corrida (Disputa)  Condições de Corrida:  Situações onde dois ou mais processos estão acessando dados compartilhados.  O resultado final pode variar de acordo com a ordem de execução.  Mecanismo de Sincronização.  Garante o compartilhamento de recursos e a comunicação entre os processos.  Garante a integridade e a confiabilidade dos dados compartilhados.Pearson Education 17 Sistemas Operacionais Modernos – 2ª Edição
  18. 18. Condições de Corrida  Exemplo 1: 1 3 7 7 Processo Processo A 2 7 B 4 7+1 7-1 6 5 8 6  Resultado Final: Contador = 8 (ERRO!)Pearson Education 18 Sistemas Operacionais Modernos – 2ª Edição
  19. 19. Condições de Corrida  Exemplo 2: Processo 2 suspenso A 8 recebe CPU 10 Y 1 9 5 6 7 8 próxima 4 entrada 3 7 6 4 5 X 7 8 Processo 3 recebe CPU  Valor armazenado pelo B 7 suspenso processo B é perdido.Pearson Education 19 Sistemas Operacionais Modernos – 2ª Edição
  20. 20. Condições de Corrida  Região Crítica:  Parte do código onde é feito acesso a recursos compartilhados, e que podem levar a condições de corrida.  Ex: Processo A.  Código normal  Início da Seção Crítica (Protocolo de Entrada)  Seção Crítica  Término da Seção Crítica (Protocolo de Saída)  Código normalPearson Education 20 Sistemas Operacionais Modernos – 2ª Edição
  21. 21. Concorrência em programas  Enquanto um processo estiver usando um recurso, os outros devem aguardar até que o recurso esteja liberado.  Exclusão Mútua.  Exclusividade no acesso a um determinado recurso.  A exclusão mútua deve afetar os processos concorrentes quando um deles estiver em uma região crítica.Pearson Education 21 Sistemas Operacionais Modernos – 2ª Edição
  22. 22. Regiões Críticas  Quatro condições são necessárias para prover exclusão mútua:  Nunca dois processos simultaneamente em uma região crítica  Nenhuma afirmação pode ser feita sobre velocidades ou números de CPUs  Nenhum processo executando fora de sua região crítica pode bloquear outros processos  Nenhum processo deve esperar eternamente para entrar em sua região críticaPearson Education 22 Sistemas Operacionais Modernos – 2ª Edição
  23. 23. Regiões Críticas  Exclusão mútua usando regiões críticasPearson Education 23 Sistemas Operacionais Modernos – 2ª Edição
  24. 24. Soluções de Hardware  Desabilitação das interrupções:  Solução mais simples para a exclusão mútua;  Falha de Proteção:  O processo precisa voltar a habilitar as interrupções.  Não aplicável para múltiplas CPUs.  Este recurso só deve ser permitido ao SO.  Instrução Test-and-Set.  Utilização de uma variável para testar a possibilidade de executar a região crítica.  O teste e o bloqueio é realizado através de uma única instrução (TSL).  O processo impedido de executar sua região crítica executa um loop de espera.  Gasto de CPU.Pearson Education 24 Sistemas Operacionais Modernos – 2ª Edição
  25. 25. Soluções de Software  Em geral, as soluções por software resolvem a exclusão mútua, mas geram a espera ocupada (Busy Wait):  Teste contínuo de uma variável até que ocorra uma mudança no seu valor;  O processo impedido de executar sua região crítica executa um loop de espera.  Gasto de CPU.Pearson Education 25 Sistemas Operacionais Modernos – 2ª Edição
  26. 26. Soluções de Software  Variável de Travamento;  Uma variável é utilizada para informar se algum outro processo está em sua respectiva região crítica;  Gera uma nova condições de corrida.  Estrita Alternância.  Processos se alternam na execução da região crítica;  Processos podem estar bloqueados, sem ninguém estar em sua região crítica;  É necessário que os processos possuam freqüência semelhante na execução da região crítica.Pearson Education 26 Sistemas Operacionais Modernos – 2ª Edição
  27. 27. Soluções de Software  Estrita Alternância  Solução proposta para o problema da região crítica. busy wait (a) Processo 0 (b) Processo 1Pearson Education 27 Sistemas Operacionais Modernos – 2ª Edição
  28. 28. Soluções de Software  Solução de Peterson:  Chamadas a rotinas antes de entrar e após sair da região crítica;  A rotina de entrada só retorna quando não houver outro processo executando a sua região crítica.Pearson Education 28 Sistemas Operacionais Modernos – 2ª Edição
  29. 29. Soluções de Software  Solução de Peterson:Pearson Education 29 Sistemas Operacionais Modernos – 2ª Edição
  30. 30. Soluções de Software  Problema de Inversão de Prioridades:  Processo com baixa prioridade em sua região crítica;  Processo com alta prioridade em busy waiting;  Starvation.Pearson Education 30 Sistemas Operacionais Modernos – 2ª Edição
  31. 31. Soluções de Software  Implementações de uso das regiões críticas sem a espera ocupada:  Semáforos (Counting Semaphores);  Semáforos Binários  Mutex (Mutual Exclusion Semaphores);  Monitores.Pearson Education 31 Sistemas Operacionais Modernos – 2ª Edição
  32. 32. Soluções de Software  Chamadas sleep e wakeup:  Sleep:  Coloca o processo chamador no estado de espera.  Wakeup:  Coloca um outro processo que está em espera no estado de pronto.Pearson Education 32 Sistemas Operacionais Modernos – 2ª Edição
  33. 33. Soluções de Software  Semáforos:  Ferramenta de sincronização criada por Dijkstra (1965);  Características:  Variável inteira;  Não negativa.  Manipulados exclusivamente por duas operações atômicas:  DOWN (generalização do sleep)  UP (generalização do wakeup)  Implementados como chamada ao sistema.Pearson Education 33 Sistemas Operacionais Modernos – 2ª Edição
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×