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

From wiki.ucalgary.ca
Jump to: navigation, search

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.