210 research outputs found
Circus Models for Safety-Critical Java Programs
Safety-critical Java (SCJ) is a restriction of the real-time specification for Java to support the development and certification of safety-critical applications. The SCJ technology specification is the result of an international effort from industry and academia. In this paper, we present a formalization of the SCJ Level 1 execution model, formalize a translation strategy from SCJ into a refinement notation and describe a tool that largely automates the generation of the formal models. Our modelling language is part of the Circus family; at the core, we have Z, communicating sequential processes and Morgan’s calculus, but we also use object-oriented and timed constructs from the OhCircus and Circus Time variants. Our work is an essential ingredient for the development of refinement-based reasoning techniques for SCJ
Behavioral types in programming languages
A recent trend in programming language research is to use behav- ioral type theory to ensure various correctness properties of large- scale, communication-intensive systems. Behavioral types encompass concepts such as interfaces, communication protocols, contracts, and choreography. The successful application of behavioral types requires a solid understanding of several practical aspects, from their represen- tation in a concrete programming language, to their integration with other programming constructs such as methods and functions, to de- sign and monitoring methodologies that take behaviors into account. This survey provides an overview of the state of the art of these aspects, which we summarize as the pragmatics of behavioral types
Monitoring Architecture for Real Time Systems
It can be hard to understand how an operating system - and software in general - reached a certain
output just by looking at said output. A simple approach is to use loggers, or simple print
statements on some specific critical areas, however that is an approach that does not scale very
well in a consistent and manageable way.
The purpose of this thesis is to propose and develop a tool - a Monitoring Tool - capable of capturing
and recording the execution of a given application with minimal intrusion in the context of
real-time embedded systems, namely using a space-qualified version of the RTEMS real-time operating
system, and making that information available for further processing and analysis. Multicore
environments are also considered.
The current state of the art in monitoring and execution tracing is presented, featuring both a
literature review and a discussion of existing tools and frameworks. Using an implementation of
the proposed architecture, the tool was tested in both unicore and multicore configurations in both
sparc and arm architectures, and was able to record execution data of a sample application, with
varying degrees of verbosity.Nem sempre é fácil perceber como é que um sistema operativo - e software em geral - chegaram
a determinado resultado apenas olhando para este. A abordagem normal é usar registos, ou pequenas
impressões em locais estratégicos do código, no entanto esta abordagem não é escalável de
forma consistente e sustentada.
O propósito desta tese é o de propor e desenvolver uma ferramenta - uma ferramenta de monitorização
- capaz de capturar e registar a execução de uma dada aplicação com o mínimo de impacto
no contexto de sistemas embebidos de tempo-real, nomeadamente usando uma versão do sistema
operativo de tempo-real Real-Time Executive for Multiprocessor Systems (RTEMS) qualificada
para o espaço, e colocando essa informação à disposição para processamento e análise futura. Ambientes
com múltiplos núcleos de processamento são também considerados.
O atual estado da arte em monitorização e registo de execução de software é apresentado, destacando
tanto exemplos da literatura como ferramentas e frameworks existentes. Usando uma implementação
da arquitetura proposta, a ferramenta foi testada em configurações com um ou mais
núcleos de processamento em arquiteturas sparc e arm, tendo sido capaz de registar e gravar dados
da execução de uma aplicação de exemplo, como vários níveis de detalhe
- …