Sistemas

Disponível somente no TrabalhosFeitos
  • Páginas : 16 (3793 palavras )
  • Download(s) : 0
  • Publicado : 22 de abril de 2013
Ler documento completo
Amostra do texto
Sistema de Gerenciamento de Banco de Dados Técnicas de Controle de Concorrência
Ciência da Computação UFG – Catalão/GO Prof. Márcio Antônio Duarte

Controle de Concorrência
Objetivo
Assegurar a propriedade de não interferência ou isolamento das transações executadas concorrentemente. A maioria das técnicas assegura a serialização dos planos de execução usando protocolos que garantem essacaracterística.

Controle de Concorrência
Quatro conjuntos de protocolos: 1 - Bloqueios: bloqueiam os itens para impedir que outras transações o utilizem; 2 - Timestamp (marcas de tempo): cria um identificador único para cada transação; 3 - Multiversão: utilizam múltiplas versões de um item de dado; 4 - Protocolos otimistas: baseados em validação ou certificação;

Controle de ConcorrênciaTipos de bloqueio: · Bloqueio binário - Pode assumir 2 estados: bloqueado e desbloqueado (1 ou 0); - Nos referimos ao valor do bloqueio de X como lock(X); - Duas operações são usadas: lock_item e unlock_item;

Controle de Concorrência
Se o valor do lock em x é 1, então o item x não pode ser acessado por uma operação do Banco de Dados que requisita o item. Se o valor do Lock em x é 0, então oitem x pode ser acessado quando requisitado. Uma transação requere acesso à um item x usando uma operação lock_item(x). Se Lock(x) = 1, a transação é forçada a esperar. Quando a transação termina a operação envolvendo o item x, uma operação de unlock_item(x) é usada, fazendo com que Lock(x) := 0 para que x possa ser acessada por outras transações.

Controle de Concorrência
Operação Lock_item(X):B: if lock_item(X) = 0 (desbloqueado) then lock(X) = 1 (bloqueado) else begin Wait (até que lock(X) = 0 e o gerenciador de
bloqueio reinicia a transação)

Go to B End

Operação Unlock_item(X)
Lock(X) = 0;

Controle de Concorrência
O SGBD tem um subsistema gerenciador de bloqueio para manter e controlar o acesso aos bloqueios Ao se utilizar o bloqueio binário toda transação deveraobedecer as seguintes regras:
1. Uma transação T deve garantir a operação lock_item(X) antes de qualquer operação ler_item(X) ou escrever_item(X) seja executada em T; 2. Uma transação T deve garantir a operação unlock_item(X) depois que todas as operações ler_item(X) e escrever_item(x) sejam completadas em T; 3. Uma transação T não resultará em uma operação lock_item(X) se ela já tiver o bloqueio noitem X; 4. Uma transação T não resultará em uma operação unlock_item(X), a menos que ele já tenha o bloqueio no item X;

Controle de Concorrência
Bloqueio Compartilhado/Exclusivo
● Desvantagens do bloqueio binário: – muito restritivo ● Deveria-se permitir a diversas transações acessassem o mesmo item desde que fosse apenas para leitura. ● Se o item fosse acessado para escrita, o acesso deveriaser exclusivo de uma transação. ● Tais características podem ser implementadas pela técnica de bloqueio múltiplo-modo, compartilhado/exclusivo ou de leitura/ escrita.

Controle de Concorrência
Bloqueio Compartilhado/Exclusivo
● Neste esquema três operações de bloqueio são usadas: – read_lock(X); – write_lock(X); – unlock(X). ● E existem três estados possíveis para o item de dados: –read_locked; – write_locked; – unlocked.

Controle de Concorrência
Bloqueio Compartilhado/Exclusivo
Read_lock - ou também chamado de lock compartilhado, porque outras transações podem ler o mesmo item. Write_lock – também chamado de lock exclusivo, porque uma simples transação exclusivamente segura o lock de um determinado item.

Controle de Concorrência
Implementação - BloqueioCompartilhado/Exclusivo
Um método para implementar as operações de bloqueio leitura/escrita é manter o controle do número de transações é usar uma tabela de bloqueio para controlar o bloqueio compartilhado. Ex.:

Controle de Concorrência
Regras (Bloqueio Compartilhado/Exclusivo)
1. Uma transação T deve garantir a operação read_lock(X) ou write_lock(X) antes de qualquer operação ler_item(X) a ser executada....
tracking img