• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 314
  • 274
  • 30
  • 21
  • 13
  • 9
  • 8
  • 7
  • 6
  • 5
  • 5
  • 5
  • 1
  • 1
  • 1
  • Tagged with
  • 800
  • 800
  • 267
  • 220
  • 149
  • 145
  • 113
  • 97
  • 87
  • 79
  • 78
  • 75
  • 72
  • 72
  • 68
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
181

Barramento de serviÃos federados para integraÃÃo federativa de sistemas distribuÃdos / Barramento de serviÃos federados para integraÃÃo federativa de sistemas distribuÃdos Federated service bus to federative integration of distributed systems

JosÃnio Candido Camelo 20 February 2008 (has links)
CoordenaÃÃo de AperfeiÃoamento de NÃvel Superior / Esta dissertaÃÃo apresenta uma proposta de middleware de comunicaÃÃo baseado em Enterprise Service Bus (ESB) para sistemas federados, isto Ã, formados por sistemas de diferentes organizaÃÃes. Este trabalho nÃo aborda o problema clÃssico de sistemas federados, cujo enfoque principal à autenticaÃÃo e a seguranÃa, mas sim uma necessidade crescente de intercomunicaÃÃo de serviÃos heterogÃneos. O middleware proposto, chamado de Federated Service Bus (FSB), faz uso de ESBs internos para permitir o isolamento, aplicaÃÃo de polÃticas e roteamento de cada domÃnio que compÃe o sistema federado, visando separar interesses e evitar conflitos. Nossa proposta à modelada por redes de Petri coloridas, o que lhe atribui confiabilidade de simulaÃÃo e de validaÃÃo com base em um modelo formal matemÃtico. Assim, ganhos significativos foram obtidos na implementaÃÃo com o uso de web services e BPEL (Business Process Execution Language). A modelagem com redes de Petri coloridas nÃo sà validou o fluxo, como o documentou em detalhes e possibilitou a diminuiÃÃo no nÃmero de erros. Por fim, enquadramos o FSB em arquiteturas consolidadas com SOA (Service Oriented Achitecture), EDA (Event-Driven Architecture) e NGOSS (Next Generation Operation System and Software). / This work presents the Federated Service Bus (FSB), a communication middleware based on Enterprise Service Bus (ESB) for federated systems. We do not address the classic problem of federated systems, focused mainly on authentication and security, but a growing need for heterogeneous service intercommunication. The proposed middleware makes use of internal ESBs to allow the isolation, application of policies and routing of each domain that comprises the federal system, seeking separate interests and avoid conflicts. Our proposal is modeled using coloured Petri nets, which gives it reliability of simulation and validation based on a formal mathematical model. Thus, significant gains were achieved in the implementation with the use of web services and BPEL (Business Process Execution Language). The modeling with coloured Petri nets not only validated the flow as allowed a error reduction. Finally, the FSB is embedded with SOA (Service Oriented Achitecture), EDA (Event-Driven Architecture) and NGOSS (Next Generation Operation System and Software).
182

Maestro: um middleware para suporte a aplicações distribuídas baseadas em componentes de software. / Maestro: a middleware for support to distributed applications based on software componentes.

