home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.ada
- Path: sparky!uunet!destroyer!gatech!mailer.cc.fsu.edu!delta!mueller
- From: mueller@delta.cs.fsu.edu (Frank Mueller)
- Subject: POSIX threads for SPARC
- Message-ID: <1993Jan25.200901.11700@mailer.cc.fsu.edu>
- Sender: mueller@delta (Frank Mueller)
- Nntp-Posting-Host: delta.cs.fsu.edu
- Organization: Florida State University Computer Science
- References: <1jo805INNfe@emx.cc.utexas.edu> <9110004@hpavla.lf.hp.com>
- Date: Mon, 25 Jan 93 20:09:01 GMT
- Lines: 101
-
- On request by Dave Emery (emery@d74sun.mitre.org), I'll post this msg here
- as well.
-
- --------------------------------------------------------------------------
-
- ``A Library Implementation of POSIX Threads under UNIX'', Version 1.15
-
- The PART (POSIX / Ada-Runtime Project) is happy to announce that we
- will be able to make the sources of a C Pthreads library available for
- non-commercial use (and for limited commercial use in the future, see
- paragraph before copyright).
-
- ftp-site: ftp.cs.fsu.edu
- internet#: 128.186.121.27
- directory: /pub/PART
- files: pthreads.tar.Z, pthreads_serf92.ps.Z, pthreads_usenix93.ps.Z
-
- There is also a Pthreads mailing list distributing information about
- new releases, bug patches and related issues. You can subscribe to the
- mailing list by sending mail to "mueller@uzu.cs.fsu.edu" with the
- subject line "subscribe-pthreads".
-
- As part of the PART project we have been designing and implementing a
- library package of preemptive threads which is compliant with POSIX
- 1003.4a Draft 6. Our implementation is limited to the Sun SPARC
- architecture and SunOS 4.1 or later. We do not make any use of Sun's
- light-weight processes to achieve better performance (with one
- I/O-related exception).
-
- What's NEW:
- .round-robin scheduling
- .faster Pthreads kernel mode
- .asynchronous I/O for threads
- .perverted scheduling for debugging (MUT_SWITCH, RR_SWITCH, RAND_SWITCH)
- .stack overflow check causes signal (optional)
- .support for attribute inheritsched and for detachstate
-
- The following features are included in the current implementation:
- -from POSIX.4a:
- .thread management: initializing, creating, joining, exiting, and
- destroying threads
- .synchronization: mutual exclusion, condition variables
- .thread-specific data
- .thread priority scheduling: priority management, preemptive
- priority scheduling (FIFO, RR)
- .signals: signal handlers, asynchronous wait, masking of signals,
- long jumps
- .cancellation: cleanup handlers, asynchronous, synchronous, and
- disabled interruptability.
- -from POSIX.4:
- .timers: sleep, nanosleep, read clock
- -from POSIX.1:
- .synchronous I/O for threads (I/O only blocks current thread, not process)
-
- The support is currently being extended to include:
- -from POSIX.4a:
- .mutex priority inheritance and ceilings
- .reentrant functions
- .process control: fork, wait, waitpid
- (The above functions are not supported for threads. Their semantics
- is whatever UNIX semantics for processes is. Consequently, a fork
- will fork another process with ALL threads being duplicated, not
- just the executing thread as required by POSIX.4a.
- The functions exec and _exit behave as required without any
- change, i.e. the UNIX process level semantics for these functions
- is also adequate for threads.)
- -from POSIX.4:
- .asynchronous I/O for threads
- .asynchronous timer objects
- -other:
- .heap memory pools
- .port to SunOS 5.1 / Solaris 2.1
- .GNU-like copyright
-
- The current scheduling policies are strict priority scheduling
- (according to POSIX.4a FIFO scheduling) which preempts when signals
- are caught or round-robin (RR scheduling) which changes context to
- another thread of the same priority after a time-slice of 20usec.
- Besides asynchronous delivery of signals, context switches only occur
- where required by the priority policy, e.g. when resources (mutexes)
- are locked etc.
-
- The current implementation has been tested and used as a base to
- implement our own (new) runtime-system for an Ada compiler (Verdix).
- But we do not make any claims about the completeness or correctness of
- this implementation.
-
- Unfortunately, our lawyers have not had the time to approve a GNU-like
- copyright for libraries. We hope to fix this in the next release.
-
- (C)OPYRIGHT NOTICE:
- General permission to copy and distribute this code and to execute it
- within a computer, without fee, is granted provided that this is not
- done for commercial advantage, and that this copyright notice is
- included. All other rights are reserved.
-
- Please let us know if you have any questions or suggestions.
-
- Frank Mueller
- mueller@alpha.cs.fsu.edu
-
-