home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / lang / ada / 4068 < prev    next >
Encoding:
Text File  |  1993-01-25  |  4.5 KB  |  114 lines

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