home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / vmsnet / internal / 1706 next >
Encoding:
Text File  |  1992-12-21  |  1.9 KB  |  50 lines

  1. Newsgroups: vmsnet.internals
  2. Path: sparky!uunet!munnari.oz.au!uniwa!cujo!cc.curtin.edu.au!zrepachol
  3. From: zrepachol@cc.curtin.edu.au
  4. Subject: Re: Call for partly-baked ideas:  $QIO replacement?/extention
  5. Message-ID: <1992Dec22.024303.1@cc.curtin.edu.au>
  6. Lines: 38
  7. Sender: news@cujo.curtin.edu.au (News Manager)
  8. Organization: Curtin University of Technology
  9. References: <1992Dec16.113301.977@cmkrnl.com>
  10. Date: Mon, 21 Dec 1992 17:43:03 GMT
  11.  
  12. In article <1992Dec16.113301.977@cmkrnl.com>, jeh@cmkrnl.com writes:
  13. > Are you happy with the $QIO system service?  If you were building a new O/S
  14. > from scratch, would you make the "basic I/O call" that's available for 
  15. > non-privileged programs look like $QIO, or like something else?  If the latter,
  16. > what?  If you could specify a new I/O interface to supplement $QIO in VMS, what
  17. > would it look like?
  18.  
  19. The change ?I would make is to buffer handling. On a read the OS would do what
  20. ever needs to be done to dump the data into mem, then fills in a pointer and
  21. size block and maps the lot to your address space. By trapping the page fault
  22. on a not yet mapped buffer pointer, the page fault code can put the PC into
  23. a wait state till IO completion clears the page fault condition. This would
  24. enable atomic asyncronous IO from the user code view.
  25.  
  26. On write, the buffer would be un-mapped so as to trap scribbeling on the output
  27. before it completed.
  28.  
  29. 1. no more "how big do I need to make the buffer... well I'll double it to
  30.    make sure..."
  31.  
  32. 2. You can't access a half DMAed page. ( prob various option bits to turn this
  33.    off, reuse buffers... )
  34.  
  35. 3. Simple sysnc primative. Do IO, access buffer pointer *page fault*, thread
  36.    stalls till IO completes
  37.  
  38. 4. For async, AST address is valid, IO completion passes buffer pointer as
  39.    ASyt parm.
  40.  
  41. 5. You have done 1/2 the work for a *FAST* task/task--process/process IO
  42.    system. Unmap, context switch, remap.
  43.  
  44.  
  45. MANY loose ends here I realise... Will comptemplate over chrissy...
  46.  
  47. ~Paul
  48.  
  49.