>How does the Ada tasking map to a particular operating system?

I remember reading a nice paper few months ago about a GNAT
implementation of tasks that uses pthreads, this will work
offcourse on systems that have pthreads installed.  so, an
Ada task becomes a posix thread on those systems.

On systems that do not have pthreads, I would guess Ada rtl would
use whatever the system default threads API is instead of the
pthreads API.

On Systems without kernel threads ( DOS, VAX/VMS, notice that
Alpha/VMS now have kernel threads support, and Alpha/VMS V7.1
also supports kernel threads scheduling across multi-cpu machines) ,
Ada would simply emulate tasks at the rtl level, i.e. all threads
would run/schedule tasks in the process user mode since no
kernel threads scheduling exist on that system, it would have to be
all done in the rtl (each thread gets a stack, place to save process
register set when doing threads contect switching , thread control
block etc.., all managed by the Ada rtl, using system supplied timer tick

Nasser Abbasi. Perkin Elmer - Applied BioSystem division.
Development of DNA and Protein analysis software. C/C++/UNIX.
email:  [log in to unmask]