Sistemas Operacionais



Documentos relacionados
Sistemas Operacionais. Capítulo 7 Sincronização e Comunicação entre Processos

Sistemas Operacionais

Sistemas Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sistemas Operacionais

9 - Sincronização e Comunicação entre Processos

Sistemas Operacionais Sincronização e Comunicação entre Processos

Fundamentos. Módulo 6: Sincronização de Processos. Bounded-Buffer (Cont.) Bounded-Buffer

Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

SISTEMAS OPERACIONAIS

Programação Concorrente

Sistemas Operacionais

Monitores. Conceito Sistemas Operacionais II

Notas da Aula 6 - Fundamentos de Sistemas Operacionais

Revisão Ultima aula [1/2]

Sistemas Operacionais Processos e Threads

Deadlocks. Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso

Disciplina de Sistemas Distribuídos. Sincronização em SD. Prof. M.Sc. Alessandro Kraemer Kraemer

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Recursos. Um recurso é ou um dispositivo físico (dedicado) do hardware, ou Solicitar o recurso: esperar pelo recurso, até obtê-lo.

Sistemas Operacionais

Sistemas Operacionais

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Sincronização de Processos (4) Monitores

Introdução ao Modelos de Duas Camadas Cliente Servidor

Sistemas Operacionais

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Processos e Threads (partes I e II)

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

Sistemas Distribuídos

Métodos de Sincronização do Kernel

O modelo do computador

Sistemas Distribuídos. Aleardo Manacero Jr.

Organização e Arquitetura de Computadores I

Sincronização. Cooperação entre Processos

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura Exemplo

7 Processos. 7.1 Introdução

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Distribuídos

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior

Arquitetura de Rede de Computadores

Problemas Clássicos de Sincronização

Backup. Permitir a recuperação de sistemas de arquivo inteiros de uma só vez. Backup é somente uma cópia idêntica de todos os dados do computador?

MC714 - Sistemas Distribuídos. Leandro Villas

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Arquitetura de Computadores - Processadores Superescalares. por Helcio Wagner da Silva

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Evitando conflitos em aplicações multi-thread no Delphi/Kylix

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Gerência do Processador

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Sistemas Operacionais. Prof. André Y. Kusumoto

ISO/IEC 12207: Gerência de Configuração

Componentes do Computador e. aula 3. Profa. Débora Matos

Procedimentos para Reinstalação do Sisloc

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Estrutura de Dados. Introdução a Ponteiros. Prof. Gerson Borges Estrutura de Dados I 1

Programação Orientada a Objetos Threads

Arquitetura de Computadores. Tipos de Instruções

Organização e Arquitetura de Computadores. Capítulo 13 Paralelismo no nível de instruções

Introdução Aplicações Concorrentes Especificação de Concorrência em Programas Problemas de Compartilhamento de Recursos Exclusão Mútua Sincronização

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

ARQUITETURA DE COMPUTADORES

Como instalar uma impressora?

3. No painel da direita, dê um clique com o botão direito do mouse em qualquer espaço livre (área em branco).

Estruturas do Sistema de Computação

SISTEMAS OPERACIONAIS

Sistemas Operacionais. Prof. André Y. Kusumoto

Evolução dos Processadores

Manual de Instalação da leitora de SmartCard Teo by Xiring

Sistemas Operacionais. Prof. André Y. Kusumoto

Manual SAGe Versão 1.2 (a partir da versão )

Algoritmos e Estruturas de Dados II. Trabalho Prático 2

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Sumário. Deadlock. Definição. Recursos. M. Sc. Luiz Alberto

Introdução às Linguagens de Programação

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Memórias Prof. Galvez Gonçalves

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Endereçamento IP 09/05/2014. Endereçamento IP CLASSE B CLASSE A CLASSE A CLASSE C

BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento

Orientação a Objetos

Transcrição:

Sistemas Operacionais Aula 11 Sincronização de Processos Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Sumário Introdução Aplicações concorrentes Especificação de concorrência em programas Problemas de compartilhamento de recursos Exclusão mútua Sincronização condicional Semáforos Monitores Troca de mensagens SO - Prof. Edilberto Silva 2

Introdução Os processos concorrentes executando no sistema operacional podem ser: Independentes: não podem afetar ou serem afetados pelos outros processos executando no sistema Cooperativos podem afetar ou serem afetados por outros processos em execução no sistema. Compartilham diretamente um espaço de endereçamento lógico (ou seja, código e dados) ou ter permissão para compartilhar dados através de arquivos Discutiremos os mecanismos para garantir uma execução ordenada de processos ou threads cooperativos para que a consistência dos dados seja mantida. SO - Prof. Edilberto Silva 3

