CS 2510 ─ Computer Operating Systems ─ Spring 2004
Syllabus
Instructor: Dr. José Brustoloni (jcb@cs.pitt.edu)
-- Classes: SENSQ 5129 – M W
-- Office/Lab hours: SENSQ 5129 (after class) – M W
SENSQ 5506 (LCNSI) – MTWHF
TA: Mr. Shuyi Shao (syshao@cs.pitt.edu)
-- Office/Lab hours: SENSQ 5506 (LCNSI) – M W
Goals and objectives:
This is the department’s Core
graduate Operating Systems course. Its goals are to prepare students for taking
the Operating Systems Preliminary Exam and for doing
research or working on advanced development in the systems area.
Students’ specific objectives in
this course will be: (1) review the main operating system topics, (2) learn the
key principles of distributed systems, (3) gain hands-on experience securing
client-server applications, and (4) critique selected classic and contemporary
systems papers.
Pre-requisites:
CS 1550 (Operating Systems)
Important dates:
1/16 Add/Drop deadline
1/19 Martin Luther King Birthday – University Closed
2/16 Midterm Exam
3/5 Withdrawal deadline
3/7-14 Spring Break
4/7 Final Exam
4/19 Term Paper due
Textbooks (required):
Andrew Tanenbaum and Maarten van Steen. “Distributed Systems: Principles and Paradigms,” Prentice Hall, 2002.
J. Archer Harris. “Operating Systems,” McGraw-Hill, 2002.
Lectures will cover primarily distributed system topics from Tanenbaum and Steen’s textbook. Homework problems and exams will test both operating system and distributed system concepts, drawing from both textbooks.
Topics:
· Introduction: Hardware, Operating systems, Distributed operating systems, Network operating systems, Middleware, Client-server model
· Communication: Interprocess communication, Protocols, Remote procedure call, Remote object invocation, Message-oriented communication, Stream-oriented communication
· Synchronization: Semaphores, Monitors, Deadlock, Clock synchronization, Logical clocks, Election Algorithms, Mutual Exclusion, Distributed Transactions
· File system management
· Processes: Scheduling algorithms, Threads, Clients, Servers, Code migration, Software agents
· Memory management and virtual memory
· Naming: DNS, X.500, Locating mobile entities, Garbage collection
· Consistency and Replication: Data- and Client-centric models, Distribution and Consistency protocols
· Fault tolerance: Reliable client-server and group communication, Distributed commit, Recovery
· Security: Data integrity, message authentication, message replay, message confidentiality, public-key algorithms, digital signatures, key management
· Selected paradigms: CORBA, DCOM, NFS, WWW, JINI
Grading:
10% Homework and paper presentations and class participation
25% Midterm Exam
25% Final Exam
30% Laboratory Experiments (5, each worth 6%)
10% Term Paper
Homework problems testing both
operating system and distributed system concepts will be assigned frequently.
Students should be prepared to present their solutions to the rest of the
class. Although solutions will not themselves be graded, their presentation
will be. The instructor will provide the correct solutions in class. Students
should make sure they know how to answer all homework problems, in preparation
for the exams.
The final exam will emphasize topics
not already tested in the midterm exam.
Class participation will be
encouraged. Students should read the assigned textbook sections and papers
beforehand and be prepared to discuss them in class.
There will be five laboratory
experiments. Experiments will be performed in the Laboratory for Computer
Network Security Instruction (LCNSI), located in SENSQ 5506. Each experiment
will have a pre-test (taken before
performing the experiment) and a post-test (taken after performing the experiment). The student’s grade for an
experiment will be the average of the scores for the respective (1) turned-in
programs or demonstration and (2) post-test (pre-test scores will be
disregarded). The first four experiments may be performed remotely. On the
other hand, the fifth experiment will require each student to come to the lab
for a scheduled demonstration, for at most two hours.
Students will read, critique, and present to the rest of the class select
classic systems papers (drawn from the list of required or recommended papers
for the department’s Operating Systems Preliminary Exam).
Students will also select some area of current interest in systems research and write and present to the rest of the class a term paper about it. A good term paper will demonstrate that the student understands the objectives, techniques, and shortcomings of current literature on a given topic. A very good term paper will also contain plausible suggestions for overcoming some of the mentioned shortcomings. An excellent term paper will, additionally, provide preliminary results showing that the suggested improvements are indeed viable and advantageous. Resubmission of work already submitted or currently being submitted for credit elsewhere is unacceptable. Term papers may be written by groups of up to two students.
Policies
·
Class attendance is required.
·
You should check daily for course announcements on
http://courseweb.pitt.edu
· All your answers to assignments, tests, and exams must be your own.
· Do discuss course materials and assignments with other students at a conceptual level, but:
o do not copy answers from others, and
o do not allow others to copy your answers.
· Students caught cheating will fail the course.
· Late laboratory experiments will be penalized and may not be accepted if too late.
· Except in case of documented emergency, there will be no make-up tests or exams.
Students with disabilities
If you have a disability for which you are or may be requesting an accommodation, you are encouraged to contact both your instructor and the Office of Disability Resources and Services, 216 William Pitt Union, (412) 648-7890/(412) 383-7355 (TTY), as early as possible in the term. DRS will verify your disability and determine reasonable accommodations for this course.