• Nenhum resultado encontrado

07 Comunicao entre Processos

N/A
N/A
Protected

Academic year: 2021

Share "07 Comunicao entre Processos"

Copied!
27
0
0

Texto

(1)

Prof. Sidney Cassemiro do Nascimento

Comunicação entre Processos

Sistemas Operacionais I

IFS

(2)

2

Conteúdo

Introdução

Comunicação entre Processos

– Aplicações Concorrentes

– Problemas de Compartilhamento de Recursos – Exclusão Mútua

– Sincronização de Processos

Considerações Finais

Referências

(3)

3

Introdução

Comunicação entre Processos

Aplicação concorrente

, tem como base a

execução cooperativa de múltiplos processos ou

threads.

Sistema multiprogramável

com único

processador, os processos alternam sua

execução  escalonamento pelo SO

.

Compartilhamento de recursos

entre

processos pode ocasionar problemas

(4)

4

Comunicação entre Processos

Comunicação entre Processos

Neste tópico devemos nos preocupar com três

pontos:

 a troca de informações entre processos;

 a garantia de que um processo não invada o espaço físico do outro;

 e a garantia de que um processo não altere os dados que estão sendo trabalhados por outro (que deve

(5)

5

Aplicações Concorrentes

Exemplo de dois processos concorrentes que

compartilham um buffer para trocar informações através de operações de gravação e leitura.

(6)

6

Aplicações Concorrentes

Os mecanismos que garantem a comunicação

entre processos concorrentes e o acesso a

recursos compartilhados são chamados de

mecanismos de sincronização.

(7)

7

Problemas de

Compartilhamento de Recursos

Compartilhamento de um arquivo em disco

Atualiza saldo bancário de um cliente após um

lançamento de débito ou crédito no arquivo da conta corrente Arq_Contas.

Comunicação entre Processos

PROGRAM Conta_Corrente; BEGIN

...

READ(Arq_Contas, Reg_Cliente); READLN(Valor_Dep_Ret);

Reg_Cliente.Saldo := Reg_Cliente.Saldo + Valor_Dep_Ret; WRITE(Arq_Contas, Reg_Cliente);

... END.

(8)

8

Problemas de

Compartilhamento de Recursos

A atualização do saldo do mesmo cliente

simultaneamente, tendo o Reg_Cliente compartilhado entre os processos (Caixa 1 e Caixa 2).

Independente de qual processo (débito ou crédito) atualize primeiro o saldo no arquivo, o dado gravado estará inconsistente.

(9)

9

Problemas de

Compartilhamento de Recursos

Compartilhamento de uma variável entre dois

processos

O problema da concorrência pode levar a resultados inesperados.

Comunicação entre Processos

PROGRAM Processo_A; BEGIN ... X := X + 1; ... END. PROGRAM Processo_B; BEGIN ... X := X - 1; ... END.

(10)

10

Problemas de

Compartilhamento de Recursos

Os comandos de atribuição, em uma linguagem de alto nível, podem ser decompostos em comandos mais

elementares, como visto a seguir:

O valor da variável X é inconsistente em função da forma concorrente com que os dois processos executam.

(11)

11

Problemas de

Compartilhamento de Recursos

Essa concorrência entre dois ou mais processos

para manipulação de um dado compartilhado, de

tal forma que a sequência do acesso afeta o

resultado da execução é chamado de Condição

de Corrida (race condition).

 Vários processos tentando acessar mesmo dado e

resultado depende de qual deles executa no momento certo.

(12)

12

Exclusão Mútua

Exclusão mútua de execução: é uma forma

encontrada para se ter certeza de que se um

processo estiver usando uma variável ou um

arquivo compartilhado, os demais serão

impedidos de fazer a mesma coisa.

Região crítica (RC): é a parte do programa cujo

processamento pode levar à ocorrência de

condições de corrida.

Um processo pode ter uma ou mais RCs e uma

RC pode ter uma ou mais variáveis

compartilhadas.

(13)

13

Exclusão Mútua

Condições para uma boa solução do problema de

exclusão mútua:

 Dois processos não podem estar simultaneamente dentro de suas RCs correspondentes;

 Nenhuma suposição pode ser feita a respeito da

velocidade relativa de processamento ou do número de processadores do sistema;

 Nenhum processo que esteja rodando fora da sua RC pode bloquear outros processos;

 Nenhum processo pode ser obrigado a esperar indefinidamente para entrar em sua RC.

(14)

14

Exclusão Mútua

Problemas comuns decorrentes da sincronização

entre processos

:

Velocidade de execução dos processos – pode

interferir em uma boa solução para o problema da exclusão mútua.

Starvation – É a situação onde um processo nunca

consegue executar sua RC e, consequentemente, acessar o recurso compartilhado.

Sincronização Condicional – É uma situação em

que o acesso ao recurso compartilhado exige a

sincronização de processos vinculada a uma condição de acesso. (ex: Um recurso pode não se encontrar PRONTO para uso devido a uma condição específica).

(15)

15

Exclusão Mútua

Soluções de Hardware

Desabilitação de interrupções

 A forma mais simples de garantir a exclusão mútua, é fazer com que cada processo, ao entrar na RC,

desabilite interrupções, e as reabilite antes de sair, impedindo que o processador seja chaveado para outro processo.

 O processo monopoliza o processador e executa a RC do começo ao fim de maneira ininterrupta.

 Técnica útil para ser usada pelo núcleo do SO, mas não é apropriado como mecanismo geral de exclusão mútua para processos do usuário  uso indevido

causaria problemas.

(16)

16

Exclusão Mútua

Soluções de Software

Variáveis de Bloqueio ou Travamento

A solução utiliza uma variável compartilhada que indica se a região está liberada ou não.

 Valor é inicialmente 0;

 Antes de entrar o processo verifica o valor;

 Se for 0 ele seta para 1 e entra;

 Se for 1, o processo espera;

 Existe algum problema nesta solução?

(17)

17

Alternância Estrita

 Está solução obriga que a RC seja dada a um dos processos por vez, em uma alternância estrita.

 Variável indica de quem é a vez de entrar na RC;

 Uso da espera ocupada, que deve ser evitada, em razão de consumir tempo de processador;

 O que acontece se um dos processos for muito mais rápido do que outro?

 Entrada estritamente alternada dos processos em suas regiões críticas.

Comunicação entre Processos

Exclusão Mútua

(18)

18

Diversos algoritmos foram propostos na tentativa de implementar a exclusão mútua através de soluções por software.

As primeiras soluções tratavam apenas da exclusão

mútua para dois processos e inicialmente apresentavam alguns problemas.

De forma evolutiva, procurou-se o desenvolvimento de soluções definitivas para a exclusão mútua de N

processos, através de vários algoritmos.

Comunicação entre Processos

Exclusão Mútua

(19)

19

Semáforos

O conceito de

semáforo

foi proposto como uma

solução mais geral e simples de ser implementada,

para os problemas de sincronização entre processos

concorrentes.

Um semáforo é uma variável inteira, não negativa,

que só pode ser manipulada por duas instruções

DOWN e UP atômicas.

As instruções DOWN e UP funcionam como

protocolos de entrada e saída, respectivamente.

O semáforo fica associado a um recurso

compartilhado.

(20)

20

Semáforos

DOWN:

 Se s > 0, faz s = s – 1 e quem chamou DOWN entra na RC;

 Se s = 0, RC está ocupada e quem chamou DOWN é bloqueado, ficando numa fila associada ao semáforo

s.

UP:

 faz s = s + 1;

 se houver processos bloqueados na fila associada a

s, um deles é escolhido de forma justa e colocado no estado “pronto para rodar” para tentar DOWN

novamente.

(21)

21

Semáforos

(22)

22

Monitores

São mecanismos de sincronização estruturada de

alto nível que tornam mais simples o

desenvolvimento de aplicações concorrentes.

O

MONITOR

é formado por procedimentos e

variáveis encapsuladas dentro de um módulo, onde

somente um processo pode estar executando um

dos procedimentos do monitor em um determinado

instante.

Toda implementação da exclusão mútua nos

monitores é realizada pelo compilador, e não mais

pelo programador, como no caso do uso de

semáforos.

(23)

23

Monitores

Característica mais importante – é a implementação

automática da exclusão mútua entre seus procedimentos.

(24)

24

Deadlock

É quando um processo aguarda por um recurso

que nunca estará disponível ou um evento que

não ocorrerá.

Isso é consequência do compartilhamento de

recursos, como dispositivos, arquivos, registros

entre processos concorrentes em que a exclusão

mútua é exigida.

(25)

25

Considerações Finais

Nesta aula foi apresentado como a concorrência

de processos pode ser implementada, os

problemas de compartilhamento de recursos,

soluções e mecanismos do SO para sincronizar

processos.

(26)

26

Referências

MACHADO, Francis B.; MAIA, Luiz P.

Arquitetura de Sistemas Operacionais. 4.ed. Ed.

LTC, 2007.

(27)

27

Tema de Casa

Ler o capítulo 7 do livro do Machado e

Maia e anotar os aspectos mais

importantes do conteúdo com o objetivo

de facilitar seus estudos.

Referências

Documentos relacionados

Nesse sentido, o livro de Mary Del Priori Sobreviventes e guerreiras: Uma breve história da mulher no Brasil de 1500 a 2000 convida seus leitores a refletir sobre a história

No último dia 08 de outubro, a presidente do Cosems RJ, Maria da Conceição de Souza Rocha, foi a palestrante convidada da mesa “Alternativas para modernização

O papel do Fundecitrus foi decisivo para a construção da posição ostentada pelo Brasil, inclusive pelo trabalho do inventário das árvores e a robusta metodologia de estimativa

Processos que não estão em regiões críticas não podem bloquear outros processos que desejam utilizar regiões críticas.. Processos não podem esperar para sempre para

 A forte temporada de Natal que presenciamos em 2013 nos nossos shoppings mais novos – Uberlândia, Boulevard Londrina e Passeio das Águas – fundamenta

• Resolução: é a medida da capacidade do sistema em reproduzir detalhes do objeto. A unidade de especificação da resolução pode ser a contagem total de pixels do

Nas noventa estâncias elencadas na Relação de 1858, em Santa Maria, lugar de uma pecuária pobre (pequeno número de cabeças de gado por estabelecimento),

O processo de gerenciamento da capacidade foi desenhado para assegurar que a capacidade da infraestrutura de TI esteja alinhada com as necessidades do negócio. O