public inbox for elix@sourceware.org
 help / color / mirror / Atom feed
From: Stuart Hughes <sehughes@zentropix.com>
To: Nick Garnett <nickg@cygnus.co.uk>
Cc: elix@sourceware.cygnus.com
Subject: Re: RTLinux workshop and EL/IX press coverage on EETimes
Date: Wed, 22 Dec 1999 09:56:00 -0000	[thread overview]
Message-ID: <38611114.8CE7C1D@zentropix.com> (raw)
In-Reply-To: <popuvyc419.fsf@balti.cygnus.co.uk>

Nick Garnett wrote:
> 
> As a followup to this I would like to try and bootstrap some
> discussion on how we should improve/ammend/update the API spec to
> accomodate both real time Linux requirements as well as more general
> real time operating systems. Although "embedded" and "real time" are
> orthogonal, they often go together, so it makes sense to consider the
> latter at this point.
> 
> The main problem with the current real time Linux implementations is
> that the real time portions of the application are separated from the
> non-realtime portions. Real time components are built into a kernel
> module while non-real time components go into a conventional process.
> The only communication allowed is via FIFOs and shared memory. While
> this may change in the future, the current restrictions will apply for
> some time to come.
> 
> The main approach I want to take in handling this is to start by
> identifying a "real time" subset of the API. This would indicate those
> functions that can be expected to exhibit real time properties. For
> real time Linux these would be the functions that could be called in
> the real time module. For other operating systems these would be the
> functions that provide real time services, other functions would not
> be expected to be real time.
> 
> A provisional list of the real time subset would consist of:
> 
> POSIX pthread functions
> POSIX mutex and condition variables
> POSIX semaphore functions
> POSIX message queue functions
> 
> At present there is no clear analog in the POSIX spec for the real
> time Linux FIFOs, although maybe they can be mapped onto message
> queues in some way. As far as the API is concerned, real time Linux
> programs would be modelled as two "processes" one containing the real
> time portion and one containing the non real time portion, connected
> by message queues and shared memory.
> 
> These are just some initial ideas to try and get some discussion
> going, comments and criticisms to the list please.


Hi Nick,

Thanks for your analysis, which is spot on.  So far RTAI has support
for:

POSIX pthread functions
POSIX mutex and condition variables

We have just submitted a POSIX queues module for inclusion in RTAI.

This leaves semaphores, which are available but not using the standard
POSIX API.  I think that it should be possible to provide a wrapper to
support this API.

Regarding the communications between the RT kernel and regular user
space processes, what you say is correct, however there is also a
mailbox mechanism for IPC communication.  Also we are looking at a
method of providing transparent access at the API level to the standard
kernel syscalls, this would mean that for realtime tasks they would then
be running at kernel priority rather than being true realtime tasks.  If
this is possible I think it is attractive, as from a programming point
of view you wouldn't have the extra overhead of worrying about
communication with the Linux system proper.

Another problem that needs to be addressed is how to support the
periodic nature of tasks, that is the norm in RealTime tasks.  Our first
thoughts are to provide a POSIX timers/clocks module.  For example, one
possibility is to make use of the pthreads notification mechanism
SIGEV_THREAD this would allow a pthread to block on a condition variable
which is signaled by a POSIX timer expiring.  This is just one route and
I would be glad to hear if anyone has thoughts on this.

Regards, Stuart

  parent reply	other threads:[~1999-12-22  9:56 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-12-22  8:02 Paul Beskeen
1999-12-22  8:21 ` Stuart Hughes
1999-12-22  8:51 ` Nick Garnett
1999-12-22  9:20   ` Mark Johannes
1999-12-22 10:16     ` Nick Garnett
1999-12-22  9:56   ` Stuart Hughes [this message]
1999-12-22 10:26     ` Nick Garnett
1999-12-23  3:39       ` Stuart Hughes
1999-12-23  4:23         ` Nick Garnett

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=38611114.8CE7C1D@zentropix.com \
    --to=sehughes@zentropix.com \
    --cc=elix@sourceware.cygnus.com \
    --cc=nickg@cygnus.co.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).