SlideShare uma empresa Scribd logo
1 de 33
Sistemas Operacionais
         -Gerência de Processos


                                 Ernesto Massa
                         (slides fornecidos pela Prentice Hall
                             e adaptados para esta disciplina)




                                                                     1
Pearson Education       Sistemas Operacionais Modernos – 2ª Edição
Processos e Threads

               Processos

               Threads

               Comunicação  interprocesso
               Problemas clássicos de IPC

               Escalonamento




Pearson Education
                                                    2
                                  Sistemas Operacionais Modernos – 2ª Edição
Processos
        a)   Multiprogramação
        b)   Como vemos a multiprogramação:
                   processos sequenciais
                   independentes
        a)   Ocupação real do processador




Pearson Education
                                                              3
                                            Sistemas Operacionais Modernos – 2ª Edição
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 espera



Pearson Education
                                                                          4
                                                        Sistemas Operacionais Modernos – 2ª Edição
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
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
Threads
           (a) Três processos cada um com um
            thread
           (b) Um processo com três threads




Pearson Education
                                                 7
                               Sistemas Operacionais Modernos – 2ª Edição
Threads
           Contexto do Processo
                   Items compartilhados por todas as threads em
                    um processo
           Contexto da Thread
                   Itens privativos de cada thread




Pearson Education
                                                            8
                                          Sistemas Operacionais Modernos – 2ª Edição
Threads
           Cada thread tem sua própria pilha




Pearson Education
                                               9
                             Sistemas Operacionais Modernos – 2ª Edição
Uso de Threads
           Um processador de texto com três threads




Pearson Education
                                                  10
                                Sistemas Operacionais Modernos – 2ª Edição
Uso de Thread
           Um servidor web com múltiplos
            threads




Pearson Education
                                               11
                             Sistemas Operacionais Modernos – 2ª Edição
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
                         processo

Pearson Education
                                                             12
                                           Sistemas Operacionais Modernos – 2ª Edição
Threads de Núcleo
           Modelo de
            pacote de
            threads
            gerenciado
            pelo kernel




Pearson Education
                                            13
                          Sistemas Operacionais Modernos – 2ª Edição
Threads Pop-Up
           Criação de nova thread quando chega uma
            mensagem
                   (a) antes da mensagem chegar
                   (b) depois da mensagem chegar




Pearson Education
                                                            14
                                          Sistemas Operacionais Modernos – 2ª Edição
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
Comunicação entre Processos
           Interprocess Comunication (IPC)
           Dois processos querem escrever
            simultaneamente em uma memória
            compartilhada




Pearson Education
                                              16
                            Sistemas Operacionais Modernos – 2ª Edição
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
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
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
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 normal




Pearson Education
                                                            20
                                          Sistemas Operacionais Modernos – 2ª Edição
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
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ítica
Pearson Education
                                                        22
                                      Sistemas Operacionais Modernos – 2ª Edição
Regiões Críticas
           Exclusão mútua usando regiões
            críticas




Pearson Education
                                               23
                             Sistemas Operacionais Modernos – 2ª Edição
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
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
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
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 1




Pearson Education
                                                         27
                                       Sistemas Operacionais Modernos – 2ª Edição
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
Soluções de Software
           Solução de Peterson:




Pearson Education
                                               29
                             Sistemas Operacionais Modernos – 2ª Edição
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
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
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
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

Mais conteúdo relacionado

Mais procurados

Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraWellington Oliveira
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Cristiano Pires Martins
 
Arquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscArquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscBruno Dias
 
Sistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaSistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaWellington Oliveira
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresGilvan Latreille
 
Engenharia de Software para Jogos
Engenharia de  Software para JogosEngenharia de  Software para Jogos
Engenharia de Software para JogosRicardo Leite
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senaiCarlos Melo
 
Metodologias de desenvolvimento de sistemas de informação
Metodologias de desenvolvimento de sistemas de informaçãoMetodologias de desenvolvimento de sistemas de informação
Metodologias de desenvolvimento de sistemas de informaçãoJean Carlos
 
Correção da ficha de trabalho 4 e 5
Correção da ficha de trabalho 4 e 5Correção da ficha de trabalho 4 e 5
Correção da ficha de trabalho 4 e 5Issuf Lion
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Leinylson Fontinele
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugolGabriel Faustino
 
