938 resultados para UNIX (Operating System)
Resumo:
Actualmente, os smartphones e outros dispositivos móveis têm vindo a ser dotados com cada vez maior poder computacional, sendo capazes de executar um vasto conjunto de aplicações desde simples programas de para tirar notas até sofisticados programas de navegação. Porém, mesmo com a evolução do seu hardware, os actuais dispositivos móveis ainda não possuem as mesmas capacidades que os computadores de mesa ou portáteis. Uma possível solução para este problema é distribuir a aplicação, executando partes dela no dispositivo local e o resto em outros dispositivos ligados à rede. Adicionalmente, alguns tipos de aplicações como aplicações multimédia, jogos electrónicos ou aplicações de ambiente imersivos possuem requisitos em termos de Qualidade de Serviço, particularmente de tempo real. Ao longo desta tese é proposto um sistema de execução de código remota para sistemas distribuídos com restrições de tempo-real. A arquitectura proposta adapta-se a sistemas que necessitem de executar periodicamente e em paralelo mesmo conjunto de funções com garantias de tempo real, mesmo desconhecendo os tempos de execução das referidas funções. A plataforma proposta foi desenvolvida para sistemas móveis capazes de executar o Sistema Operativo Android.
Resumo:
Os sistemas de recomendação têm vindo a ser cada vez mais utilizados nos últimos anos. Por isso, é imprescindível que estes sistemas se adaptem à evolução da sociedade incluindo cada vez mais novas funcionalidades, tais como a adaptação do sistema ao contexto da pessoa. Esta adaptação pode ser feita através de, por exemplo, dispositivos móveis, que têm vindo a apresentar uma taxa de crescimento de vendas muito grande. Dada a crescente integração dos sistemas de recomendação com os sistemas móveis, foi elaborado um estudo sobre o estado da arte dos sistemas de auxílio ao turista que utilizam dispositivos móveis, sendo apresentadas as suas vantagens e desvantagens. Estes sistemas móveis de auxílio a turistas foram divididos em dois grupos: os que apresentam apenas a informação sobre pontos de interesse e os sistemas que são capazes de efectuar recomendações, com base no perfil do turista. Um breve estudo sobre os sistemas operativos para dispositivos móveis é apresentado, sendo especialmente focado o sistema operativo Android que foi o escolhido para esta implementação. Como os dispositivos móveis, actualmente, ainda possuem várias limitações, estas foram descritas e apresentadas as boas práticas no desenvolvimento de aplicações para este tipo de sistemas. É também apresentado um estudo que visa descobrir qual é o método mais leve e mais rápido para trocar dados entre a parte servidora e a parte móvel. Com a parte introdutória apresentada, é exposto o projecto desenvolvido nesta tese, o PSiS Mobile. Este sistema é um módulo que faz parte do projecto PSiS e pretende trazer todas as vantagens dos sistemas móveis para o sistema base já implementado. O projecto PSiS foca-se no estabelecimento de planos de visita personalizados com indicação de percursos para turistas com tempo limitado. Apoiando a definição de planos de visitas de acordo com o perfil do turista (interesses, valores pessoais, desejos, restrições, deficiências, etc.) combinando os produtos de turismo mais adequados (locais de interesse, eventos, restaurantes, etc.) em itinerários eficientes. A utilização de dispositivos móveis para acompanhamento da visita permite uma rápida interacção entre o turista e o sistema. Assim, o PSiS poderá recolher informação contextual do utilizador para que o perfil do mesmo seja enriquecido. O sistema apresentado é composto por duas partes: a parte cliente e a parte servidora. Toda a informação, como por exemplo o perfil do turista, histórico de viagens e valores de similaridade entre utilizadores está presente na parte servidora. O processo de recomendação também é efectuado pela aplicação servidora, sendo esta a responsável pela atribuição de uma classificação aos pontos de interesse tendo em conta o perfil do utilizador em causa. A base de dados do PSiS possui toda a informação relativa aos pontos de interesse numa determinada cidade ou região e o portfólio completo do histórico de visitas de cada utilizador. A componente móvel é uma parte muito importante para o sistema, pois interage com o utilizador no terreno. Um dispositivo móvel como o PDA, não só permite a apresentação de informação relevante ao utilizador, como também permite a recolha automática de informação contextual (por exemplo, a localização). Toda esta informação contribui para a definição de um perfil completo e para uma melhor adaptação do sistema às necessidades do utilizador. De forma a nem sempre estar dependente do servidor, a aplicação móvel possui rotinas para a realização de recomendações básicas. Ou seja, a aplicação móvel não realiza a classificação dos pontos de interesse, mas apenas mostra os principais resultados já formados pela parte servidora. Por exemplo, se um utilizador gostar de comida Chinesa, um restaurante Chinês nas imediações irá ter uma boa classificação e, por isso, ser recomendado. A aplicação móvel mostra ao turista o percurso definido para o dia em que o mesmo se encontra, sendo feito o rastreio do trajecto que o mesmo efectua. Assim, o sistema consegue saber se o horário do planeamento está a ser cumprido ou não. Caso não esteja, é invocado um algoritmo de planeamento que irá tentar corrigir o atraso ou o adiantamento perante o horário inicial. Depois de visitar um ponto de interesse, é pedido ao utilizador para fornecer feedback sobre o mesmo. Se desejado também é possível mostrar os pontos de interesse existentes perto do turista (usando as coordenadas GPS obtidas pelo dispositivo móvel) organizados por categorias, raio de distância, etc. Apesar dos dispositivos móveis possuírem várias restrições, pretendeu-se proporcionar ao utilizador uma boa experiência, através de uma aplicação rápida, de fácil utilização e adaptável, incluindo funcionalidades de planeamento, realidade aumentada e integração com a rede social do sistema. Todos estes factores contribuem para a disponibilização de informação detalhada ao turista.
Resumo:
The case of desktop Operating System and Office Suite choices considering Proprietary and Open Source Software alternatives.
Resumo:
Wireless Sensor Networks (WSN) are being used for a number of applications involving infrastructure monitoring, building energy monitoring and industrial sensing. The difficulty of programming individual sensor nodes and the associated overhead have encouraged researchers to design macro-programming systems which can help program the network as a whole or as a combination of subnets. Most of the current macro-programming schemes do not support multiple users seamlessly deploying diverse applications on the same shared sensor network. As WSNs are becoming more common, it is important to provide such support, since it enables higher-level optimizations such as code reuse, energy savings, and traffic reduction. In this paper, we propose a macro-programming framework called Nano-CF, which, in addition to supporting in-network programming, allows multiple applications written by different programmers to be executed simultaneously on a sensor networking infrastructure. This framework enables the use of a common sensing infrastructure for a number of applications without the users having to worrying about the applications already deployed on the network. The framework also supports timing constraints and resource reservations using the Nano-RK operating system. Nano- CF is efficient at improving WSN performance by (a) combining multiple user programs, (b) aggregating packets for data delivery, and (c) satisfying timing and energy specifications using Rate- Harmonized Scheduling. Using representative applications, we demonstrate that Nano-CF achieves 90% reduction in Source Lines-of-Code (SLoC) and 50% energy savings from aggregated data delivery.
Resumo:
The mainline Linux Kernel is not designed forhard real-time systems; it only fits the requirements of soft realtimesystems. In recent years, a kernel developer communityhas been working on the PREEMPT-RT patch. This patch(that aims to get a fully preemptible kernel) adds some realtimecapabilities to the Linux kernel. However, in terms ofscheduling policies, the real-time scheduling class of Linux islimited to the First-In-First-Out (SCHED_FIFO) and Round-Robin (SCHED_RR) scheduling policies. These scheduling policiesare however quite limited in terms of realtime performance.Therefore, in this paper, we report one importantcontribution for adding more advanced real-time capabilitiesto the Linux Kernel. Specifically, we describe modificationsto the (PREEMPT-RT patched) Linux kernel to supportreal-time slot-based task-splitting scheduling algorithms. Ourpreliminary evaluation shows that our implementation exhibitsa real-time performance that is superior to the schedulingpolicies provided by the current version of PREMPT-RT. Thisis a significant add-on to a widely adopted operating system.
Resumo:
The current industry trend is towards using Commercially available Off-The-Shelf (COTS) based multicores for developing real time embedded systems, as opposed to the usage of custom-made hardware. In typical implementation of such COTS-based multicores, multiple cores access the main memory via a shared bus. This often leads to contention on this shared channel, which results in an increase of the response time of the tasks. Analyzing this increased response time, considering the contention on the shared bus, is challenging on COTS-based systems mainly because bus arbitration protocols are often undocumented and the exact instants at which the shared bus is accessed by tasks are not explicitly controlled by the operating system scheduler; they are instead a result of cache misses. This paper makes three contributions towards analyzing tasks scheduled on COTS-based multicores. Firstly, we describe a method to model the memory access patterns of a task. Secondly, we apply this model to analyze the worst case response time for a set of tasks. Although the required parameters to obtain the request profile can be obtained by static analysis, we provide an alternative method to experimentally obtain them by using performance monitoring counters (PMCs). We also compare our work against an existing approach and show that our approach outperforms it by providing tighter upper-bound on the number of bus requests generated by a task.
Resumo:
Consider the problem of scheduling a set of sporadic tasks on a multiprocessor system to meet deadlines using a task-splitting scheduling algorithm. Task-splitting (also called semi-partitioning) scheduling algorithms assign most tasks to just one processor but a few tasks are assigned to two or more processors, and they are dispatched in a way that ensures that a task never executes on two or more processors simultaneously. A particular type of task-splitting algorithms, called slot-based task-splitting dispatching, is of particular interest because of its ability to schedule tasks with high processor utilizations. Unfortunately, no slot-based task-splitting algorithm has been implemented in a real operating system so far. In this paper we discuss and propose some modifications to the slot-based task-splitting algorithm driven by implementation concerns, and we report the first implementation of this family of algorithms in a real operating system running Linux kernel version 2.6.34. We have also conducted an extensive range of experiments on a 4-core multicore desktop PC running task-sets with utilizations of up to 88%. The results show that the behavior of our implementation is in line with the theoretical framework behind it.
Resumo:
Contention on the memory bus in COTS based multicore systems is becoming a major determining factor of the execution time of a task. Analyzing this extra execution time is non-trivial because (i) bus arbitration protocols in such systems are often undocumented and (ii) the times when the memory bus is requested to be used are not explicitly controlled by the operating system scheduler; they are instead a result of cache misses. We present a method for finding an upper bound on the extra execution time of a task due to contention on the memory bus in COTS based multicore systems. This method makes no assumptions on the bus arbitration protocol (other than assuming that it is work-conserving).
Resumo:
Since its official public release, Android has captured the interest from companies, developers and the general audience. From that time up to now, this software platform has been constantly improved either in terms of features or supported hardware and, at the same time, extended to new types of devices different from the originally intended mobile ones. However, there is a feature that has not been explored yet - its real-time capabilities. This paper intends to explore this gap and provide a basis for discussion on the suitability of Android in order to be used in Open Real-Time environments. By analysing the software platform, with the main focus on the virtual machine and its underlying operating system environments, we are able to point out its current limitations and, therefore, provide a hint on different perspectives of directions in order to make Android suitable for these environments. It is our position that Android may provide a suitable architecture for real-time embedded systems, but the real-time community should address its limitations in a joint effort at all of the platform layers.
Resumo:
Mobile applications are becoming increasingly more complex and making heavier demands on local system resources. Moreover, mobile systems are nowadays more open, allowing users to add more and more applications, including third-party developed ones. In this perspective, it is increasingly expected that users will want to execute in their devices applications which supersede currently available resources. It is therefore important to provide frameworks which allow applications to benefit from resources available on other nodes, capable of migrating some or all of its services to other nodes, depending on the user needs. These requirements are even more stringent when users want to execute Quality of Service (QoS) aware applications, such as voice or video. The required resources to guarantee the QoS levels demanded by an application can vary with time, and consequently, applications should be able to reconfigure themselves. This paper proposes a QoS-aware service-based framework able to support distributed, migration-capable, QoS-enabled applications on top of the Android Operating system.
Resumo:
In this paper we propose a framework for the support of mobile application with Quality of Service (QoS) requirements, such as voice or video, capable of supporting distributed, migration-capable, QoS-enabled applications on top of the Android Operating system.
Resumo:
The IEEE 802.15.4/ZigBee protocols are gaining increasing interests in both research and industrial communities as candidate technologies for Wireless Sensor Network (WSN) applications. In this paper, we present an open-source implementation of the IEEE 802.15.4/Zigbee protocol stack under the TinyOS operating system for the MICAz motes. This work has been driven by the need for an open-source implementation of the IEEE 802.15.4/ZigBee protocols, filling a gap between some newly released complex C implementations and black-box implementations from different manufacturers. In addition, we share our experience on the challenging problem that we have faced during the implementation of the protocol stack on the MICAz motes. We strongly believe that this open-source implementation will potentiate research works on the IEEE 802.15.4/Zigbee protocols allowing their demonstration and validation through experimentation.
Resumo:
The IEEE 802.15.4/Zigbee protocols are a promising technology for Wireless Sensor Networks (WSNs). This paper shares our experience on the implementation and use of these protocols and related technologies in WSNs. We present problems and challenges we have been facing in implementing an IEEE 802.15.4/ZigBee stack for TinyOS in a two-folded perspective: IEEE 802.15.4/ZigBee protocol standards limitations (ambiguities and open issues) and technological limitations (hardware and software). Concerning the former, we address challenges for building scalable and synchronized multi-cluster ZigBee networks, providing a trade-off between timeliness and energy-efficiency. On the latter issue, we highlight implementation problems in terms of hardware, timer handling and operating system limitations. We also report on our experience from experimental test-beds, namely on physical layer aspects such as coexistence problems between IEEE 802.15.4 and 802.11 radio channels.
Resumo:
Traditional Real-Time Operating Systems (RTOS) are not designed to accommodate application specific requirements. They address a general case and the application must co-exist with any limitations imposed by such design. For modern real-time applications this limits the quality of services offered to the end-user. Research in this field has shown that it is possible to develop dynamic systems where adaptation is the key for success. However, adaptation requires full knowledge of the system state. To overcome this we propose a framework to gather data, and interact with the operating system, extending the traditional POSIX trace model with a partial reflective model. Such combination still preserves the trace mechanism semantics while creating a powerful platform to develop new dynamic systems, with little impact in the system and avoiding complex changes in the kernel source code.
Resumo:
With the current complexity of communication protocols, implementing its layers totally in the kernel of the operating system is too cumbersome, and it does not allow use of the capabilities only available in user space processes. However, building protocols as user space processes must not impair the responsiveness of the communication. Therefore, in this paper we present a layer of a communication protocol, which, due to its complexity, was implemented in a user space process. Lower layers of the protocol are, for responsiveness issues, implemented in the kernel. This protocol was developed to support large-scale power-line communication (PLC) with timing requirements.