home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / de / comp / os / unix / 2535 < prev    next >
Encoding:
Text File  |  1992-12-26  |  2.5 KB  |  53 lines

  1. Newsgroups: de.comp.os.unix
  2. Path: sparky!uunet!gatech!darwin.sura.net!Sirius.dfn.de!ira.uka.de!Germany.EU.net!isaak.isa.de!omega!av
  3. From: av@omega.ssw.de (Andreas Vogel)
  4. Subject: Re: Teile des Heaps r/o machen? Aufsetzen nach SIGSEGV? (was: Hat Linux shared memory und se)
  5. Message-ID: <1992Dec26.104939.11407@omega.ssw.de>
  6. Date: Sat, 26 Dec 1992 10:49:39 GMT
  7. References: <1992Dec19.085535.2402@black.toppoint.de> <1992Dec25.060711.3783@oops.zigzag.hanse.de>
  8. Organization: Omega Softlab
  9. Lines: 42
  10.  
  11. In article <1992Dec25.060711.3783@oops.zigzag.hanse.de> fs@oops.zigzag.hanse.de (Frank Seitz) writes:
  12. >Kristian Koehntopp (kris@black.toppoint.de) wrote:
  13. >: Installiere eine lokale Speicherseite, die Du als "shared
  14. >: memory" bezeichnest. Die Speicherseite ist von der MMU her so
  15. >: aufgesetzt, dass Lesezugriffe moeglich sein, aber
  16. >: Schreibzugriffe einen Trap ausloesen. Installiere einen
  17. >: Traphandler, der den Schreibzugriff ausfuehrt und zugleich die
  18. >: geschriebenen Daten ueber den Socket rauskopiert.
  19. >: 
  20. >: Auf der anderen Seite dieselbe Installation.
  21. >: 
  22. >: Kompliziert, langsam, aber transparent.
  23. >
  24. >Eine wirklich interessante Idee, Kristian. Ich habe aber
  25. >offengestanden keinen Schimmer, wie das programmtechnisch gehen soll.
  26. >Weder, wie ich einen Teil des Heaps (?) r/o machen soll, noch,
  27. >wie ich nach Behandlung eines SIGSEGV (?) ohne core dump neu aufsetzen kann.
  28. >Ich wills nicht ernsthaft realisieren (die Idee, Shared Memory durch
  29. >Sockets zu emulieren war eh nicht von mir), aber eine genauere
  30. >Skizze wuerde mich jetzt doch interessieren. Dass es portabel geht,
  31. >erwarte ich nicht ;-) Sagen wir fuer eine SysV/386er Architektur?
  32.  
  33. Ueber die Emulation von shared memory via Sockets kann ich mich kaum auessern.
  34. Aber was die zwei Punkte betrifft, von denen du einen programmtechnischen
  35. Hinweis moechtest, kann ich weiterhelfen. Auf Unixen, die mmap() koennen,
  36. ist das oben erwaehnte Vorgehen leicht zu realisieren. Eine Seite holt
  37. man sich mit mmap(), und den SIGSEGV behandelt man in einem Signal Handler.
  38. Nach Abarbeitung des Handlers geht die Programmausfuehrung ganz normal weiter,
  39. wo ist da das Problem?
  40.  
  41. Ich habe diese Art von Demand Paging in meinem System Monitior svr4mon
  42. implementiert und es funktioniert sehr gut. Der Code, der das Demand Paging
  43. behandelt ist ca. 50 Zeilen lang. Wenn du Interesse hast, dann schau ihn dir
  44. einfach mal an (paging.c). Svr4mon wurde vor einiger Zeit in alt.sources
  45. geposted.
  46.  
  47. Gruesse,
  48.  
  49. -- 
  50. Andreas Vogel                   Bahnhofstr. 13 / D-7300 Esslingen / Germany
  51.                 Voice:  +49-711/357613
  52.                 E-Mail: av@ssw.de
  53.