Endereçamento IP
Endereçamento IPEndereçamento IP
Endereçamento IPPjpilin
 
Sistemas de Arquivos FAT x NTFS
Sistemas de Arquivos FAT x NTFSSistemas de Arquivos FAT x NTFS
Sistemas de Arquivos FAT x NTFSCleber Ramos
 
Módulo-6-7-ip-com-sockets
Módulo-6-7-ip-com-socketsMódulo-6-7-ip-com-sockets
Módulo-6-7-ip-com-socketsdiogoa21
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Faculdade Mater Christi
 

Mais procurados (20)

SO-04 Escalonamento de Processos
SO-04 Escalonamento de ProcessosSO-04 Escalonamento de Processos
SO-04 Escalonamento de Processos
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1
 
Arquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscArquiteturas_risc_e_cisc
Arquiteturas_risc_e_cisc
 
Processos (Linux)
Processos (Linux)Processos (Linux)
Processos (Linux)
 
Sistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaSistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de Memória
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de Computadores
 
Engenharia de Software para Jogos
Engenharia de  Software para JogosEngenharia de  Software para Jogos
Engenharia de Software para Jogos
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senai
 
Metodologias de desenvolvimento de sistemas de informação
Metodologias de desenvolvimento de sistemas de informaçãoMetodologias de desenvolvimento de sistemas de informação
Metodologias de desenvolvimento de sistemas de informação
 
Correção da ficha de trabalho 4 e 5
Correção da ficha de trabalho 4 e 5Correção da ficha de trabalho 4 e 5
Correção da ficha de trabalho 4 e 5
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
 
Aula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoriaAula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoria
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Endereçamento IP
Endereçamento IPEndereçamento IP
Endereçamento IP
 
SDAC MODULO 7
SDAC MODULO 7SDAC MODULO 7
SDAC MODULO 7
 
Sistemas de Arquivos FAT x NTFS
Sistemas de Arquivos FAT x NTFSSistemas de Arquivos FAT x NTFS
Sistemas de Arquivos FAT x NTFS
 
PHP - Arrays
PHP - ArraysPHP - Arrays
PHP - Arrays
 
Módulo-6-7-ip-com-sockets
Módulo-6-7-ip-com-socketsMódulo-6-7-ip-com-sockets
Módulo-6-7-ip-com-sockets
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)
 

Destaque

Condições de corrida e regiões críticas
Condições de corrida e regiões críticasCondições de corrida e regiões críticas
Condições de corrida e regiões críticasBeatriz Rodrigues
 
Sistemas Operacionais 10 comunicação entre processos
Sistemas Operacionais 10   comunicação entre processosSistemas Operacionais 10   comunicação entre processos
Sistemas Operacionais 10 comunicação entre processosMauro Duarte
 
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...Helder Lopes
 
Sincronização e comunicação entre processos
Sincronização e comunicação entre processosSincronização e comunicação entre processos
Sincronização e comunicação entre processosAmedy Caisse
 
Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Arthur Emanuel
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoAlexandre Duarte
 
Programação Paralela - Threads
Programação Paralela - ThreadsProgramação Paralela - Threads
Programação Paralela - ThreadsGlaucio Scheibel
 
Otimistas ou pessimistas - Caril Borges
Otimistas ou pessimistas - Caril BorgesOtimistas ou pessimistas - Caril Borges
Otimistas ou pessimistas - Caril BorgesMauro Duarte
 
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processosSeminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processosRobson Ferreira
 
Perdoando como José perdoou - Caril Borges
Perdoando como José perdoou - Caril BorgesPerdoando como José perdoou - Caril Borges
Perdoando como José perdoou - Caril BorgesMauro Duarte
 
Porque tanta pressa - Caril Borges
Porque tanta pressa - Caril BorgesPorque tanta pressa - Caril Borges
Porque tanta pressa - Caril BorgesMauro Duarte
 
As armadilhas de satanás - Caril Borges
As armadilhas de satanás - Caril BorgesAs armadilhas de satanás - Caril Borges
As armadilhas de satanás - Caril BorgesMauro Duarte
 
Sistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando ProcessosSistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando ProcessosLuiz Arthur
 
00 apresentação desenvolvimento em redes de computadores
00   apresentação desenvolvimento em redes de computadores00   apresentação desenvolvimento em redes de computadores
00 apresentação desenvolvimento em redes de computadoresMauro Duarte
 
01 Desenvolvimento em Redes de Computadores - Comandos Básicos
01   Desenvolvimento em Redes de Computadores - Comandos Básicos01   Desenvolvimento em Redes de Computadores - Comandos Básicos
01 Desenvolvimento em Redes de Computadores - Comandos BásicosMauro Duarte
 
CSS - Folhas de Estilo em Cascata
CSS - Folhas de Estilo em Cascata CSS - Folhas de Estilo em Cascata
CSS - Folhas de Estilo em Cascata Mauro Duarte
 

Destaque (20)

Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Condições de corrida e regiões críticas
Condições de corrida e regiões críticasCondições de corrida e regiões críticas
Condições de corrida e regiões críticas
 
Sistemas Operacionais 10 comunicação entre processos
Sistemas Operacionais 10   comunicação entre processosSistemas Operacionais 10   comunicação entre processos
Sistemas Operacionais 10 comunicação entre processos
 
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
 
Sistemas operacionais - aula8
Sistemas operacionais - aula8Sistemas operacionais - aula8
Sistemas operacionais - aula8
 
Sincronização e comunicação entre processos
Sincronização e comunicação entre processosSincronização e comunicação entre processos
Sincronização e comunicação entre processos
 
Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: Sincronização
 
Programação Paralela - Threads
Programação Paralela - ThreadsProgramação Paralela - Threads
Programação Paralela - Threads
 
Os pássaros
Os pássarosOs pássaros
Os pássaros
 
Otimistas ou pessimistas - Caril Borges
Otimistas ou pessimistas - Caril BorgesOtimistas ou pessimistas - Caril Borges
Otimistas ou pessimistas - Caril Borges
 
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processosSeminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
 
Perdoando como José perdoou - Caril Borges
Perdoando como José perdoou - Caril BorgesPerdoando como José perdoou - Caril Borges
Perdoando como José perdoou - Caril Borges
 
Porque tanta pressa - Caril Borges
Porque tanta pressa - Caril BorgesPorque tanta pressa - Caril Borges
Porque tanta pressa - Caril Borges
 
As armadilhas de satanás - Caril Borges
As armadilhas de satanás - Caril BorgesAs armadilhas de satanás - Caril Borges
As armadilhas de satanás - Caril Borges
 
Sistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando ProcessosSistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando Processos
 
00 apresentação desenvolvimento em redes de computadores
00   apresentação desenvolvimento em redes de computadores00   apresentação desenvolvimento em redes de computadores
00 apresentação desenvolvimento em redes de computadores
 
01 Desenvolvimento em Redes de Computadores - Comandos Básicos
01   Desenvolvimento em Redes de Computadores - Comandos Básicos01   Desenvolvimento em Redes de Computadores - Comandos Básicos
01 Desenvolvimento em Redes de Computadores - Comandos Básicos
 
CSS - Folhas de Estilo em Cascata
CSS - Folhas de Estilo em Cascata CSS - Folhas de Estilo em Cascata
CSS - Folhas de Estilo em Cascata
 
Apresentacao Aula04 So
Apresentacao Aula04 SoApresentacao Aula04 So
Apresentacao Aula04 So
 

Semelhante a Gerenciamento de Processos e Comunicação Interprocesso

2009 1 - sistemas operacionais - aula 6 - escalonamento de processos
2009 1 - sistemas operacionais - aula 6 - escalonamento de processos2009 1 - sistemas operacionais - aula 6 - escalonamento de processos
2009 1 - sistemas operacionais - aula 6 - escalonamento de processosComputação Depressão
 
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicosComputação Depressão
 
2009 1 - sistemas operacionais - aula 2 - conceitos basicos
2009 1 - sistemas operacionais - aula 2 - conceitos basicos2009 1 - sistemas operacionais - aula 2 - conceitos basicos
2009 1 - sistemas operacionais - aula 2 - conceitos basicosComputação Depressão
 
