home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / std_unix / volume.30 / text0087.txt < prev    next >
Encoding:
Text File  |  1993-03-11  |  4.7 KB  |  118 lines

  1. Submitted-by: mueller@delta.cs.fsu.edu (Frank Mueller)
  2.  
  3. ``A Library Implementation of POSIX Threads under UNIX'', Version 1.16
  4.  
  5. The PART (POSIX / Ada-Runtime Project) is happy to announce that we
  6. will be able to make the sources of a C Pthreads library available for
  7. non-commercial use (and for limited commercial use in the future, see
  8. paragraph before copyright).
  9.  
  10. ftp-site:  ftp.cs.fsu.edu
  11. internet#: 128.186.121.27
  12. directory: /pub/PART
  13. files:     pthreads.tar.Z, pthreads_serf92.ps.Z, pthreads_usenix93.ps.Z,
  14.        pthreads_interface.ps.Z
  15.  
  16. There is also a Pthreads mailing list distributing information about
  17. new releases, bug patches and related issues. You can subscribe to the
  18. mailing list by sending mail to "mueller@uzu.cs.fsu.edu" with the
  19. subject line "subscribe-pthreads". [If your local mailer inserts an
  20. incorrect return address (e.g., most CompuServe customers), send mail
  21. message with a different subject and include your correct e-mail
  22. address.]
  23.  
  24. As part of the PART project we have been designing and implementing a
  25. library package of preemptive threads which is compliant with POSIX
  26. 1003.4a Draft 6. A description of the interface for our Pthreads
  27. library is now available on ftp. Our implementation is limited to the
  28. Sun SPARC architecture and SunOS 4.1.x. We do not make any use of
  29. Sun's light-weight processes to achieve better performance (with one
  30. I/O-related exception).
  31.  
  32. What's NEW:
  33.   .GNU-like copyright
  34.   .support for pthread_once
  35.   .bug fixes until patch 15-02 incorporated
  36.   .reference manual for the Pthreads interface (on ftp)
  37.  
  38. The following features are included in the current implementation:
  39. -from POSIX.4a:
  40.   .thread management: initializing, creating, joining, exiting, and
  41.    destroying threads
  42.   .synchronization: mutual exclusion, condition variables
  43.   .thread-specific data
  44.   .thread priority scheduling: priority management, preemptive
  45.    priority scheduling (FIFO, RR)
  46.   .signals: signal handlers, synchronous and asynchronous wait for
  47.    signals, masking and sending of signals, sleep, long jumps
  48.   .cancellation: cleanup handlers, asynchronous, synchronous, and
  49.    disabled interruptability.
  50. -from POSIX.4:
  51.   .timers: nanosleep, read clock, priority scheduling bounds
  52. -from POSIX.1:
  53.   .synchronous I/O for threads (I/O only blocks current thread, not process)
  54. -others:
  55.   .perverted scheduling for debugging (MUT_SWITCH, RR_SWITCH, RAND_SWITCH)
  56.   .stack overflow check causes signal (optional)
  57.  
  58. The support is currently being extended to include:
  59. -from POSIX.4a:
  60.   .mutex priority inheritance and ceilings
  61.   .reentrant functions
  62.   .process control: fork, wait, waitpid
  63.    (The above functions are not supported for threads. Their semantics
  64.     is whatever UNIX semantics for processes is. Consequently, a fork
  65.     will fork another process with ALL threads being duplicated, not
  66.     just the executing thread as required by POSIX.4a.
  67.     The functions exec and _exit behave as required without any
  68.     change, i.e. the UNIX process level semantics for these functions
  69.     is also adequate for threads.)
  70. -from POSIX.4:
  71.   .asynchronous I/O for threads
  72.   .asynchronous timer objects
  73. -other:
  74.   .heap memory pools
  75.   .port to SunOS 5.1 / Solaris 2.1
  76.  
  77. The current scheduling policies are strict priority scheduling
  78. (according to POSIX.4a FIFO scheduling) which preempts when signals
  79. are caught or round-robin (RR scheduling) which changes context to
  80. another thread of the same priority after a time-slice of 20msec.
  81. Besides asynchronous delivery of signals, context switches only occur
  82. where required by the priority policy, e.g. when resources (mutexes)
  83. are locked etc.
  84.  
  85. The current implementation has been tested and used as a base to
  86. implement our own (new) runtime-system for an Ada compiler (Verdix).
  87. But we do not make any claims about the completeness or correctness of
  88. this implementation.
  89.  
  90. (C)OPYRIGHT NOTICE:
  91.  
  92.    Copyright (C) 1992, the Florida State University
  93.    Distributed by the Florida State University under the terms of the
  94.    GNU Library General Public License.
  95.  
  96. This file is part of Pthreads.
  97.  
  98. Pthreads is free software; you can redistribute it and/or
  99. modify it under the terms of the GNU Library General Public
  100. License as published by the Free Software Foundation (version 2).
  101.  
  102. Pthreads is distributed "AS IS" in the hope that it will be
  103. useful, but WITHOUT ANY WARRANTY; without even the implied
  104. warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  105. See the GNU Library General Public License for more details.
  106.  
  107. You should have received a copy of the GNU Library General Public
  108. License along with Pthreads; see the file COPYING.  If not, write
  109. to the Free Software Foundation, 675 Mass Ave, Cambridge,
  110. MA 02139, USA.
  111.  
  112. Report problems and direct all questions to:
  113.  
  114.   pthreads-bugs@ada.cs.fsu.edu
  115.  
  116. Volume-Number: Volume 30, Number 88
  117.  
  118.