trabalhov2
626 palavras
3 páginas
FACULDADE REDENTORCURSO DE SISTEMAS DE INFORMAÇÃO – 3° PERÍODO
MONITORES EM PROGRAMAÇÃO PARALELA
por
João Pedro Rezende
Gustavo Hosken
José Estêvão Barbosa
Raphael Guedes
Junho de 2015
Usados na técnica de sincronização entre duas tarefas ou mais, para compartilharem recursos entre si na Computação Paralela. Conjunto de rotinas (estruturas de dados, variáveis, funções, procedimentos) agrupadas num tipo especial de módulo (bloco) que permite a manipulação de recurso (s) compartilhado (s). Usados para realizar alocação de algum recurso compartilhado ou um grupo de recursos de forma reutilizável e seriada.
Idealizado por Dijkstra, seguida por Hansen e melhorada por Hoare, tornaram-se muito importantes em Programação Paralela, principalmente na Orientação à Objetos. A linguagem Java por exemplo, faz um uso extenso de Monitores para implementação de exclusão mútua, ou seja, técnica que consiste em limitar a entrada de um thread por vez, fazendo com que os demais esperem à sua saída, evitando a disputa por recursos computacionais.
Threads são responsáveis por chamarem as rotinas de entrada de monitor, muitos destes threads podem querer entrar de uma única vez, mas a exclusão mútua garante a impossibilidade de isto ocorrer, onde em qualquer instante, apenas um único processo estará ativo em um monitor. Geralmente, quando um processo chama uma rotina do monitor, suas primeiras instruções são verificar se existe algum outro processo ativo dentro do monitor, caso exista, o processo que fez a chamada fica suspenso, até o processo atualmente ativo, sair do monitor. Apesar de Monitores oferecerem uma maneira fácil de obter exclusão mútua, ainda assim isto não é o suficiente. Um problema que não pode ser desconsiderado é a necessidade de se bloquear processos quando eles não conseguem prosseguir, quando o buffer estiver cheio por exemplo. Por isto surgiu o conceito de Variáveis de Condição e suas operações: wait e signal. Funciona quando uma rotina do monitor