Spelling suggestions: "subject:"aperating systems"" "subject:"boperating systems""
241 |
Deadlock probability prediction and detection in distributed systemsDeorukhkar, Mayuresh. January 2004 (has links)
Thesis (M.S.)--University of Missouri-Columbia, 2004. / Typescript. Includes bibliographical references (leaves 75-76). Also available on the Internet.
|
242 |
Autonomic management in a distributed storage system /Tauber, Markus. January 2010 (has links)
Thesis (Ph.D.) - University of St Andrews, May 2010.
|
243 |
Detecting and tolerating faults in distributed systemsOgale, Vinit Arun, January 1900 (has links)
Thesis (Ph. D.)--University of Texas at Austin, 2008. / Vita. Includes bibliographical references and index.
|
244 |
Ανάπτυξη πλατφόρμας για τον προγραμματισμό προηγμένων λειτουργιών σε μοντέρνους επεξεργαστέςΑθανασίου, Αντώνιος-Μάριος 20 September 2010 (has links)
Το αντικείμενο της παρούσης εργασίας είναι η ανάλυση και η περιγραφή της προσπάθειας σχεδιασμού ενός λειτουργικού συστήματος χρησιμοποιώντας τις δυνατότητες που παρέχονται από την x86 αρχιτεκτονική υπολογιστών της Intel.
Απώτερος σκοπός της διπλωματικής εργασίας θα μπορούσε να είναι η συμβολή στην εκπαίδευση και επιμόρφωση των προπτυχιακών φοιτητών που επιλέγουν το μάθημα των προηγμένων μικροεπεξεργαστών. Η ανάθεση ατομικών ή ομαδικών εργασιών στα πλαίσια του μαθήματος για τη βελτίωση του λειτουργικού συστήματος, θα μπορούσε να αποτελέσει βάση εκμάθησης των λειτουργιών των επεξεργαστών, και να συμβάλει στην ανάπτυξη της ομαδικής εργασίας και συνεργασίας των φοιτητών.
Στο πρώτα δύο κεφάλαια γίνεται μια σύντομη περίληψη της x86 αρχιτεκτονικής και στο τρίτο κάνουμε μια εισαγωγή στην διαδικασία αρχικοποίησης.
Στο τέταρτο κεφάλαιο γίνεται παρουσίαση του περιβάλλοντος ανάπτυξης και των χρησιμοποιηθέντων εργαλείων, ενώ αναλύεται ο κώδικας εκκίνησης του συστήματος και γίνεται μια πρώτη, αφαιρετική προσέγγιση στον πυρήνα σε υψηλό επίπεδο
Στο πέμπτο κεφάλαιο εμβαθύνουμε το στάδιο αρχικοποίησης του πυρήνα ενώ στο έκτο γίνεται αναλυτική παρουσίαση της σχεδίασης σε επίπεδο αρχείων και συναρτήσεων.
Τέλος, στο παράρτημα δίνεται ο πηγαίος κώδικας της διπλωματικής ανά αρχείο και η βιβλιογραφία. / The aim of this thesis is the educational platform based on Intel x86 architecture. Its purpose is to help students obtain better knowledge on assembly and low-level C language.
|
245 |
Distribution alignment for unsupervised domain adaptation: cross-domain feature learning and synthesisYang, Baoyao 31 August 2018 (has links)
In recent years, many machine learning algorithms have been developed and widely applied in various applications. However, most of them have considered the data distributions of the training and test datasets to be similar. This thesis concerns on the decrease of generalization ability in a test dataset when the data distribution is different from that of the training dataset. As labels may be unavailable in the test dataset in practical applications, we follow the effective approach of unsupervised domain adaptation and propose distribution alignment methods to improve the generalization ability of models learned from the training dataset in the test dataset. To solve the problem of joint distribution alignment without target labels, we propose a new criterion of domain-shared group sparsity that is an equivalent condition for equal conditional distribution. A domain-shared group-sparse dictionary learning model is built with the proposed criterion, and a cross-domain label propagation method is developed to learn a target-domain classifier using the domain-shared group-sparse representations and the target-specific information from the target data. Experimental results show that the proposed method achieves good performance on cross-domain face and object recognition. Moreover, most distribution alignment methods have not considered the difference in distribution structures, which results in insufficient alignment across domains. Therefore, a novel graph alignment method is proposed, which aligns both data representations and distribution structural information across the source and target domains. An adversarial network is developed for graph alignment by mapping both source and target data to a feature space where the data are distributed with unified structure criteria. Promising results have been obtained in the experiments on cross-dataset digit and object recognition. Problem of dataset bias also exists in human pose estimation across datasets with different image qualities. Thus, this thesis proposes to synthesize target body parts for cross-domain distribution alignment, to address the problem of cross-quality pose estimation. A translative dictionary is learned to associate the source and target domains, and a cross-quality adaptation model is developed to refine the source pose estimator using the synthesized target body parts. We perform cross-quality experiments on three datasets with different image quality using two state-of-the-art pose estimators, and compare the proposed method with five unsupervised domain adaptation methods. Our experimental results show that the proposed method outperforms not only the source pose estimators, but also other unsupervised domain adaptation methods.
|
246 |
O sistema operacional de rede heterogêneo HetNOS / The HetNOS heterogeneous network operating systemBarcellos, Antonio Marinho Pilla January 1993 (has links)
O advento dos computadores pessoais e posteriormente das estações de trabalho, somado ao desenvolvimento de hardware de comunicação eficiente e de baixo custo, levou a popularização das redes locais. Entretanto, o software não presenciou o mesmo desenvolvimento do hardware, especialmente devido a complexidade dos sistemas distribuídos. A heterogeneidade das máquinas, sistemas e redes, inerente aos ambientes computacionais modernos, restringe igualmente a integração e cooperação entre os nodos disponíveis. 0 objetivo do presente trabalho é, a partir da análise dos principais aspectos relacionados à distribuição e à heterogeneidade, desenvolver um sistema operacional de rede heterogêneo. Tal sistema, denominado HetNOS (de Heterogeneous Network Operating System), permite o desenvolvimento e validação de aplicações distribuídas homogêneas e heterogêneas de forma rápida e fácil. Os usuários podem concentrar-se nos aspectos de distribuição dos algoritmos, abstraindo detalhes dos mecanismos de comunicação, pois a programação de aplicações distribuídas é baseada em uma plataforma de interface homogênea, fácil de usar e com independência de localidade. Sendo um sistema operacional de rede, o HetNOS atua sobre o conjunto de sistemas operacionais nativos existentes; o ambiente de trabalho e estendido e não substituído. Não há entidades nem informações centralizadas, e os algoritmos são distribuídos, usualmente resultando maior confiabilidade e desempenho. A topologia do sistema é um anel lógico, esquema justificado pela generalidade de tal configuração e pela simplificação do projeto do núcleo distribuído do HetNOS. O paradigma de comunicação entre módulos e a troca de mensagens, mecanismo implementado sobre a interface de programação em rede sockets. Não há compartilhamento de memória em nenhuma instância, tornando o sistema mais legível, manutenível e portável. A interpelação entre módulos fica restrita à interface de mensagens definidas e aceitas por cada módulo. A arquitetura do HetNOS é estruturada e distribuída, pois o sistema é composto de camadas hierárquicas subdivididas em módulos, estes implementados com processos. O nível 1 corresponde ao conjunto de núcleos de sistemas operacionais nativos suportados, sobre o qual é implementado o núcleo distribuído heterogêneo do HetNOS, a DCL (Distributed Computing Layer). O principal serviço fornecido pela DCL (executada no nível 2), é um subsistema de troca de mensagens canônico e independente de localidade. Processos servidores e de usuários podem utilizar as mais variadas formas de comunicação por mensagens, tal como envio, recepção e propagação de mensagens síncronas, assíncronas, bloqueantes e não bloqueantes. No nível 3 estão os servidores do sistema, que estendem e implementam de forma distribuída a funcionalidade do sistema nativo. O Servidor de Nomes é o repositório global de dados, servindo a processos do sistema e de usuários. O Servidor de Autorização implementa o esquema de controle no acesso a recursos do sistema. O Servidor de Tipos permite que aplicações copiem dados estruturados de forma independente de localidade e de arquitetura. Por fim, o Servidor de Arquivos estende os serviços (de arquivos) locais de forma a integrá-los em um único domínio (espaço). No nível 4, arquiteturas e sistemas operacionais são emulados por módulos interpretadores (denominados Emulators). Aplicações de usuários estão espalhadas dos níveis 2 a 5; a camada varia com o tipo de aplicação. Para demonstrar a viabilidade do sistema, implementou-se a estrutura fundamental do HetNOS, incluindo a DCL (um núcleo distribuído heterogêneo), a versões básicas dos módulos servidores, as bibliotecas de procedimentos, além de diversos tipos de aplicações. O sistema conta hoje com mais de 25.000 linhas de código fonte C em mais de 100 arquivos. O desempenho do subsistema de comunicação implementado pela DCL (em avaliações com diferentes configurações de hardware) superou as expectativas iniciais, mas ainda está muito aquém do necessário a aplicações distribuídas. Segundo o que indicam as primeiras experiências realizadas, o HetNOS será bastante útil na prototipação e avaliação de modelos distribuídos, assim como na programação de software distribuído homogêneo e heterogêneo. Projetos de pesquisa do CPGCC envolvendo sistemas distribuídos (p.ex., tolerância a falhas e simulações) podem utilizar o HetNOS como ferramenta para implementação e validação de seus modelos. Futuramente, aplicações distribuídas e paralelas de maior porte poderão ser programadas, como sistemas de gerencia de bases de dados distribuídas, simuladores e sistemas de controle para automação industrial. / The advent of personal computers and, later, of workstations, along with the development of efficient and low-cost communication hardware has led to the popularization of local-area networks. However, distributed software did not experiment the same development of hardware, specially due to the complexity of distributed systems. The machine, system and communication network heterogeneity, inherent to the modern computing environments, is also responsible for the lack of integration and cooperation of available nodes. The purpose of this work is, from the analysis of the main aspects related to distribution and heterogeneity, to design a heterogeneous network operating system. Such system, named HetNOS (which stands for Heterogeneous Network Operating System), allows users to quickly write and validate distributed homogeneous and heterogeneous applications. Users can concentrate their work in the distributed aspects, abstracting communication mechanisms' details, because programming of distributed applications is based on a homogeneous interface platform, easy to use and location-independent. Being a network operating system, HetNOS acts over the set of native operating systems; the environment is extended instead of substituted. There are neither centralized information nor entities, and the algorithms are always distributed, usually yielding more reliability and performance. The HetNOS topology is a logical ring, scheme adopted partly due to the generality of such configuration and partly to simplify the HetNOS distributed kernel design. The communication paradigm between modules is the message exchange, a mechanism implemented over the sockets network application programming interface. There is no shared memory at all, making the system clearer, more manutible and portable. The interrelation between modules is restricted to the message interface defined and accepted by a module. The HetNOS architecture is structured and distributed, as the system is composed of hierarchical layers divided into modules, which in their turn are realized as processes. The layer 1 is the set of native operating system kernels, over which is implemented the distributed heterogeneous HetNOS kernel, namely DCL (states for Distributed Computing Layer). The main service provided by DCL (in layer 2) is a canonical, location-independent, message exchange mechanism. Server and user processes may use multiple forms of message primitives, such as synchronous, asynchronous, blocking and non-blocking send and receive. In the layer 3 are the system servers, which extend and implement in a distributed way the functionality of native systems. The name server is a global data repository, serving other system and user processes. The authorization server implements the security scheme to control the access to the system resources. The type server allows applications to transfer structured data independently of location and architecture. Finally, the file server extends the local (file) services to integrate them into a unique domain (space). In the layer 4, architectures and operating systems are emulated by interpreter modules (named Emulators). User applications are spread over the layers 2 to 5, depending on the application type. In order to prove the system viability, the fundamental HetNOS structure has been implemented, including its distributed heterogeneous kernel, the base of server modules, the procedure libraries, and several types of applications. The system source code has over 25,000 lines of C programming distributed over a hundred files. Although the optimization is an endless process, the performance of the DCL communication subsystem (evaluated using a few different hardware configurations) overestimated initial predictions, but is weak if considered the requirements to distributed processing. Accordingly to the first experiences made, HetNOS will be of great value to evaluate and prototype distributed models, as well as to the programming of homogeneous and heterogeneous distributed software. Local research projects involving distributed systems (e.g., fault tolerance and simulations) may use HetNOS as a tool to validate and implement their models. In the future, more complex distributed and parallel applications will be programmed, such as a distributed database management system, simulators and factory automation control systems.
|
247 |
Proposta para aumento da escalabilidade do sistema WSE-OS por meio do escalonamento de conexões e gerenciamento da replicação de dados dos servidoresLima, Leonardo José de [UNESP] 07 August 2013 (has links) (PDF)
Made available in DSpace on 2014-11-10T11:09:41Z (GMT). No. of bitstreams: 0
Previous issue date: 2013-08-07Bitstream added on 2014-11-10T11:58:47Z : No. of bitstreams: 1
000787445.pdf: 974406 bytes, checksum: 3e701ceadf5e053926fd1e9cf1e9e039 (MD5) / Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES) / Devido a queda gradual no custo de aquisição de novos computadores, há cada vez mais dispositivos computacionais adentrando o mercado. A grande quantidade de novos dispositivos gera heterogeneidade entre eles e esta dificulta a administração de ambientes computacionais, pois é necessário manter os sistemas funcionando em compatibilidade com dispositivos bastante distintos simultaneamente. O sistema WSE-OS propõe uma solução de centralização de dados e recursos que aborda o problema da heterogeneidade de maneira eficaz. Fazendo uso da tecnologia wireless a ferramenta WSE-OS utiliza uma estrutura Thin Client que permite aos seus clientes executarem instanciações de sistemas operacionais virtualizados armazenados no servidor. Este trabalho apresenta uma proposta que altera a estrutura do WSE-OS incluindo a capacidade de operar com múltiplos servidores, tendo como objetivo aumentar a escalabilidade, disponibilidade e confiabilidade da ferramenta por meio de técnicas de replicação do servidor e escalonamento das conexões. A replicação de dados consiste em detectar as alterações sofridas nos dados contidos em um determinado servidor e transmiti-las aos demais priorizando a consistência entre as réplicas. O escalonamento de conexões funciona ativamente distribuindo os clientes dentre os servidores para melhorar o desempenho da ferramenta / Due to a gradual decrease in the cost of purchasing new computers, there is more and more computing devices entering the market. The large quantity of new devices creates heterogeneity among them and this complicates the administration of computing environments, because is necessary to keep the systems running in compatibility with quite different devices simultaneously. The WSE-OS system proposes a solution for centralizing data and resources that addresses this problem effectively. Using wireless networking technology, the WSE-OS tool uses a Thin Client structure that allows its clients to execute instantiations of virtualized operating systems stored on the server. This paper presents a proposal that changes WSE-OS's structure including the ability to run with multiple servers, having as its goal increase scalability, availability and reliability through server’s data replication and staggering of connections. Data replication consists in detecting changes on data from a given server and transmit it to the others prioritizing the consistency among replicas. The staggering of connections works on actively distributing the clients among servers to improve system’s performance
|
248 |
O sistema operacional de rede heterogêneo HetNOS / The HetNOS heterogeneous network operating systemBarcellos, Antonio Marinho Pilla January 1993 (has links)
O advento dos computadores pessoais e posteriormente das estações de trabalho, somado ao desenvolvimento de hardware de comunicação eficiente e de baixo custo, levou a popularização das redes locais. Entretanto, o software não presenciou o mesmo desenvolvimento do hardware, especialmente devido a complexidade dos sistemas distribuídos. A heterogeneidade das máquinas, sistemas e redes, inerente aos ambientes computacionais modernos, restringe igualmente a integração e cooperação entre os nodos disponíveis. 0 objetivo do presente trabalho é, a partir da análise dos principais aspectos relacionados à distribuição e à heterogeneidade, desenvolver um sistema operacional de rede heterogêneo. Tal sistema, denominado HetNOS (de Heterogeneous Network Operating System), permite o desenvolvimento e validação de aplicações distribuídas homogêneas e heterogêneas de forma rápida e fácil. Os usuários podem concentrar-se nos aspectos de distribuição dos algoritmos, abstraindo detalhes dos mecanismos de comunicação, pois a programação de aplicações distribuídas é baseada em uma plataforma de interface homogênea, fácil de usar e com independência de localidade. Sendo um sistema operacional de rede, o HetNOS atua sobre o conjunto de sistemas operacionais nativos existentes; o ambiente de trabalho e estendido e não substituído. Não há entidades nem informações centralizadas, e os algoritmos são distribuídos, usualmente resultando maior confiabilidade e desempenho. A topologia do sistema é um anel lógico, esquema justificado pela generalidade de tal configuração e pela simplificação do projeto do núcleo distribuído do HetNOS. O paradigma de comunicação entre módulos e a troca de mensagens, mecanismo implementado sobre a interface de programação em rede sockets. Não há compartilhamento de memória em nenhuma instância, tornando o sistema mais legível, manutenível e portável. A interpelação entre módulos fica restrita à interface de mensagens definidas e aceitas por cada módulo. A arquitetura do HetNOS é estruturada e distribuída, pois o sistema é composto de camadas hierárquicas subdivididas em módulos, estes implementados com processos. O nível 1 corresponde ao conjunto de núcleos de sistemas operacionais nativos suportados, sobre o qual é implementado o núcleo distribuído heterogêneo do HetNOS, a DCL (Distributed Computing Layer). O principal serviço fornecido pela DCL (executada no nível 2), é um subsistema de troca de mensagens canônico e independente de localidade. Processos servidores e de usuários podem utilizar as mais variadas formas de comunicação por mensagens, tal como envio, recepção e propagação de mensagens síncronas, assíncronas, bloqueantes e não bloqueantes. No nível 3 estão os servidores do sistema, que estendem e implementam de forma distribuída a funcionalidade do sistema nativo. O Servidor de Nomes é o repositório global de dados, servindo a processos do sistema e de usuários. O Servidor de Autorização implementa o esquema de controle no acesso a recursos do sistema. O Servidor de Tipos permite que aplicações copiem dados estruturados de forma independente de localidade e de arquitetura. Por fim, o Servidor de Arquivos estende os serviços (de arquivos) locais de forma a integrá-los em um único domínio (espaço). No nível 4, arquiteturas e sistemas operacionais são emulados por módulos interpretadores (denominados Emulators). Aplicações de usuários estão espalhadas dos níveis 2 a 5; a camada varia com o tipo de aplicação. Para demonstrar a viabilidade do sistema, implementou-se a estrutura fundamental do HetNOS, incluindo a DCL (um núcleo distribuído heterogêneo), a versões básicas dos módulos servidores, as bibliotecas de procedimentos, além de diversos tipos de aplicações. O sistema conta hoje com mais de 25.000 linhas de código fonte C em mais de 100 arquivos. O desempenho do subsistema de comunicação implementado pela DCL (em avaliações com diferentes configurações de hardware) superou as expectativas iniciais, mas ainda está muito aquém do necessário a aplicações distribuídas. Segundo o que indicam as primeiras experiências realizadas, o HetNOS será bastante útil na prototipação e avaliação de modelos distribuídos, assim como na programação de software distribuído homogêneo e heterogêneo. Projetos de pesquisa do CPGCC envolvendo sistemas distribuídos (p.ex., tolerância a falhas e simulações) podem utilizar o HetNOS como ferramenta para implementação e validação de seus modelos. Futuramente, aplicações distribuídas e paralelas de maior porte poderão ser programadas, como sistemas de gerencia de bases de dados distribuídas, simuladores e sistemas de controle para automação industrial. / The advent of personal computers and, later, of workstations, along with the development of efficient and low-cost communication hardware has led to the popularization of local-area networks. However, distributed software did not experiment the same development of hardware, specially due to the complexity of distributed systems. The machine, system and communication network heterogeneity, inherent to the modern computing environments, is also responsible for the lack of integration and cooperation of available nodes. The purpose of this work is, from the analysis of the main aspects related to distribution and heterogeneity, to design a heterogeneous network operating system. Such system, named HetNOS (which stands for Heterogeneous Network Operating System), allows users to quickly write and validate distributed homogeneous and heterogeneous applications. Users can concentrate their work in the distributed aspects, abstracting communication mechanisms' details, because programming of distributed applications is based on a homogeneous interface platform, easy to use and location-independent. Being a network operating system, HetNOS acts over the set of native operating systems; the environment is extended instead of substituted. There are neither centralized information nor entities, and the algorithms are always distributed, usually yielding more reliability and performance. The HetNOS topology is a logical ring, scheme adopted partly due to the generality of such configuration and partly to simplify the HetNOS distributed kernel design. The communication paradigm between modules is the message exchange, a mechanism implemented over the sockets network application programming interface. There is no shared memory at all, making the system clearer, more manutible and portable. The interrelation between modules is restricted to the message interface defined and accepted by a module. The HetNOS architecture is structured and distributed, as the system is composed of hierarchical layers divided into modules, which in their turn are realized as processes. The layer 1 is the set of native operating system kernels, over which is implemented the distributed heterogeneous HetNOS kernel, namely DCL (states for Distributed Computing Layer). The main service provided by DCL (in layer 2) is a canonical, location-independent, message exchange mechanism. Server and user processes may use multiple forms of message primitives, such as synchronous, asynchronous, blocking and non-blocking send and receive. In the layer 3 are the system servers, which extend and implement in a distributed way the functionality of native systems. The name server is a global data repository, serving other system and user processes. The authorization server implements the security scheme to control the access to the system resources. The type server allows applications to transfer structured data independently of location and architecture. Finally, the file server extends the local (file) services to integrate them into a unique domain (space). In the layer 4, architectures and operating systems are emulated by interpreter modules (named Emulators). User applications are spread over the layers 2 to 5, depending on the application type. In order to prove the system viability, the fundamental HetNOS structure has been implemented, including its distributed heterogeneous kernel, the base of server modules, the procedure libraries, and several types of applications. The system source code has over 25,000 lines of C programming distributed over a hundred files. Although the optimization is an endless process, the performance of the DCL communication subsystem (evaluated using a few different hardware configurations) overestimated initial predictions, but is weak if considered the requirements to distributed processing. Accordingly to the first experiences made, HetNOS will be of great value to evaluate and prototype distributed models, as well as to the programming of homogeneous and heterogeneous distributed software. Local research projects involving distributed systems (e.g., fault tolerance and simulations) may use HetNOS as a tool to validate and implement their models. In the future, more complex distributed and parallel applications will be programmed, such as a distributed database management system, simulators and factory automation control systems.
|
249 |
Analysis and Design of Native File System Enhancements for Storage Class MemoryJanuary 2016 (has links)
abstract: As persistent non-volatile memory solutions become integrated in the computing ecosystem and landscape, traditional commodity file systems architected and developed for traditional block I/O based memory solutions must be reevaluated. A majority of commodity file systems have been architected and designed with the goal of managing data on non-volatile storage devices such as hard disk drives (HDDs) and solid state drives (SSDs). HDDs and SSDs are attached to a computing system via a controller or I/O hub, often referred to as the southbridge. The point of HDD and SSD attachment creates multiple levels of translation for any data managed by the CPU that must be stored in non-volatile memory (NVM) on an HDD or SSD. Storage Class Memory (SCM) devices provide the ability to store data at the CPU and DRAM level of a computing system. A novel set of modifications to the ext2 and ext4 commodity file systems to address the needs of SCM will be presented and discussed. An in-depth analysis of many existing file systems, from multiple sources, will be presented along with an analysis to identify key modifications and extensions that would be necessary to execute file system on SCM devices. From this analysis, modifications and extensions have been applied to the FAT commodity file system for key functional tests that will be presented to demonstrate the operation and execution of the file system extensions. / Dissertation/Thesis / Masters Thesis Computer Science 2016
|
250 |
Programmation synchrone de pilotes de périphériques pour un contrôle global de ressources dans les systèmes embarqués / Synchronous Programming of Device Drivers for Global Resource Control in Embedded Operating SystemsBerthier, Nicolas 12 March 2012 (has links)
Le travail présenté dans cette thèse porte sur la conception de logiciels pour systèmes embarqués. Outre les contraintes de programmation provenant des faibles quantité de mémoire et capacité de calcul, ces plates-formes matérielles ne disposent parfois que de peu d'énergie pour fonctionner. Les applications usuelles de ces systèmes imposent de plus des objectifs en matière de réactivité et de durée de vie. Par ailleurs, quelques-unes des ressources fournies sont partagées entre les composants, qu'il s'agisse de l'énergie délivrée par une batterie, ou encore des bus de communication qui les relient. Il est donc nécessaire de pouvoir assurer des propriétés globales portant sur l'ensemble de la plate-forme, telles que le contrôle des accès aux bus, ou encore la maîtrise de la puissance électrique consommée. Cependant, les pilotes des différents périphériques sont d'ordinaire programmés individuellement. La connaissance nécessaire à l'implantation d'une politique de contrôle global est alors distribuée parmi diverses portions du logiciel. Nous exposons une solution au problème du contrôle global des ressources, basée sur une vue centralisée des états des composants matériels de la plate-forme. Bâtie sur un principe de para-virtualisation, notre approche consiste en l'introduction d'une couche de contrôle ; le système d'exploitation invité est adapté afin de communiquer avec le matériel à l'aide de celle-ci. La couche de contrôle incorpore les pilotes des périphériques, conçus à partir d'automates dont les états correspondent aux modes de fonctionnement ou de consommation du composant géré. Un contrôleur est ajouté, dont le rôle est d'assurer les propriétés globales. L'ensemble de ces automates est programmé à l'aide d'un langage synchrone, puis compilé en code séquentiel. Nous proposons une implantation de la couche de contrôle pour une architecture de nœuds de réseaux de capteurs sans fil, qui constitue une plate-forme représentative des systèmes embarqués contraints. Nous évaluons qualitativement et quantitativement ce prototype afin de montrer la viabilité de l'approche. Son impact sur le reste du logiciel est également apprécié, que celui-ci soit construit selon un modèle d'exécution purement événementiel ou multi-fils. Enfin, nous passons en revue plusieurs extensions possibles, et identifions quelques bonnes pratiques pour son usage dans d'autres contextes. / This thesis is about the design of software for embedded systems. The hardware platforms usually employed in these systems provide a limited amount of memory, computational power and energy. The software they execute is then constrained by such limited resources. Usual applications involve further objectives, such as reactivity and lifetime. In addition, these platforms comprise shared resources like buses or even the energy provided by a battery. Hence, global properties concerning the whole platform must be enforced, for instance to control concurrent accesses to a bus or power consumption. As device drivers are commonly developed individually, the knowledge necessary to implement global control policies is distributed among several pieces of software. We propose a global control approach, based on a centralized view of the devices' states. Built upon para-virtualization principles, it operates on the hardware/software interface. It involves a simple adaptation of the guest operating system, to communicate with the hardware via a control layer. The control layer itself is built from a set of simple automata: the device drivers, whose states correspond to functional or power consumption modes, and a controller to enforce global properties. All these automata are programmed using a synchronous language, and compiled into a single piece of sequential code. As a suitable representative of embedded systems hardware, we choose the node of a wireless sensor network. To show that our approach is practical, we propose a proof-of-concept implementation of the control layer to manage this platform, and evaluate it both qualitatively and quantitatively. We also demonstrate its use and benefits with an event-driven or multithreading operating system, and estimate the impact of the adaptation on guest software. Finally, we audit several extensions and draw guidelines for its use in other contexts.
|
Page generated in 0.1095 seconds