Operating Systems (CS240)
Welcome to Operating Systems CS240.
This course is offered in the Spring Semester 2018 at the University of Idaho in Moscow.
The course is taught by Dr. Axel Krings.
This web-page
contains information about the course, e.g. syllabus, class notes, pointers
to interesting places etc.
Material can be down-loaded in pdf (or postscript) format, and will be made
available in the updated form as the class goes on.
To get an idea of what this class is about, take a look at
last semester's page.
However, materials and topics constantly change, and this class will
be no exception.
If you have comments, please let me know.
Course description from UI General Catalog:
CS 240 Computer Operating Systems (3 cr),
Overview of operating systems, Operating system principles, Concurrency, Scheduling and dispatch,
Memory management, Introduction to net-centric computing, OS security. Process management.
Concurrent programming using threads.
Prereq: CS 121 and 150,
Coreq: CS 270.
Text: William Stallings, Operating System: Internals and Design Principles, Prentice Hall.
Contact information:
- Axel Krings (PhD), JEB 320,
- Phone: 208-885-4078, fax: 208-885-9052.
- Email: krings@uidaho.edu (see comments in syllabus on email procedures)
- Office Hours:
(see here)
- Class times: MWF 10:30-11:20 pm room ALB 201.
Class Forum
- To access the class forum you need log into the CS240 Forum.
Yes - you probably will get a certificate warning message, but just ignore it.
Authentication is done via the UI and *not* a third party!
Please read the welcome message about the rules of posting, i.e., what can be posted and what not.
Class Support Material:
- The handouts are ordered by sequence numbers and the material covered in the lectures are indicated next to the date.
Specifically, the numbers in parentheses indicate the slides covered during class, i.e., [a/b-c/d] indicates that the material covered is from sequence a (slide b) to sequence c (to slide d).
- If there are any problems with accessing the handouts,
please let me know (email, phone, smoke signs, drums, ...)!
- Corrections: some slides may contain formatting errors, typos etc.
which have been addressed in class, but have not been reflected
in the notes posted here.
-
Syllabus
- Lecture Notes
- Lecture 1 (01/10/18): [1/01-1/16]
Sequence 1, (pdf),
:
Introduction, Processors, Instruction and program execution
- Lecture 2 (01/12/18): [1/17-1/29]
DMA, Interrupts, Multiprogramming, Memory hierarchy
- Lecture 3 (01/17/18): [1/30-1/42]
Sequence 2, (pdf),
:
OS objectives, OS services, Kernel, Linux
- Lecture 4 (01/19/18): [1/43-2/08]
Sequence 3, (pdf),
:
Evolution of OSs, JCL, I/O Devices - Speedup, uniprogramming, multiprogramming, time sharing,
major achievements in OSs,
Mini-Exam 1.
- Lecture 5 (01/22/18): [2/09-3/15]
Sequence 4, (pdf),
:
Mini-Exam 1 discussion,
Microkernel, multithreading, SMP, Overview of Unix Architecture
- Lecture 6 (01/24/18): [3/14-3/36] Assignment 1 discussion,
Processes, process execution states
- Lecture 7 (01/26/18): [4/01-5/05]
Sequence 5, (pdf),
:
Mini-Exam 2,
Virtual memory, security, and more. Assignment 1 questions?
- Lecture 8 (01/29/18): [5/06-5/23]
Modern Operating Systems,
Process Description and Control
(control blocks, traces, state models), Traces
- Lecture 9 (01/31/18): [5/24-6/19]
Sequence 6, (pdf),
:
Processes cont.: OS Control Structures, Tables (Memory, I/O, File, Process), Process Image,
Process Control Block, Process State Information,
Discussion about the status of assignment 1.
- Lecture 10 (02/02/18): [6/20-6/33]
Sequence 7, (pdf),
:
Mini-Exam 3,
Processes cont.: Modes of Execution (e.g., Creation, Switching),
Kernel types (from separate to process implemented), examples (Unix, SVR4),
using fork() system call.
- Lecture 11 (02/05/18): [7/01-7/03]
Mini-Exam 3 review,
unix fork commands, (demonstrations of examples), [preliminary discussion of upcoming shell assignment]
- Lecture 12 (02/07/18): [7/04-7/05]
Sequence 8, (pdf),
:
unix exec commands, (demonstrations of examples),
For more detailed discussion of fork and exec etc. also see
CS270 material.
Check out Assignment 2.
- Lecture 13 (02/09/18): [7/07-7/09] [res-talk/13]
(Research Talk)
:
Mini-Exam 4,
Threads, single and multithreaded process model,
state of a process/thread or computation and issues of checkpointing it.
- Lecture 14 (02/12/18): [7/10-research talk]
Sequence 9, (pdf),
:
Discussion of Mini-Exam4,
Threads, Remote procedure calls, user-level threads (ULT), kernel-level threads (KLT), examples: Solaris,
relationship between threads and processes
- Lecture 15 (02/14/18): [8/01-9/06]
Sequence 10, (pdf),
:
Threads continued. Questions on Assignment 2?
- Lecture 16 (02/16/18): [9/07-09/18]
Sequence 11, (pdf),
:
Mini-Exam 5,
Threats (ULT, KLT), multithreading,
- Lecture 17 (02/21/18): [10/01-12/03]
Sequence 12, (pdf),
:
Discussions on new features for upcoming Assignment 3,
System Taxonomies, Flynn's Taxonomy, microkernel
SMP, Microkernel Architecture and design,
Solaris and Linus processes and process management
- Lecture 18 (02/23/18): [12/04-12/10]
Sequence 13, (pdf),
:
Mini-Exam 6,
Assignment 3 discussion,
catching up,
intro to mutual exclusion.
- Lecture 19 (02/26/18): [12/11-13/04]
Mutual exclusion using test-an-set and exchange instructions,
Lamport's Bakery Algorithm,
- Lecture 20 (02/28/18): [13/05-13/13]
Sequence 14, (pdf),
:
Mutual exclusion cont., Lamport's Bakery Algorithms, Peterson's Algorithm,
Semaphores.
- Lecture 21 (03/02/18): [14/01-15/06]
Sequence 15, (pdf),
:
Mini-Exam 7,
Semaphores cont., Producer/Consumer Problem,
- Lecture 22 (03/05/18): [15/06-15/22]
Sequence 16, (pdf),
:
Deadlock
- Lecture 23 (03/07/18): [16/01-16/08]
Sequence 17, (pdf),
:
Deadlock, resource allocation graph, conditions for deadlock
- Lecture 24 (03/09/18): [16/09-xx]
Project day,
conditions for deadlock,
- Lecture 25 (03/19/18): [17/01-17/14]
Sequence 18, (pdf),
:
Deadlock prevention, avoidance
- Lecture 26 (03/21/18): [18/01-18/08]
Assignment 3 due date extended,
Deadlock detection.
Dining Philosopher Problem, Unix Concurrency Mechanisms,
- Lecture 27 (03/23/18): [18/09-19/10]
Sequence 19, (pdf),
:
Mini-Exam 8,
Dining Philosopher Problem, Unix Concurrency Mechanisms,
Memory management,
- Lecture 28 (03/26/18): [19/11-20/10]
Sequence 20, (pdf),
:
Memory management, fixed and dynamic partitioning
dynamic partitioning (buddy system), hardware support
- Lecture 29 (03/28/18): [21/01-21/06]
Sequence 21, (pdf),
:
Paging and segmentation, virtual memory
- Lecture 30 (03/30/18): [21/07-22/05]
Sequence 22, (pdf),
:
Mini-exam 9, Virtual Memory cont.,
- Lecture 31 (04/02/18): [22/06-22/17]
Sequence 23, (pdf),
:
Paging, Translation Lookaside Buffer, Page replacement algorithms
- Lecture 32 (04/04/18): [23/01-23/15]
Sequence 24, (pdf),
:
Segmentation, Page replacement algorithms
- Lecture 33 (04/07/18): [23/16-23/20]
Mini-Exam 10,
Page replacement algorithms and comparison, resident sets, cleaning policy, and load control,
Unix, Solaris and Linux memory management overview
- Lecture 34 (04/09/18): [24/02-24/13]
Sequence 25, (pdf),
:
Memory management cont.
- Lecture 35 (04/11/18): [24/14-25/03]
Sequence 26, (pdf),
:
Intro to Scheduling
- Lecture 36 (04/13/18): [25/04-26/04]
Sequence 27, (pdf),
:
Mini-Exam 11,
Scheduling Algorithms
- Lecture 37 (04/16/18): [26/05-26/16]
Scheduling cont.
- Lecture 38 (04/18/18): [27/01-27/12]
Sequence 28, (pdf),
:
Assignment 4 discussion,
Scheduling wrapped up: SRT, HRRN, Feedback scheduling, Fair-Share Scheduling,
traditional unix scheduling, Bands
- Lecture 39 (04/20/18): [27/13-28/31]
Sequence 29, (pdf),
:
Mini-Exam 12,
File system directory structure, file allocation strategies, Unix file system
- Lecture 40 (04/23/18): [28/32-29/20]
File system cont.
- Lecture 41 (04/25/18): [29/21-29/46]
Sequence 30, (pdf),
:
general I/O management,
- Lecture 42 (04/27/18): [30/01-30/16]
Mini-Exam 13, catching up.
I/O management,
- Lecture 43 (04/30/18): [30/17-31/16]
Sequence 31, (pdf),
:
Disk scheduling, RAID systems, disk caching
- Lecture 44 (05/02/18):
Sequence 32, (pdf),
:
Networking, [Check it out: RFC1180 - TCP/IP tutorial]
- Assignment 4 due date is extended to Monday!
- Lecture 45 (05/04/18): Wrapping up networking and the semester
- Final mini-exam: Monday, May 7 from 10:00-10:25 (same class room).
Homeworks/Projects/Exams:
Sample exam questions: NOTE, we have switched to mini-exams, but the type of questions are the same as those in the traditional exams below.