home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / std_unix / volume.30 / text0041.txt < prev    next >
Encoding:
Text File  |  1993-03-11  |  4.0 KB  |  103 lines

  1. Submitted-by: mueller@delta.cs.fsu.edu (Frank Mueller)
  2.  
  3. ``A Library Implementation of POSIX Threads under UNIX'', Version 1.15
  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.  
  15. There is also a Pthreads mailing list distributing information about
  16. new releases, bug patches and related issues. You can subscribe to the
  17. mailing list by sending mail to "mueller@uzu.cs.fsu.edu" with the
  18. subject line "subscribe-pthreads".
  19.  
  20. As part of the PART project we have been designing and implementing a
  21. library package of preemptive threads which is compliant with POSIX
  22. 1003.4a Draft 6. Our implementation is limited to the Sun SPARC
  23. architecture and SunOS 4.1 or later. We do not make any use of Sun's
  24. light-weight processes to achieve better performance (with one
  25. I/O-related exception).
  26.  
  27. What's NEW:
  28.   .round-robin scheduling
  29.   .faster Pthreads kernel mode
  30.   .asynchronous I/O for threads
  31.   .perverted scheduling for debugging (MUT_SWITCH, RR_SWITCH, RAND_SWITCH)
  32.   .stack overflow check causes signal (optional)
  33.   .support for attribute inheritsched and for detachstate
  34.  
  35. The following features are included in the current implementation:
  36. -from POSIX.4a:
  37.   .thread management: initializing, creating, joining, exiting, and
  38.    destroying threads
  39.   .synchronization: mutual exclusion, condition variables
  40.   .thread-specific data
  41.   .thread priority scheduling: priority management, preemptive
  42.    priority scheduling (FIFO, RR)
  43.   .signals: signal handlers, asynchronous wait, masking of signals,
  44.    long jumps
  45.   .cancellation: cleanup handlers, asynchronous, synchronous, and
  46.    disabled interruptability.
  47. -from POSIX.4:
  48.   .timers: sleep, nanosleep, read clock
  49. -from POSIX.1:
  50.   .synchronous I/O for threads (I/O only blocks current thread, not process)
  51.  
  52. The support is currently being extended to include:
  53. -from POSIX.4a:
  54.   .mutex priority inheritance and ceilings
  55.   .reentrant functions
  56.   .process control: fork, wait, waitpid
  57.    (The above functions are not supported for threads. Their semantics
  58.     is whatever UNIX semantics for processes is. Consequently, a fork
  59.     will fork another process with ALL threads being duplicated, not
  60.     just the executing thread as required by POSIX.4a.
  61.     The functions exec and _exit behave as required without any
  62.     change, i.e. the UNIX process level semantics for these functions
  63.     is also adequate for threads.)
  64. -from POSIX.4:
  65.   .asynchronous I/O for threads
  66.   .asynchronous timer objects
  67. -other:
  68.   .heap memory pools
  69.   .port to SunOS 5.1 / Solaris 2.1
  70.   .GNU-like copyright
  71.  
  72. The current scheduling policies are strict priority scheduling
  73. (according to POSIX.4a FIFO scheduling) which preempts when signals
  74. are caught or round-robin (RR scheduling) which changes context to
  75. another thread of the same priority after a time-slice of 20usec.
  76. Besides asynchronous delivery of signals, context switches only occur
  77. where required by the priority policy, e.g. when resources (mutexes)
  78. are locked etc.
  79.  
  80. The current implementation has been tested and used as a base to
  81. implement our own (new) runtime-system for an Ada compiler (Verdix).
  82. But we do not make any claims about the completeness or correctness of
  83. this implementation.
  84.  
  85. Unfortunately, our lawyers have not had the time to approve a GNU-like
  86. copyright for libraries. We hope to fix this in the next release.
  87.  
  88. (C)OPYRIGHT NOTICE:
  89. General permission to copy and distribute this code and to execute it
  90. within a computer, without fee, is granted provided that this is not
  91. done for commercial advantage, and that this copyright notice is
  92. included.  All other rights are reserved.
  93.  
  94. Please let us know if you have any questions or suggestions.
  95.  
  96. Frank Mueller
  97. mueller@alpha.cs.fsu.edu
  98.  
  99. [ Note crossposting and followup-to line -- mod ]
  100.  
  101. Volume-Number: Volume 30, Number 41
  102.  
  103.