|
Parallel Execution of PLEX programs |
||||||||||||||||
| ||||||||||||||||
Overview In any system with shared data and concurrent activities, there is a need to guarantee exclusive access to the shared data. If parallel processing, and synchronization, wasn’t an issue at the time of designing the system, non-preemptive execution on a single-processor architecture, automatically guarantees exclusive access to the shared data. While legacy software systems, developed and maintained over many years, contains large amounts of sequential software (executed on single-processor architectures), there is a development towards different forms of parallel hardware. The problem arises when the singleprocessor architecture is to be replaced by a multi-processor ditto; the independent parts, may now access and update the same data concurrently. A naive solution would be to re-implement the system, but since a legacy software system may contain several million lines of code, this solution is infeasible. A more reasonable solution would be criteria that ensures correct parallel execution. To ensure the correctness of such criteria, the formal semantics of the language in question need to be considered. |
||||||||||||||||
|
Latest project publications [ Show all publications ]
|
||||||||||||||||
Results achieved So far, the project has specified the formal semantics for PLEX; both for the current sequential implementation, as well as for a restricted parallel implementation that executes on a shared-memory architecture. We have also performed a manual inspection of some existing PLEX code in order to investigate the actual frequency of some possible problems that may occur when the software is executed in parallel. |
||||||||||||||||
Future work
|
||||||||||||||||