Operating Systems
CSCI-GA.2250-001, Summer 2014



Note: I will post important short-term notices here




General Information

Lecture:
Mon 6:00P- 8:20P Weaver CIWW 101
Instructor: Hubertus Franke, frankeh@cs.nyu.edu
TAs/Graders: Ajay Khanna, Hubertus Franke, ak4533@nyu.edu TBD
Office Hours:
Franke: Mon 5:30 - 6:00 CIWW Rm 328 or 320 (look in both) and after class
Khanna: Thu 8:00 - 9:00 CIWW 13th Floor
Prerequisites: Common CS knowledge and some programming skills.
Text book: Author: Andrew Tannenbaum
Title: Modern Operating Systems
Edition: 3rd or 4th (brand new)
Publisher: Prentice Hall
ISBN-13: 978-0-13-6006663-2
ISBN-10: 0-13-600663-9

Course Description

This course is an introductory course in operating systems (OS), focusing on the core concepts of operating systems. The emphasis will be on understanding general concepts that are applicable to a wide range of operating systems, rather than a discussion of the features of any one specific system. Topics that will be covered include:

Examples will be from Unix/Linux. Programming assignments will be based on C or C++ as Operatings Systems are implemented that way.

This course does not assume that you have taken an Operating Systems course as an undergraduate, or that you have had extensive experience working with one. In fact, if you have taken such a course or have a fair amount of practical experience with OS internals, this course is probably too elementary for you. Please take a look at the course schedule to get a sense of the topics that will be covered: if you can explain most of the terms contained there, you are likely looking for a more advanced course. We will NOT be "hacking" on an operating system but will have lab assignments that deal with the fundamental elements such as different process schedulers and memory management algorithms.

Textbook

Author: Andrew Tannenbaum
Title: Modern Operating Systems
Edition: 3rd
Publisher: Prentice Hall
ISBN-13: 978-0-13-6006663-2
ISBN-10: 0-13-600663-9

Grades

Grades are based on the labs, the final exam, each being important. The weighting will be:
Homeworks0% (optional)
Lab Assignments55%
Final45%
This is a graduate level class, so I am looking for lively interactions during the class and not just presence.
The final will be given on 8/11/2014.


Class Materials, Handouts, Lectures and Assignments

LecturesDateTopicHandouts ReadingsAssignments
1
6/2
Introduction: Computer System Architectures (what does the OS manage)
Lecture-1 Chapter 1
lab1 (Due 6/16)
2
6/9
Structures of OSes + Processes and Threads
Lecture-2 Chapter 1
Chapter 2.1-2.2

3
6/16
Processes and Threads / Scheduling
Lecture-3 Chapter 2.4
lab2 (Due 7/7)
4
6/23
Synchronization
Lecture-4 Chapter 2.3 , 6

5
6/30
Memory Management 1
Lecture-5
Lecture-6
Chapter 3.1-3.3

6
7/7
Memory Management 2
Lecture-7
Chapter 3.4++
lab3 (Due 7/28)
7
7/14
I/O-1
Lecture-8
Chapter 5

8
7/21
I/O-2
Lecture-9
Chapter 5
lab4 (Due 8/7)
Handed out early
9
7/28
FileSystems
Lecture-10
Lecture-11
Chapter 4

10
8/4
Networking
Advanced Topics
Lecture-12
Lecture-13


11
8/11
Final





Computer Accounts and Mailman Mailing List

Several labs (programming assignments) across the semester will provide practical implementations of operating system concepts such as processor scheduling and memory management. These assignments are accepted in C or C++.

homeworks and Labs

I make a distinction between homeworks and labs. Both are required and form part of your grade.

Labs (aka programming assignments) are

Homeworks are optional, they are there to help get through the material

Doing Labs on non-NYU Systems

You may solve lab assignments on any system you wish, but ...

Obtaining Help with the Labs

Good methods for obtaining help include

  1. Asking me during office hours (see web page for my hours).
  2. Asking the mailing list.
  3. Asking another student, but ...
    Your lab must be your own.
    That is, each student must submit a unique lab. Naturally, simply changing comments, variable names, etc. does not produce a unique lab.


See also

Graduate cs.nyu.edu courses: http://cs.nyu.edu/webapps/summer2014/courses
Graduate cs.nyu.edu schedule: http://cs.nyu.edu/webapps/summer2014/Graduate/courses
Academic integrity policy: http://cs.nyu.edu/web/Academic/Graduate/academic_integrity.html

http://cs.nyu.edu/courses/summer14/CSCI-GA.2250-001/index.html