Now that we have examined what a process is and how to communicate between them, we now need to explore how the operating system decides which process to run during a context switch. To do this, the operating system can employ a variety of scheduling algorithms that try to balance competing goals and metrics.


For this reading assignment, you are to read about scheduling with a focus on the FIFO, SJF, STCF, Round Robin, MLFQ, and Lottery algorithms and submit your responses to the Reading 03 Quiz.


The readings for Tuesday, September 12 are:

  1. Operating Systems: Three Easy Pieces

    1. Scheduling: Introduction
    2. Scheduling: MLFQ
    3. Scheduling: Lottery
    4. Scheduling: MP


Once you have done the readings, answer the following Reading 03 Quiz questions:


To submit you work, follow the same process outlined in Reading 00:

$ git checkout master                 # Make sure we are in master branch
$ git pull --rebase                   # Make sure we are up-to-date with GitLab

$ git checkout -b reading03           # Create reading03 branch and check it out

$ cd reading03                        # Go into reading03 folder
$ $EDITOR answers.json                # Edit your answers.json file

$ ../.scripts/submit.py               # Check reading03 quiz
Submitting reading03 assignment ...
Submitting reading03 quiz ...
      Q1 0.60
      Q2 0.10
      Q3 0.10
      Q4 0.20
      Q5 0.50
      Q6 0.30
      Q7 0.50
      Q8 0.30
      Q9 0.40
   Score 3.00

$ git add answers.json                # Add answers.json to staging area
$ git commit -m "Reading 03: Done"    # Commit work

$ git push -u origin reading03        # Push branch to GitLab

Remember to create a merge request and assign the appropriate TA from the Reading 03 TA List.