Courses/Computer Science/CPSC 457.W2013/Lecture Notes

= January 8: Introduction =

Today we briefly covered the course outline, structure, topics, and policies.

= January 10: From Programs to Processes =

Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/Prog2Proc

= January 15: System Architecture and System Calls =

Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/SysArch

= January 17: Process Creation =

Courses/Computer_Science/CPSC_457.W2013/Lecture Notes/Creation

= January 22: System Startup =

The boot process, and how to create concurrency out of sequential execution.

Courses/Computer_Science/CPSC_457.W2013/Lecture Notes/Startup

= January 24: No Lecture Today =

There will be no lecture today. Prof. Locasto will be away at a conference.

Extra office hours will be available on Monday the 28th.

= January 29: Process Scheduling =

Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/Scheduling

= January 31: Scheduling and Timing =

Courses/Computer_Science/CPSC_457.W2013/Lecture Notes/Timing

= Feb 5: Memory Addressing =

Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/MemAddr

= Feb 7: 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.W2013/Lecture Notes/ProcAddrSpace

= Feb 12: Virtual Memory =

Courses/Computer_Science/CPSC_457.W2013/Lecture Notes/VirtualMemory

= Feb 14: Page Replacement =

Courses/Computer_Science/CPSC_457.W2013/Lecture Notes/PageReplacement

= February 19: No lecture (Reading week) =

No class, tutorials, or office hours. Study for the midterm or work on HW.

Remember that the university is closed on Feb 18th.

= February 21: No lecture (Reading week) =

No class, tutorials, or office hours. Study for the midterm.

= Feb 26: Midterm Review =

A review period for the midterm.

= February 28: Midterm Exam =

You have 1 hour and 15 minutes for this individual written exercise.

If you have a question during the exam, we will offer clarification of a term or concept, but we will not offer explanation. Students may use 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 concise. Diagrams and lists are welcomed and encouraged. Very long prose answers are likely to represent long, rambling, and incorrect answers.

= March 5: Kernel Memory Management =

Courses/Computer_Science/CPSC_457.W2013/Lecture Notes/KernMem

= March 7: Concurrency, Communication, and Synchronization =

We will have a guest lecture today from Prof. Mea Wang.

Courses/Computer_Science/CPSC_457.W2013/Lecture Notes/Concurrency

= March 12: Midterm Post-Mortem, HW2 QandA, Concurrency recap =

Courses/Computer_Science/CPSC_457.W2013/Lecture Notes/Concurrency

= March 14: HW2 Q&A, Concurrency (cont) =

We'll discuss HW2 problems and continue our discussion of concurrency, particularly threads and the pthreads library, touching on some of the material in the Deadlocks lecture.

Courses/Computer_Science/CPSC_457.W2013/Lecture Notes/Concurrency

= March 19: Introduction to Threading =

In this session, we continued our discussion of concurrency by looking at how to use a simple user-level threading library, pthreads.

= March 21: Deadlock =

Courses/Computer_Science/CPSC_457.W2013/Lecture Notes/Deadlock

= March 26: Kernel Control Flow and Signals =

Simple IPC: Courses/Computer_Science/CPSC_457.W2013/Lecture Notes/Signals

The "signals" topic will be of interest for HW3.

Courses/Computer_Science/CPSC_457.W2013/Lecture Notes/KernCtrlFlow

= March 28: Kernel Synchronization =

Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/KernSync

= April 2: Files and File I/O =

A userland-based consideration of files and related topics. File. Permissions. Attributes. File input and output. Functions (open/read/write/close/lseek/stat).

Courses/Computer_Science/CPSC_457.W2013/Lecture Notes/FileIO

= April 4: Filesystems =

Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/Filesystems

In Linux, the VFS plays an important abstraction role in defining a flexible set of file systems.

Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/VFS

= April 9: Extended Attributes =

USRI, starting at 9:30.

Support for extended attributes, labels, and ACLs.

Courses/Computer_Science/CPSC_457.W2012/Lecture Notes/XAttr

= April 11: 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

= April 16: Final Exam Review Period =

Agenda

 * concept map
 * syllabus topic list
 * major problem types
 * all MOS readings

Exam Parameters

 * entire semester
 * 2 hours
 * 300 points (30% of your grade)
 * 4 to 5 problems
 * open book
 * 1 sheet of notes

Collected Readings

 * MOS: 1.1: What is an Operating System?
 * MOS: 1.2: History of Operating Systems
 * MOS: 1.4: The Operating System Zoo
 * MOS: 1.5: Operating System Concepts
 * MOS: 10.1: History of Unix and Linux
 * MOS: 13.1: The Nature of the Design Problem
 * MOS: 1.3: Computer Hardware Review
 * MOS: 1.6: System Calls
 * MOS: 1.7: Operating System Structure
 * MOS: Section 2.1: Processes (this should be partly review of what we've talked about in class)
 * MOS: Section 3.2.1: The Notion of an Address Space
 * MOS: Section 3.7 (all except 3.7.2) (this should review some of what we touched on in the previous class and lay some groundwork for talking about memory management)
 * MOS: Section 10.2.5 (Linux kernel structure)
 * MOS: Section 10.3.1 (about processes in Linux) should reinforce some class discussion
 * MOS: 10.3.5: "Booting Linux"
 * MOS: 2.4.1 "Introduction to Scheduling" (plus 2 intro paragraphs in S2.4)
 * MOS: 2.4.5 "Policy vs. Mechanism"
 * MOS: 10.3.4: "Scheduling in Linux"
 * MOS: 2.7 "Summary" (this talks about some things we'll consider next)
 * MOS: 5.5 "Clocks"
 * MOS: 3.2.3
 * MOS: 3.1 "No Memory Abstraction"
 * MOS: 3.2 "A Memory Abstraction: Address Spaces"
 * MOS: 3.3 "Virtual Memory" (this subsection also contains a review of paging and TLBs)
 * MOS: 3.7.3 "Segmentation with Paging: The Intel Pentium"
 * MOS: 3.4
 * MOS: 2.2 "Threads"
 * MOS: 2.3 "Interprocess Communication"
 * MOS: 2.5 "Classical IPC Problems" Beware typos in Figure 2-23, pg 122 (semicolon placement)
 * MOS: 6.2 "Introduction to Deadlocks" (NB: MOS 6.2.1 should be memorized!)
 * MOS: 6.4 "Deadlock Detection and Recovery"
 * MOS: 6.5 "Deadlock Avoidance"
 * MOS: 6.6 "Deadlock Prevention"
 * MOS: 4.1
 * MOS: 4.2
 * MOS, Chapter 4.3: File System Implementation
 * MOS, Chapter 4.5: Example File Systems
 * MOS, Chapter 10.6: The Linux File System
 * MOS: 5.1 Principles of I/O Hardware
 * MOS: 5.2 Principles of I/O Software
 * MOS: 5.4 Disks

= April 16 Tutorial Session (11am): OS and Networks =

An introduction to networking from the perspective of the OS. The Linux Netfilter Architecture.

Courses/Computer_Science/CPSC_457.W2013/Lecture Notes/Networking

= 22 April: Final Exam =

8am to 10am

Similar format and style to midterm, similar length.

Worth 300 points.