home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / std_unix / volume.29 / text0039.txt < prev    next >
Encoding:
Text File  |  1992-12-26  |  3.1 KB  |  81 lines

  1. Submitted-by: mueller@delta.cs.fsu.edu (Frank Mueller)
  2.  
  3. ``A Library Implementation of POSIX Threads under UNIX''
  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.
  8.  
  9. ftp-site:  ftp.cs.fsu.edu
  10. directory: /pub/PART
  11. files:     pthreads.tar.Z, pthreads_serf92.ps.Z
  12.  
  13. As part of the PART project we have been designing and implementing a
  14. library package of preemptive threads which is compliant with POSIX
  15. 1003.4a Draft 6. Our implementation is limited to the Sun SPARC
  16. architecture and SunOS 4.1 or later. We do not make any use of Sun's
  17. light-weight processes to achieve better performance (with one
  18. I/O-related exception).
  19.  
  20. The following features are included in the current implementation:
  21. -from POSIX.4a:
  22.   .thread management: initializing, creating, joining, exiting, and
  23.    destroying threads
  24.   .synchronization: mutual exclusion, condition variables
  25.   .thread-specific data
  26.   .thread priority scheduling: priority management, preemptive
  27.    priority scheduling (FIFO)
  28.   .signals: signal handlers, asynchronous wait, masking of signals,
  29.    long jumps
  30.   .cancellation: cleanup handlers, asynchronous, synchronous, and
  31.    disabled interruptability.
  32. -from POSIX.4:
  33.   .timers: sleep, nanosleep, read clock
  34. -from POSIX.1:
  35.   .synchronous I/O for threads (I/O only blocks current thread, not process)
  36.  
  37. The support is currently being extended to include:
  38. -from POSIX.4a:
  39.   .round-robin scheduling
  40.   .mutex priority inheritance and ceilings
  41.   .reentrant functions
  42.   .process control: fork, wait, waitpid
  43.    (The above funtions are not supported for threads. Their semantics
  44.     is whatever UNIX semantics for processes is. Consequently, a fork
  45.     will fork another process with ALL threads being duplicated, not
  46.     just the executing thread as required by POSIX.4a.
  47.     The functions exec and _exit behave as required without any
  48.     change, i.e. the UNIX process level semantics for these functions
  49.     is also adequate for threads.)
  50. -from POSIX.4:
  51.   .asynchronous I/O for threads
  52.   .timers
  53.  
  54. The current scheduling is strict priority scheduling (according to
  55. POSIX.4a FIFO scheduling) which preempts when signals are caught.
  56. Besides asynchronous delivery of signals, context switches only occur
  57. where required by the priority policy, e.g. when resources (mutexes)
  58. are locked etc. We are currently working on incorporating an
  59. alternative, time-slicing round-robin scheduling algorithm.
  60.  
  61. The current implementation has been tested and used as a base to
  62. implement the runtime-system for an Ada compiler (Verdix). But we do
  63. not make any claims about the completeness or correctness of this
  64. implementation.
  65.  
  66. (C)OPYRIGHT NOTICE:
  67. General permission to copy and distribute this code and to execute it
  68. within a computer, without fee, is granted provided that this is not
  69. done for commercial advantage, and that this copyright notice is
  70. included.  All other rights are reserved.
  71.  
  72. Please let us know if you have any questions or suggestions.
  73.  
  74. Frank Mueller
  75. mueller@alpha.cs.fsu.edu
  76.  
  77. [ Note crossposting and followup-to:, please -- mod ]
  78.  
  79. Volume-Number: Volume 29, Number 42
  80.  
  81.