Cláudio Luís Pereira Ferreira 21 September 2001 (has links)
É o trabalho de um middleware organizar as atividades de seus diferentes elementos componentes de maneira a operar sincronamente com a execução de uma aplicação. O resultado deste trabalho deve ser transparente para quem interage com o sistema, percebendo-o como um único bloco coeso e sincronizado, orquestrado por um agente principal. Este é o objeto deste trabalho, a especificação de um middleware e seus componentes internos indicando suas principais características e funcionalidades e também sua operação na execução de uma aplicação distribuída. Também foi levado em consideração os novos ambientes nos quais as aplicações distribuídas estão inseridas tais como a diversidade de dispositivos gerenciados pelos usuários, a necessidade de constantes mudanças no sistema, o uso de novas tecnologias no desenvolvimento de software e a necessidade de definições de sistemas abertos. Para a especificação deste middleware, foi utilizado o modelo de referência Open Distributed Processing (ODP) da ISO/IEC que permite que um sistema seja visualizado em cinco pontos de vista distintos. Ao final o sistema é especificado utilizando a tecnologia de componentes de software, ilustrando seu uso numa aplicação comercial. / It’s the job of a middleware to organize the activities of its different component elements as to operate in synchrony with the execution of an application. The result of this work should be transparent to whom interact with the system, perceiving it as a single synchronized and cohered block, orchestrated by a master agent. This is the subject of this work, the specification of a middleware and its internal components indicating its major characteristics and functionalities and also its operation in the execution of distributed applications. It was also taken into account the new environment in which the distributed applications are inserted such as the diversity of devices managed by the users, the necessity for constant system changing, the use of new technologies in software development and the necessity for definition of open systems. For the specification of this middleware, it was used the reference model of Open Distributed Processing (ODP) from ISO/IEC that allows a system to be visualized by five different points of view. By the end the system is specified using the technology of component software, illustrating its use through commercial component software.
183

Uma metodologia para caracterização de aplicações e de instâncias de máquinas virtuais no ambiente de computação em nuvem. / A Methodology for characterization of applications and virtual machines instances in cloud computing environment.

Charles Boulhosa Rodamilans 27 June 2014 (has links)
Os provedores de Computação em Nuvem estão fornecendo diversas instâncias e configurações de Máquinas Virtuais. Entretanto, existe dificuldade quanto à seleção da instância mais adequada para uma determinada aplicação, levando em consideração, por exemplo, o menor tempo de execução. O presente trabalho tem como objetivo determinar os procedimentos para a seleção de uma instância de Máquina Virtual para uma determinada aplicação e também propor uma arquitetura que permita interligar os diferentes provedores de Nuvem. Foram implementadas funcionalidades da arquitetura e também foram aplicados os procedimentos propostos em uma aplicação científica e em instâncias de diferentes provedores de Nuvem. Os principais resultados obtidos foram (a) desenvolvimento da metodologia Caracterização, Seleção e Execução (CSE); (b) demonstração da importância da caracterização e do recurso preponderante da aplicação; (c) avaliação de desempenho do disco em diversas Nuvens; (c) caracterização e avaliação de desempenho da aplicação OpenModeller; e (d) arquitetura de interligação de nuvens públicas e privadas, e implementação de suas principais funcionalidades. Estes resultados mostram que o principal problema de seleção das instâncias pode ser solucionado a partir da caracterização das instâncias e das aplicações. / The Cloud Computing providers are providing several instances and configurations of Virtual Machines. However, there is a difficulty in selecting the instance more adequate for specific application. This study aims to determine the procedures for selecting a Virtual Machine instance for a particular application and also propose an architecture to link the different Cloud providers. Features of the architecture have been implemented and the proposed procedures were applied in scientific applications and in instances of different Cloud providers. The main results were (a) development of Characterization, Selection and Execution (CSE) of methodology; (b) demonstration of the importance application characterization and the preponderant resource; (c) performance characterization and evaluation of OpenModeller application; (d) interconnection architecture of public and private Clouds, and implementation of their main features. These results show that the main instance selection problem can be solved from the instances and applications characterization.
184

Hybrid MPI - uma implementação MPI para ambientes distribuídos híbridos. / Hybrid MPI - a MPI implementation for hybrid distributed systems.

