Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 beta 3/9/83; site nbs-amrf.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!bellcore!decvax!genrad!panda!talcott!harvard!seismo!umcp-cs!nbs-amrf!libes From: libes@nbs-amrf.UUCP (Don Libes) Newsgroups: net.unix-wizards,net.unix Subject: Re: Semaphores and/or Shared Memory Implementations for 4.2BSD Message-ID: <440@nbs-amrf.UUCP> Date: Sun, 24-Feb-85 18:01:35 EST Article-I.D.: nbs-amrf.440 Posted: Sun Feb 24 18:01:35 1985 Date-Received: Wed, 27-Feb-85 07:33:32 EST References: <2474@garfield.UUCP> Organization: National Bureau of Standards Lines: 18 Xref: watmath net.unix-wizards:12173 net.unix:3715 I wrote a system for shared variables for 4.2. Briefly: A common memory server takes requests from client processes to declare, read or write variables. Common memory, then, is storage local to the CM server. Variables are typed, along with some other attributes such as protection, lifetime, etc. The manager can be told to wake up a process if a variable has changed. Thats the general idea. For the way we're using it, semaphores aren't necessary (but they would be easy to add). One call, cm_sync(), updates the user's idea of common memory variables with the manager's. Its noninterruptible, since the manager completely processes requests in the order they are received. In case its not obvious, this is all user level code. Don Libes seismo!nbs-amrf!libes