Recent work in real-time concurrency theory has largely been concerned with languages based on message passing, and execution models which assume an unlimited number of synchronous processors. Practical limitations on processor resources often make such theories unrealistic. We provide a denotational linear-history semantics for a real-time concurrent language L, under realistic assumptions about the execution environment. L is a low-level language which contains shared variables and constructs for synchronization and selective mutual exclusion. Among the execution models we consider are limited parallelism, in which the number of physical processors may he less than the number of processes, and asynchronous processors, which need not run a...