Checking process-oriented operating system behaviour using CSP and refinement