CSE 521 - Operating Systems

FAll’22

 

Instructor:

 

Prof. Tevfik Kosar

338J Davis Hall, 645-2323

Email: tkosar@buffalo.edu

Office hours: Mon & Tue, 1:00pm-2:00pm (remote, over zoom, please check piazza for details)

 

Course Description:

 

CSE 521 is a graduate level 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:

 

        Instruction Mode             : Remote classes, in-person exams

Lecture time & location  : Mon & Wed, 11:00am – 12:20pm

  (remote, over zoom, please check piazza for details)

Teaching assistants        :  TBA

Exam schedule                : Midterm 1: October 12th @5pm-6pm (Cooke 121)

  Midterm 2: December 7th @5pm-6pm (Cooke 121)

 

 Textbook: (Required)        

 

v Operating Systems Concepts (9th or 10th edition),

      by A. Silbershatz, P.B. Galvin, and G. Gayne. Wiley Publishers..

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 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 Homework: 5%

v Project-1: 20%  

v Project-2: 20%   

v Midterm-1: 25%

v Midterm-2: 25%

 

* 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.

 

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 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/fall2022/cse521

 

 

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 29

1

Introduction

 

Aug 31

2

Operating System Structures

 

Sep 5

 

Labor Day 

Sep 7

3

Processes

Project-1 out 

Sep 12

4

Threads

Sep 14

5

Project-1 Discussion

 

Sep 19

6

CPU Scheduling - I

 

Sep 21

7

CPU Scheduling - II

 

Sep 26

8

Process Synchronization - I

 

Sep 28

9

Process Synchronization - II

 

Oct 3

10

Deadlocks - I

 

Oct 5

11

Deadlocks - II

 

Oct 10

12

Midterm-I Review

Oct 12

MIDTERM-I EXAM

@5pm, Cooke 121

Oct 17

13

Midterm-I Discussion 

 

Oct 19

14

Main Memory - I

 

Oct 24

15

Main Memory - II

Project-1 due

Oct 26

16

Project-2 Discussion

Project-2 out

Oct 31

17

Virtual Memory - I

 

Nov 2

18

Virtual Memory - II

 

Nov 7

19

File Systems - I

 

Nov 9

20

File Systems - II

 

Nov 14

21

Mass Storage & I/O - I

 

Nov 16

22

Mass Storage & I/O - II

 

Nov 21

23

Distributed Systems - I

 

Nov 23

 

 

Fall Recess 

Nov 28

24

Distributed Systems - II

 

Nov 30

25

Protection & Security

Dec 5

26

Midterm-II Review

 

Dec 7

 

MIDTERM-II EXAM

@5pm, Cooke 121

Dec 9

 

 

Project-2 due

 

Academic Integrity Policy:

 

UB’s definition of Academic Integrity in part is, “Students are responsible for the honest completion and representation of their work”. It is required as part of this course that you read and understand the departmental academic integrity policy located at the following URL: http://www.cse.buffalo.edu/undergrad/current_students/policy_academic.php

There is a very fine line separating conversation pertaining to concepts and academic dishonesty. You are allowed to converse about general concepts, but in no way are you allowed to share code or have one person do the work for others. If you are caught violating the academic integrity policy, you will minimally receive a ZERO in the course.

 

* PS: We are using professional software which can easily detect any cheating attempts in programming projects. The results generated by this software is considered as official evidence for cheating from another student, or from internet or any other resource.