SOFTWARE SOLUTIONS
Compiler oriented (static)
- compile-time analysis of program structure and data dependencies
- insertion of the CC maintenance activities into instruction streams
- no communication between processors
- problems with dynamic data and conditional writes
Operating system oriented (dynamic)
- run-time detection and prevention of inconsistency
- CC maintenance activities incorporated into OS-kernel (primarily into primitive operations for mutual exclusion)
- CC problem transparency for a compiler layer