CSCI 4534 - Operating Systems
Syllabus
Course home page
http://www-graphics.stanford.edu/~tolis/courses/csci4534-04-spring/
Instructor
Name
| Apostolos "Toli" Lerios
|
Affiliation
| Sun Microsystems, Inc.
|
Office location
| Room 201, Level 2, Building C10, HUT campus
|
Office hours
| Monday, Wednesday, Friday 15:00-16:00 (immediately before class)
Christine Lerios present on Friday office hours for English assistance
|
Phone
| 868 3730
|
Email
| toli@lerios.org
|
Home page
| http://www-graphics.stanford.edu/~tolis/
|
If you have any questions or comments, you should first try to reach
the instructor during office hours, preferably in person. Email is
monitored infrequently, so it should be used primarily to submit
assignments (see below) or as a last resort.
Description
Analysis and design of basic operating system concepts, including
multiprogramming, inter-process communication and synchronization,
scheduling, file systems, memory management, security, and
deadlock. Examples are drawn from real operating systems including
Linux (a member of the Unix family) and Windows 2000 (a member of the
Windows NT family). Programming tasks are included in the assignments.
Objectives
- Introduce basic principles of operating system design.
- Provide the opportunity to develop basic multi-processing
applications with focus on operating system design issues.
- Provide the opportunity to develop basic simulators of common
operating system functions, such as memory or RAID management.
- Give students enough background to be able to pursue further
studies of operating systems at a research level, or start a career in
design and implementation of operating system kernels or drivers.
The course objectives are met via lectures and graded assignments:
- The lecture schedule covers a broad spectrum of OS issues.
- Exercises encourage the students to digest the theoretical
material, while programming tasks solidify the students' practical
skills.
Prerequisites
Knowledge of the following topics is required prior to taking this
course:
- Java (CSCI 3134)
- Computer organization and assembly language (CSCI 3331)
- Data structures (CSCI 5042)
Textbook
Silberschatz, Abraham, Peter Baer Galvin, and Greg Gagne. Operating
System Concepts. Windows XP Update, Sixth Edition. ISBN
0-471-25060-0. John Wiley & Sons, Inc., USA, 2003.
The above link takes you to the book's main website, where you can
also find a listing
of corrections to the book (also local
copy as of February 2004).
Academic honesty
The Academic Honesty Policy at UHCL states: Academic honesty is
the cornerstone of the academic integrity of the university. It is the
foundation upon which the student builds personal integrity and
establishes a standard of personal behavior. The complete text of
the Policy can be found on pages 76-77 of the 2002-2003 Catalog or on-line.
The Honesty Code of UHCL states: I will be honest in all my
academic activities and will not tolerate dishonesty.
Because honesty and integrity are such important factors, you should
be aware that failure to perform within the bounds of these ethical
standards is sufficient grounds to receive a course grade "F" and be
recommended for suspension.
Disability services
Any students with physical disabilities who require special
accommodations should inform the instructor and/or the Academic
Manager before/on the first class meeting.
Coursework
Your course grade is based upon your performance in your coursework,
which comprises four assignments and one final examination:
- All coursework should be the sole work of each student; these are
not group projects (unless stated otherwise).
- Assignments comprise regular exercises, as well as programming
tasks. All assignments should be submitted in electronic form. The
text portion of the assignment should be a plain ASCII text file
viewable via Notepad or equivalent text editor. All programming tasks
should compile and run under JDK 1.4.2_03 for Windows 2000 Service
Pack 4. For details on submitting the code for programming tasks, see
below.
- In your answers to regular exercises, proper use of English
influences your grade as unclear responses do not receive full
marks. Your code should also be adequately commented in good
English. Comments should not point out the obvious (e.g. This
statement sets c=0) but rather the algorithmic intent of the code
(e.g. Initialize the counters). Variable and method names
should be meaningful (but not too long), code should be well-indented,
and, in general, your code should be well-written. Note that excessive
comments are as bad as no comments because they clutter up the code.
- The final examination is in class, and comprises only regular
exercises, without programming tasks. As with assignments, proper use
of English influences your grade. The final examination is an
open-book one, which means you can refer to your textbook at any time
during the test. Also, the lecture slides will be available for your
use during the test on the classroom computer; please use the computer
one student at a time. You may not use your own laptop during the
test.
- All assignments are due 5 minutes after class starts. Late
assignments are not accepted, except for the grace policy described
next.
- The grace policy is designed to accomodate occasional
emergencies. You are given two grace days days that you may
use only for assignments 1, 2, or 3. Grace days are the same
as 24-hour calendar days provided you only include days on which a
lecture takes place. This means that, if you cannot turn in an
assignment on the class day that it is due, you can use one grace day
and turn it in on the following class day (which gives you
two late calendar days in the week, and three during the
weekend); or use both of your grace days on the same assignment and
turn it in on the second class day after the due date. Of
course, you can use one grace day on one assignment, and another grace
day on another assignment. In other words, you can use your grace days
however you wish, without asking for permission in advance. However,
there are no exceptions whatsoever if you turn in an assignment past
its due date (as adjusted for your remaining grace days): it will not
be accepted, and you will get a 0.
- Programming tasks should be submitted as a single zip or jar file
per task. These archives can be turned in as either email attachments
to the instructor's email, or as files on a floppy disk (remember to
write your name on the floppy disk). If an assignment calls for two
tasks, you should submit one archive file for each. All tasks for an
assignment should be emailed together, or placed on a single floppy:
do not send more than one email or submit more than one floppy
disk. The text portion of the assignment should also be an attachment
to the same email, or stored in the same floppy. Each archive should
contain all files necessary to compile and run your task,
except those files which we provided to you.
- If your archive is corrupted, or
- if your code does not compile, or
- if your code does not run,
you get a 0 for the task.
- The Academic Honesty policy does not imply total lack of
cooperation. Students are encouraged to help each other understand the
concepts taught in class, form study groups, or seek out each other's
assistance in understanding the requirements and
background of course assignments. However, students should
not cooperate in carrying out their assignments, nor
cooperate during examinations. Similarly, students are encouraged to
use outside resources, such as libraries or the Internet, while
studying course material and researching algorithms for use in
assignments. However, downloading or copying code from such sources
for inclusion in assignments is a violation of the Academic Honesty
policy; all code and text in assignments should be the original work
of the student.
Grading
Your course grade is based upon your performance in your coursework:
- Your course grade is the weighted average of all four assignments
and the final exam, each having a weight of 20%. All coursework is
graded on a 0-100 scale. Assignment grades over 100 are possible if
the student chooses to complete optional extra credit work, as
specified in each assignment.
- Your course grade is relative to the performance of other
students, in a manner that benefits good students without hurting bad
ones. In other words, the student who has the highest weighted average
receives an "A+", regardless of how is high her actual score
is. However, the worst student in the class does not necessarily get
an "F"; as long as her score is over 50, she gets a grade higher than
"F".
Lectures and classroom rules
Location
| Room 205, Building C4/5, HUT campus.
|
Time
| Monday, Wednesday, Friday 16:00-20:00
|
Additional information:
- There will be two 10-minute breaks during each lecture.
- Attendance is required, unless otherwise stated in the course
schedule below.
- Arrive in the classroom on time to avoid disrupting the
class. Similarly, turn off all cell phones and pagers before the class
begins, and keep them off during the lecture.
- Refrain from smoking inside the classroom, even during the
breaks.
- Students are strongly encouraged to ask questions during class,
even if this requires interrupting the instructor's presentation.
- Students are encouraged to focus on understanding the lecture
material, rather than copying everything down. Accordingly, all slides
used during lecture are available on-line after the lecture. However,
students may wish to jot down any explanatory remarks, clarifications,
and answers to questions.
Course schedule
The following course schedule is subject to minor revisions during the
course of the class, in order to best accomodate student needs.
Date
| Lecture material
| Slides
| Reading (Chapters)
| Assignments
| Notes
|
Friday, March 5
| Introduction, computer/operating system structures
|
| 1, 2, 3
|
Monday, March 8
| Processes, threads
|
| 4, 5
| Assignment 1 handed out
|
Wednesday, March 10
| CPU scheduling
|
| 6
|
Friday, March 12
| The life of a typical US startup company from inception to
(hopefully) profits, with special focus on the participation of non-US
citizens; Q&A by Christine Nguyen Lerios on life in Texas
|
|
| Assignment 1 due
| Due to TOEFL and GRE tests, attending this lecture is
optional; the material covered is not essential to completing coursework.
|
Monday, March 15
| Memory management
|
| 9
|
Wednesday, March 17
| Virtual memory
|
| 10
| Assignment 2 handed out
|
Friday, March 19
| Process synchronization
|
| 7
|
Monday, March 22
| Process synchronization
|
| 7
| Assignment 2 due
Assignment 3 handed out
|
Wednesday, March 24
| Deadlocks
|
| 8
|
Friday, March 26
| File-system interface and implementation
|
| 11, 12, 14 (pp 505-512)
| Assignment 4 handed out
|
Monday, March 29
| Protection and security
|
| 18, 19
| Assignment 3 due
|
Wednesday, March 31
| 16:00-18:00 Linux
18:00-20:00 Windows 2000
|
| 20, 21
|
| The lecture will be given by the students as part of assignment
4; friends, mentors, co-workers are invited.
|
Friday, April 2
|
|
|
| Assignment 4 due
| Open-book final examination covering all chapters listed above
except 20, 21
|
© 2004 Apostolos Lerios