Engenharia de Domínio aplicada ao Desenvolvimento Robusto e Eficiente de Sistemas Operacionais


Luciano Porto Barreto
Distributed Systems Laboratory—LaSiD, Computing Science Department, Federal University of Bahia—UFBA



Software engineering techniques have been modestly applied to simplify the construction of operating systems. As result, OS development is still restricted to experts and considered as a complex and error-prone task. In this paper, we describe a domain engineering approach applied to the development of a framework dedicated to the implementation of process schedulers. This framework, named Bossa, has been implemented in the Linux kernel and extensively used to develop and test new scheduling policies. We present the steps of the domain engineering process and discuss the lessons learned during the development of the framework.

As técnicas de engenharia de software têm sido modestamente aplicadas para simplificar a construção de sistemas operacionais. Como resultado, o desenvolvimento de sistemas operacionais permanece restrito a especialistas e é considerado como tarefa complexa e propensa a erros. Neste artigo, descrevemos uma abordagem de engenharia de domínio aplicada ao desenvolvimento de um framework dedicado à implementação de escalonadores de processos. Esse framework, chamado Bossa, foi implementado no núcleo do Linux e extensivamente utilizado no desenvolvimento e teste de políticas de escalonamento. São apresentados os passos realizados no processo de engenharia de domínio e discutidos aspectos relacionados ao aprendizado adquirido durante o desenvolvimento desse framework.