<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
The University
of British Columbia
Department of Computer Science
CPSC 315: Introduction to Operating Systems
2004 Winter – Term 2
Instructor:
Harinder Singh Khangura (khangura(AT SYMBOL)cs.ubc.ca) Office: CICSR/CS 357
Office Hours: Mon 12:30-13:30, Tue 11:30-12:30, Fri 12:30-13:30
Prerequisite: One of CPSC 216, CPSC 252 and one of CPSC 218, EECE 259
Introduction
This course deals with design and implementation principles of operating systems. This course will touch on many subjects in this area, but will not explore any one in great detail. The emphasis will be on fundamental operating system issues and principles.
As an additional resource beyond lectures, most course content is contained in the WebCT web pages.
Tentative Outline of Topics Covered:
· Introduction
· The Process Concept and Related Issues
· Critical sections and mutual exclusion
· Synchronization and IPC
· Process and Kernel Design
· Memory Management and Virtual Memory
· I/O processing and File systems
· Deadlock
Things You Probably Already Know
The URL for this course is https://www.elearning.ubc.ca/login. If you do not have a Netinfo/Interchange account already, go to http://www.netinfo.ubc.ca and get one!
Unix Accounts
You'll each be given a UNIX account on which you can do your assignments. You'll also hand in each assignment electronically using this account (details will follow). Programming assignments are to be done in C, not C++. We are making the assumption that you have some familiarity with a UNIX environment. This includes logging-in and out, editing programs (with either VI or EMACS) and compiling programs (with cc). We also assume you have had exposure to makefiles. If any of this is not true, now would be a good time to start shopping for and reading a UNIX text.
Bulletin-Board
There is a bulletin-board devoted to this course. It is accessible from the WebCT web-pages. This is required reading for the course. You must read it at least 3 days per week, and preferrably daily. In it you will find handouts, assignments, and material we forgot to mention in the web-notes (not all that infrequent). This bulletin-board will be the primary forum in which you are to ask questions. We will read the group daily and you can expect prompt replies. Do not post code on the bulletin board (other than perhaps small fragments, if necessary). Due to the large class size we regret that we cannot answer queries of a general nature via e-mail; these should be directed to the bulletin-board. Personal questions (ones that you don't want anyone else to see) may be sent to your instructor via e-mail.
Problems with your undergrad accounts or the undergrad servers should be directed to help@ugrad.cs.ubc.ca. Use hardware@ugrad.cs.ubc.ca to report hardware problems in the undergraduate labs.
Textbook
The required textbook for this course is "Operating
System Concepts, 6th Edition (Windows XP Update)", by Silberschatz,
Galvin, and Gagne, copyright 2003. I intend to follow
the text and the online course notes quite
closely. It is an excellent book, which will serve you for years to come. It is
also practical since it deals with many modern operating systems (e.g., Windows
XP, Windows 2000, Linux, Solaris 2, FreeBSD, etc.) It's available at the UBC
bookstore or used textbook stores. The 6th edition without XP, or the 5th
edition, would also be OK.
|
|
If you don't already have them, we suggest you gain access to C and UNIX texts of some sort. Although books for this course are expensive, good C and UNIX books should be very useful to you for years to come. The "C bible" is "The C Programming Language, 2nd edition", Brian W. Kernighan and Dennis M. Ritchie.
Course Evaluation
|
Assignments |
20% |
|
Midterm |
25% |
|
Final Exam |
55% |
To pass the course, you must
1. pass the final exam,
2. achieve an average of at least 50% over all of the assignments
3. attempt and hand in each assignment (and they must be submitted by the due date)
The instructor reserves the right to adjust this marking scheme, if necessary.
Assignment due dates are firm. If you are not done on the due date, hand in what you have for partial marks (anything is worth *some* marks). Late assignments will NOT be permitted unless a medical note is provided.
The midterm is tentatively scheduled for Thursday, February 24 th, 2005 during class time. This date may change!
If for some reason you are unexpectedly absent (e.g., illness, car accident on the way to UBC, etc) from a test you must send your instructor (or have someone else send it) on the same day detailing your absence and when you expect to return to class. As soon as you return to classes you are to make arrangements with your instructor to discuss the reason for your absence and how the work is to be made up. You should also be prepared to provide a medical doctor's note if you were ill or appropriate documentation for something like an accident.
Should you fail to follow the above rules your absence will be treated as if you skipped class. Generally that means you would get a grade of zero for the missed work.
Submitting the work of another person as your own (i.e., plagiarism) constitutes academic misconduct, as does communication with others (either as donor or recipient) in ways other than those permitted for assignments, quizzes/tests, and exams. Such actions will not be tolerated. Specifically, for this course, the rules are as follows:
Violations of these rules constitute very serious academic misconduct, and they are subject to penalties ranging from a grade of zero on a particular assignment to indefinite suspension from the University. More information on procedures and penalties can be found in the Department's Policy on Plagiarism and collaboration and in the University Calendar. If you are in any doubt about the interpretation of any of these rules, consult the instructor or a TA!