63 lines
1.9 KiB
Plaintext
63 lines
1.9 KiB
Plaintext
|
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 demonstrates basic sanity of the kernel. The main thread
|
||
|
and a cooperative thread take turns printing a greeting message to the console,
|
||
|
and use timers and semaphores to control the rate at which messages are
|
||
|
generated. This demonstrates that kernel scheduling, communication, and
|
||
|
timing are operating correctly.
|
||
|
|
||
|
--------------------------------------------------------------------------------
|
||
|
|
||
|
Building and Running Project:
|
||
|
|
||
|
This kernel project outputs to the console. It can be built and executed
|
||
|
on QEMU as follows:
|
||
|
|
||
|
make run
|
||
|
|
||
|
--------------------------------------------------------------------------------
|
||
|
|
||
|
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:
|
||
|
|
||
|
Create semaphore 0x001042b0
|
||
|
Create semaphore 0x001042c4
|
||
|
main: Hello World!
|
||
|
coop_thread_entry: Hello World!
|
||
|
main: Hello World!
|
||
|
coop_thread_entry: Hello World!
|
||
|
main: Hello World!
|
||
|
coop_thread_entry: Hello World!
|
||
|
main: Hello World!
|
||
|
coop_thread_entry: Hello World!
|
||
|
main: Hello World!
|
||
|
coop_thread_entry: Hello World!
|
||
|
main: Hello World!
|
||
|
coop_thread_entry: Hello World!
|
||
|
main: Hello World!
|
||
|
coop_thread_entry: Hello World!
|
||
|
main: Hello World!
|
||
|
coop_thread_entry: Hello World!
|
||
|
main: Hello World!
|
||
|
coop_thread_entry: Hello World!
|
||
|
main: Hello World!
|
||
|
|
||
|
<repeats endlessly>
|