CSCI 215
Operating Systems

Fall Semester 2008


Welcome to CSCI 215.  For this course, we will centralize the distribution of information on this course web page. This page can be found on the Clark web server at http://babbage.clarku.edu/~jbreecher/os/os.html.


*Basic Information
*Course Description
*Textbook
*Your Evaluation
*Lectures
*Daily Events
*Class Example Code
*The Projects

Basic Information

Professor: Dr. Jerry Breecher, Mail to: jbreecher at clarku.edu

BP 343, (508)793-7396
Meeting Time: Lecture: Monday, Thursday 1:25 p.m. - 2:40 p.m.
Office Hours: Monday, Thursday 10:00 - 1:00

By appointment; email is easiest

Course Description

This is what the catalog says:

Operating Systems/ Lecture, Laboratory

Studies the structure, performance, and design of operating systems. Topics include concurrency, deadlocks, scheduling, and memory management. Various operating systems may be examined and compared. Students will design and implement parts of operating systems. Prerequisite: CSci 160.

Textbook

Operating System Concepts, Eighth Edition, Abraham Silberschatz, Peter Baer Galvin, Greg Gagne. John Wiley & Sons, Inc. The hardcover edition is ISBN: 978-0-470-12872-5 . . Also, the text doesn't change that much from edition to edition; you can probably get away with a 7th edition just fine; find a used copy on-line.

Your Evaluation

Your evaluation in this course is determined by:

50% Projects

10% 2 Half-Hour Exams

15% 1 Midterm Exam

25% Final Exam

Lectures

In the Table below are pointers to the notes for the course.  The formats available can be read by Microsoft Powerpoint (.ppt), read by Apache (.pdf) or downloaded to a postscript printer (.ps).  Lectures generally will be from these notes. Feel free to print them out and use them during class to avoid extensive notetaking. You can simply annotate these notes rather than writing everything. But warning, don't be lulled into a false sense of security. What's talked about in the class will be in MUCH MORE DETAIL than is present on these slides.

An added advantage of written out notes is that you know what to read in the text. In general, I follow the book fairly closely so you should have no trouble figuring out where to find material to amplify these course notes.

The following Notes are arranged in book order, not necessarily in the order we'll lecture on them.

Lecture Title PowerPoint
Learning C C_By_Example.ppt
Overview Overview.ppt
Components Structures.ppt
Project Project.ppt
Processes Processes.ppt
Threads Threads.ppt
Scheduling Scheduling.ppt
Synchronization I Synchronization.ppt
Deadlocks Deadlocks.ppt
Memory Management Mem_Mgmt.ppt
Virtual Memory Virtual_Memory.ppt
File Systems File_Systems.ppt
File Structures IO_Systems.ppt
Protection Protection.ppt
Security Security.ppt

WEEKLY LABS: This is a chance for you to practice what will be done in the projects. Attendance is expected in these labs, but the main purpose is that you will see what is to happen in the projects. Small demonstrations will happen every week for your amusement and edification.

PROJECTS: These are programming assignments that you are expected to turn in. There's a schedule for these that's given later in this syllabus.

Daily Events

Here's how the material and deliverables break down for the semester.

Date

Topic

Sep 04

Course Introduction. ++ Lab Project Introduction ++

Sep 08

Overview & Structure of Operating Systems

Sep 11

Processes

Sep 15

Processes

Sep 18

Scheduling

Sep 22

Synchronization

===== 1/2 Hour Exam =====

Sep 25

Synchronization

Sep 29

Synchronization

Oct 02

Deadlocks

Oct 06

Deadlocks

Oct 09

Memory Management

Oct 13

FALL BREAK

Oct 16

Memory Management

Oct 20

Memory Management

Oct 23

Virtual Memory

Oct 27

===== Midterm Examination =====

Oct 30

Virtual Memory

Nov 03

Virtual Memory

Nov 06

Virtual Memory

Nov 10

File Systems

Nov 13

File Structures

Nov 17

IO Systems

Nov 20

Protection

===== 1/2 Hour Exam =====

Nov 24

Security

Nov 27

THANKSGIVING BREAK

Dec 01

Security

Dec 04

Network Structures

Dec 08

Distributed Systems

Dec 09

MONDAY SCHEDULE  Distributed File Systems

Dec 11

Distributed Coordination

Dec 17

Tuesday - 4:00 - 6:00 AM == FINAL EXAM

Class Example Code

This Link aims at a page containing a number of great programs demonstrating various features of the text.  Go Here

Projects

A significant component of the CS 215 course is the project, in which you will design and implement a basic operating system for a Z215 processor (this is a hypothetical processor architecture and a simulator is provided). The overall project is divided into two project phases.  The first phase builds necessary data structures and implements multiprogram scheduling.  The second phase adds virtual memory management and Disk IO to the core implemented in phase 1. 

The project requires substantial programming in C, (3 to 4 thousand lines of code is not atypical, depending on commenting style), thus students should already have a sound programming foundation. It is not expected that you know C when you start the class, but you certainly will by the time you finish. If your programming skills are a bit weak, expect to spend more time picking up those skills.

For more information, including project phase assignments and Z215 documentation, see the

Project Web Page.

There are weekly labs. If you miss lab, you are insane. This is where you will gain some clue as to what is going on with the project. There is no "grade" as such for attending lab - but miss it at your own peril.

Below is a calendar for how the project work will be conducted. Use this in conjunction with the Project Web Page and the project documentation.

MONDAY

BRIEF DESCRIPTION

Aug 28

Project Intro. & Demo

Sep 07

Test 0 is due.

Sep 25

Tests 1a and 1b are due.

Oct 23

Project Part 1 is due.

Oct 26

Kickoff for Part 2 of the Project.

Nov 13

Tests 2a and 2b are due.

Dec 11

Project Part 2 is due.