| Nome: | Descrição: | Tamanho: | Formato: | |
|---|---|---|---|---|
| 2.88 MB | Adobe PDF |
Autores
Orientador(es)
Resumo(s)
Com o surgimento e generalização do uso de microprocessadores com múltiplos
núcleos (multi-cores), verifica-se um interesse crescente pela programação concorrente
e, em particular, pela programação paralela, tanto pela comunidade académica, como
pela indústria de desenvolvimento de software. Contudo, o desenvolvimento de programas
concorrentes é difícil, em parte devido à complexidade inerente acrescida destes
programas. Os mecanismos de controlo de concorrência que mais frequentemente
são usados nos programas concorrentes apresentam um nível de abstracção baixo,
sendo portanto de difícil utilização e dando origem a muitos erros de sincronização
e controlo de concorrência.
O modelo transaccional é utilizado com sucesso no contexto dos sistemas de bases
de dados há muitos anos. Estes sistemas permitem que múltiplos clientes acedam à
bases de dados em concorrência, garantido que esses acessos beneficiam do conjunto
de propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade). Estas
propriedades das transacções permitem o desenvolvimento de aplicações que, apesar
de acederem em concorrência ao repositório de informação, beneficiam de uma semântica
essencialmente sequencial, mais previsível e fácil de usar.
Os sistemas de bases de dados podem ser usados para guardar grandes quantidades
de informação de forma persistente e com suporte para processamento de transacções.
No entanto, o acesso a estes sistemas é feito através de uma interface específica
que requer software adicional, impondo assim limitações ao seu uso. Por outro lado, os
sistemas de ficheiros estão disponíveis em praticamente todos os sistemas computacionais,
sendo acessíveis através de uma interface bem definida e normalizada e utilizados
com frequência pela maioria das aplicações para guardar os seus dados de forma
permanente. No entanto, o controlo de concorrência em sistemas de ficheiros obtémse
através de uma interface com baixo nível de abstracção e funcionalmente limitada,
difícil de usar a tendencialmente causadora de erros de utilização.Nesta dissertação propõe-se a arquitectura e desenho de um sistema de ficheiros que suporta o modelo transaccional para controlo de concorrência. Descreve-se também
uma implementação do sistema de ficheiros proposto sobre o FUSE, uma infraestrutura
base para implementação de sistemas de ficheiros. Neste novo sistema de
ficheiros transaccional, as transacções podem ser iniciadas pelas aplicações de forma
explícita ou implícita. No primeiro caso, o programador indica explicitamente o início
e fim de um conjunto de acessos ao sistema de ficheiro que deverão ser tratados como
uma transacção (bloco transaccional). No segundo caso, necessário para garantir a
compatibilidade com aplicações e sistemas legados, os blocos transaccionais serão delimitados
implicitamente pelas operações clássicas de abertura (open) e fecho (close)
de ficheiros. O sistema propostos e implementado foi ainda avaliado nas perspectivas
de funcionalidade e desempenho. A primeira para garantir que a semântica transaccional
estava a ser correctamente suportada e disponibilizada às aplicações. A segunda
para melhor permitir avaliar a penalização no desempenho resultante do suporte transaccional no sistema de ficheiros.
Descrição
Dissertação apresentada na Faculdade de Ciências e Tecnologia da Universidade Nova de
Lisboa para a obtenção do Grau de Mestre em
Engenharia Informática
Palavras-chave
Sistema transaccional Sistema de ficheiros Sistema de ficheiros transaccional FUSE Controlo de concorrência
