Robert Escriva [escriva at cs]
Office: Upson 4126
Robert's office hours will be held in CSUGLab on the following days and times:
The FAQ for project 3 has been updated. I also updated the slides from the project 3 lecture.
The union should go within the structure on the previous slide, replacing the variables contained in the union. It is not a replacement for the struct.
Some people have experience occasional, unexplained crashes in Windows' system calls (including printf). A new version of project 2 has been released. If you feel you're affected by this, grab the new machineprimitives.c file.
This only pertains to 64-bit users, as 32-bit users are unaffected.
The FAQ has been updated with questions pertinent to Project 1.
Please check this FAQ for any questions you may have.
All materials will be published via CMS.
Project 1: Non-Preemptive Multitasking
Implement a simple thread implementation and scheduler, synchronization primitives, and queues. Use these to build a simple application.
Project 2: Preemptive Multitasking
Use clock interrupts to add preemption to your thread implementation and write a more complex scheduler. Additionally, add alarm and sleep functionality to your thread implementation.
Project 3: Unreliable Networking
Implement a network interface multiplexing protocol a'la UDP.
Project 4: Reliable Networking
Build a reliable transport protocol a'la TCP.
Implement Dynamic Source Routing for your network stack.