CS 552 - Operating Systems

Department of Computer Science
College of Arts and Sciences

Fall 1999

Prof. Ibrahim Matta

office:   (617) 358-1062
fax:       (617) 353-6457
e-mail: matta@cs.bu.edu


This page http://www.cs.bu.edu/fac/matta/Teaching/CS552/F99/ will be continually updated. Please check this page regularly (at least twice a week).
Announcements:

All grades as of 12/14/99, 3:00 pm.

12/12:
See an outline of what you need to make sure you learned as you prepare for the final exam.
See syllabus for textbook readings, in addition to your lecture notes.
Solutions to  questions on files and networks homework are now available (in PostScript).

If you have questions before the final, my office hours are Wednesday 12/15 and Thursday 12/16 from 1:00 pm to 3:00 pm.

Final Exam Fri 12/17/99 12:30 pm - 2:30 pm, STH B19. The final exam is closed books and closed notes, and covers all material. Absolutely NO make-up exams or incompletes will be given.
 
 

11/30: Last programming assignment is out. Due Thursday December 9. To be done in teams of 2.

Grades as of 11/8. Please email me if you have any questions.

Final Exam Fri 12/17/99 12:30 pm - 2:30 pm, STH B19.

11/19: Written assignment on Files and Networks. Due Tuesday, November 30. To be done individually.

11/7: Copy a new version of Sim.java of PA3.

10/28: Programming assignment 3 is out. Due Tuesday, November 16. To be done in teams of 2. Start now!

Midterm Exam on Tuesday, October 26. Covers all material up to October 21 class (including file systems of Chapter 11 in textbook, except directories). Closed books and notes.

10/21:
See an outline of what you need to make sure you learned as you prepare for the midterm exam.
See syllabus for textbook readings, in addition to your lecture notes.
Solutions to  questions on processes and  the memory homework are now available (in PostScript).

If you have questions before the midterm, my office hours are Friday 10/22 from 1:00 pm to 3:00 pm and on Monday 10/25 from 11:00 am to 1:00 pm.
 

10/11: Written assignment on memory is due October 19.
       This assignment is to be done individually, not in teams.

10/4: TF and graders information added below.
         Check out practice questions on processes.

9/28: See page of Project 2 for Person.java and Project2.java stubs, and also sample runs.

9/22: Make sure you regularly check the syllabus page for up-to-date reading list.

9/21: Second Java programming assignment is out. Click here. Due October 12. Start now!
          This assignment is to be done in teams of 2.

9/7: First Java programming assignment is here. Due date was September 21.


Time & Place

Tuesdays and Thursdays   9:30 - 11:00 am. Room B19 in STH (School of Theology), 745 Commonwealth Avenue.
 

Course Description

Introduces basic structure, components, design, implementation, and internal operation of the kernel of computer operating systems. Discusses process management (processes, threads, scheduling, communication, synchronization, deadlock handling), memory and storage management (main memory, virtual memory, disks, file systems). Also covers file systems and process control and communication mechanisms in a distributed environment as well as protection and security.

This course assumes you are familiar with the fundamental concepts in operating systems and basic modeling and performance techniques as covered in CAS CS 350. This course will review these concepts and techniques and build on them focusing on applied knowledge. Uses implementation examples from Java and many real operating systems (UNIX/Solaris, Linux, Windows NT). Includes programming projects in Java.

See tentative syllabus for more details.

Prerequisites

The course requires good computer programming skills. You should be able to educate yourself by reading original documentation such as UNIX man pages, Java API, etc.

Office Hours

Fridays 1:00 pm -4:00 pm, or by appointment. MCS 271.

TF & Graders

Teaching Fellow: Nicholas Eskelinen <nickesk@cs.bu.edu>.
Office hours: Mondays 5-6 pm and Thursdays 1-2 pm, or by appointment. TF terminal in new UNIX undergraduate lab, 730 Commonwealth Ave, 3rd floor.

Graders:  Kitling (Gloria) Chin <gkchin@cs.bu.edu> and Tae-Jin (Joseph) Kim <taejin@cs.bu.edu>
 

Required Textbook

The course will include programming projects in Java. If you do not know Java, you must be proficient in C or C++. Read the Java Primer in Appendix A - it will help you get started. For those who are not familiar with object-oriented concepts, you should read this note on Object-Oriented Programming Concepts  first.

Additional readings from other sources (including papers) may also be assigned.

Book on-line supplements are available.
 

Recommended Book

This Java book is strongly recommended. Links to on-line material on Java will also be provided on this course home page. This book and other additional textbooks should be available on reserve in the library.
 

Additional Textbooks

Java Online Resources

Java for C++ Programmers, tutorial by Marvin Solomon

From the Java home page:

Local copies of Java API, may be faster to access (courtesy Christopher Beers):

Online Resources

Course Home Page: all course material will be accessible through this course home page (http://www.cs.bu.edu/fac/matta/Teaching/CS552/F99/). You should regularly look at this page for up-to-date information regarding reading assignments, homeworks, etc.

Course Mailing List: there will also be a course mailing list, cs552@cs.bu.edu. To join the list, on csa, type: csmail -a cs552. I will use it for updates and additional information regarding the assignments. So please make sure to join this list.

Assignments: more information on project and homework assignments will be available on-line.

Reading Material: additional required or recommended papers and notes will be available on-line.

Grading Policy

There will be one midterm exam and one final exam. Both exams will be closed books and notes, and will include all material covered from the beginning of the semester until the day of the exam. There will be absolutely no make-up exams, except for medical emergencies. In that case, blue slips from Health Services will not be accepted; you must justify your medical problem with a letter from a doctor, specifying the period of time during which you were unable to attend one of the exams.

There will also be about 4-5 Java programming assignments as well as other written homework assignments. Your final grade will be determined approximately as follows:

Each assignment will have a due date. There will be 10% penalty per day for late submissions. But, no late assignments will be accepted after one week from due date, and the last day to submit any late assignments is December 7, 1999. Extensions may be granted only for religious holidays and certified medical reasons.

No incompletes will be given, except for reasons of dire illness shortly before the end of the course, and only if a significant amount of work has been completed (e.g. attending lectures, handing in most assignments, and attending the midterm).

Academic Honesty

The first Java programming assignment is designed to familiarize yourself with Java. This and all written homework assignments are to be done individually by each student. Other Java programming assignments are to be done in teams of two. Discussion of issues in operating systems is encouraged, but representing the work of another team (for Java assignments) or another student (for other assignments) as your own is expressly forbidden. This includes "borrowing" or "stealing" programs/solutions or parts of them from others. Cheating will not be tolerated under any circumstances. Handing in your own work a day or two late will affect your grade far less than turning in a copy of someone else's work on time!

See the CAS Academic Conduct Code, in particular regarding plagiarism and cheating on exams. A student violating this code will receive a grade of "F" for the course and may be reported to the Academic Conduct Committee. 


Acknowledgments: Contents are in part based on material by Marvin Solomon, Tom Anderson, Avi Silberschatz et al., Jim Kurose and Keith Ross.

Last Updated 12/12/99