ECE397A Spring 2005: Operating Systems
[This page: Course Info | Staff | Course Material |
Prerequisites | Late policy | Grading | Cheating policy]
Schedule | Homeworks | Labs  | Exams ]

Course Description

This course will provide a broad introduction to software systems with emphasis on operating system design and implementation. Its objective is to introduce the design of systems software in general, beyond what is typical in a classic desktop-oriented operating system. Main focus of the course is on resource management and interfacing issues with hardware (microarchitecture) layers.  The OS provides a  convenient and efficient interface between user programs and the microarchitecture of the computer/device on which it runs. It is responsible for allowing resources (e.g., disks, network connections, memory, and processors) to be shared, providing common services needed by many different programs (e.g., file service, the ability to start or stop processes, and access to the printer), and for protecting individual programs from one another.

Particular emphasis will be given to (1)  process and thread management (processes, threads,  CPU scheduling, synchronization, and deadlock), (2) virtual memory management (segmentation, paging, swapping, caching) with focus on the interplay between architectural components and software layers in modern microprocessors,  and  (3) distributed systems including fundamental algorithms, communication layers such as sockets, RPC, Java RMI, as well as  an introduction to state-of-the-art distributed software architectures.

The course programming assignments are in Java/C. Credits: 3


Course Information

Instructor Teaching Assistants Class lectures
Associate Professor
Csaba Andras Moritz
Dept of Electrical and Computer Eng,
Knowles Building, room 309H
PhD candidate, Yao Guo
Meeting Times Building Room Number
TU 9:30-10:45AM

TH 9:30AM-10:45AM

ELAB 323 Search OIT's Campus Directory
Phone: (413) 545 2442
Email: mailto:Professor Moritz
Office Hours: TTh noon-1:25 pm,
Room 309H/Knowles, or by appointment
Office hours:  MW 3-5PM
Location: Knowles 201

Course Materials

ONLINE Handouts :


CMPSCI 187: Programming with Data Structures, and CMPSCI 201: Architecture & Assembly Language, or ECE232 or equivalent, with grade of 'C' or better.
Note that what is important is that you have a good understanding of computer architecture and have solid Java/C programming skills. This is not the right course if you need to learn programming.  If you have doubts please come by to talk to me.

Requirements and Grading

You are expected to attend class regularly, read the assigned reading before class, and participate in class discussions.
Programming assignments can be done in groups of at most 3 students. Each assignment will be checked either by the TA or the  instructor and requires the participation of team members. Sign-up sheets will be available- please check the TA's office.

The homeworks will not have to be handed in (you can still hand them in if you want them graded). Solutions for homeworks will be available online.  Each exam will include at least one question closely related to homework questions to motivate students working on them in a timely manner. The value of homeworks is effectively at least 20% of the exam value.  Pop Quizzes will be largely from the homework questions.

Late Policies

This course covers a lot of material and late assignments will seriously impact your ability to learn the next section of the course. Late programming assignments will be accepted for three days, but each additional day would result in a 20% grade reduction.   For medical and other emergencies please contact the instructor. Please try to finish your assignments on time.

Cooperation and Cheating

Feel free to discuss homework and labs with other members of the class, myself, or the TA. However, do not look at or copy another students solution to a homework or lab. I am not concerned with how you come to understand the problem and how to solve it, but once you have the background necessary to solve it, you must provide your own solution. Exchanging homework or lab solutions is cheating and will be reported to the University, and you will lose credit for the course. Cheating will not be tolerated. A student found cheating on an exam will receive an automatic grade of F on the exam, and likely will fail the course as well.


ECE ACADEMIC HONESTY POLICY A new Honor Code Policy is being instituted for all ECE students, the result of a joint initiative between students in Eta Kappa Nu (the ECE student honor society) and the Faculty of the ECE Department. The purpose of this policy is to emphasize engineering ethics as an important part of your education and career, and to enhance the value of your ECE degree from UMass. Simply put, the policy requires that each ECE student demonstrate high ethical standards by attesting to personal honesty and integrity for each examination taken. The policy fits within the framework of the existing Academic Honesty Policy of the University, and is similar to that used by other universities.

On the last page of your midterm exams and final exam, you will be expected to write out and sign your name to the Honor Code Pledge:

"On my honor, I have not given nor received aid on this exam."

This statement reflects your personal commitment to honesty and ethical practice in the taking of an exam. If you have not written and signed this, you will be contacted by the instructor.

Cheating will not be tolerated. A student found cheating on an exam will receive an automatic grade of F on the exam, and likely will fail the course as well.


Csaba Andras Moritz