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.

Final Exam Details - The final in CS240 will be on Wednesday, May 8, 12:45-2:45PM - in the usual classrooms for the class (EP202 and EP204 for Moscow, DeArmond 101 for CdA). It will be a traditional "paper" exam, rather than a Canvas exam. It is open book, open notes, but no electronics (laptops, cellphones, tablets, etc). This exam time is slightly different from that shown in the final schedule - it is the time designated for 1:30 classes whose first meeting time each week is Wednesday. I chose this time instead of our "normal" exam time, which would be on Friday. If anyone prefers to take the exam on friday, please let me know ASAP so arrangements can be made.
Let me know if you have questions concerning final exam details.

A study guide for the final is available ( here )
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.
- Assignment #7 ( pdf ) Due: May 6
Information on the os simulator needed for assignment #7 is available ( here )
The tar file with ossim code and some examples is available ( here )

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 )
Chapter 10 - ( here )
Chapter 13 - ( 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 Wednesday, May 1, 2024