home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / std / unix / 531 < prev    next >
Encoding:
Internet Message Format  |  1993-01-27  |  4.6 KB

  1. Xref: sparky comp.std.unix:531 comp.realtime:1629
  2. Path: sparky!uunet!not-for-mail
  3. From: mueller@delta.cs.fsu.edu (Frank Mueller)
  4. Newsgroups: comp.std.unix,comp.realtime
  5. Subject: POSIX threads library for SPARC
  6. Followup-To: comp.realtime
  7. Date: 25 Jan 1993 07:25:11 -0800
  8. Organization: Florida State University Computer Science
  9. Lines: 101
  10. Sender: sef@ftp.UU.NET
  11. Approved: sef@ftp.uucp (Moderator, Sean Eric Fagan)
  12. Message-ID: <1k10onINNqi3@ftp.UU.NET>
  13. References: <1993Jan21.100223.17722@onionsnatcorp.ox.ac.uk> <1jmq5oINNfna@ftp.UU.NET> <1js17fINNenp@ftp.UU.NET> <1jsv9fINN2fe@ftp.UU.NET>
  14. NNTP-Posting-Host: ftp.uu.net
  15. X-Submissions: std-unix@uunet.uu.net
  16.  
  17. Submitted-by: mueller@delta.cs.fsu.edu (Frank Mueller)
  18.  
  19. ``A Library Implementation of POSIX Threads under UNIX'', Version 1.15
  20.  
  21. The PART (POSIX / Ada-Runtime Project) is happy to announce that we
  22. will be able to make the sources of a C Pthreads library available for
  23. non-commercial use (and for limited commercial use in the future, see
  24. paragraph before copyright).
  25.  
  26. ftp-site:  ftp.cs.fsu.edu
  27. internet#: 128.186.121.27
  28. directory: /pub/PART
  29. files:     pthreads.tar.Z, pthreads_serf92.ps.Z, pthreads_usenix93.ps.Z
  30.  
  31. There is also a Pthreads mailing list distributing information about
  32. new releases, bug patches and related issues. You can subscribe to the
  33. mailing list by sending mail to "mueller@uzu.cs.fsu.edu" with the
  34. subject line "subscribe-pthreads".
  35.  
  36. As part of the PART project we have been designing and implementing a
  37. library package of preemptive threads which is compliant with POSIX
  38. 1003.4a Draft 6. Our implementation is limited to the Sun SPARC
  39. architecture and SunOS 4.1 or later. We do not make any use of Sun's
  40. light-weight processes to achieve better performance (with one
  41. I/O-related exception).
  42.  
  43. What's NEW:
  44.   .round-robin scheduling
  45.   .faster Pthreads kernel mode
  46.   .asynchronous I/O for threads
  47.   .perverted scheduling for debugging (MUT_SWITCH, RR_SWITCH, RAND_SWITCH)
  48.   .stack overflow check causes signal (optional)
  49.   .support for attribute inheritsched and for detachstate
  50.  
  51. The following features are included in the current implementation:
  52. -from POSIX.4a:
  53.   .thread management: initializing, creating, joining, exiting, and
  54.    destroying threads
  55.   .synchronization: mutual exclusion, condition variables
  56.   .thread-specific data
  57.   .thread priority scheduling: priority management, preemptive
  58.    priority scheduling (FIFO, RR)
  59.   .signals: signal handlers, asynchronous wait, masking of signals,
  60.    long jumps
  61.   .cancellation: cleanup handlers, asynchronous, synchronous, and
  62.    disabled interruptability.
  63. -from POSIX.4:
  64.   .timers: sleep, nanosleep, read clock
  65. -from POSIX.1:
  66.   .synchronous I/O for threads (I/O only blocks current thread, not process)
  67.  
  68. The support is currently being extended to include:
  69. -from POSIX.4a:
  70.   .mutex priority inheritance and ceilings
  71.   .reentrant functions
  72.   .process control: fork, wait, waitpid
  73.    (The above functions are not supported for threads. Their semantics
  74.     is whatever UNIX semantics for processes is. Consequently, a fork
  75.     will fork another process with ALL threads being duplicated, not
  76.     just the executing thread as required by POSIX.4a.
  77.     The functions exec and _exit behave as required without any
  78.     change, i.e. the UNIX process level semantics for these functions
  79.     is also adequate for threads.)
  80. -from POSIX.4:
  81.   .asynchronous I/O for threads
  82.   .asynchronous timer objects
  83. -other:
  84.   .heap memory pools
  85.   .port to SunOS 5.1 / Solaris 2.1
  86.   .GNU-like copyright
  87.  
  88. The current scheduling policies are strict priority scheduling
  89. (according to POSIX.4a FIFO scheduling) which preempts when signals
  90. are caught or round-robin (RR scheduling) which changes context to
  91. another thread of the same priority after a time-slice of 20usec.
  92. Besides asynchronous delivery of signals, context switches only occur
  93. where required by the priority policy, e.g. when resources (mutexes)
  94. are locked etc.
  95.  
  96. The current implementation has been tested and used as a base to
  97. implement our own (new) runtime-system for an Ada compiler (Verdix).
  98. But we do not make any claims about the completeness or correctness of
  99. this implementation.
  100.  
  101. Unfortunately, our lawyers have not had the time to approve a GNU-like
  102. copyright for libraries. We hope to fix this in the next release.
  103.  
  104. (C)OPYRIGHT NOTICE:
  105. General permission to copy and distribute this code and to execute it
  106. within a computer, without fee, is granted provided that this is not
  107. done for commercial advantage, and that this copyright notice is
  108. included.  All other rights are reserved.
  109.  
  110. Please let us know if you have any questions or suggestions.
  111.  
  112. Frank Mueller
  113. mueller@alpha.cs.fsu.edu
  114.  
  115. [ Note crossposting and followup-to line -- mod ]
  116.  
  117. Volume-Number: Volume 30, Number 41
  118.