Small task #2 and #2+¶
Write a program that uses threads without the help of the thread library (raw syscalls).
The program should:
Create a new thread in the same address space – allocate the stack for the new thread, use syscall
cloneto run the code.In the new thread: write 1000 times
"A\n"to the standard output (using syscallwrite), and then end the thread (syscallexit).In the main thread: write 1000 times
"B\n"to the standard output (using syscallwrite), wait for the new thread to finish (waitpid) and then end the program (syscallexit_group).
The task can be done in two versions:
#2 (easy, worth 1 point): using the
clone,syscallfunctions from libc.#2+ (difficult, worth 2 points): not using any library functions, calling syscalls from assembly language.