An Operating System provides a convenient higher level abstraction of the underlying hardware to the user programs and multiplexes the hardware resources between these programs. This course introduces the four main components of an operating system in managing the processor, memory, secondary/tertiary storage and other I/O devices.
The required text for this course is ``Operating System Concepts'' (7th edition) by Silberschatz/Galvin/Gagne. Projects and exams will include all material covered in the lectures and active class participation is essential. The prerequisite for this course is an Algorithms and Data Structures course such as CSE 465. In addition, you should have a reasonable knowledge of computer hardware and assembly programming.
The 3 programming projects in this course are intended to give you a practical hands-on experience in implementing the concepts covered in the lectures. A detailed description of each project will be handed out separately, though the latest/updated version will be available on the web page. The project reports should be turned in during class on the due date with the source codes turned in (online) by 2:00 PM on the due date, and there will be a 20% deduction for delays upto 24 hours and 40% deduction for delays upto 48 hours. Projects turned in after 48 hours of the posted deadline will not be graded. All projects should be implemented on Sun Solaris workstations (available for you in 218 and 222 IST), will require a working knowledge of C/C++, and should be demo-ed to the TA with suitable examples. You will work in teams (with atmost 3 students per team) for each project. You are free to choose your partners for each of the projects (could be different for each project). Please let the TA know who you have paired up with for each project, and the TA will also keep track of students without partners so that they can pair you up if needed - it will be better for you to try to find a partner first, since otherwise you do not know who you will end up with! If any of you choose to drop out of your team for any reason at any time, each of you will be individually responsible for implementing and demonstrating the entire project and writing the project report by the designated deadline. In any case, all of you will need to understand and be able to explain the entire design and implementation even though you may have worked on only one part of the project.
There will be three exams and please note the dates right away. Exams 1 and 2 will be given during regular class periods. If for any reason you cannot take exams 1 and 2 on the posted date, you need to let the instructor know (together with the reason) by January 18. No requests for conflicts will be entertained subsequently. Sample homework exercises/questions (that need not be turned in) will be handed out to give a flavor of the questions to expect in the exams, and solutions will be discussed.
Academic dishonesty of any kind will not be tolerated in the projects/exams. There is no specific attendance policy, but it is assumed that the student attends regularly since answering the exam and projection implementations would require you to do so. Always check your email and the web site for up-to-date information.
Project 1 20% due Feb 23 (by 2:00PM)
Exam 1 17% Feb 28 (during class)
Project 2 14% due Mar 28 (by 2:00PM)
Exam 2 17% Mar 30 (during class)
Project 3 16% due Apr 25 (by 2:00PM)
Exam 3 17% (Finals week)