How does CDS Linda emulate parallel processing, since it runs on a single workstation?
The CDS is designed to provide a resonable emulation of parallel processing, using the natural concurrency of a timesharing operating system. Programs running using the CDS are truly concurrent, because each eval is implemented with its own process. The programs are not parallel, because only one of them is executing at any instant in time. Tuplespace is implemented in a shared-memory segment using semaphores to control access. There are two main points of concern when comparing the CDS to true, parallel versions of Linda: process environment and interleaving. It is important that each eval in the CDS have the same environment as it would have in any other implementation of Linda, e.g. on a network. Fork *is* used to create new processes for evals in the CDS, but a clean version of the process (called the cloner process) is used. This prevents contamination of the child process by any of the state built up by the evaling process, and allows the eval semantics to be the same for CDS Lin