3 research outputs found

    PROST : a framework for the development of programmable devices for IoT

    Get PDF
    Orientadores: Edson Borin, Juliana Freitag BorinDissertação (mestrado) - Universidade Estadual de Campinas, Instituto de ComputaçãoResumo: Incontáveis tipos de dispositivos embarcados conectados à internet compõem a chamada Internet das Coisas, a qual promoverá a geração de um fluxo massivo de dados e o controle dos dispositivos, muitas vezes, de forma centralizada. Entretanto, as soluções existentes para este tipo de cenário estão sujeitas a falhas de conexão e requerem elementos externos para o monitoramento e controle dos dispositivos. A fim de mitigar essas limitações, este trabalho propõe uma plataforma para execução de código de usuário como serviço em dispositivos da Internet das Coisas. O principal objetivo da solução apresentada é permitir a execução de código como serviço em qualquer dispositivo conectado na internet e promover a interação transparente entre dispositivos. Algumas vantagens dessa abordagem são a capacidade de evitar a propagação de dados não essenciais na rede, a possibilidade de controlar dispositivos internamente e a compatibilidade com dispositivos computacionalmente restritos. O arcabouço PROWL(PROgrammable Smart Things) proposto combina: (I) um protocolo de comunicação referência para descoberta e descrição de dispositivos conectados em uma rede de computadores e (II) uma plataforma compacta que executa aplicações compiladas para uma arquitetura de fácil emulação. Finalmente, para validação da plataforma projetada, são apresentados estudos de caso em diferentes cenários, corroborando a eficácia da soluçãoAbstract: Innumerable types of embedded devices connected to the internet make up the so-called Internet of Things, which will promote the generation of a massive flow of data and the control of the devices, often centrally. However, the existing solutions for this type of scenario are subject to connection failures and require external elements for the monitoring and control of the devices. In order to mitigate these limitations, this work proposes a platform for executing user code as a service in devices of the Internet of Things. The main goal of the presented solution is to enable the execution of code as a service on any device connected to the Internet and to promote transparent interaction between devices. Some advantages of this approach are the ability to avoid spreading nonessential data on the network, the ability to control devices internally, and compatibility with computationally constrained devices. The proposed PROgrammable Smart Things framework combines: (I) a reference communication protocol for discovery and description of connected devices in a computer network and (ii) a compact platform that runs compiled applications for an easy-to-emulate architecture. Finally, to validate the projected platform, case studies are presented in different scenarios, corroborating the effectiveness of the solutionMestradoCiência da ComputaçãoMestre em Ciência da Computação132788/2015-2CNP

    OpenISA, um conjunto de instruções híbrido

    Get PDF
    Orientador: Edson BorinTese (doutorado) - Universidade Estadual de Campinas, Instituto de ComputaçãoResumo: OpenISA é concebido como a interface de processadores que pretendem ser altamente flexíveis. Isto é conseguido por meio de três estratégias: em primeiro lugar, o ISA é empiricamente escolhido para ser facilmente traduzido para outros, possibilitando flexibilidade do software no caso de um processador OpenISA físico não estar disponível. Neste caso, não há nenhuma necessidade de aplicar um processador virtual OpenISA em software. O ISA está preparado para ser estaticamente traduzido para outros ISAs. Segundo, o ISA não é um ISA concreto nem um ISA virtual, mas um híbrido com a capacidade de admitir modificações nos opcodes sem afetar a compatibilidade retroativa. Este mecanismo permite que as futuras versões do ISA possam sofrer modificações em vez de extensões simples das versões anteriores, um problema comum com ISA concretos, como o x86. Em terceiro lugar, a utilização de uma licença permissiva permite o ISA ser usado livremente por qualquer parte interessada no projeto. Nesta tese de doutorado, concentramo-nos nas instruções de nível de usuário do OpenISA. A tese discute (1) alternativas para ISAs, alternativas para distribuição de programas e o impacto de cada opção, (2) características importantes de OpenISA para atingir seus objetivos e (3) fornece uma completa avaliação do ISA escolhido com respeito a emulação de desempenho em duas CPUs populares, uma projetada pela Intel e outra pela ARM. Concluímos que a versão do OpenISA apresentada aqui pode preservar desempenho próximo do nativo quando traduzida para outros hospedeiros, funcionando como um modelo promissor para ISAs flexíveis da próxima geração que podem ser facilmente estendidos preservando a compatibilidade. Ainda, também mostramos como isso pode ser usado como um formato de distribuição de programas no nível de usuárioAbstract: OpenISA is designed as the interface of processors that aim to be highly flexible. This is achieved by means of three strategies: first, the ISA is empirically chosen to be easily translated to others, providing software flexibility in case a physical OpenISA processor is not available. Second, the ISA is not a concrete ISA nor a virtual ISA, but a hybrid one with the capability of admitting modifications to opcodes without impacting backwards compatibility. This mechanism allows future versions of the ISA to have real changes instead of simple extensions of previous versions, a common problem with concrete ISAs such as the x86. Third, the use of a permissive license allows the ISA to be freely used by any party interested in the project. In this PhD. thesis, we focus on the user-level instructions of OpenISA. The thesis discusses (1) ISA alternatives, program distribution alternatives and the impact of each choice, (2) important features of OpenISA to achieve its goals and (3) provides a thorough evaluation of the chosen ISA with respect to emulation performance on two popular host CPUs, one from Intel and another from ARM. We conclude that the version of OpenISA presented here can preserve close-to-native performance when translated to other hosts, working as a promising model for next-generation, flexible ISAs that can be easily extended while preserving backwards compatibility. Furthermore, we show how this can also be a program distribution format at user-levelDoutoradoCiência da ComputaçãoDoutor em Ciência da Computação2011/09630-1FAPES
    corecore