• Nenhum resultado encontrado

SICO Aulas79 81

N/A
N/A
Protected

Academic year: 2021

Share "SICO Aulas79 81"

Copied!
52
0
0

Texto

(1)

Instituto Federal de Educação,

Ciência e Tecnologia - Alagoas

Sistemas de Computação

Sincronização e Comunicação

entre Processos

(2)

Sumário

1. Introdução

2. Aplicações Concorrentes

3. Especificação de Concorrência de Programas

4. Problemas de Compartilhamento de Recursos

5. Exclusão Mútua

6. Sincronização Condicional

7. Semáforos

8. Monitores

9. Troca de Mensagens

10. Deadlock

(3)

Sumário

1.

 Introdução

2. Aplicações Concorrentes

3. Especificação de Concorrência de Programas

4. Problemas de Compartilhamento de Recursos

5. Exclusão Mútua

6. Sincronização Condicional

7. Semáforos

8. Monitores

9. Troca de Mensagens

10. Deadlock

(4)

1. Introdução

Multiprogramação 

»

Vantagens:

 Maior tempo de utilização da CPU

– Máxima utilização – Baixa ociosidade

»

Desvantagens

 Compartilhamento de recursos pode ocasionar 

situações indesejáveis

Pode­se comprometer a execução das aplicações

(5)

1. Introdução

Objetivo deste capítulo:

»

Verificar

Como a concorrência entre processos pode ser 

implantada

Problemas no compartilhamento de recursos

Soluções e Mecanismos do sistema operacional para 

sincronizar processos

– Semáforos – Monitores 

(6)

Sumário

1. Introdução

2.

 Aplicações Concorrentes

3. Especificação de Concorrência de Programas

4. Problemas de Compartilhamento de Recursos

5. Exclusão Mútua

6. Sincronização Condicional

7. Semáforos

8. Monitores

9. Troca de Mensagens

10. Deadlock

(7)

2. Aplicações Concorrentes

Troca de informações:

»

Necessária a aplicações concorrentes:

 Mecanismos:

– Variáveis compartilhadas – Trocas de mensagens

Tratam­se de cenários nos quais os processos precisam 

ter sua execução 

sincronizada.

(8)

2. Aplicações Concorrentes

Troca de informações:

»

Processos compartilham buffer

Processo Leitor: é preciso ter alguma informação

Processo Gravador: é preciso ter espaço no buffer

(9)

2. Aplicações Concorrentes

Sincronização:

»

Tanto na gravação quanto na leitura serão usados 

mecanismos de sincronização

mecanismos de sincronização

»

Objetivo:

Garantir a comunicação entre

– processos concorrentes – acesso a recursos compartilhados

»

Os 

mecanismos de sincronização 

mecanismos de sincronização

São implementados para garantir

– Integridade e Confiabilidade

(10)

Sumário

1. Introdução

2. Aplicações Concorrentes

3.

 Especificação de Concorrência de Programas

4. Problemas de Compartilhamento de Recursos

5. Exclusão Mútua

6. Sincronização Condicional

7. Semáforos

8. Monitores

9. Troca de Mensagens

10. Deadlock

(11)

3. Especificação de Concorrência 

de Programas

Há várias notações para especificar 

concorrência entre programas

»

fork/join

fork: cria um novo processo

join: permite a sincronização entre os processos

– Quando o programa A encontra o comando join, ele só  continuará quando B for finalizado.         PROGRAM A; PROGRAM B;        .   .       FORK B;       .         .      .       JOIN B;       .        .       END;

(12)

3. Especificação de Concorrência 

de Programas

... concorrência entre programas

»

PARBEGIN/PAREND

»

Início e término de trechos paralelos de código

PARBEGIN

– Início de sequência de comandos realizada em paralelo

PAREND

– Término de sequência de comandos realizada em paralelo

(13)

3. Especificação de Concorrência 

de Programas

(14)

3. Especificação de Concorrência 

de Programas

... concorrência entre programas

»

Exemplo de código:

X := SQRT(43046721) + (35.4*0.23) – (302/7)

PROGRAM Expressão

   VAR X, Temp1, Temp2, Temp3: REAL

