Course Project

Project overview

Here is the original project overview from the syllabus:

For a final project, students will choose a scheduling algorithm or synchronization protocol to add to the existing experimentation code base. They will implement the chosen algorithm, provide unit tests, and perform experiments to compare it to other approaches. There will be a project writeup and a project presentation near the end of the term.

Since writing the syllabus, the potential project topics have expanded in breadth. See below for project ideas. You can also brainstorm your own.

Scope

The scope of the project should be roughly 1-2x that of a programming assignment, in addition to a written paper and a presentation near the end of the term.

Goals

The goals of the project are five-fold:

  • Explore some scheduling algorithm, synchronization protocol, or other topic in Real-Time Systems in more detail.
  • Implement something related to your chosen topic.
  • Perform experiments comparing to other schedulers, protocols, etc., or to explore your topic more in light of different task system parameters.
  • Write up your results in the format of a conference paper (4 pages instead of 10, however).
  • Present your results to your peers.

Partners

You are allowed to work on the project with a partner, and for each deliverable, submit only one for the pair. Pairs will be expected to complete projects of slightly larger scope than people working alone, for the same grade. If you want a partner and don’t have one, email me by Tuesday 2/18/20 so I can attempt to pair up anybody who expresses interest. In the email, include if you’re interested in any specific topic.

Deliverables

There are four deliverables for this project:

  • Proposal, due Friday 2/21/20
  • Code, due Friday 3/6/20
  • Presentation, Week 10
  • Paper, due Wednesday 3/11/20

Late days cannot be used on the paper, as these are due on the last day of class and will have one submission per project, rather than one per person.

Proposal

You should submit a proposal on Moodle by the start of class on Friday 2/21/20. It should be about 2-3 paragraphs, and describe the following:

  • What your project idea is (this should be a paragraph)
  • Whether this project represents a pair or an individual
  • What information you don’t have yet that you still need (topics you should read papers on, etc.)
  • What functionality you plan to implement
  • Two or more references (e.g., conference papers) that your work will reference as background materials

Code

Ideally, you’ll be able to leverage the existing code base from the programming assignments for your project. If that is not the case, make sure to mention this in your proposal, and check with the instructor before beginning.

Presentation

Presentations will be during class in Week 10. You can find the presentation order in an announcement on Moodle.

Your presentation (either for an individual or a pair) should take approximately 4 minutes, with up to 2 minutes allowed for questions. Note that this will go much faster than you’d expect, so it’d be good to practice at least once. Here is a general guideline for what you should cover:

  • Contributions (30 seconds): the goal of your project
  • Method (2 minutes): a simple example describing your project (e.g., an example request graph for the CGLP, or a single experiment for GPU scheduling)
  • Results (1 minute): A plot or schedule
  • Future work(30 seconds): what you would have done if you had had more time

You are welcome to use slides. If you do, you should email them to me by 10:00am the day of your presentation.

If you do not wish to make slides, you should plan to sketch the example on the blackboard, and email the plot/schedule to me before 10:00am the day of your presentation.

Paper

You should submit a four page paper, comprised of the following sections:

  1. Introduction describing your project
  2. Background information necessary to understand your project, including references you had to read to complete the project
  3. Details of code you implemented
  4. Experimentation results and discussion
  5. Conclusion

Additionally, you should have a title, abstract, and references. Both Latex and Word templates are available from IEEE. You are strongly encouraged to use Overleaf for Latex, especially if you haven’t used Latex before, as it can help give a gentle introduction. Here are two example papers to look at to get a feel for the style: paper 1 and paper 2.

Project ideas

  • Implement response-time analysis for constrained-deadline tasks on a uniprocessor system, including blocking terms.
  • Find/implement a max-flow min-cut algorithm (e.g., Edmonds-Karp) to construct a Cyclic Executive schedule.
  • Implement a synchronization protocol alongside the RM scheduler from assignment P2.
  • Explore the impact of offsets on critical instants by scheduling until the schedule repeats (or by performing response-time analysis incorporating offsets).