home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / machserver / notes / problemAreas < prev    next >
Encoding:
Text File  |  1992-05-28  |  1.2 KB  |  29 lines

  1. 1. Asynchronicity.
  2. - pager design: 
  3.   - reference counting the segment data structures
  4.   - no way to report errors, so server has to be able to catch address
  5.     faults (e.g., file server eats a backing file, so data_request
  6.     fails; server doing bcopy from mapped or vm_read user memory gets
  7.     address fault) 
  8.   - Have to force out dirty pages, e.g., if you want to avoid copying
  9.     heap initialization files during fork().  (But the reason for
  10.     going to vm_read/vm_write in the first place was to avoid calls to
  11.     a file server!)
  12. - race between Vm_MakeAccessible (trying to do lookup using segment
  13.   name port and having name registered by memory_object_init [did we
  14.   fix this?]) 
  15. - system calls (sysSysCall.c): trying to maintain the fiction that the
  16.   user process is the same as the thread in the server(e.g., sigreturn).
  17.  
  18. 2. Understanding Mach IPC: rights versus names, reference counting,
  19. mach_port_deallocate versus mach_port_mod_refs, send-once notification
  20. (sigreturn).
  21.  
  22. 3. Resource management ("thrash" can hang the system for an extended
  23. time).
  24.  
  25. 4. Facilities for reliable timeouts (timer queue often not handled on
  26. time due to delays from mach_msg timeout).
  27.  
  28. 5. memory_object_lock_request performance.
  29.