Francisco Isidro Massetto 04 October 2007 (has links)
O crescente desenvolvimento de aplicações de alto desempenho é uma realidade presente nos dias atuais. Entretanto, a diversidade de arquiteturas de máquinas, incluindo monoprocessadores e multiprocessadores, clusters com ou sem máquina front-end, variedade de sistemas operacionais e implementações da biblioteca MPI tem aumentado cada dia mais. Tendo em vista este cenário, bibliotecas que proporcionem a integração de diversas implementações MPI, sistemas operacionais e arquiteturas de máquinas são necessárias. Esta tese apresenta o HyMPI, uma implementação da biblioteca MPI voltada para integração, em um mesmo ambiente distribuído de alto desempenho, nós com diferentes arquiteturas, clusters com ou sem máquina front-end, sistemas operacionais e implementações MPI. HyMPI oferece um conjunto de primitivas compatíveis com a especificação MPI, incluindo comunicação ponto a ponto, operações coletivas, inicio e termino, além de outras primitivas utilitárias. / The increasing develpment of high performance applications is a reality on current days. However, the diversity of computer architectures, including mono and multiprocessor machines, clusters with or without front-end node, the variety of operating systems and MPI implementations has growth increasingly. Focused on this scenario, programming libraries that allows integration of several MPI implementations, operating systems and computer architectures are needed. This thesis introduces HyMPI, a MPI implementation aiming integratino, on a distributed high performance system nodes with different architectures, clusters with or without front-end machine, operating systems and MPI implementations. HyMPI offers a set of primitives based on MPI specification, including point-to-point communication, collective operations, startup and finalization and some other utility functions.
185

Ferramenta de programação e processamento para execução de aplicações com grandes quantidades de dados em ambientes distribuídos. / Programming and processing tool for execution of applications with large amounts of data in distributed environments.

Darlon Vasata 03 September 2018 (has links)
A temática envolvendo o processamento de grandes quantidades de dados é um tema amplamente discutido nos tempos atuais, envolvendo seus desafios e aplicabilidade. Neste trabalho é proposta uma ferramenta de programação para desenvolvimento e um ambiente de execução para aplicações com grandes quantidades de dados. O uso da ferramenta visa obter melhor desempenho de aplicações neste cenário, explorando o uso de recursos físicos como múltiplas linhas de execução em processadores com diversos núcleos e a programação distribuída, que utiliza múltiplos computadores interligados por uma rede de comunicação, de forma que estes operam conjuntamente em uma mesma aplicação, dividindo entre tais máquinas sua carga de processamento. A ferramenta proposta consiste na utilização de blocos de programação, de forma que tais blocos sejam compostos por tarefas, e sejam executados utilizando o modelo produtor consumidor, seguindo um fluxo de execução definido. A utilização da ferramenta permite que a divisão das tarefas entre as máquinas seja transparente ao usuário. Com a ferramenta, diversas funcionalidades podem ser utilizadas, como o uso de ciclos no fluxo de execução ou no adiantamento de tarefas, utilizando a estratégia de processamento especulativo. Os resultados do trabalho foram comparados a duas outras ferramentas de processamento de grandes quantidades de dados, Hadoop e que o uso da ferramenta proporciona aumento no desempenho das aplicações, principalmente quando executado em clusters homogêneos. / The topic involving the processing of large amounts of data is widely discussed subject currently, about its challenges and applicability. This work proposes a programming tool for development and an execution environment for applications with large amounts of data. The use of the tool aims to achieve better performance of applications in this scenario, exploring the use of physical resources such as multiple lines of execution in multi-core processors and distributed programming, which uses multiple computers interconnected by a communication network, so that they operate jointly in the same application, dividing such processing among such machines. The proposed tool consists of the use of programming blocks, so that these blocks are composed of tasks, and the blocks are executed using the producer consumer model, following an execution flow. The use of the tool allows the division of tasks between the machines to be transparent to the user. With the tool, several functionalities can be used, such as cycles in the execution flow or task advancing using the strategy of speculative processing. The results were compared with two other frameworks, Hadoop and Spark. These results indicate that the use of the tool provides an increase in the performance of the applications, mostly when executed in homogeneous clusters.
186

Controle de acesso para sistemas distribuídos. / Access control for distributed systems.

