Concorrência em Sistemas Operacionais Distribuídos
Classificado em Computação
Escrito em em português com um tamanho de 2,78 KB.
Manutenção da Concorrência
Como os sistemas operacionais podem executar vários processos de forma concorrente, existe a possibilidade de concorrência entre transações e, ainda, a concorrência no acesso à base de dados por estas transações.
Para evitar problemas com conflitos, é necessário um controle seguro de acesso a objetos por parte das transações para permitir a perfeita concorrência de processamento entre estas transações, no caso da ocorrência de deadlocks (refere-se a uma situação em que ocorre um impasse, e dois ou mais processos ficam impedidos de continuar suas execuções, ou seja, ficam bloqueados, esperando uns pelos outros).
Soluções para Concorrência
Two-Phase Locking (2PL) - (Bloqueio de Duas Fases)
É baseado no bloqueio de itens de dados, sendo que chamamos de bloqueio de uma variável que fica atrelada ao item de dados (0 ou 1).
Optimistic Locking (Bloqueio Otimista)
O bloqueio das linhas não é usado para leitura de dados, mas, somente enquanto eles estão sendo atualizados (um tempo médio entre 5 a 50 milissegundos).
A aplicação verifica as atualizações feitas por outro usuário desde a sua última leitura.
Se o outro usuário atualizou a linha depois que o usuário atual leu a linha, ocorre uma violação da concorrência e a última atualização não será confirmada.
Características de Sistemas Operacionais Distribuídos
Dando sequência aos aspectos tecnológicos dos sistemas operacionais distribuídos, seguem suas características:
Primeiro, definir o que é um sistema operacional, pode ser considerado um programa intermediário entre o hardware e o usuário, de modo que permita a execução de outros programas de forma fácil e eficaz.
Então, o que tem um sistema operacional distribuído?
Um sistema operacional distribuído possui um papel de um sistema operacional centralizado porém, encapsula os recursos e sua distribuição remota.
Faz com que a comunicação remota entre os processos sejam transparente para o usuário.
Abrangem os serviços de rede, conseguindo integrar recursos (impressoras, memórias, processos, CPUs) em uma máquina virtual que o usuário acessa de forma transparente.
MACH: Kernel para Sistemas Distribuídos
O que é MACH?
MACH – É um kernel de sistema operacional desenvolvido pela Universidade de Carnegie - Mellon (CMU) para suportar estudos em sistemas operacionais distribuídos e paralelos.
Foi um dos primeiros kernels (micro núcleos) produzidos e ainda o padrão em projetos similares.
Sistemas baseados no MACH:
- Gnu Hurd/Gnu MACH
- Lites
- Mk Linux
- Mac OSx
- Next step