BEGIN

   PARBEGIN

      Temp1 := SQRT(43046721)

      Temp2 := (35.4*0.23)

      Temp3 := (302/7)

   PAREND;

   X := Temp1 + Temp2 – Temp3

   WRITELN('X = ',X);

END.

(15)

Sumário

1. Introdução

2. Aplicações Concorrentes

3. Especificação de Concorrência de Programas

4.

 Problemas de Compartilhamento de Recursos

5. Exclusão Mútua

6. Sincronização Condicional

7. Semáforos

8. Monitores

9. Troca de Mensagens

10. Deadlock

(16)

4. Problemas de 

Compartilhamento de Recursos

Quais problemas podem ocorrer quando há 

compartilhamento de recursos?

»

Inconsistência e Não­confiabilidade

Depósito Saque

(17)

4. Problemas de 

Compartilhamento de Recursos

Como seria o programa que apresenta esse 

problema?

PROGRAM Conta_Corrente;   .   .   READ(Arq_Contas, Reg_Cliente);   READLN(Valor_Dep_Ret);   Reg_Cliente.Saldo := Reg_Cliente.Saldo + Valor_Dep_Ret;   WRITE(Arq_Contas, Reg_Cliente);   .   . END.

(18)

4. Problemas de 

Compartilhamento de Recursos

(19)

4. Problemas de 

Compartilhamento de Recursos

Resumo dos problemas de Sincronização entre 

processos concorrentes

»

Acesso concorrente a arquivo compartilhado em 

disco

»

Variável na memória principal sendo compartilhada

(20)

Sumário

1. Introdução

2. Aplicações Concorrentes

3. Especificação de Concorrência de Programas

4. Problemas de Compartilhamento de Recursos

5.

 Exclusão Mútua

6. Sincronização Condicional

7. Semáforos

8. Monitores

9. Troca de Mensagens

10. Deadlock

(21)

5. Exclusão Mútua

O que é exclusão mútua?

»

Solução mais simples para evitar problemas de 

compartilhamento de recursos

»

Como ocorre?

Enquanto um processo estiver acessando determinado 

recurso, todos os demais processos que queiram 

acessá­lo deverão esperar pelo término da utilização do 

recurso.

»

Definição – 

Região Crítica:

Região Crítica

Parte do código do programa onde é feito o acesso ao 

recurso compartilhado.

(22)

5. Exclusão Mútua

Como implementar a exclusão mútua?

»

Soluções de Hardware

Desabilitação de Interrupções

Instruções test­and­set 

»

Soluções de Software

Foram desenvolvidos diversos algoritmos para garantia 

de acesso a recursos compartilhados

(23)

5. Exclusão Mútua

Soluções de Hardware

»

Desabilitação de interrupções 

1. Todas as interrupções são desabilitadas antes da 

entrada na região crítica

2. As operações sobre a mesma são realizadas

3. Reabilitação das interrupções após saída da região 

crítica

Limitações:

– Comprometimento da multiprogramação – Possível paralisação do sistema (etapa 3 não realizada)

Vantagens

