CSS 430 – Operating Systems

University of Washington, Bothell - Computing & Software Systems

Instructor: Robert Nash

 

Website: courses.washington.edu/css430

Email: rynn@u.washington.edu

Office: CSS Shared Faculty Office

Office Hours: Thurs 4:35-5:35pm

Quarter: Autumn, 2009

Lecture: TTh 5:45-7:50pm

 

 

 

 

 

Prerequisites

To be adequately prepared, CSS 343 is required a minimum grade of 2.0.

Course Description

This course introduces the logical design of operating systems, especially focusing on Windows and UNIX. Topics covered include processes, threads, CPU scheduling, synchronization, deadlocks, memory management, virtual memory, file systems, I/O systems, protection, and security.

 

Course Goals

The overall goal of CSS 430 is to learn fundamental concepts that are used in and applicable to a variety of operating systems. The course consists of three major concepts: (1) process management that schedules, executes, synchronizes with events, and terminates your application programs, (2) memory management that loads your programs in memory and allocates/de-allocates memory space they requested dynamically, and (3) file system that provides the mechanism for on-line storage of and access to both data and programs residing on the disks. The course also covers protection, (and security if time is allowed) which are essential to have the modern operating systems work in the Internet computing world. Through the course, we will use Java to illustrate many operating-system concepts. Using Java, you will implement each concept of process management, memory management, and file system. As with most technical courses, besides ability and motivation, it takes time to learn and master the subject. Expect to spend an additional 10 to 15 hours a week outside of class time on the average.

 

 

Textbooks

·   Silberschatz, Galvin, and Gagne, Operating System Concepts with Java, Newest edition, Addison-Wesley, 2007.

·   A Java text of your choice.

 

References

·   See the website’s messageboard for a continually updated reference list.

 

Grading

Programming Assignments                                              25%

Final Exam (1)                                                                25%

Midterm Exam (1)                                                          20%

Final Project                                                                    12%

Weekly Quiz                                                                   12%

Participation                                                                          6%

 (An approximate scale of 90s (3.5-4.0), 80s (2.5-3.4), 70s (1.5-2.4), 60s (0.7-1.4) is used.)

Platforms and Languages

We will specifically target the Java language to leverage its portability across multiple platforms.  All assignments (except the first, which has a small bit of C++) will be coded in Java, and executed against our ThreadOS simulator on a Linux machine.  Visit www.ubuntu.com or www.redhat.com to download the appropriate version of Linux, or use our Linux Lab at UW Bothell in UW1-320.

 

 

Participation and Attendance

A percentage of the course grade comes from class participation, which can be summarized as the constructive involvement of a student during class.  Attendance is expected at all lectures, and this class’s policy is the same as the attendance policy outlined in the UWB handbook.  Usually, each class meeting contains information, handouts, assignments, etc. which are critical to the success of a student in CSS.  If a student misses a lecture, it is recommended that he/she talk to a fellow student who was present for the class.  Individuals will not receive extracurricular tutoring due to missed class; but of course, all students are welcome to visit with the instructor during office hours with questions about the material.  It has been proven in previous CSS courses that students who do not attend class do not succeed nearly as easily or frequently as those who do.

 

Class Policies & Verification Tools

The homework assignments are designed to be completed independently, and all student handbook guidelines with regards to plagiarism apply to any student’s work here. Please be careful to follow UWB policies on academic and behavioral conduct: http://www.uwb.edu/students/policies/.  Each student should submit their own work without cloning it from another existing work, whether found online or in the classroom.  Violations of the student code of conduct will result in a zero score for that work. 

 

Assignment Documentation

Aside from submitting your source code, all assignments must include the following documentation: a report or analysis, program listing, and execution output. Your report must include specifications, explanations, and/or illustrations of algorithm and data structures you used, and should summarize your data sets obtained from testing (i.e., do they make sense?).

 

Assignment Submission

Assignments will be tar file archives turned in using Catalyst.  The submission site will close promptly at the start of class (or at midnight, as discussed in class).   Late assignments are accepted only in the event of an emergency; such documented emergencies should be discussed with the instructor as soon as possible.

Exams

Make-up exams will not be given in this class, unless something catastrophic occurs.  These events should be discussed with the instructor ahead of time, except in the case of an emergency (which should be well documented). 

 

 

Courtesy & Technology

We’ll use technology in this class only to facilitate the learning outcomes stated in the outline and this syllabus.  Thus, cell phones and pagers should be disabled, and the using of a laptop (or the terminal in front of you) should not distract anyone from what the class is currently working on (or should be disabled).  Conversations should be kept to a minimum as a courtesy to other students that are trying to learn.

 

Support

If you believe that you have a disability and would like academic accommodations, please contact Disability Support Services at 425.352.5307, 425.352.5303 TDD, 425.352.5455 FAX, or at dss@uwb.edu.  You will need to provide documentation of your disability as part of the review process prior to receiving any accommodations.

 

 

 

MessageBoard

                https://catalysttools.washington.edu/gopost/board/rnash/????

 

Turnin Site

                https://catalysttools.washington.edu/collectit/dropbox/rnash/???

 

 

 

Acknowledgments

The materials (including lecture notes and assignments) used in this course may include material from a variety of sources: special thanks to previous CSS430 professors  Sung & Fukuda, the Windows Academic Program Curriculum Resource Kit, Silberschatz, Wikipedia, and others.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Tentative Schedule (subject to change)

Date

Topic

Reading

Assignments

Week 1

Introduction

Chapter 1

HW1 discuss

Week 2

OS Structures

Chapter 2

HW1 assigned

 

Process Management

Chapter 3

 

Week 3

Threads

Chapter 4

 

 

Open

 

HW1 due & HW2

Week 4

CPU Scheduling

Chapter 5

 

 

More Scheduling

 

 

Week 5

Process Synchronization

Chapter 6

HW2 due & HW3

 

Open

 

 

Week 6

Deadlocks

Chapter 7

 

 

Midterm (in class)

Chapters 1-6

 

Week 7

More Deadlocks & File System Interface

Chapter 10

 

 

Discuss Final Project

 

Discuss Project

Week 8

File System Interface & Implementation

Chapter 11 (skip  11.8-11.10)

HW3 due & Project

 

More File System Implementation

 

 

Week 9

Memory Management

Chapter 8

 

 

Holiday: Happy Thanksgiving!

 

 

Week 10

Memory Management & Virtual Mem

Chapter 9

 

 

More on Virtual Memory

 

 

Week 11

Open (I/O Systems? Protection?)

 

 

 

Review & Catch up

 

Project Due

Finals Week

Final Exam Week(in class)

Chapters 8-11 (minus 11.8-11.10)