CSCI 215
Operating Systems

Fall Semester 2006


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
*Weekly Events
*The Projects

Basic Information

Professor: Dr. Jerry Breecher, Mail to: jbreecher at clarku.edu
BP 343, (508)793-7396
Meeting Time: Lecture: Monday, Thursday 2:50 p.m. - 4:05 p.m.
Office Hours: Monday, Thursday 1:15 - 2:45
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, Seventh Edition, Abraham Silberschatz, Peter Baer Galvin, Greg Gagne. John Wiley & Sons, Inc. The hardcover edition is ISBN: 0-471-69466-5 The paperbacked edition is ISBN 0471-973777. I've asked the bookstore to get the paperback since it's much less expensive. Also, the text doesn't change that much from edition to edition; you can probably get away with a 6th edition just fine.

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 Adobe Acrobat
Learning C C_By_Example.ppt C_By_Example.pdf
Overview Overview.ppt Overview.pdf
Components Structures.ppt Structures.pdf
Project Project.ppt Project.pdf
Processes Processes.ppt Processes.pdf
Threads Threads.ppt Threads.pdf
Scheduling Scheduling.ppt Scheduling.pdf
Synchronization I Synchronization.ppt Synchronization.pdf
Deadlocks Deadlocks.ppt Deadlocks.pdf
Memory Management Mem_Mgmt.ppt Mem_Mgmt.pdf
Virtual Memory Virtual_Memory.ppt Virtual_Memory.pdf
File Systems File_Systems.ppt File_Systems.pdf
File Structures IO_Systems.ppt IO_Systems.pdf
Security Security.ppt Security.pdf
Distributed Structures Distributed Structures.ppt Distributed Structures.pdf
Distributed File System Distributed File System.ppt Distributed File System.pdf
Distributed Coordination Distributed_Coordination.ppt Distributed Coordination.pdf

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.

Weekly Events

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

Date

Topic

Aug 28

Course Introduction. ++ Lab Project Introduction ++

Aug 31

Overview & Structure of Operating Systems

Sep 07

Processes

Sep 11

Processes

++ Sep 01 == Test 0 Due ++

Sep 14

Scheduling

Sep 18

Synchronization

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

Sep 21

Synchronization

Sep 25

Synchronization

++ Sep 22 == Tests 1a, 1b Due ++

Oct 02

Deadlocks

Oct 05

Deadlocks

Oct 09

FALL BREAK

Oct 12

Memory Management

Oct 16

Memory Management

Oct 19

Memory Management

Oct 23

Virtual Memory

Oct 26

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

Oct 30

Virtual Memory

++ Oct 20 == Project 1 -- ALL TESTS -- Due ++

Nov 02

Virtual Memory

++ Project 2 Kickoff ++

Nov 06

Virtual Memory

Nov 09

File Systems

Nov 13

File Structures

Nov 16

IO Systems

++ Nov 10 == Tests 2a, 2b Due ++

Nov 20

Protection

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

Nov 23

THANKSGIVING BREAK

Nov 27

Security

Nov 30

Security

Dec 04

Network Structures

Dec 07

Distributed Systems

Dec 11

Distributed File Systems

Dec 11

Distributed Coordination

++ Dec 11 == Project 2 -- ALL TESTS -- Due ++

Dec 19

Tuesday - 1:30 - 3:30 AM == FINAL EXAM

 

The 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.