Prefácio

Os sistemas computacionais com requisitos de natureza temporal, ou simplesmente Sistemas de Tempo Real, existem desde os anos 1960. Entretanto, eles ganharam muita notoriedade e importância nas últimas décadas, com a disseminação dos Sistemas Embutidos ou Embarcados (Embedded Systems), ou seja, computadores escondidos dentro de máquinas e equipamentos realizando seu controle e automação. Tais sistemas computacionais precisam respeitar os aspectos temporais do ambiente onde estão inseridos, gerando assim requisitos temporais para o hardware e o software. Mais recentemente, o advento da Internet das Coisas tornou a temática dos sistemas de tempo real ainda mais importante.

Este livro foi escrito com a intenção de ser adotado como bibliografia básica em disciplinas sobre Sistemas de Tempo Real, tais como existem em cursos de Engenharia de Computação, Engenharia de Controle e Automação, Ciência da Computação e vários cursos de Tecnologia em Automação. Para isto, buscou-se uma linguagem de fácil leitura, rico em ilustrações e em exercícios. O tratamento dos conceitos e fundamentos da área é rigoroso. Entretanto, o texto procura manter um olhar prático de engenharia, fugindo de exageros matemáticos baseados em premissas distantes da realidade. A idéia é fornecer ao leitor uma estrutura conceitual sólida e um entendimento do tema, incluindo as limitações da área, de tal forma que ele possa lidar com projetos reais sabendo o que pode e o que não pode ser feito.

O livro também inclui material básico sobre sistemas operacionais e programação concorrente. Sobre sistemas operacionais, a gerência de processador é descrita com detalhes, e a gerência de memória é também abordada, incluindo paginação simples e descrevendo suscintamente memória virtual. Sobre programação concorrente, soluções baseadas em variáveis compartilhadas são bastante exploradas e soluções baseadas em troca de mensagens são apresentadas. Muitos cursos de engenharia e de tecnologia de automação possuem uma disciplina que junta sistemas operacionais, programação concorrente e tempo real, podendo este livro ser adotado como bibliografia básica de uma disciplina como esta. É o meu caso no curso de Engenharia de Controle e Automação da UFSC.

Este livro é muito flexível para a montagem de planos de ensino. A organização dos capítulos permite ao professor montar seu plano de ensino conforme o contexto do seu curso, podendo descartar alguns capítulos sem prejuízo para o entendimento de capítulos posteriores. Dependendo do contexto do curso, alguns capítulos são mais importantes que outros e a ordem deles também pode ser alterada. Por exemplo, caso os alunos tenham uma disciplina de sistemas operacionais antes, os capítulos 3 e 4 não são necessários. Da mesma forma, disciplinas de programação concorrente cobrem o material dos capítulos 6 e 8. O capítulo 9 sobre o tempo real pode ser apresentado no início do curso, caso o professor prefira. Os capítulos 10, 11 e 12, que levam ao WCET, podem não ser interessantes para muitos cursos de graduação e, neste caso, podem ser apresentados de forma resumida. A descrição do FreeRTOS e do Linux Preempt-RT no capítulo 16 pode ou não ser incluída, conforme o curso. Em resumo, o professor ao adotar este livro para sua disciplina é fortemente encorajado a escolher os capítulos e seções a serem usados conforme o seu plano de ensino.

Como sempre, as limitações de espaço obrigam o autor a decidir o que incluir e o que simplificar ou deixar de fora. Por exemplo, algumas pessoas podem achar estranho que servidores de aperiódicas não tenham seu próprio capítulo, dado ser um tema frequente. Ocorre que na grande maioria dos sistemas atuais a utilização total do processador é baixa. Existem problemas com perdas de deadlines, mas isto devido a situações de bloqueio e deadlines apertados, e não devido ao processador estar muito utilizado. Por isto, foi escolhido tratar dos servidores de aperiódicas como uma seção do capítulo de tópicos adicionais. Aliás, o capítulo 17 sobre tópicos adicionais pode ser entendido como o capítulo das coisas que eu gostaria de ter incluído, mas não tinha espaço.

A pesquisa acadêmica sobre Sistemas de Tempo Real é muito fértil, centenas de artigos são publicados anualmente em congressos e periódicos científicos. Pessoas interessadas podem encontrar os mais recentes avanços na área, por exemplo, no periódico Real-Time Systems e em conferências como IEEE Real-Time Systems Symposium (RTSS), IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS) e Euromicro Conference on Real-Time Systems (ECRTS). No entanto, dado que qualquer coisa na computação pode ser revisitada com “um olhar de tempo real”, existem artigos sobre sistemas de tempo real em uma vasta gama de outros veículos.

Este livro resume os aspectos mais relevantes sobre os Sistemas de Tempo Real que aprendi ao longo de 25 anos, desde que começei meu doutorado neste tema em 1993. Ao longo destes anos tive a oportunidade de trabalhar com centenas de pessoas, as quais contribuiram imensamente para o meu crescimento pessoal e profissional. Em particular, gostaria de agradecer ao Prof. Joni da Silva Fraga, meu orientador de doutorado e um dos primeiros pesquisadores brasileiros na área. Também gostaria de agradecer a todos aqueles que assistiram minhas aulas de graduação, pós-graduação e em empresas, de certa forma foram cobaias pois a melhor forma de aprender algo é ter que dar aulas sobre o assunto. Agradeço às seguintes pessoas, as quais revisaram partes do texto: Augusto Born de Oliveira, Andreu Carminati, Daniel Bristot de Oliveira, Karila Palma Silva, Luís Fernando Arcaro, Patrícia Della Méa Plentz e Rodrigo Lange.

Tive a oportunidade de orientar vários mestrandos e doutorandos na área, os quais contribuiram em muito para meu aprendizado sobre sistemas de tempo real. Entre eles, gostaria de nomear alguns (em ordem alfabética):

Alexandre Cervieri           
Alexandre José da Silva       
Andreu Carminati           
Cassia Yuri Tatibana                
Daniel Bristot de Oliveira        
Fábio Rodrigues de la Rocha       
José Luiz Pereira dos Santos       
Karila Palma Silva           
Luciana de Oliveira Rech
Lucy Vargas

Luís Fernando Arcaro
Marcos Vinicius Linhares

Patrícia Della Méa Plentz
Renan Augusto Starke

Rodrigo Lange
Rodrigo Pinto Gonçalves

Roger Daniel Ferreira

Finalmente, gostaria de agradecer à minha esposa Simone e ao meu filho Augusto pelo suporte e apoio ao longo da vida.

Boa leitura a todos.

Florianópolis-SC, outubro de 2018.
Rômulo Silva de Oliveira.