Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!ucsd!ucbvax!usenix!std-unix From: preece@urbana.mcd.mot.com (Scott E. Preece) Newsgroups: comp.std.unix Subject: Re: Standards Update, IEEE 1003.4: Real-time Extensions Message-ID: <478@usenix.ORG> Date: 30 Aug 90 15:07:04 GMT References: <448@usenix.ORG> <467@usenix.ORG> <470@usenix.ORG> Sender: std-unix@usenix.ORG Organization: Motorola MCD, Urbana Design Center Lines: 52 Approved: jsq@usenix.org (Moderator, John Quarterman) X-Submissions: std-unix@uunet.uu.net From: preece@urbana.mcd.mot.com (Scott E. Preece) | From: sp@mysteron.osf.org (Simon Patience) | The reason for semaphores not being in the file system is twofold. Some | realtime embedded systems do not have a file system but do want semaphores | So this allows them to have them without having to bring in the baggage a | file system would entail. --- I don't care whether they have something that looks like UNIX filesystem code or not, or whether they have disk drives or not, but I don't think it's unreasonable to require them to handle semaphore names as though they were in a filesystem namespace. Otherwise you're going to end up with a collection of independent features, each minimally specified so that it can work without assuming anything else, and anyone with any sense is going to say "Yuck" and use a real operating system that provides reasonable integration and for a uniform notion of, among other things, naming. --- | ... Secondly, as far as threads, which are supposed to | be light weight, are concerned it allows semaphores to be implmented in user | space rather than forcing them into the kernel for the file system. --- Eh? I don't know what the group has proposed since the ballot, but it would seem that using a filesystem name only makes a difference when you first specify you're going to be looking at a particular semaphore, which shouldn't be a critical path event. After that you use a file descriptor, which I think could be handled in user space about as well as anything else. In either case you're going to have to go to the kernel when scheduling is required (when you block or when you release the semaphore). --- | A good reason for *not* having IPC handles in the file system is to allow | network IPC to use the same interfaces. If you have IPC handles in the | file system then two machines who have applications trying to communicate | would also have to have at least part of their file system name space to | be shared. This is non trivial to arrange for two machines so can you | imaging the problem of doing this for 100 (or 1000?) machines. --- You're going to have to synchronize *some* namespace anyway, why shouldn't it be a piece of the filesystem namespace? A consistent approach to naming and name resolution for ALL global objects should be one of the basic requirements for any new POSIX (or UNIX!) functionality. We should have *one* namespace so that we can write general tools that only need to know about one namespace. -- scott preece motorola/mcd urbana design center 1101 e. university, urbana, il 61801 uucp: uunet!uiucuxc!udc!preece, arpa: preece@urbana.mcd.mot.com Volume-Number: Volume 21, Number 75