CSE 421/521

Introduction to Operating Systems

Fall 2014

 

Instructor:

 

Prof. Tevfik Kosar

338J Davis Hall, 645-2323

tkosar@buffalo.edu

Office hours: Wed 11:00am-12:00pm, Thu 12:30pm-1:30pm

 

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 305, CSE 321, or permission of the instructor.)

 

Course Logistics:

 

Lecture time & location  : Tue & Thu, 11:00am – 12:20pm (Knox 110)

Recitation sessions         : Tue 3:00pm-3:50pm (Clemen 103), Wed 10:00am-10:50am (NSC 205)

Teaching assistants         : Sharath Chandrashekhara, Luigi Di Tacchio, Kyungho Jeon, and Jerry Anthony Ajay (volunteer)  

 

 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 Projects: 40%     

v Midterm: 25%

v Final: 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.

 

Piazza Discussion Forum:

 

We will be using Piazza for class discussions, as well as posting the class related material such as lecture notes, projects, and other important documentation. 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/fall2014/cse421521/home

 

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 26

1

Introduction

Aug 28

2

Operating System Structures

 

Sep 2

3

Processes

 

Sep 4

4

Threads

 

Sep 9

5

CPU Scheduling - I

Sep 11

6

Project-1 Discussion

Project-I out

Sep 16

7

CPU Scheduling – II

 

Sep 18

8

Process Synchronization – I

 

Sep 23

9

Process Synchronization – II

 

Sep 25

10

Deadlocks – I

 

Sep 30

11

Deadlocks – II

 

Oct 2

12

Main Memory – I

 

Oct 7

13

Main Memory – II

 

Oct 9

14

Midterm Review

 

Oct 14

 

MIDTERM EXAM (Room: Knox 110)

@11:00am–12:20pm

Oct 16

15

Midterm Discussion

 

Oct 21

16

Virtual Memory – I

Oct 23

17

Virtual Memory - II

Oct 28

18

Project-II Discussion

Project-II out

Oct 30

19

Mass Storage & IO – I

 

Nov 4

20

Mass Storage & IO – II

 

Nov 6

21

File Systems – I

 

Nov 11

22

File Systems – II

 

Nov 13

23

Distributed Systems – I

 

Nov 18

24

Distributed Systems – II

 

Nov 20

25

Protection & Security – I

 

Nov 25

26

Protection & Security - II

 

Nov 27

 

 

Fall Recess

Dec 2

27

Final Review

 

Dec 4

 

FINAL EXAM (Room: Knox 110)

@11:00am–12:20pm