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.