– Executar kernel sem interrupções(evita problemas de 

(24)

5. Exclusão Mútua

Instrução test­and­set

(25)

5. Exclusão Mútua

Soluções de Software

Serão apresentados, de forma evolutiva, algoritmos de 

exclusão mútua entre N processos

»

Primeiro algoritmo

Mecanismo de controle alterna a execução entre as 

regiões críticas

Utiliza variável de bloqueio

Limitação:

– Pode ocorrer um problema na liberação da variável de bloqueio ● Processo permanecerá indefinidamente bloqueado

(26)

5. Exclusão Mútua

Primeiro algoritmo:

(27)

5. Exclusão Mútua

Soluções de Software

»

Segundo algoritmo

Resolve o problema da variável global única

Porém ...

– Não garante que haja alternação entre os processos – Pior que a primeira solução: não garante a exclusão mútua – Caso ocorra um problema com um dos processos fora da região  crítica, o outro processo não será bloqueado

(28)

5. Exclusão Mútua

Segundo Algoritmo

»

Execução

Considerando dois núcleos surge o problema da 

não 

não

exclusão mútua

(29)

5. Exclusão Mútua

Soluções de Software

»

Terceiro algoritmo:

Coloca a instrução de atribuição das variáveis antes do 

loop de teste: garantia da exclusão mútua

Porém...

– Há a possibilidade de bloqueio indefinido de ambos os  processos – Caso ambos os processos alterem as variáveis CA e CB antes  do WHILE, ambos não poderão entrar em suas regiões críticas

(30)

Sumário

1. Introdução

2. Aplicações Concorrentes

3. Especificação de Concorrência de Programas

4. Problemas de Compartilhamento de Recursos

5. Exclusão Mútua

6.

 Sincronização Condicional

7. Semáforos

8. Monitores

9. Troca de Mensagens

10. Deadlock

(31)

6. Sincronização Condicional

Situação na qual:

»

Acesso ao recurso compartilhado exige 

sincronização entre processos vinculada a uma 

condição de acesso.

Exemplo: Produtor/Consumidor:

– Processo produtor só deve escrever caso o buffer não esteja  totalmente tomado ● Essa informação deve ser conhecida, ou seja, os processos  devem estar sincronizados – Processo consumidor só deve ser caso o buffer não esteja vazio ● Também deve estar sincronizado 

(32)

Sumário

1. Introdução

2. Aplicações Concorrentes

3. Especificação de Concorrência de Programas

4. Problemas de Compartilhamento de Recursos

5. Exclusão Mútua

6. Sincronização Condicional

7. 

Semáforos

8. Monitores

9. Troca de Mensagens

10. Deadlock

(33)

7. Semáforos

Proposto por Dijsktra(1965)

»

Mecanismo de sincronização

»

Permite implementar:

Exclusão Mútua

Sincronização Condicional

»

Trata­se de um dos principais mecanismos 

utilizados em:

Sistemas Operacionais

Aplicações Concorrentes

(34)

7. Semáforos

Proposto por Dijsktra(1965)

»

O que é um semáforo?

Variável inteira

– Não­negativa

Pode ser manipulada por apenas duas instruções:

DOWNUP

São instruções atômicas:

– Não podem ser interrompidas – UP: Incrementa em uma unidade o valor do semáforoDOWN: Decrementa em uma unidade o valor do semáforo

(35)

7. Semáforos

Tipos de semáforos

»

Binários:

Mutexes : Mutual Exclusion Semaphores

– Assumem apenas valores binários(0 ou 1)

Contadores 

– Podem assumir qualquer valor positivo, além do 0(zero)

(36)

7. Semáforos

Tipos de semáforos

»

Exclusão mútua com semáforos binários

Não há ocorrência

de espera ocupada

(37)

Sumário

1. Introdução

2. Aplicações Concorrentes

3. Especificação de Concorrência de Programas

4. Problemas de Compartilhamento de Recursos

5. Exclusão Mútua

6. Sincronização Condicional

7. Semáforos

8.

 Monitores

9. Troca de Mensagens

10. Deadlock

(38)

8. Monitores

Estruturas de sincronização de alto nível

»

Implementado pelo compilador

»

Característica mais importante:

Implementação automática de exclusão mútua

– Somente um processo pode estar executando um dos  processos do monitor em um determinado instante

(39)

8. Monitores

(40)

8. Monitores

Exclusão Mútua utilizando monitores

»

RegIões críticas definidas como procedimentos no 

monitor

»

Compilador é encarregado de garantir a exclusão 

mútua entre os procedimentos

»

Comunicação é feita exclusivamente a partir de 

chamadas de procedimentos e de parâmetros 

passados

(41)

8. Monitores

Sincronização Condicional Utilizando Monitores

(42)

Sumário

1. Introdução

2. Aplicações Concorrentes

3. Especificação de Concorrência de Programas

4. Problemas de Compartilhamento de Recursos

5. Exclusão Mútua

6. Sincronização Condicional

7. Semáforos

8. Monitores

9.

 Troca de Mensagens

10. Deadlock

(43)

9. Troca de Mensagens

Mecanismo de comunicação e sincronização 

entre processos

»

Deve haver um canal de comunicação:

Buffer 

Link de comunicação

»

Há duas formas:

Comunicação Direta

Comunicação indireta

(44)

Sumário

1. Introdução

2. Aplicações Concorrentes

3. Especificação de Concorrência de Programas

4. Problemas de Compartilhamento de Recursos

5. Exclusão Mútua

6. Sincronização Condicional

7. Semáforos

8. Monitores

9. Troca de Mensagens

10. 

Deadlock

(45)

10. Deadlock

O que é?

»

Situação na qual um processo aguarda por um 

recurso que nunca estará disponível.

»

Quando se tornou mais freqüente e crítico?

Na medida em que os sistemas operacionais

– evoluíram(e continuam evoluindo) no sentido de implementar o  paralelismo de forma mais intensiva  – Permitem alocação dinâmica de um maior número de  recursos(compartilhados)

(46)

10. Deadlock

Espera Circular

»

Caracterização da condição de deadlock

1

2

3

4

(47)

10. Deadlock

Quando ocorre deadlock?

»

Deve haver 4 condições simultâneas:

 Exclusão Mútua:

– Cada recurso pode estar alocado a apenas um processo em um  determinado instante;

 Espera por recurso:

– Um processo, além dos recursos já alocados, pode estar  esperando por outros recursos;

 Não­preempção

– Um recurso não pode ser liberado de um processo só porque  outros processos desejam o mesmo recurso

 Espera Circular:

– Um processo pode ter que esperar por um recurso alocado a 

(48)

10. Deadlock

Prevenção de deadlocks

»

É preciso garantir que pelo menos uma das 

condições citadas anteriormente não se materialize

Evita­se exclusão mútua: 

– Nenhum processo espera liberação de recurso

Evita­se espera por recurso

– Processo aloca todos os recursos necessários durante inicialização

Habilita­se a preempção

– Permite­se que um recurso seja retirado de um processo

Evita­se espera circular

– Forçar o processo a ter apenas um recurso por vez

(49)

10. Deadlock

Detecção de deadlocks

»

Permite identificar os recursos e processos 

envolvidos no problema

»

Para tanto, o SO deve manter estruturas de dados 

capazes de identificar

Cada recurso do sistema

Processo que está alocando o recurso

Lista de processos à espera da liberação recurso

(50)

6. Deadlock

Correção de deadlocks

»

Soluções

 Eliminar processo causador do bloqueio

– Elevado overhead – Menor complexidade

 Rollback

– Elevado overhead – Maior complexidade

(51)

Bibliografia

[MACHADO, 2004] MACHADO, F. B.; MAIA, L. P. Arquitetura de Sistemas  Operacionais.  4ª edição. Rio de Janeiro: LTC, 2002. [SILBERSCHATZ, 2006]SILBERSCHATZ, A; GAGNE, G; GALVIN P.  Fundamentos de Sistemas Operacionais. 4ª edição. Rio de Janeiro: LTC,  2006.

(52)

Instituto Federal de Educação,

Ciência e Tecnologia - Alagoas

Sistemas de Computação

Sincronização e Comunicação

entre Processos

Aulas 79-81

Referências

Documentos relacionados

Nesta perspectiva, o presente artigo analisa a situação das empresas atendidas pelo Programa Agentes Locais de Inovação do Sebrae, em parceria com o CNPq, no ciclo

PÁGINA 03 • Observações de Segurança • Especificações Técnicas • Características Técnicas PÁGINA 04 • Caixa Central • Roda Reguladora de Altura • Conjunto Deslizador

O Quantitative susceptibility mapping (QSM) é uma técnica não-invasiva de Imagem por Ressonância Magnética (MRI) recente que, ao mensurar a distribuição espacial de

A Sementinha dormia muito descansada com as suas filhas. Ela aguardava a sua longa viagem pelo mundo. No entanto, sempre vivera junto ao pomar do António Seareiro e até

Combinaram encontrar-se às 21h

Para nível diário incluiu intercepto e 20 diferenças defasadas.. Para diferença diária incluiu 19

A infecção leva a formas sintomáticas em até 70% dos infectados, sendo suas formas clínicas, nos pacientes sintomáticos, divididas em três fases: aguda ou febril, com duração de

Entre os assuntos que podiam provocar avaliações consideradas “erradas” pelos integralistas estavam: a relação entre o integralismo e o fascismo; a questão do