Marcos Tork Souza 22 November 2010 (has links)
A implementação de arcabouços de controle de acesso para sistemas distribuídos é dificultada pelas características próprias desta classe de ambientes, demandando modificações tanto na arquitetura do arcabouço quanto no modelo de política de controle de acesso usualmente empregados em arquiteturas não distribuídas. Este trabalho tenciona sanar ou mitigar estas dificuldades formalizando os requisitos desta classe de ambientes em duas frentes distintas (arquitetura e modelo de política de acesso) e analisando o impacto que uma exerce sobre a outra. Duas conclusões fundamentais são suportadas por esta análise: a necessidade do arcabouço ser construído na forma de um sistema distribuído, e que embora um modelo de política de fato possa ser escolhido, a especificação deste precisará ser modificada de forma a se adaptar às características específicas do ambiente. O arcabouço DRBAC (Distributed Role Based Access Control) foi desenvolvido sobre uma arquitetura distribuída e aplica o modelo de política de controle de acesso baseado em papéis. A arquitetura foi obtida a partir da expansão da arquitetura de referência de ferramentas de controle de acesso e a especificação do modelo foi desenvolvida a partir da especificação padronizada pelo NIST (National Institute Of Standards and Technology). A validação do trabalho é levada a termo por meio de uma série de experimentos realizados sobre a implementação de uma prova de conceito deste arcabouço. / The creation of frameworks for access control in distributed systems is made difficult by this class of systems own characteristics, demanding changes in both the architecture of the framework and in the model of access control policy usually employed on non distributed systems. This works aims to solve or at least mitigate these problems by formalizing these requirements in two different fronts (architecture and model of access control policy) and analyzing its mutual impacts. Two fundamental conclusions are supported by this analysis: the need for the framework to be built in the form of a distributed system, and that although a policy model can indeed be chosen, the specification of this should to be modified to adapt the specific features of the environment. The DRBAC (Distributed Role Based Access Control) framework is built following a distributed architecture model that applies the Role Based Access Control policy. The DRBAC architecture was obtained from the expansion of the reference architecture for an access control tool for a generic access control system and the DRBAC access policy model was adapted from the one standardized by NIST (National Institute of Standards and Technology). The validation of this work is carried out through a series of experiments conducted on a proof of concept implementation of this framework.
187

Um ambiente para programação orientada a objetos distribuídos e paralelos em grades computacionais. / An environment for distributed and parallel object-oriented programming for grid computing.

Calebe de Paula Bianchini 22 January 2009 (has links)
Grades Computacionais (grid computing) já é uma realidade tanto no meio acadêmico quanto no meio empresarial. Seu uso se tornou popular principalmente devido à divulgação dos trabalhos nesta área e pela propaganda de produtos e softwares que oferecem essa idéia. Apesar disso, ambientes para o desenvolvimento de aplicações orientadas a objetos em Java para uma infra-estrutura de grid ainda é escasso. Algumas iniciativas oferecem bibliotecas para este desenvolvimento. Outras utilizam paradigmas diferentes, como o de passagem de mensagem, para o desenvolvimento de aplicações. Além disso, a própria infra-estrutura de grid, formada por diferentes domínios administrativos com diferentes políticas de segurança e uso, impede que as aplicações sejam executadas nos diversos níveis existentes no grid. Estes níveis, formados por computadores e clusters de computadores com nós de execução, possuem endereçamento privado, impossibilitando que as aplicações alocadas em cada um desses computadores/nós, em diferentes domínios e diferentes endereços, se comuniquem de forma transparente. Visando uma solução para esses problemas, esta tese apresenta um ambiente para programação orientada a objetos distribuídos e paralelos, em Java, denominado J4GE. Nesse ambiente, o modelo orientado a objetos é base para a distribuição das classes, métodos e atributos existente em uma aplicação. Além disso, o ambiente oferece transparência no acesso aos objetos espalhados pelo grid através de um Serviço de Mensagem, independente do nível onde o recurso, computador ou nó, se encontra. Essa transparência permite também que o programador utilize a plataforma Java sem a necessidade de aprender ou conhecer novas bibliotecas ou paradigmas, diminuindo o esforço no desenvolvimento de aplicações para grid. E, juntamente com os recursos da plataforma Java e do ambiente J4GE, é possível criar objetos distribuídos com comportamento paralelo e concorrente, trazendo maior eficiência para a execução da aplicação. / Grid computing is already a reality both in academic and business world. Its use has become popular mainly because of the projects in this area and the advertising of products and software that offer this idea. Nevertheless, environments for development of object-oriented applications in Java for grid infrastructure are still scarce. Some initiatives offer libraries for this development. Others use different paradigms such as the message-passing for development of applications. Moreover, the infrastructure of grid, formed by different administrative domain with different security policies, prevents the execution of applications at various levels in the grid. These levels, formed by computers and clusters of computers with execution nodes, have private addresses, make impossible the transparent communication of the applications allocated in each of these computers at different levels in different domains. Focused on these problems, this thesis presents an environment for distributed and parallel object-oriented programming in Java, called J4GE. In this environment, the object-oriented model is the basis for the distribution of classes, methods and attributes in an existing application. Moreover, the environment offers transparency in objects access around the grid through a Message Service, regardless the level where is the resource, or the computer, or the execution node. This transparency also allows the programmer to use the Java platform without knowing or learning new libraries or paradigms, reducing the effort in developing applications for grid. The resources of the Java platform and the environment J4GE together can create distributed objects with parallel and concurrent behavior, bringing greater efficiency to the application.
188

