CSE 421/521
Introduction to Operating Systems
Fall 2016
Instructor:
Prof. Tevfik Kosar
338J Davis Hall, 645-2323
tkosar@buffalo.edu
Office hours: Wed 11:00am-1:00pm
Course Description:
CSE 421/521 is an introductory course on the design and implementation of operating systems. It will focus on different OS design techniques, process management, processor scheduling, concurrent programming, deadlocks and synchronization, memory management, file management and I/O systems, disk scheduling, protection and security, and distributed systems. The course will include hands-on programming projects on different OS components. (Prerequisites of this course: CSE 250, or an equivalent course, or permission of the instructor.)
Course Logistics:
Website : http://www.cse.buffalo.edu/faculty/tkosar/cse421-521_fall2016/
Lecture time & location : Tue & Thu, 11:00am – 12:20pm (Knox 109)
Recitation sessions : Tue 8:00am – 8:50am, Wed 10:00am-10:50am
Teaching assistants : Luigi Di Tacchio (luigidit@buffalo.edu)
Chaowen Guan (chaoweng@buffalo.edu)
Zulkar Nine (mdsqzulk@buffalo.edu)
Exam schedule : Midterm 1: October 11 @ 11:00am–12:20pm (Knox 109)
Midterm 2: December 8 @ 11:00am–12:20pm (Knox 109)
Textbook: (Required)
v Operating Systems Concepts (9th Edition),
by A. Silbershatz, P.B. Galvin, and G. Gayne. Wiley Publishers, 2012.
ISBN: 978-1-118-06333-0
Recommended Supplementary Text: (Optional)
v The C Programming Language. By Kernighan and Ritchie. Prentice Hall, Second Edition, 1988, ISBN 0-13-110362-8.
v The C++ Programming Language. By Bjarne Stroutstrup. Addison-Wesley, Third Edition, 1997, ISBN 0-201-88954-4
v Advanced Programming in the UNIX Environment, by Richard Stevens. Addison Wesley Press, 1993, ISBN 0-201-56317-7.
Grading:
The end-of-semester grades for this course will be composed of:
v Pop Quizzes: 5%
v Project-1: 20%
v Project-2: 20%
v Midterm-1: 25%
v Midterm-2: 30%
* There will be separate curves for graduate and undergraduate students.
* There will be no formal attendance taken in the class. But, you are expected to attend the classes and actively contribute via asking and/or answering questions.
Pop Quizzes:
There may be pop quizzes at the beginning of some classes. The questions in the quizzes will come mostly from the material discussed in the previous lecture(s) or homework assignment(s). The quizzes will be very short (5-10 min) with one or two questions aiming to test whether you have understood the most recently discussed material in the curse. There will be 5 pop quizzes throughout the semester. One with the lowest grade will be discarded, and the rest four will count towards your final degree.
Homework:
There will be four homework assignments throughout the semester. The format of the homework questions will be similar to the exercises at the end of each chapter in the Silberschatz book. The homework assignments aim to ensure that you read the textbook and study regularly for the material covered in the class. The homework assignments will not be graded.
Projects:
There will be two hands-on programming projects throughout the course. These projects will aim to implement some core Operating System components for better understanding of the concepts. These will be ÒteamÓ projects and they will require strong programming background (in C/C++) and UNIX programming experience.
Piazza Discussion Forum:
We will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. Find our class page at: https://piazza.com/buffalo/fall2016/cse421521/
Course Schedule (Tentative):
This schedule is tentative and subject to change. Please check Piazza for lecture slides, and other course related documents.
Date |
Lect. |
Title |
Notes |
Aug 30 |
1 |
Introduction |
|
Sep 1 |
2 |
Operating System Structures |
|
Sep 6 |
3 |
Processes |
|
Sep 8 |
4 |
Threads |
|
Sep 13 |
5 |
Project-1 Discussion |
Project-1 out |
Sep 15 |
6 |
CPU Scheduling – I |
|
Sep 20 |
7 |
CPU Scheduling – II |
|
Sep 22 |
8 |
Process Synchronization – I |
|
Sep 27 |
9 |
Process Synchronization – II |
|
Sep 29 |
10 |
Deadlocks – I |
|
Oct 4 |
11 |
Deadlocks – II |
|
Oct 6 |
12 |
Midterm-I Review |
|
Oct 11 |
|
MIDTERM-I EXAM (Room: Knox 109) |
|
Oct 13 |
13 |
Midterm-I Discussion |
|
Oct 18 |
14 |
Main Memory - I |
|
Oct 20 |
15 |
Main Memory – II |
Project-1 due |
Oct 25 |
16 |
Project-2 Discussion |
Project-2 out |
Oct 27 |
17 |
Virtual Memory – I |
|
Nov 1 |
18 |
Virtual Memory – II |
|
Nov 3 |
19 |
File Systems – I |
|
Nov 8 |
20 |
File Systems – II |
|
Nov 10 |
21 |
Mass Storage & I/O – I |
|
Nov 15 |
22 |
Mass Storage & I/O – II |
|
Nov 17 |
23 |
Distributed Systems – I |
|
Nov 22 |
24 |
Distributed Systems – II |
|
Nov 24 |
|
|
Fall Recess |
Nov 29 |
25 |
Distributed Systems – III |
|
Dec 1 |
26 |
Protection & Security |
|
Dec 6 |
27 |
Midterm-II Review |
|
Dec 8 |
28 |
MIDTERM-II EXAM (Room: Knox 109) |
|
Dec 11 |
|
|
Project-2 due |