I will communicate urgent messages here (like I fell of the bike and the class has to be cancelled).
|Lecture:|| Monday 6:00P - 8:20P CIWW Rm 101||
Junyang Xin email@example.com
Franke: Mon 5:30 - 6:00 CIWW Rm 328 or Room 320 AND after class|
Xin: Thu 5:30 - 6:30 CIWW Floor 13
Author: Andrew Tannenbaum|
Title: Modern Operating Systems
Publisher: Prentice Hall
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 and Windows.
Programming assignments will be based on C or C++.
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.
Author: Andrew Tannenbaum
Title: Modern Operating Systems
Publisher: Prentice Hall
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 and it is enforced. That is the best you can
do with one week late is an 86/100. Start your lab early and finish on time !!!
- Computer programs you must write.
- Due the beginning of Next lecture.
- Not accepted late.
- Mostly from the book.
- Collected, graded and returned in next class.
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.
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
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.
Grades are based on the labs, the midterm nad final exam, and the class participation, each being important.
The weighting will be approximately:
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/12, there is no midterm exam.
Class Materials, Handouts, Lectures and Assignments
||Introduction: Computer System Architectures (what does the OS manage)
||lab1 (Due 6/17)
||Processes and Threads
||Scheduling / Concurrency
||lab2 (Due 7/1)
Homework-1 (Due 6/24)
||Memory Management part-1
||Memory Management part-2
||lab3 (Due 7/22)
Homework-2 (Due 7/15)
||FileSystems - 1
||FileSystems - 2
||lab4 (Due 8/5)
Homework-3 (Due 7/29)