Project 1 was released last evening at 08:59 PM PST and this morning, I decided to start on the project by reading through the overview and get the lay of the land. For this project, we’ll need to deliver to operating system components: a scheduler and a memory coordinator (not even sure what that means exactly).
So what I’m doing as part of this post is just taking a snapshot of the questions I have and topics I do not understand, topics that I’ll probably understand in much more depth as the project progresses. More often than not, I often dismissive of all the work I put in over the semester and this post is one way to honor the time and commitment.
Overall, this project’s difficulty sits in the right place — not too hard but not too easy. The sweet spot for Deliberate Practice.
Questions I have
- What algorithm should I implement for my scheduler?
- What algorithms fit the needs for this project
- What the heck is a memory coordinator?
- Why do we have a memory coordinator? What’s it purpose?
- How do you measure the success of a memory coordinator?
- How do I use libvrt library?
- What is QEMU?
- Where does the scheduler sit in relationship to the operating system?
- How will I get the hypervisor to invoke my scheduler versus another scheduler?
Project Requirements
- You need to implement two separate C programs, one for vCPU scheduler (vcpu_scheduler.c) and another for memory coordinator (memory_coordinator.c)