Lecture: Tuesday and Thursday at 11:00am - 12:15pm
Discussion: Thursday at 2:25pm - 3:25pm
Where: 1325 Computer Sciences (Timetable Entry)
Instructor: Anoop Gupta
Office: 1308 Computer Sciences
Office Hours: Tue 2-3pm, Fri 10-11am, and by appointment (e-mail)
Office Phone: 262-6602
e-mail address: ganoop@cs
TA: Alan Bailey
Office: 1331 Computer Sciences
Office Hours: Mon, Wed 12:00-2:00pm, and by appointment (e-mail)
e-mail address: awbailey@cs
TA: Minyi Xu (Mike)
Office: 1343 Computer Sciences
Office Hours: Mon, Thu 3:30-5:30pm
e-mail address: minyi@cs
|11:00 - 12:15||Tuesday and Thursday||1325 Computer Sciences|
|2:25 - 3:25||Thursday||1325 Computer Sciences|
of this course is being taught by Prof. Marvin Solomon this semester.
It will be very similar to this lecture. In particular, the two
lectures will use the same projects.
Important announcements will be sent to the class mailing list or will be posted to the News section above, so please read your mail frequently and watch for the news on this page (particularly around project time)! You are responsible for the material sent to that list and for announcements in the class. The mail sent to the class list is also archived. Note that if you are not officially enrolled in the class, we cannot add you to this mailing list because it is automatically generated by the CSL. Talk to them if you are having trouble.
There are three mailing lists associated with this class, email@example.com for lecture 2 (this lecture), firstname.lastname@example.org for the other lecture, and email@example.com, which goes to both sections. These lists are also archived -- see cs537-1list, cs537-2list, and cs537-list. Each message sent to these lists goes to all students (over 60 students per lecture), so before you post, please consider whether your message is likely to be of interest to the whole class. Help avoid spam! Questions about projects, etc. are better sent to the instructor or ta, who will relay them to the whole list if appropriate.
The Fifth Edition may be used interchangably for the purposes of this course.
Another recently used text book that covers the same material is Modern Operating Systems, Second Edition by Andrew S. Tanenbaum, Prentice Hall, 2001.
The Java Programming Language, Third Edition by Ken Arnold, James Gosling, and David Holmes, Addison-Wesley, 2000.
There are literally thousands of books on the Java programming language and I have only looked at only a few of them, so there may very well be a better book, but this one is quite good.
The following references are available online at the Java home site.
There will be five programming projects, all in the Java programming language. Unix workstations are provided for your use, but you may use any computer to which you have access that implements the Java programming language (version 1.4.2). However, if you do not use the Computer Sciences Department's computers, you will be responsible for transferring any required data sets or software packages to your computer and for tranferring programs and results back to the CS department machines to hand them in.
The first assignment will be an easy "get acquainted" exercise designed to help you become familiar with the computing environment and the Java language, particularly the Thread feature of Java. Subsequent projects will involve process synchronization, processor scheduling, memory management, and file-system implementation. Each student should do the first assignment individually. For the remaining projects, students will be required to work in groups of two students because it is important to know how to work well in a group. Both members of a pair will receive the same grade on a project. Feel free to discuss projects with anyone, but you must not share code with anyone but your partner. That means you may not use in any way code written by other students in this class, code from previous semesters, or code from similar courses elsewhere. In summary, the only Java code you may use is code you write, code we give you, and Java classes from the standard Java libraries. Cheating will be vigorously punished. See the student handbook for more details. Enough said!
Assignments are due at 1:00 a.m. on the dates indicated.
Sometimes the projects in this course are in C or C++, sometimes they are in Java, and sometimes they are in a mixture of languages. This time we will be using only Java in both Lecture 1 and Lecture 2. There are several arguments in favor of Java, but two in particular are most relevant to this course:
This course will assume that all students are Java programmers at the level of someone who has completed CS 367 with an A or AB. If you are familiar with C++ but not Java, check out the excellent introduction to Java and/or Prof. Solomon's tutorial Java for C++ Programmers. See The Java Tutorial and/or the Java book for lots more information about Java.
There will be a midterm and a final exam, each of which will count
of your grade.
The midterm will be 7:15-9:15 PM Wednesday, March 10, room 1221 Computer Sciences.
The final exam will be 12:25 - 2:25 PM Monday, May 10, room 1221 Computer Sciences.
The first programming project (getting started) will count for 2% of your grade. The remaining four projects will account for the remaining 60% of your grade. They may not all be equally difficult (generally they will get progressively harder throughout the term), but they will all count equally.
The following schedule is tentative; it may be updated later in the semester, so check back here frequently.
|2-6||Jan 22 - Feb 19||Processes, Synchronization, Processor Scheduling|
|6-11||Feb 24 - Apr 6||Memory Management and Virtual Memory|
|11-14||Apr 8 - Apr 22||File Systems and Disks|
|14-15||Apr 27 - May 4||Protection and Security|
|3||Wednesday, Feb 4 at 1:00 am||Project 1 -- Shell|
|6||Wednesday, Feb 25 at 1:00 am||Project 2 -- Synchronization|
|9||Thursday, Mar 25 at 1:00 am||Project 3 -- Performance|
|12||Friday, Apr 16 at 1:00 am||Project 4 -- File Systems, Part I|
|15||Friday, May 7 at 1:00 am||Project 5 -- File Systems, Part II|
|8||Wednesday, Mar 10||Midterm Exam, 7:15 - 9:15 pm, room 1221 Computer Sciences|
|16||Monday, May 10||Final Exam, 12:25 - 2:25 pm, room 1221 Computer Sciences|
|Tuesday Lecture||Thursday Lecture||Thursday Discussion|
|20-Jan Introduction||22-Jan Processes||Project 1|
|27-Jan Synchronization||29-Jan Synchronization & Semapores||Java Thread States|
|03-Feb Semaphores (cont...)
||05-Feb Examples & Monitors
||12-Feb Deadlocks & Process Scheduling||Project
|17-Feb Scheduling Algorithms||19-Feb Review 1||Java Synchronization (Alan)
|24-Feb Memory Management||26-Feb Memory Management (cont...)||- office hours -
|02-Mar Memory Management & Paging||04-Mar Review 2||- office hours -
|23-Mar Paging||25-Mar Paging||- office hours -
|30-Mar Paging(for multi-processes)||01-Apr Segmentation||Review: Paging
|06-Apr Disk Structure||08-Apr FileSystem||Project 4 (Alan)|
|13-Apr FileSystem - Implementation||15-Apr FileSystem - Implementation (cont)||Project 4 (Alan)|
||22-Apr RAID|| Project
|27-Apr Protection and
||Project 5 (Alan)|
|04-May Final Review||06-May - office hours -||Project 5 (Alan)|