TextbookECS 150 - Operating Systems - Fall 2009


Instructor
Daniela Alvim Seabra de Oliveira
http://wwwcsif.cs.ucdavis.edu/~oliveira/

Lectures:
Tuesdays and Thursdays
12:10-1:30pm
2016 Haring

Office hours:
1037 Academic Surge
10:50-11:50 pm on Thursdays (by appointment)
e-mail: email

TA
Sean Whalen

Discussion Section:
Wednesdays
3:10-4:00pm
184 Young

Office hours:
55 Kemper Hall
1:30-2:30pm on Tuesdays

e-mail: seanemail

1) Discussion Section 1 (09/30): Kernel compilation and debugging, loglevels

2) Discussion Section 2 (10/7): Virtual Machines and PA #1 Discussion

Paper on VM-based rootkit:
http://www.eecs.umich.edu/~pmchen/papers/king06.pdf

Paper on detecting presence of a VM:
http://www.offensivecomputing.net/files/active/0/vm.pdf

Tool for detecting presence of a VM:
http://www.trapkit.de/research/vmm/scoopyng/index.html

Some dialog on the topic:
http://weblogs.asp.net/jgalloway/archive/2006/10/27/Can-Operating-Systems-tell-if-they_2700_re-running-in-a-Virtual-Machine_3F00_.aspx

3) Discussion Section 3 (10/14): System startup

4) Discussion Section 4 (10/21): Modules

http://lwn.net/Kernel/LDD3/


http://tldp.org/LDP/lkmpg/2.6/html/
5) Discussion Section 5 (10/28): HW1 Solutions and PA#2 Discussion

6) Discussion Section 6 (11/04): Midterm Solutions


Facebook group

UCDavis ECS 150 - Fall 2009


Textbook

textbook
Operating Systens Concepts - 8th Edition
Abraham Silberschatz, Peter Baer Galvin, Greg Gagne
ISBN: 978-0-470-12872-5
July 2008


Announcements




Slides

About the course
OS Introduction
Process Management: Scheduling and Threads
Linux Process Scheduling (Figures)
Process Synchronization - Part 1
Process Synchronization - Part 2
Deadlocks
FileSystems (Slides from Prof. Felix Wu)



Homework Assignments

These are individual assignments.

HW #1 (October 27th 2009, in class)


Programming Assignments

We will be using the handin utility for submission (cs150 account):
http://csifdocs.cs.ucdavis.edu/tiki-index.php?page=handin+utility

PA #1 (due 11:59pm, October 18th 2009)

Some useful links:
Kernel compilation for newbies (ubuntu)
http://ubuntuforums.org/showthread.php?t=56835

Linux source code searching:
http://lxr.linux.no/linux

Ubuntu 7.04
http://old-releases.ubuntu.com/releases/feisty/

Linux kernel archives (2.6):
http://www.kernel.org/pub/linux/kernel/v2.6/


PA #2 (due 11:59pm, November 10th 2009)


PA #3 (due 11:59pm, November 30th 2009)

Lectures

Lecture Date Topic Reading
1 Thu 09/24 Course Introduction, OS Introduction: OS definition, brief historical review, how OS control is enforced, interrupts Textbook: Chapter 1 (1.1, 1.2, 1.3 and 1.4)
Chapter 13: 13.2.2, 13.3.3
2 Tue 09/29 OS Introduction: Handling a system call, types of system calls, OS services, OS structure, Process Management: Definition, States, Creation Textbook. Chapter 1: 1.5, 1.6, 1.7, 1.8, 1.9, 1.11 (optional), 1.12 (optional), 1.13
Chapter 2: 2.1,2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.10, 2.11
Chapter 3: 3.1, 3.3
3 Thu 10/01 Process Scheduling Introduction: Context Switching, Dispatcher, When to Schedule, Process Behavior. Scheduling Algorithms: Goals, Categories, FCFS, SJF. Textbook. Chapter 3: 3.2
Chapter 5: 5.1, 5.2, 5.3.1, 5.3.2
4 Tue 10/06 Scheduling Algorithms: SJF, Priority, Round-Robin, Multilevel Queue, Multilevel Feedback Queue, Threads Textbook:  Chapter 5: 5.3.2, 5.3.3, 5.3.4, 5.3.5, 5.3.6
Chapter 4: 4.1
5 Thu 10/08 Threads: user-level x kernel threads, Multithreading models: Many-to-One, One-to-One, Many-to-Many, Solaris 2
Process in Linux: task_struct, identifying a process, process list
Textbook: Chapter 4: 4.2, 4.3
All material discussed on classroom board
6 Tue 10/13 Processes in Linux: Copy-on-Write, Threads, States, Scheduling Textbook: 4.5.2
All material discussed on classroom board
7 Thu 10/15 Process Scheduling in Linux: policy, process priority, timeslice, scheduling algorithm and data structures, recalculating priorities and timeslices, preemption and context switching, kernel preemption.
Process Synchronization: Introduction
All material discussed on classroom board.
Textbook: Chapter 5 (5.6.3)

8 Tue 10/20 Process Synchronization: Introduction, The Critical Section Problem, Lock Variables, Strict Alternation, Peterson's Solution, Synchronization Hardware, Sleep/Wakeup Textbook. Chapter 6 (6.1, 6.2, 6.3, 6.4)
9 Thu 10/22 Process Synchronization: Semaphores, Monitors, Classic Problems of Synchronization Textbook. Chapter 6 (6.5, 6.6, 6.7, 6.8.3)
10 Tue 10/27 File Systems - Guest Lecturer Prof. Felix Wu Textbook:. Chapter 10 (10.1, 10.2, 10.3, 10.4, 10.6)
Chapter 11 (11.1, 11.2, 11.3, 11.4)
11 Thu 10/29
12 Tue 11/03 Midterm, in class
13 Thu 11/05 Deadlocks. Memory Management - Introduction Textbook:. Chapter 7 (7.1, 7.2, 7.3, 7.4, 7.5, 7.6.,7.7)
14 Tue 11/10 Memory Management: Basic Monoprogramming, Multiprogramming  with Fixed Partitions, Fragmentation, Swapping Textbook. Chapter 8 (8.1, 8.2, 8.3, )
15 Thu 11/12 File Systems - Guest Lecturer Prof. Felix Wu Slides (Prof. Felix Wu). Textbook: 11.6, 11.7
16 Tue 11/17
17 Thu 11/19
18 Tue 11/24
19 Thu 11/26 Thanksgiving
20 Tue 12/01
21 Thu 12/03

Final: December 11th 6:00-8:00pm, 2016 Haring