Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/5/84; site gondor.UUCP Path: utzoo!watmath!clyde!cbosgd!ukma!psuvm.bitnet!psuvax1!gondor!steve From: steve@gondor.UUCP (Stephen J. Williams) Newsgroups: net.arch Subject: Re: How Many Virtual Spaces Message-ID: <2107@gondor.UUCP> Date: Sat, 19-Apr-86 10:45:32 EST Article-I.D.: gondor.2107 Posted: Sat Apr 19 10:45:32 1986 Date-Received: Wed, 23-Apr-86 20:38:03 EST References: <5100037@ccvaxa> <5100040@ccvaxa> <6581@utzoo.UUCP> <909@umd5.UUCP> Reply-To: steve@gondor.UUCP (Stephen J. Williams) Organization: Pennsylvania State Univ. Lines: 31 In article <909@umd5.UUCP> zben@umd5.UUCP (Ben Cranston) writes: >In article <6581@utzoo.UUCP> henry@utzoo.UUCP (Henry Spencer) writes: >>In article ?? somebody writes: > >>> .... But, to maintain multiple >>> cache consistency where there are multiple virtual address spaces, caches >>> have to keep (and be able to associate on) physical addresses. > >>A simpler approach is to have the "address" in the cache include a few bits >>of process number. This is increasingly common. It amounts to putting >>the processes in a common address space for caching purposes without giving >>the individual processes the ability to address each other's data. > >But, this means that shared writable memory becomes tricky. There are now >several cache keys under which a given memory word might be stored, one for >each process that might be accessing the memory. Personnally, I have no trouble with the caches that I plan on. They are part of the I/O system, and as such, are kept in REAL memory. It is the kernal's job to decide how to use these caches, and it is the kernal's job to multiplex them amongst the processes. Note that the data within the cache has to be give to one process or another, not matter how many address spaces you have. Shared writable memory is a different thing altogether. Shared memory is a form of communication between processes. The way that I see this implimented is by putting one page into the page tables of 2 or more processes. (I'm speaking in terms of seperate address spaces, of course.) This is not tricky. --Scal