Much of the theoretical work in distributed computing has assumed one of two extreme timing models, either completely synchronous or completely asynchronous. The goal of this research is to develop realistic, partially synchronous models and to determine the relationships among them. This should help to identify precisely what time behavior is necessary and sufficient for particular properties to hold. Complementary work will be to design and analyze distributed algorithms that have timing-based correctness conditions or rely on specific timing behavior. Another application area is that of correctness conditions for systems that support shared objects. The goal is to understand and unify the large number of different correctness conditions present in the parallel architectures, distributed file systems, and operating systems literature, many of which are timing-based, and to quantify tradeoffs between concurrency and time performance.