Skip to main content
eScholarship
Open Access Publications from the University of California

UC San Diego

UC San Diego Electronic Theses and Dissertations bannerUC San Diego

Providing timing guarantees in software using Golang

Abstract

Guarantee of timing performance is key in realtime systems. Realtime software that does not meet timing requirements is considered erroneous regardless of its functional correctness. Ensuring timing accuracy is challenging due to differences in the notion of time between hardware, software and real-world interfaces. In practice, this challenge is addressed by separating the program development and runtime environments for realtime versus general-purpose (or non-realtime) software.

Typically, realtime operating environments are characterized by simple process scheduling, minimal or no memory management, and a fixed set of processes having static priorities. Thus, realtime software development is disjoint from other forms of system software development.

This work focuses on developing an outline of a software platform for writing realtime software. This platform is aimed for use in standard operating systems and thus targets co-existence with non-realtime software. To accomplish this goal, we use the Golang programming language and its runtime environment. Golang is a type-safe and memory-safe systems programming language, designed from the ground up as a `C for the 21st century'. Golang offers a rich runtime environment that performs scheduling, memory allocation and cleaning and, synchronization. We present initial experimental results of using Golang for realtime applications.

Main Content
For improved accessibility of PDF content, download the file to your device.
Current View