Oncogrid: uma grade computacional para a integração e compartilhamento de dados médicos em oncologia. / Oncogrid: a grid computing to the integration and sharing medical data in oncology.

Higor Aparecido Vieira Alves 28 August 2008 (has links)
No Brasil as informações sobre o câncer estão distribuídas entre diferentes instituições que realizam o seu tratamento, nesse contexto são necessárias ferramentas para o levantamento do cenário nacional que possa auxiliar na atenção a doença. Este contexto motivou a criação do Oncogrid, que é uma grade computacional para integração e compartilhamento de dados médicos em oncologia e permitirá à comunidade médica a análise dos tratamentos aplicados com reflexos na gestão do câncer. Foi realizada uma pesquisa analizando as diferentes arquiteturas e componentes utilizados em projetos de grade voltados à saúde, a fim de propor uma arquitetura flexível, modular e escalável para o Oncogrid, em conformidade com as necessidades brasileiras. Realizou-se um projeto piloto entre o LSI/EPUSP e o NUTES/UFPE o qual implementou uma aplicação para geração de curvas de sobrevida utilizando o método Kaplan-Meier e serviu para avaliar a arquitetura do Oncogrid. Os resultados obtidos comprovaram a viabilidade da arquitetura utilizada e o potencial da proposta de uma grade computacional como um novo paradigma para a integração e compartilhamento de informações. O Oncogrid mostrou-se uma arquitetura computacional interessante para a realidade brasileira, especialmente no acesso as informações distribuídas, o que pode fornecer maiores subsídios para a evolução dos tratamentos e desenvolvimento de novas frentes de pesquisas. / In Brazil the cancer information is distributed among several institutions that accomplish your treatment, in this context we are need tools to build a national scenery that can be aid the cancer care. This context motivated the Oncogrid creation that is a grid computing for integration and sharing medical data in oncology and will allow the medical community to analise the applied treatments with reflection in cancer management.A study was done to analise the several architectures and components used in grid projects to health care, making possible to propose a flexible, modular and scalable architecture to the Oncogrid accordingly with the brazilian reality. An initial project between LSI/EPUSP and NUTES/UFPE that was developed an application to plot the survival curve using the Kaplan-Meier method and allow the evaluation of the Oncogrid architecture. The results achieved confirm the architecture viability used and the proposal potentiality of a grid computing with a new paradigm to the integration and sharing informations. The Oncogrid shows a viable computing architecture to Brazil, especially to access distributed information that can be prove great contributions to treatment evolution and to develop new research areas.
189

Adaptação de vídeo através de redes de serviços sobrepostos. / Video adaptation through overlay services networks.

