Introduction
A brief introduction to the concepts of operating systems and their
functionality. Descriptions of multi-tasking and real-time with a comparison
of real-time and non real-time applications. Finally, a description of
the layered architecture of the RMX III operating system.
The Development Environment
A description of the development environments available to the RMX
III operating system developer.
Laboratory project: Creating a simple C program and processing it
through one of the available tool chains.
The Task
An introduction to the task concept within the RMX III operating system.
This section also covers task scheduling and task states.
Laboratory project: Building a simple two task (non-cooperating)
system.
Memory
An overview description of the Nucleus level memory manager. An introduction
to the memory segment, the simplest object within the operating system.
Intertask Communication
The description and usage of the objects used for intertask communication.
This includes the data mailbox (queue), the object mailbox, the counting
semaphore, and the region (a single unit semaphore with priority adjustment
properties)
Laboratory project: Intertask communication using both mailboxes
and semaphores
The Job
A description of the job object including local resource management
and inter-job protection and communication. The hierarchical structure
of the job tree is covered in addition to the usage of the object directories
within each job. Finally, a description of the root job and the initialization
of the system.
Laboratory project: A multiple job system with communications between
the tasks within those jobs.
Interrupts
This section starts with a comparison between interrupts and polling
as a way to interface to outside devices. Concepts covered include the
interrupt service routine, the interrupt task and the communication mechanisms
between them. In addition, the concepts of preemption, priority and single
vs. multiple outstanding interrupt architectures are discussed.
Laboratory project: A simple interrupt service routine/interrupt
task combination.
Exception handling
A description of the handling of exceptions (errors) within the RMX
III operating system. The distinction between environmental and programmer
errors, how the programmer can set up automatic exception handling tailored
to each portion of their application, and how to create an exception handler
in addition to the automatic inheritance of exception handlers based on
the job are all topics of discussion
Laboratory project: Creation and usage of an exception handler.
Kernel
This section is the lowest level of the RMX III operating system. The
concept of the kernel and the application programming interface for kernel
task management, kernel memory management, kernel mailboxes, kernel semaphores
and kernel time management (alarms) are described.
Optional Laboratory project: Creation of a simple two task system
utilizing kernel objects for communication.
Basic Input/Output System
In an overview, the concepts of an asynchronous I/O system such as
the file, file types, the connection to a file, and the Basic I/O System
buffering process are discussed. User interfaces with the I/O system such
as the connection object and the input/output request/result segment are
included. There is full coverage of the sequence of calls the user makes
to create, manipulate and delete files or directories .
Laboratory project: File manipulation of physical and named files using
BIOS system calls.
Extended Input/Output System
The overview of this section includes discussion of the concepts of
a synchronous I/O system including the EIOS connection to a file, the EIOS
buffering methods and the differences between BIOS and EIOS file interaction.
Again, the sequence of calls necessary for the user to create, manipulate
and delete a file in EIOS are included.
Laboratory project: File manipulation of physical and named files
using EIOS calls.
Device Drivers
This section starts with a description of the common, random and custom
device driver structures. The interfaces between the file system and the
device driver and the procedures the user must write to create a device
driver are also discussed.
Optional Laboratory project: Creation of a simple interrupt driven
device driver for custom hardware.
RMX for PCs/RMX for Windows Topics
This section includes a description of the real mode encapsulation
process that RMX for PCs uses to turn the ROM BIOS into a real mode task.
This same process is extended to DOS and Windows 3.1 by the RMX for Windows
operating system. Also included are the Real Time Extension (RTE) calls
that enable the programmer to communicate with the RMX operating system
from DOS and Windows applications. The Dynamic Data Exchange mechanism
usage that allows RMX based applications to work directly with Windows
applications like Excel is discussed.
Laboratory project: Exchange of data from an RMX application to Excel
utilizing DDE
Flat Model Mode
In Version 2.3 of the RMX product, the flat model mode can be utilized
to enable the programmer to utilize current compilers and software tools.
This section discusses this and other new features of the operating system.
Human Interface
A short overview of the RMX Human Interface and the Command Line Interpreter
is presented. Also covered is the application programming interface the
programmer can employ to create their own command line to invoke programs.