Note: I will post important short-term notices here
|Lecture:||Mon 7:10P- 9:00P Weaver CIWW 1302||
Franke: Mon 6:15 - 7:00 CIWW Rm 328 or 320 (look in both) and after class as needed|
Khanna: Thu 2:00 - 3:00 CIWW 13th Floor
Common CS knowledge and some programming skills.
Author: Andrew Tannenbaum|
Title: Modern Operating Systems
Edition: 4th (you will also survive 3rd)
Publisher: Prentice Hall
ISBN-13: 978-0-12-3591620 or 978-0-13-6006663-2
ISBN-10: 0-13-359162X or 0-13-600663-9
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:
- OS histories, i.e. types of operating systems and what which one stuck,
- protected kernels,
- processes and threads,
- concurrency and synchronization, deadlocks and preventions,
- memory management, virtual memory and computer architecture facilitating it (pagetables, segmentation),
- file systems,
- secondary storage.
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.
Grades are based on the labs, the midterm and final exam, each being important.
The weighting will be:
This is a graduate level class, so I am looking for
lively interactions during the class and not just presence.
The midterm will be given on TBD.
The final will be given on TDB.
Class Materials, Handouts, Lectures and Assignments
||Introduction: Computer System Architectures (what does the OS manage)
||lab1 (Due 9/22)
||Intro + Processes and Threads
||Processes and Threads
||Processes and Threads and Scheduling
||lab2 (Due 10/20)
||Chapter 2.3-2.5, 6
||NO CLASS -> Columbus Day
||Memory Management 1
||MIDTERM (60Mins) + Memory Management 2
||Memory Management 3
||Advanced Topics/ Review
Computer Accounts and Mailman Mailing List
- You are entitled to a computer account on one of the NYU
If you do not have one already, please get it asap.
- Sign up for the Mailman mailing list for the course once it is setup.
You can do so by clicking mailing_list
- If you want to send mail just to me, use my-last-name AT nyu DOT edu not
the mailing list.
- Questions on the labs should go to the mailing list.
You may answer questions posed on the list as well.
Note that replies are sent to the list.
- I will respond to all questions; if another student has answered the
question before I get to it, I will confirm if the answer given is
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
- Due several lectures later (date given on assignment).
- Graded and form part of your final grade.
- Penalized for lateness.
The penalty is 2 points per day. Start your lab early and finish on time !!!
- Computer programs YOU must write.
Homeworks are optional, they are there to help get through the material
- Mostly from the book.
- Please send softcopy to your TA marked as OS-Fall14 Homework
- Graded and returned via softmail
Doing Labs on non-NYU Systems
You may solve lab assignments on any system you wish, but ...
- You are responsible for any non-nyu machine.
I extend deadlines if the nyu machines are down, not if yours are.
- Be sure to test your assignments on the nyu
In an ideal world, a program written in a high level language like
Java, C, or C++ that works on your system would also work on the
NYU system used by the grader.
Sadly, this ideal is not always achieved despite marketing claims
that it is achieved.
So, although you may develop your lab on any system, you
must ensure that it runs on the nyu system assigned to
- If somehow your assignment is misplaced by me and/or a grader,
we need a to have some timestamp ON AN NYU SYSTEM
that can be used to verify the date the lab was completed.
So once the lab is completed and safely located on an NYU
system, do not touch it since that will change
the time stamps on the file. Best is
- When you complete a lab and have it on an nyu system, email the
lab to the grader and copy yourself on that message.
Please use one of the following two methods of mailing the lab.
Keep the copy until you have received your grade on the
I realize that I am being paranoid about this.
It is rare for labs to get misplaced, but they sometimes do and I
really don't want to be in the middle of an
- Send the mail from your CIMS account.
(Not all students have a CIMS account.)
- Use the
request receipt feature from home.nyu.edu
or mail.nyu.edu and select the
when delivered option.
I sent it ... I never received it debate.
Obtaining Help with the Labs
Good methods for obtaining help include
- Asking me during office hours (see web page for my hours).
- Asking the mailing list.
- 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.