2009 1 - sistemas operacionais - aula 1 - introducao aos sistemas operacionais
2009 1 - sistemas operacionais - aula 1 - introducao aos sistemas operacionais2009 1 - sistemas operacionais - aula 1 - introducao aos sistemas operacionais
2009 1 - sistemas operacionais - aula 1 - introducao aos sistemas operacionaisComputação Depressão
 
2009 1 - sistemas operacionais - aula 7 - deadlocks
2009 1 - sistemas operacionais - aula 7 - deadlocks2009 1 - sistemas operacionais - aula 7 - deadlocks
2009 1 - sistemas operacionais - aula 7 - deadlocksComputação Depressão
 
Capítulo 10 Sistemas Operacionais Modernos
Capítulo 10 Sistemas Operacionais ModernosCapítulo 10 Sistemas Operacionais Modernos
Capítulo 10 Sistemas Operacionais ModernosWellington Oliveira
 
Capítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais ModernosCapítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais ModernosWellington Oliveira
 
Sistemas Operacionais 2 -aula00
Sistemas Operacionais 2 -aula00Sistemas Operacionais 2 -aula00
Sistemas Operacionais 2 -aula00Anderson Favaro
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threadsSilvino Neto
 
So2 aula00-cic4 ma446-quarta
So2 aula00-cic4 ma446-quartaSo2 aula00-cic4 ma446-quarta
So2 aula00-cic4 ma446-quartaAnderson Favaro
 
So2 aula00-cic4 na446-segunda
So2 aula00-cic4 na446-segundaSo2 aula00-cic4 na446-segunda
So2 aula00-cic4 na446-segundaAnderson Favaro
 
So2 aula00-cic4 na450-sexta
So2 aula00-cic4 na450-sextaSo2 aula00-cic4 na450-sexta
So2 aula00-cic4 na450-sextaAnderson Favaro
 
So2 aula00-cic4 na446-segunda
So2 aula00-cic4 na446-segundaSo2 aula00-cic4 na446-segunda
So2 aula00-cic4 na446-segundaAnderson Favaro
 
So2 aula00-noite-1sem2011
So2 aula00-noite-1sem2011So2 aula00-noite-1sem2011
So2 aula00-noite-1sem2011Anderson Favaro
 
So2 aula00-manha-1sem2011
So2 aula00-manha-1sem2011So2 aula00-manha-1sem2011
So2 aula00-manha-1sem2011Anderson Favaro
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 
Informática para Internet - Informática Aplicada - Aula 07
Informática para Internet - Informática Aplicada - Aula 07Informática para Internet - Informática Aplicada - Aula 07
Informática para Internet - Informática Aplicada - Aula 07Anderson Andrade
 
Sistema Operacional de Tempo Real (vx works)
Sistema Operacional de Tempo Real (vx works)Sistema Operacional de Tempo Real (vx works)
Sistema Operacional de Tempo Real (vx works)Jose Silva
 

Semelhante a Gerenciamento de Processos e Comunicação Interprocesso (20)

2009 1 - sistemas operacionais - aula 6 - escalonamento de processos
2009 1 - sistemas operacionais - aula 6 - escalonamento de processos2009 1 - sistemas operacionais - aula 6 - escalonamento de processos
2009 1 - sistemas operacionais - aula 6 - escalonamento de processos
 
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
 
2009 1 - sistemas operacionais - aula 2 - conceitos basicos
2009 1 - sistemas operacionais - aula 2 - conceitos basicos2009 1 - sistemas operacionais - aula 2 - conceitos basicos
2009 1 - sistemas operacionais - aula 2 - conceitos basicos
 
2009 1 - sistemas operacionais - aula 1 - introducao aos sistemas operacionais
2009 1 - sistemas operacionais - aula 1 - introducao aos sistemas operacionais2009 1 - sistemas operacionais - aula 1 - introducao aos sistemas operacionais
2009 1 - sistemas operacionais - aula 1 - introducao aos sistemas operacionais
 
2009 1 - sistemas operacionais - aula 7 - deadlocks
2009 1 - sistemas operacionais - aula 7 - deadlocks2009 1 - sistemas operacionais - aula 7 - deadlocks
2009 1 - sistemas operacionais - aula 7 - deadlocks
 
