Process Coordination in XINU - Introduction

Chapter 6 - Process Coordination in XINU


Here we are at one of my favorite topics. Process coordination. XINU is a bit of a let-down in terms of process coordination.

Once reason is that it made a big mistake and went against years of tradition by calling its semaphore primitives Wait() and Signal(). Anyone who has heard of monitors finds that naming decision confusing.

A second reason is that XINU isn't very interesting in terms of process synchronization. Though we could look on the bright side and say instead that XINU is the model of simplicity and minimalism with respect to process synchronization. Either way, it is still nice to look at some real code that implements synchronization primitives.

When looking at synchronization in XINU, we are going to look at it from two perspectives. First - internal, or low-level synchronization. This is what XINU does to synchronize processes once they cross the system-call boundary and are executing in the O/S. Second is application, or high-level synchronization. Here we look at how XINU implements the synchronization primitives (in this case semaphores) that are provided for use by applications.

1