Courses/Computer Science/CPSC 457.W2012/Lecture Notes
Contents
- 1 January 10: Introduction
- 2 January 12: From Programs to Processes
- 3 January 17: System Architecture and System Calls
- 4 January 19: Process Creation
- 5 January 24: System Startup
- 6 January 26: Process Scheduling
- 7 January 31: Scheduling and Timing
- 8 February 2: Concurrency, Communication, and Synchronization
- 9 February 7: Threads
- 10 February 9: Deadlock
- 11 February 14: Kernel Control Flow
- 12 February 16: Kernel Synchronization
- 13 February 21: No lecture (Reading week)
- 14 February 23: No lecture (Reading week)
- 15 February 28: Midterm Review
- 16 March 1: Midterm Exam
- 17 March 6: Signals
- 18 March 8: Memory Addressing
- 19 March 13: The Process Address Space
- 20 March 15: Virtual Memory
- 21 March 20: Page Replacement
- 22 March 22: Kernel Memory Management
- 23 March 27: File I/O
- 24 March 29: Filesystems
- 25 April 3: VFS and Ext3
- 26 April 5: Extended Attributes
- 27 April 10: Disk Scheduling
- 28 12 April: Final Exam Review
- 29 19 April: Final Exam
January 10: Introduction
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/Overview
January 12: From Programs to Processes
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/Prog2Proc
January 17: System Architecture and System Calls
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/SysArch
January 19: Process Creation
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/Creation
January 24: System Startup
The boot process, and how to create concurrency out of sequential execution.
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/Startup
January 26: Process Scheduling
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/Scheduling
January 31: Scheduling and Timing
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/Timing
February 2: Concurrency, Communication, and Synchronization
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/Concurrency
February 7: Threads
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/Threads
February 9: Deadlock
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/Deadlock
February 14: Kernel Control Flow
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/KernCtrlFlow
February 16: Kernel Synchronization
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/KernSync
February 21: No lecture (Reading week)
No class, tutorials, or office hours. Study for the midterm and work on HW3.
Remember that the university is closed on Feb 20th.
February 23: No lecture (Reading week)
No class, tutorials, or office hours. Study for the midterm and work on HW3.
February 28: Midterm Review
In this session, we will enumerate some of the topics that are likely to be on the midterm.
After this brief enumeration, this session will run as a Q&A.
Up to this point in the semester we have covered the following topics (in bold) out of the "syllabus" list above, through a combination of lectures, readings, and the homework assignments.
- synchronization primitives; threads and concurrent execution; critical sections; locking; deadlock, livelock
- Basic operating system designs and structures, OS history
- IDT; interrupts; system initialization; privilege levels; segment descriptors
- hardware support for segmentation and paging; page permissions
- traps and interrupts; call gates
- System calls
- process supervision; ptrace; debugging
- binary file format; ELF
- Process creation, meta-data, management, and scheduling
- Thread management from the kernel viewpoint
- Memory hierarchy, Memory management, virtual memory, DMA; page faults, page replacement
- Device I/O; disk scheduling algorithms
- Files and file systems; attributes, VFS; file system case study
- File locking
- Network stack, filtering architecture
- kernel instrumentation; kprobes; SystemTap
March 1: Midterm Exam
You should consider studying the things that are pointed out on this wiki with an exclamation point.
You have 1 hour and 15 minutes for this individual written exercise.
The TA will proctor the exam. Prof. Locasto will not be present. If you have a question, the TA can offer clarification of a term or concept, but will not offer explanation. Students may use both course textbooks (MOS, ULK) and 1 page of notes (this may be single or double sided and of any font size of your choice). You may not use a calculator, phone, computer, or other digital device. Leave these devices at home or in your bag.
The questions appear in no particular order of difficulty. Skip questions if you feel unsure and come back to them. Please write your name and email address on the test sheet. Answers may be provided directly on the test sheet. Answers should be terse, succinct, and otherwise concise. Diagrams and lists are welcomed and encouraged. Very long prose answers are likely to represent long, rambling, and incorrect answers.
March 6: Signals
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/Signals
March 8: Memory Addressing
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/MemAddr
March 13: The Process Address Space
Here we consider the general abstraction as well as how the Linux kernel supports "memory regions" (vm areas).
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/ProcAddrSpace
March 15: Virtual Memory
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/VirtualMemory
March 20: Page Replacement
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/PageReplacement
March 22: Kernel Memory Management
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/KernMem
March 27: File I/O
File. File input-ouput. Permissions. Attributes. Functions (open/read/write/close/lseek/stat). Threads, processes, and file locking.
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/FileIO
March 29: Filesystems
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/Filesystems
April 3: VFS and Ext3
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/VFS
April 5: Extended Attributes
USRI for the first 15 minutes of class.
Support for extended attributes, labels, and ACLs.
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/XAttr
April 10: Disk Scheduling
A consideration of low-level I/O and how to schedule rotational media requests.
Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/DiskScheduling
12 April: Final Exam Review
Today's topic will be dynamically determined by popular vote on a Piazza poll.
Today is CPSC Industry Day and the Undergraduate Showcase. I encourage you to attend after class.
Final Exam Review
Up to this point in the semester we have covered the following topics (in bold) out of the "syllabus" list, through a combination of lectures, tutorials, readings, and the homework assignments.
- synchronization primitives; threads and concurrent execution; critical sections; locking; deadlock, livelock
- Basic operating system designs and structures, OS history
- IDT; interrupts; system initialization; privilege levels; segment descriptors
- hardware support for segmentation and paging; page permissions
- traps and interrupts; call gates
- System calls
- process supervision; ptrace; debugging
- binary file format; ELF
- Process creation, meta-data, management, and scheduling
- Thread management from the kernel viewpoint
- Memory hierarchy, Memory management, virtual memory, DMA; page faults, page replacement
- Device I/O; disk scheduling algorithms
- Files and file systems; attributes, VFS; file system case study
- File locking
- Network stack, filtering architecture
- kernel instrumentation; kprobes; SystemTap
19 April: Final Exam
The exam will take place from noon to 2pm.
The final exam will test your knowledge of most of the major topics we discussed this semester.
This test will take the form of an individual written exercise.