|Lecture:||Mon 6:00P - 8:20P Weaver CIWW 102|
|Instructor:||Hubertus Franke, firstname.lastname@example.org, Background of the Instructor|
[0-9] Hubertus Franke: Mon 8:20 PM -
[A-Z] Chris Moirano: Tue and Thu 6:00 PM - 7:00 PM , WWH 905
You can go to any consulting hour, but grading related stuff you need to talk to your assigned grader. Also, please ask questions on the NYU classes forum to get quick answers. Anybody (Prof, Grader, students) should help answer questions (other than providing code) to make the class a success for everybody.
Common CS knowledge and programming skills.|
Four labs consisting of approximately 500-600 lines of code each (give and take). Expect at least 20hrs per lab, typically spread over 3 weeks. This class is designated as a class to emphasize programming in C/C++ and as most operating systems are written in C this is a perfect opportunity to pick this skill up. As a result all labs will have to be coded in C/C++. Learning how to become proficient in C/C++ is one side goal of this class. Expect to learn C/C++ through self study over the first 3 weeks. If necessary, an extra session will be provided to get you up to speed, which will take place after class ( > 9PM ) [ just let me know a few days in advance ].
Author: Andrew Tannenbaum|
Title: Modern Operating Systems
Edition: 4th (you will be ok with 3rd as well)
Publisher: Prentice Hall
ISBN-13: 978-0-12-3591720 or 978-0-13-6006663-2
ISBN-10: 0-13-359172X or 0-13-600663-9
Examples will be from Unix/Linux. Programming assignments will be based on C or C++ as Operatings Systems are implemented that way. You will initially not be required to have C or C++ knowledge, but all labs will have to be written in C/C++, so working knowledge in a functional language like Java would be good. Each of the four labs is approximately 600 lines of code.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 and I/O schedulers. It will allow you to get and experiment with the concept rather than spending endless hours debugging tedious operating system code.
Grades are based on the labs and final exam, each being important.
The weighting will be:
||Intro / OS Structures / Processes / Threads
Processes and Threads
||Processes / Threads and Scheduling
||Input / Output
Input / Output
||Rub your good luck charm
and study of course
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++.
You may solve lab assignments on any system you wish, but ...
Good methods for obtaining help include
|Graduate cs.nyu.edu courses:||http://cs.nyu.edu/webapps/summer2018/courses|
|Graduate cs.nyu.edu schedule:||http://cs.nyu.edu/webapps/summer2018/Graduate/courses|
|Academic integrity policy:||http://cs.nyu.edu/web/Academic/Graduate/academic_integrity.html|