Capítulo 10 Sistemas Operacionais Modernos
Capítulo 10 Sistemas Operacionais ModernosCapítulo 10 Sistemas Operacionais Modernos
Capítulo 10 Sistemas Operacionais Modernos
 
Capítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais ModernosCapítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais Modernos
 
Processos+threads.2pp
Processos+threads.2ppProcessos+threads.2pp
Processos+threads.2pp
 
Sistemas Operacionais 2 -aula00
Sistemas Operacionais 2 -aula00Sistemas Operacionais 2 -aula00
Sistemas Operacionais 2 -aula00
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
So2 aula00-cic4 ma446-quarta
So2 aula00-cic4 ma446-quartaSo2 aula00-cic4 ma446-quarta
So2 aula00-cic4 ma446-quarta
 
So2 aula00-cic4 na446-segunda
So2 aula00-cic4 na446-segundaSo2 aula00-cic4 na446-segunda
So2 aula00-cic4 na446-segunda
 
So2 aula00-cic4 na450-sexta
So2 aula00-cic4 na450-sextaSo2 aula00-cic4 na450-sexta
So2 aula00-cic4 na450-sexta
 
So2 aula00-cic4 na446-segunda
So2 aula00-cic4 na446-segundaSo2 aula00-cic4 na446-segunda
So2 aula00-cic4 na446-segunda
 
So2 aula00-noite-1sem2011
So2 aula00-noite-1sem2011So2 aula00-noite-1sem2011
So2 aula00-noite-1sem2011
 
So2 aula00-manha-1sem2011
So2 aula00-manha-1sem2011So2 aula00-manha-1sem2011
So2 aula00-manha-1sem2011
 
Atps sistemas operacionais
Atps sistemas operacionaisAtps sistemas operacionais
Atps sistemas operacionais
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Informática para Internet - Informática Aplicada - Aula 07
Informática para Internet - Informática Aplicada - Aula 07Informática para Internet - Informática Aplicada - Aula 07
Informática para Internet - Informática Aplicada - Aula 07
 
Sistema Operacional de Tempo Real (vx works)
Sistema Operacional de Tempo Real (vx works)Sistema Operacional de Tempo Real (vx works)
Sistema Operacional de Tempo Real (vx works)
 

Mais de Computação Depressão

Sd08 (si) sistemas de arquivos distribuídos
Sd08 (si)   sistemas de arquivos distribuídosSd08 (si)   sistemas de arquivos distribuídos
Sd08 (si) sistemas de arquivos distribuídosComputação Depressão
 
Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saídaComputação Depressão
 

Mais de Computação Depressão (20)

Sd08 (si) sistemas de arquivos distribuídos
Sd08 (si)   sistemas de arquivos distribuídosSd08 (si)   sistemas de arquivos distribuídos
Sd08 (si) sistemas de arquivos distribuídos
 
Sd06 (si) exclusão mútua
Sd06 (si)   exclusão mútuaSd06 (si)   exclusão mútua
Sd06 (si) exclusão mútua
 
Sd05 (si) relógios e sincronização
Sd05 (si)   relógios e sincronizaçãoSd05 (si)   relógios e sincronização
Sd05 (si) relógios e sincronização
 
Sd04 (si) comunicação em sd
Sd04 (si)   comunicação em sdSd04 (si)   comunicação em sd
Sd04 (si) comunicação em sd
 
Sd03 (si) conceitos básicos de sd
Sd03 (si)   conceitos básicos de sdSd03 (si)   conceitos básicos de sd
Sd03 (si) conceitos básicos de sd
 
Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saída
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
 
Sd07 (si) eleição
Sd07 (si)   eleiçãoSd07 (si)   eleição
Sd07 (si) eleição
 
Ufbamat2013
Ufbamat2013Ufbamat2013
Ufbamat2013
 
Ufbaingles2013
Ufbaingles2013Ufbaingles2013
Ufbaingles2013
 
Ufbagab mat 2013
Ufbagab mat 2013Ufbagab mat 2013
Ufbagab mat 2013
 
