CSCI P436 Introduction to Operating Systems

Fall 2007


Credit Hours:  4

Lecture:  M,W 2:30-3:45

Location: Ballantine Hall 242 (BH242)

Lab:  Friday 11:15-12:05, Student Building 221


Instructor:   Beth Plale

Associate Professor 

LH301D, 812-855-4373 

plal e @ cs.indiana.edu (spaces omitted)

Office Hours: TBA  


Associate Instructor (AI):  Jeff Cox

LH330A  

jefcox @ indiana.edu (spaces omitted)

Office Hours: M,W 4:00pm - 5:00pm  

 

Brief Course Description:  Welcome to the preliminary course web page for Fall 2007 CSCI P436.  The field of Operating Systems is changing quickly, so while it is important for this course for students to gain a working knowledge of the  fundamental concepts of Operating Systems, students will also gain an understanding of the important and exciting direction in this field, such as multicore architectures and hypervisors.   


The course will consist of lectures and outside speakers.  Outside speakers are valuable in providing a glimpse the issues and skills that are important in industry.  Students will write several programs in this course that will exercise aspects of operating systems theory and practice.     Students will have pencil-and-paper homework, and will have a midterm and final test. 


Students are strongly advised to gain outside experience with C or C++.  New Fall 2007, the Computer Science Department is offering 8 week short courses to teach programming language skills.  Specifically, the department is offering a course in C the first 8 weeks of Fall 2007.  CSCI-A-290, class number 29143, is a course on the C programming language that runs 8/27 through 10/10/07 (8 weeks).  It meets 5:00-5:50 p.m. MW in LH115.  It is highly recommended that you take this course this Fall.    C++ will be taught the second 8 weeks of the Fall 2007 semester.   Please feel free to contact Prof Plale with questions. 


Textbooks: Silberschatz, Galvin, Gagne: Operating System Concepts, 7th Edition


Topics (not in order):


I. Operating system organization.

II. Data Locality.  Manifested in such components as memory management.

III. Resource Sharing.  How does the machine fairly allocate resources?  Do operating systems need to stop scheduling processors and instead allocate them?  <comment made by Burton Smith of Microsoft>  

IV. File Systems.  Including Unix file system, virtual file systems, immutable file systems.

V. Protection of resources and users.

VI.  Performance analysis.  Experimental and simple theoretical analysis.

VII.  Concurrency.  When a machine has multiple processors, activities can go on simultaneously.  When a shared resource is involved, arbitrating access to the resource become very important.

VIII.  Case studies.  Outside speakers will be brought in for students to hear what issues and skills are important in industry. 

IX. Hypervisor and other future-looking topics



Class Schedule


Date

Topic

Presenter

24-Sep

Linux and Windows Case Studies

Felix

26-Sep

Linux and Windows Case Studies

Felix

1-Oct

Threads and Synchronization

Dr. Plale

3-Oct

Threads and Synchronization

Jeff

8-Oct

Threads and Synchronization

Dr. Plale

10-Oct

Scheduling

Jeff

15-Oct

Deadlock

Dr. Plale

17-Oct

Midterm

Jeff

22-Oct

Main Memory

Dr. Plale

24-Oct

Main Memory

Dr. Plale

29-Oct

Virtual Memory

Jeff

31-Oct

Virtual Memory

Jeff

5-Nov

File Systems

Dr. Plale

7-Nov

File Systems

Dr. Plale

12-Nov

File Systems

Jeff

14-Nov

Mass Storage

Jeff

19-Nov

Security

Dr. Plale

21-Nov

No Class

No Class

26-Nov

Security

Dr. Plale

28-Nov

Class Presentations

Student

3-Dec

Class Presentations

Student

5-Nov

Class Presentations

Student

10-Dec

Exam Week

------


Lab Topics and Out of Class Assignments


Students will write several programs during the course of this course.  Students are strongly advised to gain experience with C or C++ before starting class.  Lab time early in the semester will be devoted to covering language-related topics.


Homework Exercises


Homework assignments are pencil and paper tasks to exercise the theoretical material.