Samuel Kopp 29 October 2010 (has links)
A adaptação de vídeo é uma técnica amplamente explorada na provisão de conteúdos de forma que atendam adequadamente os mais diversos cenários de consumo, caracterizados por diferentes requisitos e restrições de rede, terminal e preferências do usuário. Entretanto, sua aplicação em sistemas de distribuição de vídeo de alta demanda, como CDNs, é abordada de forma simplista pelas propostas existentes, pois não consideram os diversos aspectos de otimização do uso da rede. Este trabalho trata estas deficiências propondo um serviço de adaptação de vídeo que explora o conceito de contexto, ao elaborar uma adaptação baseada em perfis dos usuários. Além disso, a proposta de adaptação está totalmente integrada a distribuição por redes sobrepostas, sendo possível associar a adaptação em tempo-real à transmissão por multicast e ao caching, o que garante a otimização do uso dos recursos de rede na distribuição dos fluxos de vídeo. Como forma de demonstrar a viabilidade e os benefícios desta proposta são realizados testes experimentais através de uma implementação de referência deste serviço. / Video adaptation is a technique extensively explored for providing content so that it meets different requirements and constraints of network, users terminal and preferences, providing better quality of experience. However, its use in high-demand video distribution systems is not sufficiently explored and is usually tackled in a simple way. This is due to the fact that current solutions do not deals with its applicability systemically. This work presents an approach, which explores video adaptation and the concept of context, elaborating a video adaptation service based in users profile. Moreover, the adaptation proposal presented here is totally integrated to CND (content network distribution) using overlay networks, being possible the association with real-time adaptation to the transmission using multicast and caching. This work focuses on presenting the architecture of that service and its operation. The proposal validation is performed by putting the identified requirements for its application against its provided functionalities and the test results in a implementation of this service.
190

Yali : uma extensão do modelo linda para programação paralela em redes heterogêneas / Yali, an extension to the linda model intended for parallel programming in heterogeneous computer networks

