


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.
| 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 |
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.
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 in this course is determined by:
50% Projects
10% 2 Half-Hour Exams
15% 1 Midterm Exam
25% Final Exam
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.
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 |
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
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. |