Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!cs.utexas.edu!uunet!mcsun!ukc!stl!crosfield!dh4 From: dh4@crosfield.co.uk (damian hamill) Newsgroups: comp.os.minix Subject: Re: User Process Message-Passing in Minix Message-ID: <10097@suns8.crosfield.co.uk> Date: 28 May 91 10:01:23 GMT References: <1991May22.235824.6939@IDA.ORG> Reply-To: dh4@crosfield.co.uk (damian hamill) Followup-To: comp.os.minix Organization: Crosfield Electronics, Hemel Hempstead, United Kingdom. Lines: 55 In article <1991May22.235824.6939@IDA.ORG> wheeler@IDA.ORG (David Wheeler) writes: > >The original version of Minix did not allow _User Processes_ >to pass messages to OTHER user processes. > > >Two questions for the net: > >1. Does the current version (or some modified version everyone uses) >allow this? (From all I can tell it doesn't). > >2. If not, would someone who has the current version of Minix mind >trying out the following modification to allow it? Please? >Or tell me a better way to do it? > [nasty stuff deleted about modifying kernel] > [more nasty stuff deleted about files and things] > Serving programs could ``register'' >themselves with a short name, and clients could request a program by name ^^^^ Now you are on the right track, and what do you know that nice Mr Tannenbaum has already implemented it for you in the network communication tasks (taken from the Amoeba system and referred to as AMOEBA tasks) that came with minix 1.3. Processes simply send and recieve messages to/from a port (which is identified by a character string). There is one distinct advantage with this method, ie you remove location dependancy from your communicating processes. However, one or two subtle issues arise: The network "AMOEBA" tasks (in 1.3 at least) are allocated to processes and thus are associated with one particular instance of IPC, hence the number of processes that can communicate using this method at any one time is limited. The AMOEBA tasks are only BLOCKING processes, this (strictly) supports the client-server model. My final year project was something to do with distributing minix and at times some non blocking primitives would have been appreciated. It's easy peasy lemon squeezy to include the AMOEBA task in your kernel, just read the network documentation that comes with the 1.3 upgrade. I hope this is of interest to you. Damian. -- /*************************************************************************** Damian Hamill Crosfield Electronics ltd, Hemel Hempstead, Herts. UK. dh4@crosfield.co.uk TUNA?? ......NO THANK YOU ***************************************************************************/