Class Lectures and Reading Assignments
CS 51520
Operating Systems
Fall, 2021

This page documents what we do in class. It contains programs that we will discuss in class, reading assignments, simple homework exercises that you can work on for practice and exam preparation (not for credit), and links to other sources of information.

We will use strace to watch the system calls and buffering in a pipeline.

We will continue to look at the examples of buffering and system calls and we will introduce the strace command (look at Julia Evans strace zine).

Today we will look at the examples of buffering and system calls.

Read these introductions to the idea of a system call.

Today we will look at the examples of buffering in pipes.

No class: Thanksgiving break.

We will look at some examples that demonstrate buffering.

See the homework assignment page for your third programming assignment.

We will continue talking about the process API for creating a pipe.

We will continue talking about the process API for creating a pipe.

This folder shows how a shell can implement the I/O redirection operators, < and >.

Here are three, interesting, recent books available for download here on campus.

We will start talking about the process API for creating a pipe.

See the homework assignment page for your second programming assignment.

We will start talking about the process API for redirecting streams. Read the file ReadMe.txt in this zip file.

We will start talking about I/O redirection and pipes. Read the file ReadMe.txt in this zip file.

I updated the examples in the Linux process API folder.

Read Chapter 5 about Linux processes from this operating systems textbook.

Read the sections 5.3 and 5.5 from the following chapter.

Look at the following reference on the Linux process API.

Here is a reference on the Windows process API.

I updated the examples in the Windows process API folder.

We will continue to look at the code in the following two zip files.

Here is a link to the zip file that contains the C compiler that I have been using in class. Download this zip file and unzip it into the top level of your C:\ drive. The zip file includes an editor with built in tools for using the compiler. Copy the shortcut to the editor from the zip file to whatever folder your are working in.

We will continue to look at the code in the following two zip files.

See the homework assignment page for your first assignment.

Today we will look at the code in the following two zip files.

Read Chapter 5 about Linux processes, and the tutorial about Linux C programming, from this operating systems textbook.

Today we will finish looking at the code in the following zip file.

Today we will finish looking at the code in the following zip file.

Here are some code examples from today's class.

Here is Microsoft's documentation on its _In_, _Out_, and _Inout_ annotations and also a few examples of their use.

Here is similar documentation from the C++ standard.

Today we will use the C Tutor to look at the code in the following zip file.

Today we will continue to look at the code in the following zip file.

Today we will continue to look at the code in the following two zip files. We will run and visualize this code using the C Tutor.

Read Chapters 2, 4, and 6, about processes, from this operating systems textbook.

Here is a summary of the parts of C that are important for the homework assignments.

The code in the following zip files demonstrates how C functions handle complex parameters (both in and out parameters). This code makes use of automatic, dynamic, and static allocation, pointers and malloc. It is not simple code. Run and visualize this code using the C Tutor