Article View: vmsnet.internals
Article #476Re: Call for partly-baked ideas: $QIO replacement?
From: Jeff Silverman
Date: Fri, 18 Dec 1992 07:56
Date: Fri, 18 Dec 1992 07:56
40 lines
2652 bytes
2652 bytes
jeh@cmkrnl.com writes: >Are you happy with the $QIO system service? If you were building a new O/S >from scratch, would you make the "basic I/O call" that's available for >non-privileged programs look like $QIO, or like something else? If the latter, >what? If you could specify a new I/O interface to supplement $QIO in VMS, what >would it look like? > --- Jamie Hanrahan, Kernel Mode Consulting, San Diego CA >Chair, Programming and Internals Working Group, U.S. DECUS VMS Systems SIG >Internet: jeh@cmkrnl.com, hanrahan@eisner.decus.org, or jeh@crash.cts.com Jamie, What an interesting question. The way I see it, you have essentially two ways of building an I/O interface: the way VMS/RSX do it and the way UNIX/Ada/CP/M (I haven't studied MS-DOS or Windows NT or MVS closely enough to decide which catagories they go into). With VMS/RSX, you have a mechanism by which an interrupt can be safely delivered to the process, while UNIX and Ada really don't - you build tasks or threads which block until I/O is completed. I assume that you are planning on building an O/S which can support any language: C, Ada, FORTRAN, COBOL, Pascal, etc. If you are building an O/S which is oriented to a specific langauge, such as UCSD Pascal, Ada, or Modula-2 then you have a simpler problem - don't bother providing any functionality not supported by the semantics of the language. There is another aspect to the question which I just thought of. One of the characteristics of VMS which has always struck me is that number of datastructures which get passed either by reference or by descriptor (VMS is the only environment I know of which uses descriptors). There are some advantages and disadvantages of building a complicated data structure: the overhead of stuffing the answers into the data blocks and then pulling them out on the other side of the call. Would it be easier to simply have long argument lists? It certainly seems more reliable to build the data structures because the compiler can do some checking for you (for example, attempting to stuff a 32 bit constant into a 16 bit space), and the compiler can keep track of placing things in the right place. Jamie, why do you ask? Jeff Silverman, Boeing Commercial Airplane
Technical Details
Message-ID:
<BzG3Dy.FBy@bcstec.ca.boeing.com>Path:
arc1-ca.pugleaf.net!sparky!uunet!bcstec!silvermReferences:
<1992Dec16.113301.977@cmkrnl.com>Show Full Headers
Complete Article Headers
Newsgroups: vmsnet.internals Path: arc1-ca.pugleaf.net!sparky!uunet!bcstec!silverm From: silverm@bcstec.ca.boeing.com (Jeff Silverman) Subject: Re: Call for partly-baked ideas: $QIO replacement? Message-ID: <BzG3Dy.FBy@bcstec.ca.boeing.com> Organization: Boeing Computer Services References: <1992Dec16.113301.977@cmkrnl.com> Date: Fri, 18 Dec 1992 07:56:19 GMT Lines: 41