Calendar

 Date  Lectures and Video materials  Reading  Assignments
 Sept. 7  Technology trends -- why should I study operating systems? 
 Course Structure

Read: Chapter 0 in the xv6 book.
Chapter 2 in the OSTEP book.
 
 Sept. 14 Introduction 
How does an OS boot? 
Read: 
Chapter 1 in the xv6 book.
Short section on booting in The Little Book About OS Development.

Optional:
This MIPS R3000 programmer manual may be helpful in understanding how the OS must interact with the hardware during boot and after.
Assignment 0  and Assignment 1 (very short!) due Monday, September 17 at 11:59pm. 
 Sept. 21  Synchronization  

 Semaphore implementation exercise
 
 Watch prior to class:
 Overview of synchronization by Margo Seltzer
 Synchronization types by Margo Seltzer
 Synchronization implementation by Margo Seltzer

 Read: The volatile keyword   explained
 Condition variables
 Mesa semantics 
 [OSTEP] Concurrency: An Introduction

You don't know jack about shared variables or memory models -- Data races are evil.
Assignment 2 due Thursday, September 27 at 11:59pm. 
 Sept. 28  Test-and-set locks in-depth  
 Synchronization patterns

 Watch prior to class:

 Computer Architecture Primer by Margo Seltzer

 
 

 
Read:
The Art of Multiprocessor Programming, Chapter 9 (sections 9.2-9.5.1 cover the material we studied in class) -- authenticate with your ECE account credentials.

 [OSTEP] Concurrent data structures
 [OSTEP] Condition variables and bounded buffer problem
 Treacherous shared counters
 Chapter 3 in the xv6 book.


Optional: Pointer tutorials
 The Wikipedia Tutorial
 The Dave Marshall Tutorial 
Assignment 3 due Thursday, October 4 at 11:59pm.
       
 Oct. 5  Trap handling, domain crossing, processes vs threads 
 
Processes and file descriptors

 Watch prior to class:

 Context switching by Margo Seltzer

 Watch prior to class:
 Processes and threads by Margo Seltzer
 Process components by Margo Seltzer

 
Read prior to class: OS161 man pages for the system   calls you are implementing in A4. 
 
 Read: File descriptors in Unix  
 Oct. 12  Scheduling
 Advanced scheduling
 Read: OS161 man pages for the system calls in A4 and A5. 

 R
