home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / std_unix / v20 / repdir / 1003.4.033 < prev    next >
Internet Message Format  |  1990-08-02  |  14KB

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