Class Lectures and Reading Assignments
CS 30200/ECE 46810
Operating Systems
Spring, 2020

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

The reading assignments and practice problems are listed by the date on which they were assigned. The sample program files are listed by the date on which they were used. When you are viewing a source code page, you can use your browser's "File -> Save As..." menu item to save a copy of the code on your computer. It is a good idea for you to "play" with these example programs; compile them, run them, make simple changes to them and compile and run them again.

The exam will be available on this web page at 12:30. It will be due on Blackboard at 8:00 (there will be a regular submission tool for it). I will be available in a Zoom meeting from 12:30 - 1:30 if you want to ask a question (the Zoom meeting isn't required). You can ask me a question about the exam during the Zoom meeting, or by sending me an email. Here is an invite link to the Zoom meeting.

Please download this exam, print it out, and write each answer on the appropriate exam page. Please submit your completed exam by 8:00 to Blackboard as a zip file named CS302Exam2Surname.zip (similar to the programming assignments).

Here is a link to today's video lecture.

Here are the notes from today's lecture (with the solutions that we worked out).

Don't forget that the second exam is this Monday, May 4 (according to the university's final exam schedule). Here are sample questions for the exam.

Here is a link to today's video lecture.

Here are the notes from today's lecture.

Don't forget that the second exam is next Monday, May 4 (according to the university's final exam schedule). Here are sample questions for the exam.

Here is a link to today's video lecture.

Here are the notes from today's lecture.

I keep updating the following zip file about virtual memory, so please download it again.

Here is a link to today's video lecture.

The second exam is on Monday, May 4 (according to the university's final exam schedule). Here is a file that contains sample questions for the exam.

The exam will be an "in class take-home exam". We will discuss the details in class.

Here is a link to today's video lecture.

Here are the notes from today's lecture.

See the homework assignment page for your fourth programming assignment.

Read Chapter 22 from our operating systems textbook.

Here is a link to today's video lecture.

Here are the notes from today's lecture.

Read Chapter 21 from our operating systems textbook.

Here is a link to today's video lecture.

Here are the notes from today's lecture.

Read Chapter 19 from our operating systems textbook.

Here is a message from Isis Curiel, a Computer Science student.

Here is a link to today's video lecture.

Here are the notes from today's lecture.

Here is a link to today's video lecture.

Here are the notes from today's lecture.

Read Chapters 16 and 18 from our operating systems textbook.

Here is a link to today's video lecture.

Read Chapters 15 from our operating systems textbook.

The following zip file has additional information about virtual memory.

Here are links to the video lectures from this week.

For next week, read Chapters 12 & 13 from our operating systems textbook.

Our class will meet at 12:30 using the Zoom application. Here is an invite link to the class meeting.

See the homework assignment page for your third programming assignment.

Be sure to read Chapter 8 from our operating systems textbook.

Spring Break - No class today.

Spring Break - No class today.

Read Chapter 8 from our operating systems textbook.

The following zip file has additional information about the multi-level feedback queue scheduling algorithm.

The following zip file contains sample code and information about Windows scheduling.

The first midterm exam is today.

For next week read Chapter 7 from our operating systems textbook.

Please remember that the midterm exam is this Wednesday, March 4.

Please remember that the first midterm exam is a week from today.

Today we will go over the following code that demonstrates the idea of system calls from Section 6.2 of Mechanism: Limited Direct Execution.

Today we will go over the following code that demonstrates the idea of process states from Section 4.5 of The Abstraction: The Process.

The first midterm exam will be in two weeks, on Wednesday, March 4. Here is a file that contains review questions for the midterm exam.

The following zip file contains sample code that demonstrates the idea of process states from Section 4.5 of The Abstraction: The Process.

The following zip file contains sample code about system calls (see Section 6.2 from Mechanism: Limited Direct Execution).

Read Chapter 7 from our operating systems textbook.

Be sure to read Chapters 6, 7 and 12 from Programming in C.

Next week we will look at the code from these two zip files.

Read Chapter 6 from our operating systems textbook.

The code in this zip file demonstrates how Windows 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 - Visualizer

Read Section 12.1, about structures, from Programming in C.

Review Sections 6.2 and 6.2.1 about structures from The C Book.

Today we will run and visualize the following sample C code on the C Tutor - Visualizer.

Read Chapter 7, about arrays, from Programming in C.

For practice, do these exercises at the end of Chapter 7.

Review the chapter about arrays and pointers from The C Book.

See the homework assignment page for your second programming assignment.

Read Chapter 2, Sections 2.1 and 2.2 (pages 1-6) and Chapter 4, about processes, from our operating systems textbook.

Today we will look at the C code in the following zip file which shows how to write code that creates Windows processes (which is what your second programming assignment is about).

Read Chapter 6, about pointers, from Programming in C.

For practice, do these exercises at the end of Chapter 6.

No class today, Martin Luther King Jr. Day.

Read Chapter 3 from Programming in C (TOC)

Today we will look at the C code in the following zip file and some of the C examples in the sub-folders that accompany homework assignment 1.

See the homework assignment page for your first programming assignment.

Read Chapter 1 and Chapter 2 from Programming in C (TOC)

The following zip file contains code for an example very similar to your first programming assignment.

To help you prepare for the first homework assignment, read the following section from the course textbook.

Here is a link to a zip file that contains a C compiler that we will use in this course. Download this zip file and unzip it into the top level of your C:\ drive. We will go over in class how to use this compiler.

Here are links to two online, educational C compilers that we will use.

Here is a link to a third educational C compiler that we will use.