On interrupt-transparent synchronization in an embedded object-oriented operating system

A crucial aspect in the design of (embedded real-time) operating systems concerns interrupt handling. This paper presents the concept of a modularized interrupt-handling subsystem that enables the synchronization of interrupt-driven, non-sequential code without the need to disabling hardware interrupts. The basic idea is to use nonblocking/optimistic concurrency sequences for synchronization inside an operating-system kernel. Originally designed for the PURE embedded operating system, the presented object-oriented implementation is highly portable not only regarding the CPU but also operating systems and yet efficient.

[1]  Calton Pu,et al.  A Lock-Free Multiprocessor OS Kernel , 1992, OPSR.

[2]  Keith Bostic,et al.  The design and implementa-tion of the 4.4BSD operating system , 1996 .

[3]  Maurice Herlihy,et al.  Wait-free synchronization , 1991, TOPL.

[4]  Wolfgang Schröder-Preikschat The logical design of parallel operating systems , 1994, Prentice Hall series in innovative technology.

[5]  Robert Magnus,et al.  Linux Kernel Internals , 1996 .

[6]  Klaus Schneider,et al.  Validation of Object-Oriented Concurrent Designs by Model Checking , 1999, CHARME.

[7]  Satish K. Tripathi,et al.  The MARUTI hard real-time operating system , 1989, [1989] Proceedings. The Fourth Israel Conference on Computer Systems and Software Engineering.

[8]  Hermann Kopetz,et al.  The real-time operating system of MARS , 1989, OPSR.

[9]  Samuel J. Leffler,et al.  The design and implementation of the 4.3 BSD Unix operating system , 1991, Addison-Wesley series in computer science.

[10]  David R. Cheriton,et al.  The synergy between non-blocking synchronization and operating system structure , 1996, OSDI '96.

[11]  Krithi Ramamritham,et al.  Scheduling algorithms and operating systems support for real-time systems , 1994, Proc. IEEE.

[12]  Berny Goodheart,et al.  The magic garden explained - the internals of UNIX System V, release 4: an open systems design , 1994 .

[13]  Danilo Beuche,et al.  The PURE family of object-oriented operating systems for deeply embedded systems , 1999, Proceedings 2nd IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'99) (Cat. No.99-61702).

[14]  Helen Custer,et al.  Inside Windows NT , 1992 .

[15]  Krithi Ramamritham,et al.  The Spring kernel: a new paradigm for real-time operating systems , 1989, OPSR.

[16]  David Lorge Parnas,et al.  On the Design and Development of Program Families , 2001, IEEE Transactions on Software Engineering.

[17]  Wolfgang Schröder-Preikschat,et al.  Design Rationale of the PURE Object-Oriented Embedded Operation System , 1998, DIPES.