CSE
421/521
Introduction
to Operating Systems
Spring 2018
Instructor:
Prof. Tevfik
Kosar
338J Davis
Hall, 645-2323
tkosar@buffalo.edu
Office hours:
Tue 11:00am-noon, Thu 1:00pm-2: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:
Lecture time & location :
Tue & Thu, 3:30pm Ð 4:50pm (NSC 201)
Recitation sessions :
Wed 3-3:50pm, Thu 5-5:50pm, Fri 8-8:50am
Teaching assistants : Chang Min Park
(cpark22@buffalo.edu)
Farshad Ghanei
(farshadg@buffalo.edu)
Shivang Aggarval
(shivanga@buffalo.edu)
Exam schedule
: Midterm 1: March 13th
@3:30pmÐ4:50pm (NSC 201)
Midterm 2: May 10th
@3:30pmÐ4:50pm (NSC 201)
Textbook:
(Required)
á
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)
Grading:
The end-of-semester grades for this course will be composed of:
á
Pop
Quizzes: 5%
á
Homework:
5%
á
Project-1:
20%
á
Project-2:
20%
á
Midterm-1:
25%
á
Midterm-2:
25%
* 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.
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/spring2018/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 |
Jan 30 |
1 |
Introduction |
|
Fab 1 |
2 |
Operating System
Structures |
|
Fab 6 |
3 |
Processes |
|
Feb 8 |
4 |
Threads |
|
Feb 13 |
5 |
Project-1
Discussion |
Project-1 out |
Feb 15 |
6 |
CPU Scheduling Ð
I |
|
Feb 20 |
7 |
CPU Scheduling Ð
II |
|
Feb 22 |
8 |
Process
Synchronization Ð I |
|
Feb 27 |
9 |
Process
Synchronization Ð II |
|
Mar 1 |
10 |
Deadlocks Ð I |
|
Mar 6 |
11 |
Deadlocks Ð II |
|
Mar 8 |
12 |
Midterm-I Review |
|
Mar 13 |
|
MIDTERM-I
EXAM (Room: NSC 201) |
|
Mar 15 |
13 |
Midterm-I
Discussion |
|
Mar 19-23 |
|
|
Spring Break |
Mar 27 |
14 |
Main Memory - I |
|
Mar 29 |
15 |
Main Memory Ð II |
Project-1 due |
Apr 3 |
16 |
Project-2
Discussion |
Project-2 out |
Apr 5 |
17 |
Virtual Memory Ð
I |
|
Ape 10 |
18 |
Virtual Memory Ð
II |
|
Apr 12 |
19 |
File Systems Ð I |
|
Apr 17 |
20 |
File Systems Ð
II |
|
Apr 19 |
21 |
Mass Storage
& I/O Ð I |
|
Apr 24 |
22 |
Mass Storage
& I/O Ð II |
|
Apr 26 |
23 |
Distributed Systems
Ð I |
|
May 1 |
24 |
Distributed
Systems Ð II |
|
May 3 |
25 |
Protection &
Security |
|
May 8 |
26 |
Midterm-II
Review |
|
May 10 |
MIDTERM-II
EXAM (Room: NSC 201) |
|
|
May 13 |
|
|
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.