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.