COP 4610: OPERATING SYSTEMS & CONCURRENT PROGRAMMING

Syllabus

Spring Term 2005
Instructor Contact Information
Meetings
MeetingDay(s)Time of DayLocation
lectureMWF 1:25- 2:15PM101 Love Building
sect. 1F12:20- 1:10PM103 Love Building
Catalog Description

Design principles of batch, multiprogramming, and time-sharing operating systems. Linking, loading, input-output systems, interacting processes, storage management, process and resource control, file systems.

Prerequisites

The formal prerequisites for this course are COP 4530 Data Structures, Algorithms, and Generic Programming, and CDA 3101 Computer Organization. The Undergraduate Bulletin says that CDA 3101 may be taken in the same term as COP 4610, as a co-requisite. Most students would be best advised to complete CDA 3101 first.

The following are the specific capabilities you will need from the prerequisite courses:

Objectives

In order to pass this course, you will need to demonstrate that you have learned to:

Topics

The topics covered in this course will include the following:

Materials

Textbook

Author: William Stallings

Title: Operating Systems, Internals and Design Principles (5th Edition)

Publisher: Prentice Hall

ISBN 0-13-147954-7

Follow the link to http://williamstallings.com/OS/OS5e.html for student support materials.

Table of Contents:

  1. Computer System Overview
  2. Operating System Overview
  3. Process Description and Control
  4. Threads, SMP, and Microkernels
  5. Concurrency: Mutual Exclusion and Synchronization
  6. Concurrency: Deadlock and Starvation
  7. Memory Management
  8. Virtual Memory
  9. Uniprocessor Scheduling
  10. Multiprocessor and Real-Time Scheduling
  11. I/O Management and Disk Scheduling
  12. File Management
  13. Networking *
  14. Distributed Processing, Client/Server, and Clusters *
  15. Distributed Process Management *
  16. Computer Security
  1. Topics in Concurrency
  2. Object-Oriented Design *
  3. Programming and Operating Systems Projects *
  4. OSP: An Environment for Operating Systems Projects *
  5. BACI: The Ben-Ari Concurrent Programming System*

* The asterisk and red font indicate the two chapters that are not scheduled to be covered, and the appendices. You will probably end up needing to read some portions of the appendices, to the extent they bear on the programming assignments.

You should also look at the entire COP 4610 Study Guide, of which this Syllabus is just a part. Other parts of the Study Guide amplify on some of the topics mentioned in this Syllabus, provide basic instruction on accessing Web-based materials and computers you will need to use for this course. The Study Guide will also refer you to other important Web-based documents, including the Course Calendar, and the Course Assignments homepage.

Study Guide

This Syllabus is just part of a larger Web-based document, which is called the Study Guide. The Study Guide amplifies on many of the policy statements made in this Syllabus, and provides other information that may help guide you through the course. You are expected to read the entire Study Guide, and follow it.

Web-Based Lecture Notes

You may also use these notes to preview or review material covered in class. Initial versions of these notes, from a prior offering of this course, will be available at the start of the term, but they will not be static. Expect them to be updated shortly before or after the corresponding class meetings this term.

Unix Man Pages

Specific details on the operating system calls needed for the programming assignments are document in the on-line Unix documentation, which you can read using the man shell command.

Other References

The following other references may also be useful:

Assignments

Readings.You will be assigned readings in the textbook. You should try to answer the review questions and attempt as many as you can of the exercises at the end of each chapter, to help you find out whether you have understood the material you have read. Solutions from the textbook publisher's Instructors Manual will be posted on the Web, so that you can compare them against your answers.

