This lab is the foundation of Program 4 and is very difficult. It is critical that you start this lab before coming to lab so that any problems that you encounter can be dealt with in lab.
Because the lab is difficult there is an extended due date. See above.
Please see the addendum for this lab for detailed instructions on how to complete it.
The goal for this lab is to complete the createGoroutine
,
yieldGoroutine
and cleanupGoroutines
functions.
You need to build and manage a FIFO list of goroutine control blocks. So, be sure you know how to implement a linked list in C. If you do not know how to do this, get help before the lab.
There is some tricky Intel-64 assembly langugage code that needs to be written. If you are confused about what needs to be done, you may want to watch this video.
We will test with the following files (available in
~cs520/public/prog4
):
Put all your C source code in a single file, "goroutines.c". Put all your Intel-64 assembly language code in a single file, "asm.s".
To turn in this laboratory, type:
% ~cs520/bin/submit lab7 goroutines.c asm.s
Submissions can be checked by typing:
% ~cs520/bin/scheck lab7
Remember that there are no late submissions of labs. Submit what you have prior to noon on Wednesday October 24. Be careful: one minute late is late.
Comments and questions should be directed to pjh@cs.unh.edu