For the past couple of weeks, we have studied how an operating system virtualizes the CPU by providing [processes] and [scheduling] policies. By enabling users to execute multiple jobs simultaneously, the OS enables better utilization of the hardware and allows for more sophisticated workflows. Unfortunately, this multiprogramming ability comes with the cost of complexity due to issues related to concurrency.
This week we will examine both event-based programming and pthreads. Afterwards, we will further explore how to tackle the challenges of concurrency with tools such as locks, condition variables, and semaphores.
The readings for Tuesday, September 19 are:
Once you have done the readings, answer the following Reading 04 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 reading04 # Create reading04 branch and check it out $ cd reading04 # Go into reading04 folder $ $EDITOR answers.json # Edit your answers.json file $ ../.scripts/submit.py # Check reading04 quiz Submitting reading04 assignment ... Submitting reading04 quiz ... Q1 0.20 Q2 0.20 Q3 0.30 Q4 1.10 Q5 0.10 Q6 0.20 Q7 0.40 Q8 0.50 Score 3.00 $ git add answers.json # Add answers.json to staging area $ git commit -m "Reading 04: Done" # Commit work $ git push -u origin reading04 # Push branch to GitLab