Next week, we will delve into how operating systems virtualize the CPU via processes and how it enables these separate units to communicate through various inter-process communication techniques such as pipes, fifos, and unix sockets. We will also investigate how the operating system provides time sharing, different forms of multitasking, and what happens during a context switch.


For this reading assignment, you are to read about processes and inter-process communication, and submit your responses to the Reading 02 Quiz.


The readings for Tuesday, September 4 are:

  1. Operating Systems: Three Easy Pieces

    1. Dialogue
    2. Process
    3. Direct Execution

  2. Beej's Guide to Unix IPC

    1. Pipes
    2. FIFOS
    3. Unix Sockets

  3. include/linux/sched.h

    This a header file from the Linux kernel. Examine the struct task_struct and its contents.

Optional Resources

These are from Reading 12 of CSE.20289.SP18:

  1. Beej's Guide to Network Programming


Once you have done the readings, answer the following Reading 02 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 reading02           # Create reading02 branch and check it out

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

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

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

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

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