home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: vmsnet.internals
- Path: 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
-
- 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
-
-