Unlike lab 4c, the application for this lab supports multiple tasks. Your kernel must be able to properly switch between them as YKDelayTask is called and interrupts occur. It must be able to run this application correctly with the default tick frequency and without crashing with a tick frequency of every 750 instructions. (At a high tick rate, there may not be enough time for all tasks to run to their next delay point as they otherwise would, so your output may differ from that shown below, but your code should not malfunction or otherwise fail to make progress.)
Below is a sample of what the application's output should look like:
Notice how the output shows that each task is delayed for the expected number of ticks. Also, note how task priority is enforced, even when multiple tasks become ready after the same tick interrupt. Your kernel's output should match this example unless your kernel cannot dispatch and run the four tasks before the first tick occurs.Creating tasks... Starting kernel... Task A started. Task A, delaying 2. Task B started. Task B, delaying 3. Task C started. Task C, delaying 5. Task D started. Task D, delaying 10. TICK 1 TICK 2 Task A, delaying 2. TICK 3 Task B, delaying 3. TICK 4 Task A, delaying 2. TICK 5 Task C, delaying 5. TICK 6 Task A, delaying 2. Task B, delaying 3. TICK 7 TICK 8 Task A, delaying 2. TICK 9 Task B, delaying 3. TICK 10 Task A, delaying 2. Task C, delaying 5. Task D, delaying 10. TICK 11
In addition to the demonstration, you must a written summary of problems you encountered, if any, in completing this lab. You should also include a report of the number of hours you spent on the lab, including coding and debugging. A realistic estimate is sufficient. Send a submission even if you didn't encounter any noteworthy bugs along the way. You will not receive full credit for the lab unless you send a report.
New for Fall 2019: we want both your report and your
source code for the lab. The easiest way to do this is to create a
report file (for consistency call it report.txt or report.pdf), to add
it to the working directory for the lab, to create a compressed tar
file (with all the files in your directory), and then to upload that
file to Learning Suite.
To review, if 425/labx is your working directory for this lab, type
the following in the 425 directory:
and then upload the resulting compressed tar file (submission.tar.gz)
to Learning Suite.
tar -cvzf submission.tar.gz labx
To review, if 425/labx is your working directory for this lab, type the following in the 425 directory:
Once again, you may want to look at the problems students had in past semesters. The link below points to the list of comments from student reports for lab 4.
Student Problem List