Part 1: Design of a concurrent system application
Part 2: Communication and Synchronization mechanisms for Real Time and Embedded Systems
Part 3: Implementation of a Concurrent Application
You should include the following:
1. Brief answers/explanations to ALL the questions, supported by appropriate referencing.
2. The description of a chosen communication and synchronization mechanisms.
3. The Program source code with comments.
4. Captured output of program test run.
5. Detailed design information covering both software and hardware elements.
Part 1: Choose an example of a concurrent system application of your choice.
Your description should contain the following:
1. A detail explanation of the application. This may also process/threads involve, discussion on recourse sharing.
2. Process data flow diagram (DFD) of the whole system showing the flow of data/messages between the involved processes.
3. Detailed design of the application highlighting concurrency aspects of your proposed system.
Part 2: Communication and synchronization mechanisms for Real Time and
Embedded Systems
The major issues associated with concurrent programming within a real-time embedded environment arise from process interaction. The correct behavior of a concurrent program is critically dependent on synchronization and communication between processes.
4. Semaphores, monitors and message passing are examples of the communication and synchronization mechanism used in concurrent programming. Provide a detailed discussion on the usage of the preferred synchronization mechanism within your application discussed in part 1. Attempt to justify your preferred approach.
5. Discuss how your application utilizes the synchronization mechanism.
6. Discuss the role of RTOS (Real Time Operating System) and the facilities provided by it, for the application you discussed in part 1. Discuss at least two current RTOS that can be used for the deployment of your application and the real time computing facilities offered by the RTOS.
Part 3: Implementation of a Concurrent Application
7. Implement your choice of inter-process communication (IPC) and synchronization mechanisms for the selected concurrent processes discussed in Part 1and demonstrate an implementation.
8. Provide complete and commented code listings in your preferred programming language
specifying an implementation of the application described in Part 1. Also provide program run outputs and discuss them in detail.