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

From wiki.ucalgary.ca
< Courses‎ | Computer Science‎ | CPSC 457.W2013
Revision as of 14:43, 16 April 2013 by Locasto (talk | contribs) (April 16: Final Exam Review Period)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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.