lotus

previous page: 18. What tools will help me to program with threads? (Programming)
  
page up: Threads Programming FAQ
  
next page: 20. What about other threads-related software?

19. What operating systems provide threads? (Programming)




Description

This article is from the Threads Programming FAQ, by Bryan O'Sullivan bos@serpentine.com with numerous contributions by others.

19. What operating systems provide threads? (Programming)

Vendor OS version Threads model POSIX API Notes
Digital Digital UNIX 4.0 mixed D4, 1c
Digital UNIX 3.2 kernel / bound D4
OpenVMS 7.0 (Alpha) see note 1 D4, 1c user model without patch kit
OpenVMS 7.0 (VAX) user D4, 1c
OpenVMS 6.2 user D4
HP HP/UX 10.20 "?" "?" not yet announced
HP/UX 10.10 user D4
IBM AIX 4.1 & 4.2 kernel D4, D7
AIX 3.5.x user DCE
OS/2 kernel DCE
Linux Linux 1.2.13 and above user / kernel 1c, DCE see free
implementations for several packages
Linux 2.x kernel "n/a" clone() interface
Microsoft Windows NT & 95 kernel DCE DCE kits layer on top of WIN32
threads
SGI Irix 6.2 mixed see note 2 sproc() is still kernel / bound
Irix 6.1 kernel / bound "n/a" sproc() interface only
Sun Solaris 2.5 and above mixed / system / bound 1c
Solaris 2.4 mixed / system / bound D8 available from Sun only upon
request
Solaris 2.x mixed / system / bound "n/a" UI threads supported across
all releases
SunOS 4.x user "n/a" LWP only
Threads model Meaning
user
a purely user-level threads system, with threads multiplexed atop a
"traditional" Unix-style process
kernel
threads are "kernel entities" with no context switches taking place in
user mode

/ bound a thread may be explicitly bound to a particular processor
mixed
a mixed-mode scheduler where user threads are multiplexed across some
number of LWPs

/ system threads have "system" contention scope (a user thread may be
permanently bound to an LWP)

/ bound an LWP may be permanently bound to a particular processor
API Meaning
"n/a" no POSIX threads API provided
1c conforms to the POSIX 1003.1c-1995 threads API
DCE POSIX 1003.4a draft 4 API is available as part of the OSF DCE kit
for the platform
D4 DCE threads (or something similar) is bundled with the system
D7 POSIX 1003.4a draft 7 API (similar to the final 1003.1c standard,
but substantially different in some details)
D8 POSIX 1003.4a draft 8 API (identical in most respects to the
1003.1c standard, but with a few "gotchas")
1. OpenVMS 7.0 for Alpha shipped with kernel threads support disabled
by default. The "mixed" threads model can be turned on by setting
the MULTITHREAD sysgen parameter. With patch kit, the "mixed" or
"user" model is determined by the main program binary (i.e. via
the linker or the threadcp qualifier) in addition to MULTITHREAD.
2. SGI ships the POSIX 1003.1c API as a patch for Irix 6.2, but it
will be bundled with future revisions of the OS.

 

Continue to:













TOP
previous page: 18. What tools will help me to program with threads? (Programming)
  
page up: Threads Programming FAQ
  
next page: 20. What about other threads-related software?