Introduction to
Operating Systems
CSE421A,B – Spring
2001
Reg #185819(A),
142216(B)
January 17, 2001
The purpose of this course is the study of the mechanisms and policies of operating systems. This course will examine such issues as process management, threads, scheduling, inter-process communication mechanisms, deadlock detection and avoidance, memory management, input/output systems, networking, and distributed/parallel systems.
Course Name: Introduction to Operating Systems
Lecture Time: Monday, Wednesday, Friday 1:00 PM – 1:50PM
Lecture Location: Knox 4
Course Code: CSE421A
Instructor: Bina Ramamurthy (bina@cse.buffalo.edu)
Office: 127 Bell Hall
Office Hours: Tuesday, Thursday 2.00 – 3.20PM
Newsgroup: sunyab.cse.421
Website: http://www.cse.buffalo.edu/~egert/cse421/cse421.htm
Recitation A1: Thursday 3:30 PM – 4:20 PM, Talbert 112
Recitation A2: Thursday 12:00 NOON – 12:50 PM, Norton 210
Recitation A3: Monday 2:00 PM – 2:50 PM, Bell 138
Course Name: Introduction to Operating Systems
Lecture Time: Monday, Wednesday, Friday 12:00 NOON – 12:50PM
Lecture Location: Knox 14
Course Code: CSE421B
Instructor: Christopher Egert (egert@cse.buffalo.edu)
Office: 215 Bell Hall
Office Hours: Wednesday, 6:00 PM – 8:00 PM (tent.)
Newsgroup: sunyab.cse.421
Website: http://www.cse.buffalo.edu/~egert/cse421/cse421.htm
Recitation B1: Monday 11:00 AM – 11:50AM, Baldy 110
Recitation B2: Tuesday 12:30 PM – 1:20 PM, Baldy 112
TA Information T.B.A.
3) Books/Materials
The primary textbooks for this course are:
Stallings,
William; Operating Systems, Latest Edition
Gray,
John; Interprocess Communications in Unix : The Nooks and Crannies, Latest
Edition
There are
no other required texts, but you should possess reference materials to assist
you with C, C++, and Java. Although any
quality reference will do, we would suggest the Kernighan and Ritchie The C
Programming Language, Stroustrup’s The C++ Programming Language, and
Horstmann’s Core Java 2.
4) Pre-requisites
CSE421 is a capstone course within the Computer Science and Engineering department. It requires that you utilize expertise in several computer science sub-disciplines and pre-requisite courses. You must have successfully completed CSE241 and CSE250 before you are allowed to take CSE421. You should also have senior level standing within the Computer Science and Engineering department. We also strongly recommend that you take CSE341 and CSE305 before attempting this class. If you do not have the correct pre-requisites for the course, you will be required to drop and/or resign.
You will also be working on several large programming projects over the course of the semester. You will be required to develop programs in the C, C++ and Java programming languages. You must have an intermediate working knowledge of C and Java. You should also be familiar with Java, and its basic libraries (util, lang, net).
We assume that as seniors participating in a 400 level Computer Science and Engineering class you are capable of learning new programming languages and libraries in minimal amounts of time. You should also be familiar with modern code design and debugging practices.
5) Grading
Distribution
Grades will consist of the following components:
Component (Quantity) |
Percentage |
|
Homework (5) |
15% |
|
Projects (3) |
45% |
|
Midterm (1) |
15% |
|
Final (1) |
25% |
The Minimal point distribution guideline will be as follows :
Point Range |
Letter Grade |
|
95.00-100 |
A |
|
90.00-94.99 |
A- |
|
85.00-89.99 |
B+ |
|
80.00-84.99 |
B |
|
75.00-79.99 |
B- |
|
70.00-74.99 |
C+ |
|
65.00-69.99 |
C |
|
60.00-64.99 |
C- |
|
55.00-59.99 |
D+ |
|
50.00-54.99 |
D |
|
0-49.99 |
F |
We reserve the right to alter component weighting or provide a “curve” on an assignment as warranted.
a) Homework
Five homework assignments will be distributed over
the course of the semester. Homework
assignments will either consist of questions from the back of the textbook, or
they will consist of small programming assignments. Homework assignments are designed to test your understanding of
the reading and/or key concepts covered in the lectures. In the event where less than five homework
assignments are provided, the total number of homework assignments will be
distributed over the homework percentage.
Homework assignments will be due at the beginning of class
on their respective due dates. Late
assignments will NOT be accepted and will receive 0 points!
b)
Projects
Projects constitute a major component of the course. Over the semester, you will be given three projects. The projects will cover three important areas of Operating System design; (1) threads, synchronization, and classical inter-process communication problems (2) virtual memory / paging mechanisms and policies (3) network communications.
You will be given approximately a month to complete each project. Do not be lulled into a safe sense of security thinking you have a lot of time to implement each project! Much of your project development time will be spent in the design phase of your code. When implementing your solution, you should plan on using an incremental development path. You should plan your project in achievable stages such that you can get parts of your solution working a little at a time. This will help maximize partial credit during grading. You will also be responsible for the development of test cases to show the accuracy of your solution. You will also be required to perform an analysis of your solution, as well as create external documentation pertaining to your project.
Late assignments will be penalized at a rate
of 25% of the achieved grade for each day overdue. The penalty will be assessed from the due date and time indicated
on the assignment.
c) Midterm
There will be a Midterm that will be administered
and graded before the course resign date.
Midterm material will cover all lecture and reading assignments before
the exam, as well as concepts from homework and lab assignments. Midterms are closed book, closed notes. Make-up exams are not
administered! If you miss the midterm,
you will be assigned a grade of 0 points.
d) Final
The final is a comprehensive final, covering all
lecture, lab, and homework areas. The
final is closed book, closed notes. Make-up exams are not
administered! If you miss the final,
you will be assigned a grade of 0 points.
6) Course
Policies
a) Attendance
Policy
Attendance is required for all lectures and assigned recitations. You are responsible for all materials presented in lecture and recitation, as well as handouts and/or other supplemental material. If you know that you are going to miss a lecture or a recitation, have a reliable friend take notes for you. Do not ask the instructor or teaching assistant to cover material from a class that you missed! Of course, there is no excuse for missing days that are due dates or exam days. Attendance will be occasionally taken and may be used to determine how to resolve borderline grades at the end of the course.
b) Lecture
Policy
During lectures, we will present and review
material covered in the textbook. This
includes working on problems from the text.
We will also cover material that is not in the textbook, including real
world examples of OS issues. You will
be given a reading assignment at the end of each lecture for the next day. It is your responsibility to read the
assignments before the next session.
During some lectures, we will have discussions about certain key topics
from the reading. Be prepared to
interact with your classmates, or I will be forced to call upon people to lead
the discussion.
c) Recitation
Policy
Recitations are an essential part of this course! Recitations have several purposes; (1) to review homework solutions. (2) to continue the conversation pertaining to the projects (3) to review difficult concepts in the class.
The recitation is your time to communicate with your TA about the course. Use the opportunity to the fullest.
d) Office
Hour Policy
In the first section of the syllabus, we have outlined both the instructor and teaching assistant’s office hours. (If not, they will be announced on the website and newsgroup) Please respect these hours! If you cannot meet during these hours, please send e-mail in order to set up an appointment. During periods of high congestion, a sign up sheet may be used to schedule office hours.
Office hours are intended to resolve questions about the material that could not be answered in lecture or recitation. Come to office hours prepared! (e.g., If you are having problems with a particular concept, work out a problem and bring it in).
Office hours are NOT for the following: to repeat missed lecture material, to repeat missed recitation material, to have the instructor or TA solve an assignment problem for you, or to have the instructor or TA write or debug your code!
Failure to be prepared for an office hour meeting can and will result in you being dismissed until you are prepared.
e) Due
date Policy
All due dates will be clearly printed on the top of each assignment. Late assignments will not be accepted, except in the case of projects, which will incur a penalty of 25% per day late.
f) Exam
Pass Policy
In order to pass this course you must have a passing average on your exam portion of the grade. This means you must have above a 49.99 on the average of the midterm and final together.
g) Make-up
Policy
We do not give make up exams for any reason. If you miss an exam, you will receive a zero for that portion of the grade.
h) Grading
Policy
All assignments will be graded and returned in a timely manner. When an assignment is returned, you will have a period of one week to contest any portion of the grade. Grading conflicts will be first resolved with the TA who graded your assignment. If the conflict cannot be resolved, the instructor will mediate the dispute. When contesting a grade, you must be able to demonstrate how your particular solution is correct. Also, when contesting a grade, the instructor or TA reserves the right to re-evaluate the entire exam, not just the question in dispute.
i)
Incomplete Policy
We do not give incompletes in the course, unless under the most dire of circumstances. By definition, an incomplete is warranted if the student is capable of completing the course satisfactorily, but some traumatic event has interfered with their capability to finish within the timeframe of the semester. Incompletes are not designed as stalling tactic to defer a poor performance in a class until an easier professor allows the student to finish the coursework.
Incomplete requests are evaluated on a case by case basis. Be prepared to prove the validity of your claim.
j)
Academic Dishonesty Policy
UB’s definition of Academic Dishonesty in part is, “Students are responsible for the honest completion and representation of their work”. You should also read the departmental academic honesty policy located at http://www.cse.buffalo.edu/undergrad/academicintegrity.html.
There is a very fine line between conversation between your peers about concepts in the course and academic dishonesty. You are allowed to converse about general concepts, but in no way are you allowed to share code or have one person do the work for others. You must abide by the UB Academic Integrity policy at all times. NOTE: Remember that items taken from the web are also covered by the academic honesty policy! Besides, many “references” on the web are just plain wrong! If you are unsure if something violates the academic integrity policy, assume that it does until you get clarification from the instructor.
This semester, all projects will be checked
using an electronic cheat checking system.
We reserve the right to check or question any portion of any work
submitted at any time during the semester.
If you are caught violating the academic
integrity policy, you will minimally receive a ZERO in the course. We will also place the incident in your
permanent record. If it is your second
violation, we will recommend to the Undergraduate Chair that formal proceedings
be filed against you, which would mean either you could be expelled, or your
degree progress will be terminated within the Computer Science and Engineering
department. WE TAKE ACADEMIC
INTEGRITY QUITE SERIOUSLY, SO SHOULD YOU!
k) Evaluations
At various points during the semester, we will distribute surveys to gauge how the class is progressing. These anonymous surveys are to help adjust the class as needed. Please fill these out accurately and honestly.
l)
Students With Disabilities
If you have special needs due to a disability, and are registered with the Office of Disability Services, we need to know as soon as possible! Do not assume that we have received the paperwork! (Although it is your responsibility to make sure we receive the paperwork as soon as possible from Disability Services)
7) Tentative
Schedule
As a general rule, we do not post a day by day schedule for the course. Right now, assume that we are going to cover all of the topics/chapters in the book. The midterm and final will be announced at least 2 weeks in advance. At the end of each lecture, we will announce the next lecture’s reading and distribute any assignments. Readings and assignment distributions will be posted on the web page and/or newsgroup (so read frequently) and handouts will be posted outside my office door.
8) What
do I do when I need help?
Although I would like to be able to help each of you with your problems in this course, with large numbers students, this is not always practical. Therefore, when asking questions, please try and talk with the TA’s first. They have probably covered the question many times with other students. Take advantage of their office hours first! TA’s in the class only have 25-30 people to deal with, so they can spend much more time with you.
9)
Acknowledgement Form
The final point is that once you have read and understood this syllabus, you must sign and return the acknowledgement form, indicating that you will abide by the terms of this syllabus.