Ufbagab ingles2013
Ufbagab ingles2013Ufbagab ingles2013
Ufbagab ingles2013
 
Ufbagab fis 2013
Ufbagab fis 2013Ufbagab fis 2013
Ufbagab fis 2013
 
Ufbafisqui2013
Ufbafisqui2013Ufbafisqui2013
Ufbafisqui2013
 
Ufbagab qui 2013
Ufbagab qui 2013Ufbagab qui 2013
Ufbagab qui 2013
 
Questesdetecnologia ano2002
Questesdetecnologia ano2002Questesdetecnologia ano2002
Questesdetecnologia ano2002
 
Questesdematemtica ano2003
Questesdematemtica ano2003Questesdematemtica ano2003
Questesdematemtica ano2003
 
Questesdematemtica ano2002
Questesdematemtica ano2002Questesdematemtica ano2002
Questesdematemtica ano2002
 
Questesdefundamentos ano2003
Questesdefundamentos ano2003Questesdefundamentos ano2003
Questesdefundamentos ano2003
 
Questesdefundamentos ano2002
Questesdefundamentos ano2002Questesdefundamentos ano2002
Questesdefundamentos ano2002
 

Gerenciamento de Processos e Comunicação Interprocesso

  • 1. Sistemas Operacionais -Gerência de Processos Ernesto Massa (slides fornecidos pela Prentice Hall e adaptados para esta disciplina) 1 Pearson Education Sistemas Operacionais Modernos – 2ª Edição
  • 2. Processos e Threads  Processos  Threads  Comunicação interprocesso  Problemas clássicos de IPC  Escalonamento Pearson Education 2 Sistemas Operacionais Modernos – 2ª Edição
  • 3. Processos a) Multiprogramação b) Como vemos a multiprogramação:  processos sequenciais  independentes a) Ocupação real do processador Pearson Education 3 Sistemas Operacionais Modernos – 2ª Edição
  • 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 espera Pearson Education 4 Sistemas Operacionais Modernos – 2ª Edição
  • 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. 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. Threads  (a) Três processos cada um com um thread  (b) Um processo com três threads Pearson Education 7 Sistemas Operacionais Modernos – 2ª Edição
  • 8. Threads  Contexto do Processo  Items compartilhados por todas as threads em um processo  Contexto da Thread  Itens privativos de cada thread Pearson Education 8 Sistemas Operacionais Modernos – 2ª Edição
  • 9. Threads  Cada thread tem sua própria pilha Pearson Education 9 Sistemas Operacionais Modernos – 2ª Edição
  • 10. Uso de Threads  Um processador de texto com três threads Pearson Education 10 Sistemas Operacionais Modernos – 2ª Edição
  • 11. Uso de Thread  Um servidor web com múltiplos threads Pearson Education 11 Sistemas Operacionais Modernos – 2ª Edição
  • 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 processo Pearson Education 12 Sistemas Operacionais Modernos – 2ª Edição
  • 13. Threads de Núcleo  Modelo de pacote de threads gerenciado pelo kernel Pearson Education 13 Sistemas Operacionais Modernos – 2ª Edição
  • 14. Threads Pop-Up  Criação de nova thread quando chega uma mensagem  (a) antes da mensagem chegar  (b) depois da mensagem chegar Pearson Education 14 Sistemas Operacionais Modernos – 2ª Edição
  • 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. Comunicação entre Processos  Interprocess Comunication (IPC)  Dois processos querem escrever simultaneamente em uma memória compartilhada Pearson Education 16 Sistemas Operacionais Modernos – 2ª Edição
  • 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. 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. 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. 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 normal Pearson Education 20 Sistemas Operacionais Modernos – 2ª Edição
  • 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. 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ítica Pearson Education 22 Sistemas Operacionais Modernos – 2ª Edição
  • 23. Regiões Críticas  Exclusão mútua usando regiões críticas Pearson Education 23 Sistemas Operacionais Modernos – 2ª Edição
  • 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. 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. 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. 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 1 Pearson Education 27 Sistemas Operacionais Modernos – 2ª Edição
  • 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. Soluções de Software  Solução de Peterson: Pearson Education 29 Sistemas Operacionais Modernos – 2ª Edição
  • 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. 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. 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. 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