On 30 Nov 2008 18:16:14 Paul Gilmartin wrote: > On Nov 30, 2008, at 17:06, Jack Woehr wrote:
> No. UNIX has no deficiency of concurrency. In fact, of > Rexx, CLIST, JCL, and POSIX shell, only shell has intrinsic > constructs supporting concurrency. I agree with that. There is a lot of support in Unix, at multiple levels of abstraction, for forms of concurrency that can exploit multiple CPUs. It's an innate property, and applications with multiple dispatchable units (processes, threads) are common. One thing that is *different* that could lead one to think in those terms (at least, at one point it led *me* to think in those terms!) is that typical application I/O is synchronous (think: QSAM GET style) rather than asynchronous (think: BSAM, READ, do something else, CHECK style). Such APIs do exist of course, but a common alternative is to use multiple processes or threads rather than multileaving a single process instance. Speaking of multileaving, and invoking the fearsome gods of thread drift, anyone here remember the deeply clever ways the old RJE drivers concurrently supported multiple devices. > CMS Pipelines is trickier. I believe it simulates the appearance > of concurrency, but is it truly concurrent? That is, if my > system has multiple CPUs and I code a pipeline with parallel > stages, will Pipelines employ multiple CPUs for those stages? > If not, is this expected as a future enhancement? Unless my memory is really failing me, CMS Pipelines is uniprocessor and can only drive 1 CPU of a virtual machine, and stages execute coroutine style under the control of the Pipelines dispatcher. I'm sure I'll be corrected quickly if I misremember or if things are different now. Last I used CMS seriously you had to use a special non-Pipes toolkit for multi-CPU virtual machines. > I recognize that in a multi-user environment CP does a good > job of apportioning those CPUs among the multiple sessions, > but what about the case where fewer of those sessions than > the number of CPUs are compute-bound, but some are running > pipelines with parallel compute-intensive stages? I think you will saturate one virtual CPU, while others are unused. Unless things have changed dramatically, CMS is still a uniprocessor OS with the exception of the server toolkit. regards, Jeff
