home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / std_unix / volume.20 / text0033.txt < prev    next >
Encoding:
Internet Message Format  |  1990-08-02  |  13.2 KB

  1. From:  <jsh@usenix.org>
  2. From:  <jsh@usenix.org>
  3.  
  4.  
  5.            An Update on UNIX*-Related Standards Activities
  6.  
  7.                               June 1990
  8.  
  9.                  USENIX Standards Watchdog Committee
  10.  
  11.                    Jeffrey S. Haemer, Report Editor
  12.  
  13. IEEE 1003.4: Real-time Extensions
  14.  
  15. John Gertwagen <jag@ism.isc.com> reports on the April 23-27 meeting in
  16. Salt Lake City, UT:
  17.  
  18. 1.  Administrivia
  19.  
  20. P1003 met in Salt Lake City this time.  Actually, it was at Snowbird
  21. Lodge, south of and well above the city.  It was spring in Salt Lake
  22. but still winter in the mountains.  (Wish I skied.) The real-time
  23. meetings drew 68 people the first day, and averaged around 40 all
  24. week.  If some skiers hadn't deserted each day, we would have had
  25. more.
  26.  
  27. 2.  .4 Balloting
  28.  
  29. Over 200 people joined the balloting group for P1003.4, Draft 9.  The
  30. first ballot closed in mid-March and 75% of balloters returned their
  31. ballots within a day or two of the official deadline, setting a new
  32. record!  43% of these voted ``Yes'' on the first round, about average
  33. for POSIX ballots.
  34.  
  35. Lack of time and logistics problems meant little ballot feedback by
  36. meeting-time, (shame on those who didn't submit their ballots
  37. electronically!) but a few issues surfaced.  Several objected to
  38. having binary semaphores only in the path namespace and not also in
  39. shared memory, where they could use simple test-and-set calls, and not
  40. time-consuming system calls.  There's value providing a common
  41. interface for both of these and for other ``synchronization objects.''
  42.  
  43. There were also objections to having ``events'' when there are
  44. ``fixed'' signals in System V, Release 4.  The technical reviewer for
  45. events will try to make SVR4 signals meet real-time requirements.
  46. (Not too long ago, there were strong objections to changing signals.
  47. There may still be protests over adding real-time-required
  48. determinism.)
  49.  
  50. __________
  51.  
  52.   * UNIX is a registered trademark of AT&T in the U.S. and other
  53.     countries.
  54.  
  55. June 1990 Standards Update           IEEE 1003.4: Real-time Extensions
  56.  
  57.  
  58.                 - 2 -
  59.  
  60. 3.  Current Work
  61.  
  62. With .4 in limbo, the working group got on with Threads (.4a),
  63. Language Independent Bindings (.4b), and Real-time Application
  64. Environment Profiles (.14).  Threads got the most attention.
  65. (Surprised?) Despite this, or perhaps because of it, the other two
  66. drafts saw significant progress.
  67.  
  68. Rick Greer has reviewed a lot of the threads work, so I'll briefly
  69. mention what's going on in .4b and .14, give you some personal views
  70. on threads, and then amplify on areas where our editor, Jeff Haemer,
  71. was recently raked over the coals.
  72.  
  73. 4.  AEP
  74.  
  75. At first, the real-time AEP small group had some trouble focusing.
  76. They've identified two fairly easy targets, essentially minimum and
  77. maximum configurations, and now seek proposals for intermediate
  78. specifications.
  79.  
  80. In Utah, the group came up with a fairly complete specification for
  81. embedded systems, and reviewed it with P1003.0 --  the POSIX Guide
  82. group that is the driving force in defining AEP's.  One interesting
  83. issue surfaced during the review: for embedded systems, the AEP group
  84. wants to exclude interfaces of .4 and .1 that aren't needed!  Dot zero
  85. hadn't thought of that before.  Resolving this should set an
  86. interesting precedent.
  87.  
  88. 5.  Language-Independent Bindings
  89.  
  90. The people doing this have it down to a science, so the large group
  91. has largely left them alone.  Most of their work is converting things
  92. to ``normal'' form, which is mostly tabular, and throwing away the
  93. stuff that is language-dependent.  They made good use of their time,
  94. cranking through a good bit of the .4 draft.
  95.  
  96. 6.  Threads (P1003.4a)
  97.  
  98. The meeting saw two new proposals.  Both suggested fruitful changes to
  99. the current Pthreads work, but neither was accepted as a new base for
  100. the current draft.
  101.  
  102. John Zolnowsky of Sun Microsystems submitted one counter-proposal,
  103. called ``strands'' because ``threads'' was already taken.  It was an
  104. attempt to limit the scope of the interfaces and keep thread semantics
  105. closer to process semantics.  Thus, it would have done away with
  106. mutexes and conditions, leaving synchronization to be accomplished
  107. through .4 binary semaphores, presumably modified to have inter-
  108.  
  109. June 1990 Standards Update           IEEE 1003.4: Real-time Extensions
  110.  
  111.  
  112.                 - 3 -
  113.  
  114. thread, not just inter-process semantics.  It also proposed more
  115. process-like exit semantics and a version of per-thread signaling.
  116. The consensus on the strands proposal seems to have been that it was
  117. too minimal.
  118.  
  119. In contrast, the VP (Virtual Processor) proposal, by Paul Borman of
  120. Cray Research, proposed significant ``incremental'' functionality in
  121. the form of a lower-level, virtual-processor interface for use by the
  122. multi-processing and parallel processing communities.  (For those
  123. familiar with Mach, it is roughly to Pthreads as cthreads is to
  124. Cthreads.) Features of the VP proposal included:
  125.  
  126.    + fork() and exec() semantics for VPs
  127.  
  128.    + per-VP signal semantics
  129.  
  130.    + locks and events for synchronization
  131.  
  132.    + no ordering or scheduling constraints
  133.  
  134. The group had several concerns about VP
  135.  
  136.    + Could it support real-time requirements without ordering and
  137.      scheduling constraints?
  138.  
  139.    + Could the Pthreads constraints be implemented on top of a layer
  140.      that didn't support them?
  141.  
  142.    + Would the interfaces be used by applications or by system
  143.      implementors?
  144.  
  145.    + Would an application using both Pthreads and VP interfaces
  146.      encounter analogous problems to those caused by read()s and an
  147.      fread()s on the same file?
  148.  
  149.    + Would standard interfaces for locks and events, implemented in
  150.      hardware on many systems, constrain or encourage hardware
  151.      development?
  152.  
  153.    + Would the standard benefit either the user or vendor community?
  154.  
  155.    + How soon could the proposal be completed and gain enough of the
  156.      MP community's consensus to go to ballot?
  157.  
  158. Perhaps the deciding factor, though, was that the multi-processing AEP
  159. group (P1003.16) started meeting officially at Snowbird.  [Editor:
  160. Watch for the snitch report, coming soon.] A majority of our group
  161. (including me) felt that MP-specific standards should grow from
  162. requirements identified by .16, not be created on the fly by the
  163. real-time working group.
  164.  
  165. June 1990 Standards Update           IEEE 1003.4: Real-time Extensions
  166.  
  167.  
  168.                 - 4 -
  169.  
  170. In areas that are still not pinned down, the group made progress
  171. towards a better-defined cancellation mechanism, towards a ``signals
  172. compromise'' that improves on one hurriedly forged at the previous
  173. meeting, and towards more process-like exit semantics.  The consensus
  174. was that we should try to accommodate and specify per-thread signal
  175. state.  Although there are a few strong supporters, a majority did not
  176. feel that specification of per-thread signals is essential to a
  177. standard.
  178.  
  179. Paul Borman of Cray Research will present a proposal on this at the
  180. next meeting.  I'll be interested to see what Paul comes up with.
  181. With three state elements, (mask, pending signals, and action vector)
  182. and at least three signal delivery types (one, some, all), I can
  183. create many implementation models and corresponding application
  184. architectures.  It may prove easy to construct a plausible model, but
  185. hard to construct one that 40 engineers can agree to live with for a
  186. long time!  I suspect a portable application can assume nothing more
  187. than ``exactly one signal gets delivered exactly once to exactly one
  188. handler.'' (Looks an awful lot likes signals to a process, doesn't
  189. it?)
  190.  
  191. The biggest progress in the meetings was wide consensus achieved for
  192. the current threads proposal.  The working group resolved many of the
  193. remaining threads issues, and we let Bill Corwin tell IEEE/ISO that we
  194. expect to ballot P1003.4a in July, after the next meeting.
  195.  
  196. 7.  OSF and UI Cooperating?
  197.  
  198. Our editor's recent editorial stirred up a hornet's nest.  (It wasn't
  199. so much what Jeff said as what he implied.) In his follow-up posting,
  200. he said I'd speak about the joint meetings in more detail.  I didn't
  201. really want to but he twisted my arm, so here goes.
  202.  
  203. The UI MP Working Group and OSF have been cooperating since the middle
  204. of last year.  I happen to work for a company that belongs to both,
  205. INTERACTIVE Systems Corporation, and though I haven't been to all of
  206. the joint meetings, I've attended them off and on since last November
  207. (which is I think, when they started).  Those I have attended focused
  208. on finding solutions to interface/semantic problems that both OSF and
  209. UI can endorse and that P1003.4 would probably endorse as well.
  210. Although these meetings haven't been advertised I've seen at least one
  211. article about OSF/UI/ATT negotiations that mentioned their cooperation
  212. in the MP arena.  And the meetings have been open.  At least one non-
  213. member has shown up uninvited, and was not asked to leave.
  214.  
  215. Now, it's no secret that several Pthreads-proposal initiators
  216. (instigators?) work for OSF sponsors.  Since the Pthreads-proposal was
  217. advanced before OSF adopted Mach, it's hard to say whether OSF
  218. influenced the P1003.4 work or the other way around.  Also, in several
  219. instances, OSF/UI members have voted personal opinions contrary to the
  220. OSF/UI consensus established at the joint meetings.
  221.  
  222. June 1990 Standards Update           IEEE 1003.4: Real-time Extensions
  223.  
  224.  
  225.                 - 5 -
  226.  
  227. What's the point?  The joint meetings contribute to the quality of the
  228. ..4a work, but they don't drive it.  I think the work in P1003.4 is
  229. pushing vendors to find multi-threading solutions faster than they
  230. would have on their own.  It's an example of POSIX pushing emerging
  231. technologies, not just creating standards.  There's even a chance that
  232. ..4a will create a standard multi-threading interface before millions
  233. of installed, heterogeneous systems force the standard to a lowest
  234. common denominator or to incorporate a particular implementation's
  235. garbage.
  236.  
  237. And POSIX is playing another role  --  uniting the industry.  I
  238. believe Sun's tooth-and-nail fights with AT&T in P1003.1 led to their
  239. current cooperation.  Maybe the collaboration of OSF and UI on threads
  240. will also bring more unity to the industry.
  241.  
  242. 8.  The relationship between .4 and .4a
  243.  
  244. Despite what some think, the threads small group has never had any
  245. official status.  Interest and participation in the threads effort
  246. goes far beyond the small group, or even the .4 working group into
  247. other POSIX committees.  Some history may clear this up.
  248.  
  249. Lightweight processes (i.e., threads) have been on P1003.4's list of
  250. potential work items since its formation.  About 3 years ago, the
  251. working group voted not to pursue them because they were not clearly
  252. needed and the technology was not sufficiently mature.
  253.  
  254. About a year and a half ago, threads resurfaced as an item of interest
  255. to the real-time users, and also to Ada, Transaction Processing, and
  256. RPC working groups.  A small band of ``experts'' went off to draft a
  257. proposal.  Since P1003.4 was an active system-interfaces committee and
  258. the real-time user community wanted a threads proposal, a lot of hard
  259. work culminated last summer in Minneapolis in a threads proposal being
  260. accepted as an additional chapter for the .4 draft.
  261.  
  262. There are 12 other interface proposals in the .4 draft.  Some have
  263. been mature for nearly two years, (some with broad consensus, others
  264. without), others are still relatively wet behind the ears.  Still, all
  265. the interfaces are relatively complete (sometimes too complete?), and
  266. in November, when it seemed appropriate to send .4 to ballot, At the
  267. Milpitas meeting, the P1003.4 working group decided to include the
  268. threads chapter in the ballot for comment only, and sought and
  269. obtained authorization to turn the threads work into a separate work
  270. item for the P1003.4 working group.
  271.  
  272. After the Pthreads proposal was accepted into .4, the small group of
  273. people whose primary interest was threads spent all their time on
  274. threads.  Meanwhile many other .4 members time-shared all the other .4
  275.  
  276. June 1990 Standards Update           IEEE 1003.4: Real-time Extensions
  277.  
  278.  
  279.                 - 6 -
  280.  
  281. activities.  Because the Pthreads supporters were so focused, they
  282. sometimes seemed like a separate group.  (Some in the small group
  283. might have been surprised to learn they weren't.  It takes a while to
  284. understand the POSIX bureaucracy.) Nevertheless, though they may not
  285. always have appeared to represent the entire working group, the
  286. Pthreads proposal now enjoys wide consensus.  Apparently, the small
  287. group has listened well to the interests of the working group and the
  288. POSIX community.
  289.  
  290. At Snowbird, there wasn't a threads small group, there were seven of
  291. them!  These small groups examined how the current and the alternative
  292. proposals addressed:
  293.  
  294.    + thread management
  295.  
  296.    + synchronization
  297.  
  298.    + signals/asynch events
  299.  
  300.    + cancellation
  301.  
  302.    + thread-specific data
  303.  
  304.    + re-entrant functions
  305.  
  306.    + process control
  307.  
  308. After reviewing all the issues, we discovered a consensus in most of
  309. these areas, and fairly strong agreement on most issues in the three
  310. or four groups that are still needed.  It looks like things are pretty
  311. well on target.
  312.  
  313. I'm partially responsible for pushing .4a in before .4 was done, so
  314. I'm partially responsible for the process's not always appearing fair
  315. or well organized.  I'll take my share of the blame.  But I'll also
  316. take my share of the credit for progress in a technology that I
  317. believe to be important for real-time and for the entire POSIX
  318. community.
  319.  
  320. June 1990 Standards Update           IEEE 1003.4: Real-time Extensions
  321.  
  322. Volume-Number: Volume 20, Number 33
  323.  
  324.