Charao, Andrea Schwertner January 1996 (has links)
Com a disponibilidade de redes que ligam estações cada vez mais poderosas a baixos custos, o interesse em torno de ferramentas que suportam a programação paralela em arquiteturas deste tipo tem aumentado significativamente. Esta dissertação trata do projeto e implementação de YALI (Yet Another Linda Implementation), uma ferramenta destinada ao desenvolvimento e execução de programas paralelos em redes heterogêneas de computadores. Com o objetivo de oferecer uma interface simples e flexível para os usuários programadores, YALI baseia-se no modelo Linda[GEL85], que destaca-se por utilizar uma abstração de alto nível para a cooperação entre processos. Em Linda, processos interagem por intermédio de uma memória associativa logicamente compartilhada, denominada Espaço de Tuplas. Entre outras vantagens deste modelo pode-se citar a simplicidade de suas primitivas e a possibilidade de incorporá-las a uma linguagem seqüencial conhecida, o que contribui fortemente para sua fácil assimilação, mesmo por usuários com pouca experiência em programação paralela. Após uma descrição detalhada do modelo Linda, este trabalho discute varias questões envolvidas no projeto e implementação de sistemas nele baseados. Para oferecer uma visão pratica das soluções mais freqüentemente adotadas para estas questões, quatro sistemas que implementam o modelo para programação paralela em redes são apresentados e avaliados. São eles: Glenda, uma implementacao do modelo baseada na ferramenta PVM (Parallel Virtual Machine); POSYBL (PrOgramming SYstem for distriButed appLications), um sistema construído através de recursos de sistemas operacionais compatíveis com Unix; p4-Linda, construído a partir da ferramenta de programação paralela p4 e, por fim, Network-Linda, uma implementação comercial do modelo. Depois do estudo dos quatro sistemas acima, o projeto de YALI e discutido detalhadamente. Decidiu-se, inicialmente, que YALI deveria incorporar o modelo Linda a linguagem C, que é largamente utilizada no desenvolvimento de programas de propósito geral. Além disso, optou-se por estender o modelo com algumas novas primitivas, de modo a oferecer maior poder de expressão ao usuário. Basicamente, as primitivas que YALI acrescenta ao modelo servem para dar suporte a operações globais e a criação dinâmica de threads. Operações globais servem para expressar a comunicação e a sincronização entre múltiplos processos, sendo utilizadas com bastante freqüência em vários tipos de programas paralelos. YALI suporta operações globais de maneira totalmente ortogonal ao modelo Linda, garantindo melhor desempenho sem afetar o nível de abstração oferecido. o suporte a criação dinâmica de threads, por outro lado, tem o objetivo de permitir a exploração de um paralelismo de granularidade fina, adequado ate mesmo a execução de rotinas simples em paralelo. Para suportar o desenvolvimento e execução de aplicações paralelas, YALI e implementado através de três componentes distintos. O primeiro e um pré-processador, que garante uma interface simplificada com o usuário. 0 segundo e uma biblioteca, que contem as rotinas de suporte as primitivas YALI e deve ser ligada aos programas de usuários. O terceiro componente, por fim, e um utilitário destinado a controlar a inicialização e o termino de aplicações paralelas, que baseia-se em uma configuração estabelecida pelo usuário para distribuir processos sobre uma rede de computadores. Ao contrário da maioria dos sistemas baseados em Linda, YALI implementa um espaço de tuplas distribuído entre os processos que compõem uma aplicação paralela, dispensando o use de processos especializados no gerenciamento de tuplas. Para isso, YALI utiliza múltiplas threads em cada processo definido pelo usuário, e distribui tuplas sobre estes processos através de um mecanismo baseado em hashing. A implementação de YALI leva em conta a heterogeneidade inerente a ambientes de rede, permitindo que maquinas com diferentes arquiteturas e sistemas operacionais sejam utilizadas na execução de programas paralelos. Por fim, YALI é totalmente implementado a partir de recursos presentes em sistemas compatíveis com Unix, de modo a aumentar sua portabilidade e garantir sua eficiência. / With the availability of networks connecting powerful workstations at a low cost, increasing interest has been devoted to systems that support parallel programming in such architectures. This document describes the design and implementation of YALI (Yet Another Linda Implementation), a tool that allows the development and execution of parallel programs in heterogeneous computer networks. Aiming to provide a simple and flexible interface for its users, YALI is based on the Linda parallel programming model[GEL85], that outstands in providing a high level abstraction for cooperation between processes. In Linda, communication and synchronization take place through an associative, logically shared memory called Tuple Space. Among the advantages of this model, one can mention the simplicity of its primitives, and the possibility of incorporate them in a well-known sequential language. These characteristics make Linda easy to learn, even to users with little experience in parallel programming. After a detailed description of the Linda model, this document discusses some design and implementation issues related to Linda-based systems. In order to provide a practical view of some usual solutions to address these issues, four Linda-based systems are presented and evaluated. These systems are: Glenda, an implementation of Linda built on top of PVM (Parallel Virtual Machine); POSYBL (PrOgramming SYstem for distriButed appLications), that relies on features provided by Unix-like operating systems to implement the model; p4-Linda, built on top of p4 parallel programming tool and, at last, Network-Linda, a comercial product based on Linda. All these systems, as YALI, are specially tailored to parallel programming in computer networks. Following the study of the four systems, this documents presents the design of the YALI system. One of the first design decisions was to incorporate the Linda primitives to the C language, that is broadly used as a general purpose programming language. In addition, a set of new primitives was designed as an extension to the original model, in order to increase YALI's expressivenes. Basically, the new primitives support global operations and dynamic thread creation. Global operations are useful to express communication and synchronization among multiple processes, and are frequently used many classes of parallel programs. YALI gives support to global operations in a way that is totally ortoghonal to the Linda model, ensuring better performance without affecting the abstraction level inherent to Linda-based systems. The support to dynamic thread creation, on the other hand, is helpful to explore lightweight parallelism, which allows the execution of simple routines in parallel. To support the development and execution of parallel applications, YALI is made up of three distinct components. The first is a pre-processor, that provides a simple user interface. The second is a library, that must be linked to the user programs since it's where YALI primitives are actuall y implemented. Finally, the third component is an utility that controls initialization and termination of parallel applications, which takes configuration parameters from the user to distribute processes over a newtork. In contrast with most Linda-based systems, YALI relies on a tuple space that is distributed among the processes in the same parallel application, so that intermediate tuple managers are not necessary To implement that, multiple threads are embedded in each user process, and tuples are spread over the processes in the basis of a hashing mechanism. YALI's implementation takes in account the inherent heterogeneity of network environments, allowing machines with different architectures and operating systems to be used in the execution of parallel programs. Finally, YALI is build on top of common features of Unix-like operating systems, in order to increase its efficiency and portability.

Page generated in 0.1633 seconds