This thesis presents a new synchronization mechanism called coordinator for protecting the shared resources and synchronizing the operations on resources. Coordinator design has been influenced by the monitor and path expression. We intended to collect the merit of these mechanisms. Though programming a monitor is not a trivial task, it has the very simple concept from the view point of user. Path expression is poorly suited for representing conditional synchronization because only the admissible sequences of operation request are specified, and no synchronization code appears in the procedure body. However path expression allows the natural expression of schedules of operations in a process. Though path expression achieves the clear and simple representation at the expense of conditional synchronization. We take a compromise that representation is somewhat complicated than path expression, but coordinator is more expressive and can express the conditional synthronization. Also coordinator supports the separation of synchronization and operation. Synchronization is achieved by quasi-concurrent guarded region and specialized coordinator statements, which implement the operation level scheduling. The flexibility of the control structure is illustrated by the solutions to the various versions of readers writers problem. Some novel features of language constructs are adoption of guarded region to make a coordinator as an active entity, introduction of quasi-parallelism within coordinator by parallel guarded region, and passing of process of to enable the uncoupled execution.