CS240 - Computer Operating Systems

Instructor: Bob Rinker
Office (Moscow): JEB324
Office (Coeur d'Alene): Hed 202
Email: rinker@cs.uidaho.edu
Phone: (208)885-7378
Office Hours (Spring 20234: 2:30 - 3:30 MWF


Catalog Description:
This course provides an overview of operating systems and operating system principles. It includes sections on concurrency, scheduling and dispatch, memory management, net-centric computing, OS security, and process management. Concurrent programming using threads is also explored.
Lecture: 3 hours per week
Prerequisites: CS-150
Corequisites: CS-270

Syllabus: Downloadable from here pdf

Grading:
Your grade will be calculated using the following percentages:
Seven Mini Exams (@ 7% each) 49%
Final exam (comprehensive) 20%
Homework/Projects 25%
Points for completing all projects 6%
Total 100%

The letter grade you receive from the course will be determined as follows:
90%-100%A
89.9%-80%B
79.9%-70%C
69.9%-60%D
Below 60%F
The instructor reserves the right to adjust these percentages lower if deemed necessary.
Announcements
Welcome to the class!

For office hours, use the following Zoom ID: 139-231-823 . You will be placed into the "Waiting Room" - I will invite you in when I am ready for you. This way, we can be assured of a confidential discussion.


Assignments:
Assignments will appear here sometime after they are assigned
- Assignment #0 ( pdf ) This assignment does not need to be turned in
- Assignment #1 ( pdf ) Due: Feb 5
- Assignment #2 ( pdf ) Due: Feb 12
- Assignment #3 ( pdf ) Due: Feb 23
NOTE: The "system" command is *NOT* a system call, it is a regular function that just uses the (existing) shell to execute the command. The purpose of this assignment is to write a simple shell, NOT to use the (existing) shell to do the work. Using the system command is NOT an acceptable solution to this problem.
- Assignment #4 ( pdf ) Due: Mar 4
- Assignment #5 ( pdf ) Due: Mar 22
- Assignment #6 - NOTE: the assignment has been edited to include more specific output requirements. ( pdf ) Due: Apr 12 - NOTE: Due date has been extended.

Slides used in lectures

Slides on OS/UNIX History ( here )
"UNIX Geneology" ( here )
Linus Torvald's famous email ( here )

Chapter 2 - ( here )
Chapter 3 - ( here )
Slides on UNIX Processes - Part 1 - ( here )
Slides on UNIX Processes - Part 2 - ( here )
Chapter 4 - ( here )
Chapter 5 - ( here )
Chapter 6 - ( here )
Handout on using pthreads ( here )
Chapter 12 - ( here )
Chapter 11 - ( here )
Chapter 7 - ( here )
Chapter 8 - ( here )
Chapter 9 - ( here )

Links to other useful information
A useful ASCII code chart ( pdf )
Slides on command line arguments ( pdf )
Tar file containing several of the example programs involving fork() and exec(), here . (Shift-click to download). A tar file is somewhat like a zip file - an archive of separate files. In fact, many "zip" programs will also unpack tar files. On Linux, you can use the command: tar xvf file.tar

Slides on the DOS disk format ( pdf )
The dumpfile program we discussed in class ( pdf )
The dumpmbr program - an expanded version of the dumpfile program that uses the values contained in the boot block (also called the "master boot record" MBR) to calculation actual locations on the disk ( pdf )
Slides on UNIX file system calls ( pdf )
How to use the cscheckin program ( pdf)
A decent vi editor Cheat Sheet (pdf or ps)
Unix tutorial (from the University of Edinburgh) here.
How to use the cscheckin program ( pdf)
A decent vi editor Cheat Sheet (pdf or ps)
Unix tutorial (from the University of Edinburgh) here.

Last updated Monday, April 15, 2024