Syllabus -> Syllabus

CSG 712 – Intensive Computer Systems, Spring 2009

Prof. Peter Desnoyers, pjd@ccs.neu.edu, 334 West Village H

Class description:

Studies the structure, components, design, implementation, and internal operation of computer systems, focusing mainly on the operating system level. Briefly reviews computer hardware and architecture, including the arithmetic and logic unit, and the control unit.  Covers current operating system components and construction techniques, including the memory and memory controller, I/O device management, device drivers, memory management, file system structures, and the user interface.  Briefly discusses distributed operating systems, real time systems and addresses issues such as concurrent processes, scheduling, interprocess communication and synchronization. Some relevant distributed algorithms will be discussed as time allows. The course will also cover design and analysis techniques for desirable properties in computer systems selected from the following: functional correctness (in the absence of faults), performance and throughput, fault-tolerance and reliability, real-time response, security, and quality-of-service. Includes examples from real operating systems.  The course will emphasize abstraction while programming exercises will be used to facilitate the understanding of concepts.

Prerequisites:

The following are what I believe to be practical prerequisites for this class. Students who are not sufficiently prepared in one or more of these areas should anticipate that additional effort will be required on their part.


  • C programming and basic familiarity with Unix systems. Students will be responsible for completing programming assignments in C without assistance.

  • Computer architecture. We will discuss some aspects of computer architecture (e.g. virtual memory) in great depth; however students are responsible for a basic understanding of CPUs, subroutine linkage, control flow, and enough familiarity with assembler to understand small (5-10 lines) snippets of example code.

Class materials

The textbook for this class is:

Operating Systems Concepts
Avi Silbershatz, Peter Baer Galvin, and Greg Gagne
7th edition: ISBN 0-471-69466-5
8th edition: ISBN 0-470-12872-0

Either the 7th edition or the 8th edition should be acceptable. Additional materials will be posted electronically on the class Blackboard site as needed.

Web site

This class will make extensive use of Blackboard for posting materials and submitting assignments. Note that Blackboard uses your @neu.edu email address, so please ensure that you either check this account or forward it properly to an account which you check regularly.

Schedule

The class will meet from 2:50 until 4:30 on Mondays and Wednesdays in Shillman Hall room 425. There will be a final exam on the last day of class, April 15.


The tentative schedule of class meetings is as follows:


Jan 5

Programs, processes, and context switching

Jan 7

Jan 12

Jan 14

Synchronization, scheduling and queuing

Jan 21

Jan 26

Jan 28

Virtual Memory

Feb 2

Feb 4

Feb 9

Virtualization

Feb 11

Feb 18

Midterm review

Feb 23

Midterm exam

Feb 25

Block Devices and I/O

Mar 9**

Mar 11**

Mar 16

File Systems

Mar 18

Mar 23

Mar 25

Security

Mar 30

Apr 1

System Architecture

Apr 6

Apr 8

Benchmarking and Measurement

Apr 13

Apr 15

Final Exam


** I will be traveling the week of 3/9. There will be no class on 3/9 or 3/11, but I expect to schedule a single make-up lecture on Thursday 3/12 or Friday 3/13.

Assignments

I am currently planning to assign 2 programming projects and 3 non-programming homeworks. The programming assignments will be submitted online; I may ask that some of the non-programming assignments be submitted on paper. The department will provide all computing facilities needed to complete these assignments; you are welcome to use your own computing resources, as long as your final submission compiles and runs correctly on the department system.

There will be assigned readings for most of the classes, and for each there will be a brief question due electronically before that day's class.

Late homework policy: Late homework will be assessed a penalty of 15% per day late or fraction thereof; each student may elect to submit one homework up to 4 days late without penalty. Late reading reports will not receive credit.

Scribe notes

There will be a single student responsible for taking notes on each lecture; these notes will be due before the next class, and will be made available to other students on Blackboard. (legible paper notes are entirely acceptable; they will be scanned and posted as PDFs) Students will sign up for slots during the first class. I will be videotaping my lectures and making them available on Blackboard; however note-takers are expected to attend the lecture for which they are responsible. A portion of the class grade (5%) will be based on satisfactory completion of scribe notes.

Grading

The following is a tentative breakdown of how grades will be assigned.


Reading reports

10%

Homework

45%

Scribe notes

5%

Mid-term

15%

Final

25%


Policies

Exams are open book / open notes; calculators are permitted but not computers and especially not the Internet.

Collaboration: Students are expected to work together on assignments, but must always submit their own work, and in addition should identify those students they collaborated with. (scribe notes are the only exception to this – any form of collaboration which results in a useful resource for your classmates is allowed)

If a student's grade on the final exam is higher than their grade on the mid-term, both tests will receive the final exam grade.

Computer use during class is allowed but expected to be for class purposes (e.g. note-taking, reference) only. Please avoid non-class-related computer use so that I do not have to revisit this policy.