Aplicações Concorrentes Sincronização e comunicação entre processos S i n c r o n i z a ç ã o P r o c e s s o g r a v a d o r g r a v a ç ã o l e i t u r a P r o c e s s o l e i t o r d a d o B u f f e r SO - Prof. Edilberto Silva 4

Especificação de Concorrência em Programas Concorrência em programas P r o c e s s o p r i n c i p a l P A R B E G I N C o m a n d o _ 1 ; C o m a n d o _ 2 ;.. C o m a n d o _ n ; P A R E N D P r o c e s s o 1 P r o c e s s o 2 P r o c e s s o n P r o c e s s o p r i n c i p a l SO - Prof. Edilberto Silva 5

Especificação de Concorrência em Programas X := SQRT (1024) + (35.4 * 0.23) - (302 / 7) PROGRAM Expressao; VAR X, Temp1, Temp2, Temp3 : REAL; BEGIN PARBEGIN Temp1 := SQRT (1024); Temp2 := 35.4 * 0.23; Temp3 := 302 / 7; PAREND; X := Temp1 + Temp2 - Temp3; WRITELN ('x = ', X); END. SO - Prof. Edilberto Silva 6

Prob. de Compartilhamento de Recursos Problema 1: compartilhamento de arquivo 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. SO - Prof. Edilberto Silva 7

Prob. de Compartilhamento de Recursos Problema 2: compartilhamento de variável de memória Processo A Processo B X := X + 1; X := X - 1; Processo A Processo B LOAD x,ra LOAD x,rb ADD 1,Ra SUB 1,Rb STORE Ra,x STORE Rb,x SO - Prof. Edilberto Silva 8

Condição de corrida Condição de corrida: A situação onde diversos processos acessam e manipulam recursos compartilhados de forma concorrente. A situação final vai depender do último processo que terminar. Para prevenir a condição de corrida, processos concorrentes devem ser sincronizados. Como primeiro método para controlar o acesso a um recurso compartilhado, declaramos uma seção de código como sendo crítica, em seguida controlamos o acesso a essa região. SO - Prof. Edilberto Silva 9

Prob. de Compartilhamento de Recursos Condições de Corrida (Solução): encontrar alguma forma de proibir que mais de um processo acesse o dado compartilhado ao mesmo tempo, isto é, estabelecer a exclusão mútua de execução. Exclusão Mútua:: impedir que dois ou mais processos acessem um mesmo recurso no mesmo instante; Região Crítica: parte do código do programa onde é feito o acesso ao recurso compartilhado, ou seja, é a parte do programa cujo processamento pode levar à ocorrência de condições de corrida. SO - Prof. Edilberto Silva 10

Fundamentos Acesso concorrente a dados compartilhados pode resultar em inconsistências. Os processos cooperativos podem compartilhar diretamente um espaço de endereçamento lógico ( ou seja códigos e dados). Existem processos que são considerados produtores, pois disponibilizam recursos para outros processos. Outros são considerados consumidores, pois se utilizam dos recursos dos produtores. Quando existir mais de um processo consumidor pode haver uma condição de corrida (race condition) entre estes. SO - Prof. Edilberto Silva 11

As Regiões Críticas N processos todos competindo para utilização dos mesmos dados compartilhados. Cada processo tem um segmento de código, chamado região crítica, no qual os dados compartilhados são acessados. Problema garantir que quando um processo está executando uma região crítica nenhum outro processo tem permissão de executar a mesma região. Estrutura do Processo Pi SO - Prof. Edilberto Silva 12

Solução para o Problema da Região Crítica 1. Exclusão Mútua. Se um processo Pi está executando uma região crítica, então nenhum outro poderá fazelo. 2. Progresso. Se nenhuma região crítica está sendo executada e existem processos em espera para entrar em suas regiões críticas, apenas esses processos podem ser selecionados para entrar em suas regiões críticas e essa seleção não pode ser adiada indefinidamente. 3. Espera Limitada. Existe um limite para o número de vezes que outros processos são selecionados para entrar em suas regiões críticas, depois que um processo fez uma requisição para entrar em sua região, e antes que essa requisição seja atendida. SO - Prof. Edilberto Silva 13