Class Participation. The study of much of Computer Science is cumulative (i.e., understanding earlier material well is necessary to grasp later material. Do not allow yourself to fall behind, by postponing studying, and then figure you will jump ahead to catch up with the rest of the class.

Experience has shown a high correlation between absenteeism and low grades. Therefore, students are required to attend all 4 hrs of lecture and recitation meetings each week. Attendance will be checked at random times throughout the term. You will be allowed three (3) absences without question or justification. If you have a documented religious holiday or emergency, additional absences may be excused.

Quizzes. Review quizzes will be given for the readings in the textbook. They may be administered in class, or you may be asked to complete some of them at home. These are intended to spot-check how well you understood the material in the reading assignments. (Please don't assume that they cover everything that is important in the readings!) They are included in your grade, just to encourage you to take them seriously, for your own benefit.

Examinations.There will be two midterm examinations and a final examination. These examinations will be "closed book". That is, no books or reference materials will be allowed in the examination room. These are the main check on how much you have learned from the course.

Examples of examinations from prior terms will be provided on the Web, with answers, so that you are prepared for the format of the exam and have a chance to review by taking a practice exam. You will also find the quizzes are helpful in preparation for the exams. (Please don't assume the examination will be limited to the knowledge covered by the quizzes and sample examinations!)

All students will be expected to take the examinations at the scheduled time, shown on the Course Calendar.

If you know in advance of a reason you will not be able to take a scheduled examination within the scheduled window of time, you are responsible for making arrangements in advance with the instructor. If you make prior arrangements, or have a documented last-minute emergency conflict -- such as a medical emergency or your employer requires you to make an out-of-town trip -- the instructor will attempt to accommodate you. However, under no circumstances will a student be allowed to take an examination before the rest of the class. A make-up examination may have an entirely different format from the examination given in class, and may be an oral examination. In the past, most students who missed midterm examinations have chosen not to take a makeup examination. Instead, they relied on Special Rule 1 (see below), which allows any missed midterm examination scores to be replaced by the final examination score.

Programming assignments. There will be several individual programming assignments, based on the Unix operating system, using the C programming language. In general, you should expect to have some kind of programming assignment due each week in which you do not have an examination or paper due. The objectives of the assignments will be to give you practice using or implementing some of the ideas and techniques you are reading about, and at the same time improve your programming skills. Inevitably, some students will wait to start a program until just before it is due, and then fall hopelessly behind in the course. Please try not to fall into this trap.

To do your programming assignments, you will use a collection of networked Linux and Solaris systems provided by the CS Department. These systems, and how to access them, are described along with other guidance in the Programming Environment section of the Study Guide. You may also use computers outside the CS Department, such as your own personal computer, if they have the appropriate operating system for the assignment installed on them, but before you turn in the assignment you are responsible for checking that it will run correctly on the system or systems specified for that assignment.

For more information on the programming assignments, including what they will be, and how they will be assessed and weighted, see the Programming Assignments section of this Study Guide.

Paper. There will be short research paper, that will require you to do a search and synthesis of available literature on a topic in operating systems. The objectives of the paper will be for you to learn that topic deeper, and to improve your skills in writing and digging out information. The paper will be assessed equally on the quality of writing and the quality of the research.

Grading

You will learn better if you concentrate on learning, and do not worry about the details of grading policy. However, since some students want to know, the following details are provided.

Your final grade should reflect how much you learned from the course. Since you should be learning right up to the last minute, the final word on what you have learned should be the examination given at the end of the term. On the other hand, there are good reasons to mark other work you do during the term, and for all your work to play a role in the determination of your final grade. One reason is to motivate you to study every week, and to put in your best effort on all the programming exercises. It would best for you to find out about any gaps in your learning before the end of the term, so you can fill them in.

In order for you to learn from your errors without losing motivation, the grading policies incorporate a certain amount of forgiveness. For chapter review quizzes, the grades will be thrown out if the quiz average is lower than the exam average. For midterm examinations, both of those grades will be thrown out if the final examination grade is higher. For programs, there will ordinarilly be no forgiveness. You should have have adequate opportunity to find and correct any serious errors you turn in your work, by executing tests, including some public test cases provided by the instructor. However, the instructor does reserve the discretion to exercise forgiveness, ad hoc, for weak grades on programming work done early in the course if there is solid evidence that the student has mastered the material by the end.

Do not expect forgiveness for lateness. Whether to accept any late turn-ins of assignments will be entirely at the discretion of the instructor. If a late assignment is accepted, the score will ordinarily be reduced. The amount of the reduction will be entirely at the discretion of the Instructor, and may depend on how late the assignment is. In any case, no work will be accepted for grading after a solution is discussed or handed out, either in the class or on the Web.

Every piece of graded work will be assigned a score in the range 0 to 100. At the end of the term these numeric grades will be averaged to compute your final grade for the term, using the following table:
PercentLetter
91- 100A  [4.00]
89-90A- [3.75]
85-88B+ [3.25]
PercentLetter
81-84B  [3.00]
79-80B- [2.75]
75-78C+ [2.25]
PercentLetter
71-74C  [2.00]
69-70C- [1.75]
64-68D+ [1.25]
PercentLetter
61-63D  [1.00]
59-60D- [0.75]
0- 58F  [0.00]
Except for a few special rules listed below, the final course grade will be based on the average of the following data, with the indicated weights:

Graded WorkWeight
Programming Assignments 45%
Quizzes 5%
Class Participation5%
Examinations:
Midterm #110%
Midterm #210%
Final Exam25%
45%

Special Rules and Other Notes:

  1. If the Final Examination grade is higher than the average of the average of the two Midterm Examinations, the two Midterm Examinations will be thrown out and Final Examination will be given 45% weight.

    This rule is based on the fact that the final examination is comprehensive, and is intended to motivate students who do not perform well on earlier exams to persevere and overcome those setbacks by further study. It also solves the problem of occasional emergencies which may cause a student to miss a midterm examination.

  2. If either the Homework or the Examinations average (considered individually) is below C-, the final grade for the course will not be higher than D+.

    Take note of this rule! In the past, some students have complained at the end of the semester when it caused them to fail the course. There is a good pedagogical reason this rule. A grade of D+ or lower in either of these two areas indicates failure on an essential part of the the course. The knowledge and skills covered by the examinations and the programming assignments are both essential, and do not overlap more than a little bit. On the one hand, within the time and equipment limitations of an examination one cannot adequately test programming skills. On the other hand, there is not time in the semester to assign a program to cover every important concept of the course. It is also true that if a student violates the Academic Honor Code the grades on homework may not accurately reflect the real knowledge and skills of the individual. For all these reasons, completely unsatisfactory performance in either one of two these areas cannot be ignored on the basis of better peformance in the other areas.

  3. The Class participation grade Each unexcused absence will reduce your class participation grade by a fractional letter grade (e.g., one absence reduces the grade from "A" to "A-", and two absences reduces the grade "B+").

All graded work will be returned after grading. Students are responsible for picking up the graded copies of their hard-copy work. Work that is not picked up may be discarded by the instructor one week after the start of the next term. The one exception are final examinations. The University requires that the original copies of all final examinations be retained in the Department for two years.

As soon as each midterm exam is graded, the entire examination, sample answers, and distribution of scores will be posted on the Web for the entire class. Whether to post a solution to a programming assignment, and when, will be left to the discretion of the instructor.

Academic Honor Code

You are required to read the FSU Academic Honor Code and abide by it. Take note that this policy not only puts you on your honor not to cheat. It requires that you report any cheating that you observe. First violations will result in lowering of the final course grade by one whole letter. Repeat violations will result in a grade of F with no provision for retaking the course. Please read the detailed discussion of how the Honor Code applies to programming assignments for this course, in the Honor Code & Plagiarism section of the Study Guide.

Accommodation for Disabilities

Students with disabilities needing academic accommodations should:

  1. Register with and provide documentation to the Student Disability Resource Center (SDRC).
  2. Bring a letter to the Instructor from the SDRC indicating you need academic accommodations. This should be done within the first week of class.

This syllabus and other class materials are available in alternative format upon request.

For more information about services available to FSU students with disabilities, contact the Assistant Dean of Students:

Student Disability Resource Center
08 Kellum Hall
Florida State University
Tallahassee, FL 32306-4066

e-mail: sdrc@admin.fsu.edu
phone: (850) 644-9566.

Communication

If you are experiencing difficulty or are concerned about your progress, please contact the instructor right away. Problems are usually easier to solve when they are addressed early.

You are required to verify that your e-mail address is included in the class e-mail list. The Instructor will send everyone a message at the start of the term. If you don't get that first message, make sure you are added to the list.

Check regularly for electronic mail sent to you containing information about this course. You are also encouraged to use e-mail to ask questions and report problems. For this course, we will be using only CS Department e-mail accounts (not your Garnet or Mailer account or any non-FSU account).

So that you receive all e-mail promptly, if you ordinarily read your e-mail using another account, you should set up automatic e-mail forwarding from your CS account to that other account.

This syllabus and other information, such as course announcements, assignments, lecture notes, and some useful links to other Web sites, will be posted on the Web site for the course, which is located at http://www.cs.fsu.edu/cop4610. Access to most of the materials on that site will require a special login name and password, which will be provided to you by the Instructor via e-mail.

More detailed information on communication media and the Web sites is provided in the other sections of the Study Guide.

© 2002 T. P. Baker & Florida State University. (Last updated by $Author: baker $ on $Date: 2005/01/04 14:49:46 $.) No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means without written permission.