CSE
421/521
Introduction
to Operating Systems
Summer 2017
Instructor:
Prof. Tevfik
Kosar
338J Davis
Hall, 645-2323
tkosar@buffalo.edu
Office hours:
Thu 11:0am-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.
Course Logistics:
Lecture time & location : MWF 10:00am – 12:10pm (Capen 262)
Recitation sessions : Wed 12:10pm – 2:10pm (Capen 258)
Exam schedule : Midterm 1: June 16th @ 10:00am–12:00pm (Capen 262)
Midterm 2: July 7th @ 10:00am–12:pm (Capen 262)
Text Book (Required):
o 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:
o Pop Quizzes: 5%
o Homework: 5%
o Project-1: 20%
o Project-2: 20%
o Midterm-1: 25%
o 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.
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.
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: http://www.piazza.com/buffalo/summer2017/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 |
May 31 |
1 |
Introduction /
OS Structures |
|
June 2 |
2 |
Processes /
Threads |
Project-I out |
June 5 |
3 |
CPU Scheduling |
|
June 7 |
4 |
Process
Synchronization - I |
|
June 9 |
5 |
Process
Synchronization - II |
|
June 12 |
6 |
Deadlocks |
|
June 14 |
7 |
Midterm-I Review |
|
June 16 |
|
MIDTERM
- I EXAM (Capen 262) |
@10:00am-12:00pm
|
June 19 |
8 |
Midterm-I
Discussion |
|
June 21 |
9 |
Main Memory |
|
June 23 |
10 |
Virtual Memory |
Project-II out |
June 26 |
11 |
File Systems |
Project-I due |
June 28 |
12 |
Mass Storage
& I/O |
|
June 30 |
13 |
Distributed
Systems |
|
July 3 |
14 |
Protection &
Security |
|
July 5 |
15 |
Midterm-II
Review |
|
July 7 |
|
MIDTERM
- II EXAM (Capen 262) |
@10:00am-12:00pm
|
July 10 |
|
|
Project-II due |