Hardware de sincronização As características do hardware podem tornar a tarefa de programação mais fácil e melhorar a eficiência do sistema. O problema de seção crítica pode ser resolvido em um ambiente monoprocessador bastando desabilitar a ocorrência de interrupções. Em algumas máquinas existem instruções especiais que evitam este problema. SO - Prof. Edilberto Silva 14

Semáforos As soluções para problemas de seção crítica não são fáceis de generalizar em problemas complexos. Para superar esta dificuldade podemos usar uma ferramenta de sincronização denominada semáforo. Um semáforo S é uma variável inteira que, além da inicialização, só é acessada através de duas operações-padrão: P e V Estas operações receberam seus nomes dos termos holandeses P de poberen, que significa testar e V de verhogen, que significa incrementar. SO - Prof. Edilberto Silva 15

Semáforos Ferramenta de sincronização que não requer espera ocupada (busy waiting). Semáforo S variável inteira Somente pode ser acessada via duas operações indivisíveis (atômicas). P(s) while S = 0 S--; V(s) S++ USO Semaphore S P(s) criticalsection V(s) SO - Prof. Edilberto Silva 16

Deadlock (Impasse) e Starvation (Abandono) SO - Prof. Edilberto Silva 17

Dois tipos de Semáforos Semáforo Contador valor nele armazenado pode ser qualquer número inteiro. Semáforo Binário valor nele armazenado pode variar entre 0 e 1; pode ser implementado mais simplesmente. Problemas Clássicos Problema dos Leitores e Escritores Problema dos Filósofos SO - Prof. Edilberto Silva 18

Problemas Clássicos de Sincronização Problema dos Leitores e Escritores Problema dos Filósofos SO - Prof. Edilberto Silva 19

Problema dos Leitores e Escritores Suponha que uma banco de dados deva ser compartilhado entre vários processos concorrentes. Alguns executando simples leituras e outros atualizando o banco. Os primeiros são chamados de leitores e os últimos de escritores. Para evitar o acesso concorrente dos escritores cada um destes deve ter um acesso exclusivo ao banco Existem 2 preocupações básicas: nenhum leitor deve esperar a menos que um escritor já tenha obtido permissão para usar o banco de dados compartilhado. o escritor, assim que estiver pronto, faça sua escrita o mais rápido possível. SO - Prof. Edilberto Silva 20

Problema dos Filósofos Considere cinco filósofos que passam suas vidas meditando e comendo. Estes compartilham uma mesa redonda comum cercada por 5 cadeiras, cada qual pertence a um filósofo. No centro da mesa está uma tigela de arroz, e a mesa está posta com cinco pauzinhos (hashi). Quando um filósofo medita, não interage com seus colegas. De vez em quando, um dos filósofos fica com fome e tenta pegar os dois hashis mais próximos de si (o da direita e da esquerda). Um filósofo só pode pegar um hashi de cada vez. Quando um filósofo está de posse dos dois hashis ele come e libera os mesmos. Este é um problema clássico na computação concorrente. SO - Prof. Edilberto Silva 21

Monitores Construção de sincronização de alto nível que permite o compartilhamento seguro de um tipo de dados abstrato entre processos concorrentes. type monitor-name = monitor declarações de variáveis procedure entry P1 :( ); begin end; procedure entry P2( ); begin end; SO - Prof. Edilberto Silva 22

Monitores (Cont.) Para permitir que um processo espere no monitor, uma variável condicional deve ser declarada, como var x, y: condition Variáveis condicionais somente podem ser usadas com as operações wait e signal. A operação x.wait; indica que o processo que chama esta operação está suspenso até outro processo chamar x.signal; A operação x.signal restaura exatamente um processo suspenso. Se nenhum processo está suspenso, a operação signal não possui efeito. SO - Prof. Edilberto Silva 23

Monitores (Cont.) A estrutura interna do monitor não pode ser acessada diretamente. O encapsulamento fornecido pelo monitor limita o acesso ás variáveis locais somente por procedimentos também locais. Ele proíbe o acesso concorrente. SO - Prof. Edilberto Silva 24

Visão Esquemática de um Monitor SO - Prof. Edilberto Silva 25

Monitor com Variáveis Condicionais SO - Prof. Edilberto Silva 26

Resumo Dado um conjunto de processos seqüenciais e cooperativos que compartilham doados, a exclusão mutua deve ser fornecida para evitar a ocorrência de uma condição de corrida em relação aos dados compartilhados. Uma solução é garantir que uma seção crítica de código esteja sendo usada apenas por um processo de cada vez. Existem diversas soluções para isso. SO - Prof. Edilberto Silva 27