Title: C++ Synchronization Description: The sample project illustrates usage of pure virtual class, member functions with different types of arguments, global objects constructor invocation. A simple application demonstates basic sanity of the microkernel. Two tasks (A and B) take turns printing a greeting message to the console, and use sleep requests and semaphores to control the rate at which messages are generated. This demonstrates that microkernel scheduling, communication, and timing are operating correctly. -------------------------------------------------------------------------------- Building and Running Project: This microkernel project outputs to the console. It can be built and executed on QEMU as follows: make qemu -------------------------------------------------------------------------------- Troubleshooting: Problems caused by out-dated project information can be addressed by issuing one of the following commands then rebuilding the project: make clean # discard results of previous builds # but keep existing configuration info or make pristine # discard results of previous builds # and restore pre-defined configuration info -------------------------------------------------------------------------------- Sample Output: task_a: Hello World! task_b: Hello World! task_a: Hello World! task_b: Hello World! task_a: Hello World! task_b: Hello World! task_a: Hello World! task_b: Hello World! task_a: Hello World! task_b: Hello World!