CS385 - Operating Systems Concepts and Design

This is the new 3 credit our version of CS385, which has CS361 Computer Systems as a prerequisite. To brush up on your systems programming skills, please see the recorded CS361 lectures from fall 2013.

The class discussion forum is hosted on Piazza. This will be used for all class communication aside from this website and the classroom.

Lecture Notes and Reading Assignments

#Sorted ascending Lecture topic Read this before lecture Date
-- midterm exam   10/14
1 Introduction to Operating Systems - 8/26
10 process scheduling and switching OSPP 2.4. sched(), scheduler(), wait(), wakeup() 9/25
11 process switching continued. From sys_fork() to swtch see prev. lecture, and swtch(). xv6 commentary Ch. 4. OSPP 4.6 (context switch) 9/30
12 sleep and wakeup, plus scheduling algorithms sleep(), wakeup()/wakeup1(), OSPP 7.1 10/2
13 introduction to threads (this will not be covered in the midterm) 10/7
14 midterm review all of the above 10/9
15 midterm post-mortem, beginning concurrency - 10/16
16 mutual exclusion in the kernel OSPP part 2, except: 5.6. xv6 textbook, chapter 4 10/23
17 spinlock, queue lock, adaptive   10/25
18 hw6/7 discussion, continuing mutual exclusion   10/28
19 understanding caches, coherency protocols and performance   10/30
2 Using Git, and the boot process Git book Chapters 2 and 3, bootasm.S, bootmain.c, and this other boot sector example 8/28
20 intro to file systems OSPP Part 4, except Ch 12, NTFS and Copy-on-Write File Systems. xv6 booklet on file systems 11/4
21 file systems cont. and hw8 * 11/6
22 hw8 take two * 11/11
23 block-level operations and persistence in file systems   11/18
24 authentication / access control, and hw9 OSPP on access control 11/25
25 advanced storage concepts: RAID, ZFS, b-trees and btrfs   11/20
26 alternative OS designs, and virtualization   12/2
27 wrap up and review for final   12/4
3 BIOS services, real mode programming OSPP 2--2.3, Int 10 functions take a quick look at the list, read about function "AH=0eh" in detail. 9/2
4 GDB, initialization, and starting protected mode. entry.S, main.c - and follow the first function call (kinit1()) all the way down to see what it does. 9/4
5 OS initialization continued main() and single-core subroutines, trap.c, xv6 commentary chapter 1. 9/9
6 Interrupts, and virtual memory OSPP 2.1--2.3. proc.h, xv6 commentary chapter 2. 9/11
7 Virtual Memory (2nd attempt) OSPP 8.1--8.2 9/16
8 paging and replacement policies OSPP 9.5--9.7 9/18
9 process vs. kernel abstractions, and syscalls OSPP 2.1--2.3. proc.h, userinit(), fork() and allocproc(). xv6 commentary chapter 2. 9/23
x (Tim Merrifield Guest Lecture) Advanced OS-level Synchronization n/a 11/13

Additional handy resources

This topic: CS385fall14 > WebHome
Topic revision: r7 - 2014-09-26 - 14:25:10 - Main.jakob
Copyright 2016 The Board of Trustees
of the University of Illinois.webmaster@cs.uic.edu
Helping Women Faculty Advance
Funded by NSF