Course:                        CS-384 OPERATING SYSTEMS DESIGN  (Section 3)

 

Time & Loc:                M, Th, F:          2:00pm – 2:50pm  (CC-53)

Lab:                             Tu:                   2:00pm – 3:50pm (CC-35)

 

Instructor:                   Dr. Jeff Blessing

E-mail:                         and

Office:                          CC-27a

Hours:                          M, W, Th, F:    2:00pm – 2:50pm, and by appointment.

Phone:                         277-7194

Text:                            Operating System Concepts, 6th ed.

by Silberschatz, Galvin & Gagne

Addison-Wesley, 2002

 

Objective:                    The design and implementation of Operating Systems for a Multi- programming environment is the focus of this course.  Specific topics include file systems, process scheduling, real and virtual memory management, concurrent processes, distributed systems, and protection.  Several case studies will be taken from commercially available systems.

 

Projects:                      In the first half of the course, we’ll be writing Unix systems programs using POSIX system calls.  After that, we’ll focus on using POSIX threads to implement several classic OpSys problem solutions (Readers/Writers, Producers/Consumers, Bounded Buffer, Dining Philosophers, etc.).  In the second half of the course we’ll turn our attention to writing a micro-kernel for the Motorola 68HC11 microprocessor (to be used in CS-391) using the techniques learned in the first half of the course.

 

Grading:                      Projects                        40%

                                    Weekly Quizzes            20%

                                    Term Paper                  20%

                                    Final                             20%

 

Late Policy:                 Assignments are due at the beginning of the class period designated as their due date.  Late assignments will be docked 10% per day.  No incomplete grades or make-up quizzes or make-up exams will be given without very extenuating circumstances.

 

Attendance:                 Although attendance is not directly factored into the final grade, all quiz and exam material will be taken from the lectures, text, and class discussions.  There is no automatic drop policy for this course.  Any student wishing to drop the course must do so with the Registrar’s office before Mon. of week 8.

 

Topics:             We will strive to cover the first 13 chapters of the text, followed by chapters 18 and 19.  This means that we will need to cover about 1.5 chapters per week.  Please read the corresponding material from the textbook prior to each class period.

 

Notes on-line:  Check out the course web page from It includes links to many on-line resources, such as the author’s course page to accompany the text.  Slides from each chapter of the text can be found there!  Also, I will post supplements to those materials provided by the authors on the above course page.

 

Resume:           In order to form teams, I’ll need a resume from every student by next class meeting.  In it, I’d like you to rate your experience level on the following topics:

 

Unix:    None, Beginner (I know how to manage/print files), Intermediate (I’m fluent with vi and several other Unix tools), Advanced (I’ve programmed several systems and used make utilities to do it), Expert (I’ve been a Unix system administrator for 5 years now), and Authority (Brian Kernighan and Dennis Ritchie call me for advice!).

 

C++     None, Beginner (I know a class is like a struct), Intermediate (I can implement a class as library), Advanced (virtual functions & virtual inheritance, no problem), Expert (the NT memory manager, that was mine!), and Authority (Bjarne Stroustrup asked me to take his place on the standards committee, but I decided to finish school first!).

 

O.S.:    None, Beginner (I know how to use them), Intermediate (I’ve modified some user functions), Advanced (I’ve written some device drivers), Expert (I’ve written parts of them), and Authority (Linux would be nowhere without all my contributions!).

 

List any other experience (networks, etc.) that you think would be helpful in an Operating Systems course such as this!