CSE 421/521
Introduction to Operating Systems
Summer 2016
Instructor:
Prof. Tevfik Kosar
338J Davis Hall, 645-2323
tkosar@buffalo.edu
Office hours: Wed 11:00am - 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. (Prerequisites of this course: CSE 250, or an equivalent course
, or permission of the instructor.)
Course
Logistics:
Lecture time & location : Tue & Thu, 8:00am –
11:15am (Fronczak 422)
Recitation sessions : Tue
& Thu, 11:15am – 12:15pm (Fronczak 422)
Exam schedule :
Midterm 1: June 16th @ 8:00am–10:00am (Fronczak 422)
Midterm 2: June 30th @
8:00am–10:00am (Fronczak 422)
Text
Book (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
Project-1:
20%
v
Project-2:
20%
v
Midterm-1:
25%
v
Midterm-2:
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.
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. The homework assignments will
not be graded.
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.
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: piazza.com/buffalo/summer2016/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 / Processes |
|
June
2 |
2 |
Threads / CPU Scheduling |
Project-I out |
June
7 |
3 |
Process Synchronization |
|
June
9 |
4 |
Deadlocks |
|
June
14 |
5 |
Main Memory |
|
June
16 |
6 |
MIDTERM - I EXAM (Frnczk 422) |
@8:00am–10:00am |
June
21 |
7 |
Virtual Memory |
Project-II out |
June
22 |
8 |
File Systems |
Davis
113A |
June
23 |
9 |
Mass Storage & I/O |
|
June
28 |
10 |
Distributed Systems |
|
June
29 |
11 |
Protection & Security |
Davis
113A |
June
30 |
12 |
MIDTERM - II EXAM (Frnczk 422) |
@8:00am–10:00am |
July
5 |
|
Rescheduled
to June 22nd |
|
July
7 |
|
Rescheduled
to June 29th |
|