Teaching Assistants:
| Name | Discussion | Office Hours | Extra Office HoursApril 8 - April 20 | |
| Olga Kornievskaia | aglo@engin.umich.edu | Mon 12:30-1:30pm EECS 1311Wed 12:30-1:30pm EECS 1311 | Mon 1:30-3:30pm | |
| Damien Neff | dneff@engin.umich.edu | Mon 3:30-5:00pmWed 2:30-3:30pm | Mon 5:00-6:30pmWed 3:30-5:00pm | |
| Vladimir Rodriguez | vrodrigu@umich.edu | Mon 11:30-12:30pm EECS 1001Wed 11:30-12:30pm EECS 1001 | Thur 12-2pm | |
| Perv Rastogi | prastogi@engin.umich.edu | Fri 12:30-3:00pm | Fri 3:00-5:00pmSat 1:30-3:30pm |
Final Exam Reading List
Homework Assignment #3 and FAQ Sheet for PA3
EECS 482 is an introductory course in operating systems at senior undergraduate level or first-year graduate level. The objective of the course is to familiarize you with the issues involved in the design and implementation of modern operating systems. The course does not concentrate on any particular operating system or hardware platform. The concepts discussed are applicable to a variety of systems. However, we will discuss many examples that are drawn from historically significant and modern operating systems including MULTICS, UNIX, Mach, Windows NT, and Linux.
The topics covered include processes and threads, interprocess communication, concurrency and synchronization, CPU scheduling, communication in distributed systems including remote procedure calls, virtual memory management, secondary-storage management, file systems, and protection and security.
Students are expected to have had extensive programming experience prior to this course. Knowledge of the C/C++ programming language and familiarity with UNIX is required. In addition to reading the material covered in the lectures, the students are expected to gain hands-on experience by designing and developing code for several programming assignments through out the semester.
Introduction to Computer Organization (EECS 370).
Data Structures and Algorithms (EECS 380).
Familiarity with UNIX and extensive C programming experience.
Other suggested references:
Grade Assignment:
Grades will be based on two exams, three programming assignments, and several homeworks according to the following tentative weights:
From my experience in teaching software courses in the past, most people do very well on programming projects. So, exams and homeworks matter significantly in determining the grade for most students. On the other hand, doing poorly on the programming projects is a sure way to fail the course
Grading Policy:
A substantial component of the course involves three programming assignments on the implementation of operating systems. All the programming will be in the C or C++ programming language. You should be prepared to spend substantial amount of time on the readings and on programming projects. We expect code submitted for assignments to be readable and well documented, with ample and clear test cases demonstrating the behavior of your programs. Submission guidelines shall be described in the individual assignment handouts.
Recruiters and former students have often told us that being able to successfully work in groups is one of the most desirable skills for them. So, you are required to work in groups of two, on at least one of the programming assignments. We strongly recommend all the group members attend the same discussion section. Most of your project grading will be done by your TA, although exceptions may be made in order to balance load among TAs or to get your assignments graded on time. TAs have been instructed to grade in part on design and coding style, and be increasingly strict on this as the semester proceeds. Thus, it is not sufficient to just get a working project. It is also important that the code and design facilitate future enhancements.
We strongly recommend not leaving programming assignments to the last minute, as availability of workstations (and TAs) may become limited at crunch times. Questions take longer to get answered around deadlines, so it is best to encounter them early. Most of all, programming always takes longer than you think it will. Especially in this class!
You may use any Sun workstation that runs Solaris and gcc. If you are are an engineering student, we recommend that you use the CAEN workstations, either directly or by logging into one from another computer. If you are not an engineering student, you can pay a fee to get access to CAEN resources, or you may use the CAEN/ITD workstations (e.g., in the Media Union) or telnet to an ITD Sun Workstation (login.its.umich.edu).
We expect adherence to the Engineering Honor Code in all assignments and exams. All students are expected to adhere to the highest ethical and professional standards in all work performed for this class. All homework assignments are to be completed on your own. You are allowed to consult with others during the conceptualization of a problem, but anything you turn in for grading must be entirely your own original work. Violation of this policy is grounds for us to initiate an action that would be filed with the Dean's office and would come before the Honor Council. If you have any questions about this policy, PLEASE do not hesitate to contact the instructors.
The University of Michigan EECS Department. Last update: Jan. 5, 1999.