|This course will provide a broad introduction to
software systems with emphasis on operating
system design and implementation. Its objective is to introduce students
to design software systems in general, beyond what is typical in a
classic desktop oriented operating system, with main focus on resource
management and interfacing issues with hardware (architecture) layers.
These software systems, in some form or another, are found in
desktop computers, embedded systems, supercomputers, cluster computing,
pocket PCs, network routers, etc.
The OS and many software systems (typically) provide a convenient and efficient interface between user programs and the architecture of the computer/device on which they run, being responsible for allowing resources (e.g., disks, networks, 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 protecting individual programs from one another.
Particular emphasis will be given to process management (processes, threads, CPU scheduling, synchronization, and deadlock), (virtual) memory management (segmentation, paging, swapping, caching) with focus on the interplay between architectural components and software layers in modern microprocessors, and 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, e.g., CORBA, Microsoft .net, and J2EE (EJB) Application Servers. The course programming assignments are in Java/C/C++. Credits: 3
|Instructor||Teaching Assistants||Class lectures|
Csaba Andras Moritz
Dept of Electrical and Computer Eng,
Knowles Building, room 309H
|Raksit Ashok Saurabh Chedda||
|Phone: (413) 545 2442
|Office Hours: TTh 4:15-5:15 pm,
Room 309H/Knowles, or by appointment
|Office hours: Mo,Wedn: 2-4PM or by appointment
Location: Room 301/Knowles
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.
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 5 students.
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 penalized 10\% per day, up to 4 days. Late homeworks will not be accepted (no exceptions). Please try to finish your assignments and homeworks on time.
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.
Last modified: Wed Jan 05 10:57:39 EDT 2002