[comp.realtime] Device Drivers

rhl@computing-maths.cardiff.ac.uk (Robert Hartill) (11/20/90)

As part of my research into writing a realtime operating system for a 80386
programmable communications controller, i'm now looking into the different
approaches taken to implement device drivers.

At the moment i'm looking at UNIX (yuck!!).

If anyone out there has some info that will save me some time (and work!)
i would be grateful.

Has anyone implemented a form of STREAMS in a realtime OS ?

-----
  Robert Hartill.
  Dept' Of Computing Mathematics,
  UWCC,
  Cardiff,
  UK. 
  

steved@hrshcx.csd.harris.com (Steve Daukas) (11/22/90)

In article <1990Nov20.095649.7328@computing-maths.cardiff.ac.uk>, rhl@computing-maths.cardiff.ac.uk (Robert Hartill) writes:
> As part of my research into writing a realtime operating system for a 80386
> programmable communications controller, i'm now looking into the different
> approaches taken to implement device drivers.
> 
> At the moment i'm looking at UNIX (yuck!!).
> 
> If anyone out there has some info that will save me some time (and work!)
> i would be grateful.
> 
> Has anyone implemented a form of STREAMS in a realtime OS ?
> 

Harris has lots of real-time device drivers for Unix.  These drivers
are multi-threaded, preemptable, etc..  The code for the driver has
some distinct charactersitics, such as spl8 doesn't, two processes can
be in the driver at one time,  int level routines don't stop non-int level
routines from running in the same code, etc..  Of course, these features
need some support from the OS.

The combination of device driver & OS features allows a response time
of less than 5 microseconds to an edge triggered device, and about 50
microseconds for a context switch.  The neat part is having more than
one process able to use the device driver at the same time...
This is all done in a Unix that is SVID and SVVS and Posix and BCS and...

I don't think I should get into specifics because someone I work for
might get a wee bit upset.  suffice it to say that yuck to unix isn't
true anymore for a real-time environment...  The scheduling algorithm
can't exist as it does in regular unix because it isn't deterministic.
You need to have static priority levels, etc..

As far as streams, yup.

Steve
--

Stephen C. Daukas              | sdaukas@csd.harris.com  
Harris Corporation             | uunet!hcx1!misg!sdaukas  
Computer Systems Division      | (617) 221-1834, (617) 221-1830

     "Old MacDonald had an agricultural real estate tax abatement."

andy@modcomp.uucp (Andy Tate) (11/23/90)

rhl@computing-maths.cardiff.ac.uk (Robert Hartill) writes:

>As part of my research into writing a realtime operating system for a 80386
>programmable communications controller, i'm now looking into the different
>approaches taken to implement device drivers.

>At the moment i'm looking at UNIX (yuck!!).

>If anyone out there has some info that will save me some time (and work!)
>i would be grateful.

>Has anyone implemented a form of STREAMS in a realtime OS ?

>-----
>  Robert Hartill.
>  Dept' Of Computing Mathematics,
>  UWCC,
>  Cardiff,
>  UK. 

Yes, we have implemented STREAMS under our fully preemptive REAL/IX
O/S.  There are several interfaces which use STREAMs under REAL/IX  
such as BSD "in-kernel" sockets, AT&T's TLI, and application software which  
make direct references to the driver(s) beneath.  Any process executing
in REAL/IX STREAMs can be preempted by a higher priority process.

Andrew Tate
MODCOMP, an AEG Company 
Advanced Systems Development
Ft. Lauderdale, FL

uunet!modcomp!andy

rdenton@encore.com (Roger Denton) (12/01/90)

From article <1990Nov20.095649.7328@computing-maths.cardiff.ac.uk>, by rhl@computing-maths.cardiff.ac.uk (Robert Hartill):
> At the moment i'm looking at UNIX (yuck!!).
> 
> If anyone out there has some info that will save me some time (and work!)
> i would be grateful.
> 
> Has anyone implemented a form of STREAMS in a realtime OS ?
> 

We have STREAMS running in a real-time version of Encore's UMAX V. Streams
processing is done by a process running under a scheduler and priority
that are defined by the system administrator.

By the way, real time and unix no longer directly corresponds to "yuck."

If you would like more information please let me know.

Roger Denton
UMAX Development
Encore Computer Corp.

alex@vmars.tuwien.ac.at (Alexander Vrchoticky) (12/02/90)

rdenton@encore.com (Roger Denton) writes:
>By the way, real time and unix no longer directly corresponds to "yuck."

I would be surprised if they (together) did not.

--
Alexander Vrchoticky,  Tech Univ Vienna, CS,  Dept for Real-Time Systems
Voice:  +43/222/58801-8168   Fax: +43/222/569149
Internet: alex@vmars.tuwien.ac.at Path: vmars!alex@relay.eu.net