An operating system architecture for real-time tasking abstractions

A flexible real-time tasking abstraction is necessary to support diversified and evolving application-level timing constraints. Previous research has focused on rigid solutions and failed to provide any insight to a more flexible design alternative. A common approach has been to implement a real-t...

Full description

Bibliographic Details
Main Author: Lo, Siu Ling Ann
Language:English
Published: 2009
Online Access:http://hdl.handle.net/2429/8868
id ndltd-LACETR-oai-collectionscanada.gc.ca-BVAU.2429-8868
record_format oai_dc
spelling ndltd-LACETR-oai-collectionscanada.gc.ca-BVAU.2429-88682014-03-14T15:42:57Z An operating system architecture for real-time tasking abstractions Lo, Siu Ling Ann A flexible real-time tasking abstraction is necessary to support diversified and evolving application-level timing constraints. Previous research has focused on rigid solutions and failed to provide any insight to a more flexible design alternative. A common approach has been to implement a real-time scheduling algorithm in the operating system kernel as an integral part of the task model. When the real-time requirements of applications evolve and a new scheduling algorithm is needed, the kernel is modified. This monolithic approach is out of step with the press for software reusability when software development and maintenance costs continue to escalate. In order to explore for a flexible design, we have examined the concepts behind existing real-time task models and classified them into competitive and cooperative task models. In contrast to the common belief that they are fundamentally different, our conclusion is that although the design of these task models are incompatible with each other, their underlying concepts are not. This paves the way for our architectural design which supports evolving real-time requirements at the application level. We propose a task abstraction where tasks cooperate and participate in making real-time scheduling decisions. This design allows for the implementation of competitive task models and their scheduling algorithms on top of a common kernel. It also provides more flexibility in task structuring since applications can be structured as cooperating tasks. We have implemented our design in the Mach 3.0 kernel and the r-kernel for experimentation and for proving the practicality of our abstraction in terms of performance and consistency with the overall design of the systems. The lessons we have learnt from implementation have strengthened our belief in the importance of providing a flexible scheduling interface which can be used by the application programmer. The flexibility of our solution is illustrated by considering the demands placed on the kernel by a modern multimedia application. 2009-06-09T15:52:23Z 2009-06-09T15:52:23Z 1995 2009-06-09T15:52:23Z 1995-05 Electronic Thesis or Dissertation http://hdl.handle.net/2429/8868 eng UBC Retrospective Theses Digitization Project [http://www.library.ubc.ca/archives/retro_theses/]
collection NDLTD
language English
sources NDLTD
description A flexible real-time tasking abstraction is necessary to support diversified and evolving application-level timing constraints. Previous research has focused on rigid solutions and failed to provide any insight to a more flexible design alternative. A common approach has been to implement a real-time scheduling algorithm in the operating system kernel as an integral part of the task model. When the real-time requirements of applications evolve and a new scheduling algorithm is needed, the kernel is modified. This monolithic approach is out of step with the press for software reusability when software development and maintenance costs continue to escalate. In order to explore for a flexible design, we have examined the concepts behind existing real-time task models and classified them into competitive and cooperative task models. In contrast to the common belief that they are fundamentally different, our conclusion is that although the design of these task models are incompatible with each other, their underlying concepts are not. This paves the way for our architectural design which supports evolving real-time requirements at the application level. We propose a task abstraction where tasks cooperate and participate in making real-time scheduling decisions. This design allows for the implementation of competitive task models and their scheduling algorithms on top of a common kernel. It also provides more flexibility in task structuring since applications can be structured as cooperating tasks. We have implemented our design in the Mach 3.0 kernel and the r-kernel for experimentation and for proving the practicality of our abstraction in terms of performance and consistency with the overall design of the systems. The lessons we have learnt from implementation have strengthened our belief in the importance of providing a flexible scheduling interface which can be used by the application programmer. The flexibility of our solution is illustrated by considering the demands placed on the kernel by a modern multimedia application.
author Lo, Siu Ling Ann
spellingShingle Lo, Siu Ling Ann
An operating system architecture for real-time tasking abstractions
author_facet Lo, Siu Ling Ann
author_sort Lo, Siu Ling Ann
title An operating system architecture for real-time tasking abstractions
title_short An operating system architecture for real-time tasking abstractions
title_full An operating system architecture for real-time tasking abstractions
title_fullStr An operating system architecture for real-time tasking abstractions
title_full_unstemmed An operating system architecture for real-time tasking abstractions
title_sort operating system architecture for real-time tasking abstractions
publishDate 2009
url http://hdl.handle.net/2429/8868
work_keys_str_mv AT losiulingann anoperatingsystemarchitectureforrealtimetaskingabstractions
AT losiulingann operatingsystemarchitectureforrealtimetaskingabstractions
_version_ 1716651547487633408