ead: Chapter 2 in the xv6 book.
 [OSTEP] Scheduling.
 [OSTEP] Multi-level feedback queue.
 [OSTEP] Lottery scheduling.
 [OSTEP] Multi-CPU scheduling.
 Assignment 4 due Thursday, October 18 at 11:59pm.
 Oct. 19  Process creation: fork() and shared file objects
 (fork.c) (pipes.c) (pipes2.c
(pipes-exec.c) 

 
Processes: exec()  (exec.c)

 Watch prior to class:

 Process management by Margo Seltzer 
 Fork and exec  by Margo Seltzer 

 


 Read: [OSTEP] Introduction of the Unix process API (fork/exec, etc.)  
 Oct. 26  Processes: waitpid/exit
 Finish up scheduling
   
       
 Nov. 2  Virtual memory: Intro
 Virtual memory: Discussion
 

 Class ends early: at 3:20pm.
 
 Watch prior to class:
 Intro to Virtual Memory by Margo Seltzer
 Translation Lookaside Buffer (TLB) by Margo Seltzer
 
 Read: [OSTEP] Address spaces 
 Read: [OSTEP] Memory API
 Read: [OSTEP] Address translation
 
 Read: MIPS MMU and TLB
  Assignment 5 due Thursday, November 8 at 11:59pm
 Nov. 9  Finish VM Intro
 Practical aspects: MIPS MMU and TLB
 Discuss page tables: where are the located?, what if they   become very large?
 Demand paging

   
 Nov. 16  
 Practical aspects of paging
 Page replacement policies

 Watch prior to class:

 Virtual memory on x86 systems by Margo Seltzer
 Intro to paging by Margo Seltzer 
 Continuation of paging by Margo Seltzer  
  

 
 Nov. 23  Disks: overview
 File systems: overview
 File systems: FFS

 Watch prior to class:

 Disks by Margo Seltzer
 Introduction to file systems by Margo Seltzer
 File system naming by Margo Seltzer
 FFS by Margo Seltzer
 Read: [OSTEP] I/O Devices
 Read: [OSTEP] Disks
 Read: [OSTEP] Files and directories
 Read: [OSTEP] File system implementation
If you are not available to take the oral exam during the regular class time in the period of the final exams, please make alternative arrangements.
 Nov. 30  File systems: LFS and journaling
 
 Guest lecture: Margo Seltzer talks about T
he revenge of LFS: how Flash makes LFS really attractive
 

 Thinking about file systems: questions and discussion

 Watch prior to class:
 
 Journaling file systems by Margo Seltzer
 LFS by Margo Seltzer
 File system recovery by Margo Seltzer
 Read: [OSTEP] FFS
 Read: [OSTEP] LFS
 Read: [OSTEP] FSCK and Journaling
 Read: [OSTEP] Virtual machines
Assignment 6 due Thursday, December 6, at 11:59pm.
       
 Dec. 7  All oral exams must be done by 2pm on this date!  
       

Further reading:

ć
OS161 UBC,
Oct 26, 2018, 2:29 PM
ć
OS161 UBC,
Jan 12, 2017, 5:09 PM
ć
OS161 UBC,
Sep 5, 2017, 3:47 PM
ć
OS161 UBC,
Sep 13, 2018, 11:02 AM
ć
OS161 UBC,
Nov 8, 2018, 3:23 PM
ć
OS161 UBC,
Mar 29, 2016, 1:20 PM
ć
OS161 UBC,
Oct 18, 2018, 2:44 PM
ć
OS161 UBC,
Feb 14, 2017, 5:52 PM
ć
OS161 UBC,
Feb 29, 2016, 6:58 PM
ć
OS161 UBC,
Oct 3, 2018, 10:56 AM
Ċ
R3000.pdf
(1179k)
OS161 UBC,
Jan 19, 2017, 4:42 PM
ć
OS161 UBC,
Oct 11, 2018, 3:34 PM
ć
OS161 UBC,
Oct 3, 2018, 10:02 AM
ć
OS161 UBC,
Oct 3, 2018, 10:02 AM
ć
OS161 UBC,
Oct 3, 2018, 10:02 AM
ć
OS161 UBC,
Sep 5, 2017, 3:37 PM
ć
OS161 UBC,
Oct 11, 2018, 2:54 PM
ć
OS161 UBC,
Nov 8, 2018, 2:53 PM
ć
disk.pptx
(327k)
OS161 UBC,
Mar 24, 2016, 12:32 PM
ć
ffs.pptx
(309k)
OS161 UBC,
Mar 24, 2016, 12:32 PM
ć
OS161 UBC,
Mar 24, 2016, 12:32 PM
ć
OS161 UBC,
Mar 30, 2017, 12:55 PM
ć
OS161 UBC,
Apr 6, 2017, 1:27 PM
ć
lfs.pptx
(560k)
OS161 UBC,
Mar 24, 2016, 12:34 PM
ć
OS161 UBC,
Mar 24, 2016, 12:32 PM
Ċ
mips-TLB.pdf
(1366k)
OS161 UBC,
Mar 14, 2016, 2:41 PM
ċ
mips.c
(63k)
OS161 UBC,
Jan 29, 2016, 12:07 PM
ć
OS161 UBC,
Nov 8, 2018, 2:07 PM
ć
OS161 UBC,
Nov 8, 2018, 3:09 PM
ć
OS161 UBC,
Mar 24, 2016, 12:32 PM
ć
OS161 UBC,
Nov 8, 2018, 3:22 PM
Comments