(Latest Revision -- August, 2001)
"An elephant is a mouse with an operating system."
for Operating Systems I: CS
TERM: Fall 2001
CLASS INFO FROM SCHEDULE:
40590 CS 3750 001 Operating Systems I Lec 3.0 MW 10:10-11:08 P-159
40591 CS 3752 001 Operating Systems I Lab 0.0 F 10:10-11:08 P-159 or P-288
INSTRUCTOR: John Sarraille, Professor of Computer Science
OFFICE: P-286, Professional Schools Building, Cal State
OFFICE HOURS: MWF 12:20-13:25, TTh 11:15-12:20; or by
appointment (Office hours commence on Sept 06.)
It is important that you be adequately prepared for taking this
course, CS 3750. Check with me if you have not passed
- Data Structures + Algorithms (CS 3100), or the equivalent,
- Computer Organization (CS 3740), or the equivalent.
The main aim of this course is for you to develop an
understanding of important concepts and techniques involved in
the design, implementation, and use of computer operating
Some specific goals are to learn about what an operating system
does, about sequential processes, the control of concurrent
processes, memory management, protection, security, network
operating systems, and truly distributed operating
Other aims of this course include developing programming skills
and learning to program cooperating concurrent
Operating Systems Concepts, Sixth Edition
written by Abraham Silberschatz, Peter Galvin, and Greg Gagne;
published by John Wiley & Sons, Inc., ISBN 0-471-41743-2. I'll refer
to this book as "Silberschatz" for short. You can
obtain free supplements to the textbook here.
For example, there are online appendices and sets of the "slides" that
I use for lecture notes.
You will probably want a textbook on C++ as a reference while
doing programming problems. Feel free to use any book on C++
that you like. Speak with me if using C++ is a problem for
We will read all of Silberschatz. Operating Systems is a big area,
and you have to do a lot of reading to get an adequate background in
the subject. In class we will cover chapters 1-10 in detail, giving
special attention to chapters 7 and 8, which deal with the areas of
process control. I will discuss topics from chapters 15-17 and other
chapters as time allows. The material on distributed systems has
special relevance for the future of operating systems.
BASIC INFORMATION ABOUT CLASS SESSIONS:
For technical reasons, students in this class are required to sign up
separately for CS 3750 (lecture) and CS 3752 (lab). One might
conclude from looking at the Schedule of Classes that mondays
and wednesdays are "lecture days" and that fridays are "lab days." In
fact, each of our class session will be a mixture of lab and
Each day we do whatever we need to do: lab, lecture, or some of both.
Usually we will meet in the lecture room (P-159) whatever day of the
week it may happen to be.
There will be some activities that will require us to meet in the
CS department laboratory (P-288)
The dates of those sessions will be announced later in class and
inserted into the
TESTS & GRADING:
The course has three main components: homework, concurrent programs,
and exams. There will be written homework assignments due
approximately every two weeks, two concurrent programming assignments,
and three in-term course exams. Many homework problems will be
exercises from the textbook. Some homework problems may involve
writing small programs. The in-term exams will cover the reading and
lectures. There will not be a final exam.
In determining your grade, normally your homework average will be
given a weight of 20%, your average score on the concurrent
programming assignments a weight of 35%, and your average on the exams
a weight of 45%.
The exception to that rule is that you are not allowed to pass the
course if you fail any of the three main components.
Get started early on your assignments. That way, if you run into
difficulty, you can seek help in class and/or office hours in a timely
Late assignments will be penalized by 10% credit per calendar
day (including holidays and weekends). Homework assignments
late more than 2 days and concurrent programming assignments
late more than 5 days will not be accepted.
I expect everyone to attend all the classes, to participate,
and to be well informed as to what is going on. I will keep
track of your attendance.
I hope to be accessible and helpful to you during this course.
I want you to get as much as possible out of it. But remember,
we are a team and you are a key player.
Read everything I assign ASAP, and read with care. Read
difficult material more than once! Attend all classes. Pay
close attention. Take notes. Review your notes before each
class. Get started on assignments early. Do a little each
day, and bring your questions and problems concerning these
assignments to class each day.
Finish assignments and reading on time. Do what you can to keep class
discussion interesting and to the point. Reply to questions. Ask
questions and make remarks if you feel you have something to add, or
if you feel something needs to be explained better.
RESPONSIBILITY FOR YOUR OWN WORK:
Assignments: When your purpose is to clarify the meaning
of a question or to reach an understanding of program
specifications, you may discuss homework and programming
assignments with other people, including your classmates, as
much as you like. You may also freely discuss the relative
merits of various general approaches to designing and
You are permitted to use algorithms or segments of code from
any of the published printed matter in our library, from our
course text, or from any programming textbooks to which you
You may ask me for help and hints. Ask in class, so that
everyone has a chance to benefit from the discussion.
You may not discuss or give away any program code
segments or give away any specifics of answers to homework
You may not accept program code or accept help from any
source other than those described above.
Exams: You must write your exams with no discussion or
help from anyone. The one exception is that you are allowed to
come forward and ask me to clarify the meaning of a test
question, if you wish. It will be up to me to decide how to
answer, or whether to answer at all. I will tell the class any
new information that arises from such an exchange.
Penalties: If there is compelling evidence that
homework, programs, or tests were not done according to the
above criteria, I will withhold credit.
NETWORK AVAILABILITY OF COURSE MATERIALS:
Course documents, assignments, supplements, and so on will be
made available via the world wide web. To access the on-line
CS 3750 materials, you can open the URL
from any web browser on any computer connected to the campus
network or the Internet.
Also, there is a miscellaneous collection of information that
you may want to use from time to time. It is located here:
Each of you is supposed to have an account that gives you access to
all the Computer Science Department Sun Ultra computers. The
computers have a network file system, so you get the same home
directory, regardless of which Sun Ultra you log on to.
If you don't seem to have access to the Ultra's, then let me
know right away, preferably by e-mail. Give me your full name
and the name of the class. I'll see to it that an account is
created for you, and I'll give you the account information at
the next class meeting.
Most students who take CS 3750 are already familiar with how to
use the Sun Ultra's to develop C++ programs and how to e-mail
me source code and test scripts. If you want to learn or
brush-up on these skills, please login to one of the Ultra's
and complete the
"Hello World" tutorial.
If you have any problems, let me know and I'll help you.
The Ultra's and other CS computers are located in the Computer
P-288 is in the Professional Schools Building (aka
Demergasso-Bava Hall), in the extreme northwest corner of the
Some programming using a pthreads package on the Ultra's will
be necessary. When the time comes to start this work, I'll set
you up with what you need.
Generally, CS Department workstations are available for access
and use on a 24-hour basis. However campus computer labs do
not remain open at all hours. Therefore sometimes network and
modem connections are the only means available for connecting
to a workstation. For more information about network and modem
connections, see the sections below entitled "MODEM
CONNECTIONS" and "INTERNET CONNECTIONS". Also see the course
P-288 will be open basically mid-morning until about 5:00
p.m.. During these times, you can be physically present in the
CS Department Lab while using a department computer. This can
be very beneficial because you then have the opportunity to
work and communicate with fellow students and members of the
staff and faculty.
Due to budgetary constraints beyond our control, the hours
during which P-288 is open are subject to change on short
notice. Please check the postings of the lab hours at the
entrance to the lab or in the "message of the day" that is
printed on your screen when you log on to your Sun Ultra
Incidentally, the CS Department often seeks volunteers and
work-study students to help keep the lab open longer hours.
For further information, ask our system administrator, Julie
Gorman: P-288C, 667-3273, email@example.com.
While you are in the CS Lab, you will be able to access Sun
Ultra workstations by logging in directly at the console, or by
using telnet from some other kind of computer in the lab, such
as a Macintosh or a "Wintel".
Telnet makes it possible for many people to use a given
workstation simultaneously. We will have a demonstration of
how to get a telnet connection. (You can probably get help just
by asking someone in the lab.) You can also access the Sun
Ultra's via a telnet connection from most any computer on the
campus local network, such as those in P-106, P-120, L-125 and
L-145. Generally those labs are open during the same hours
that the campus library is open. Please check postings at the
labs or ask lab personnel in order to get further information
about lab hours. Lab assistants (wearing red vests) should be
able to show you how to telnet to a CS Department
Some phone numbers for making modem connections are: from
Turlock 669-9834; toll-free from Modesto 523-2173; toll-free
from Merced 723-2810; and toll-free from Stockton 467-5399.
There has been recent discussion of discontinuing the
availability of some of these connections. Check with the
computer center's (OIT's) help desk to get the latest
information. The help desk is in L-130, and the telephone
number is 667-3343.
You may want to purchase Internet connectivity. This is
not a requirement and not necessary for success,
but it can be a great time-saver and a convenience once you
have gotten past the hurdle of setting everything up.
There are several Internet service providers (ISP's) that serve
this area. Chances are that members of the class can make good
recommendations. We can devote some time to this topic on the
first day of class.
One can find many ISP's by using the site:
ISP's also advertise in the yellow pages and in newspapers.
If you get an Internet connection, make sure you get
telnet and ftp capability. This will allow you
to log in remotely to your computer account at the college and
also transfer files back and forth. For doing telnet and ftp,
you may need to get some special add-on software. For more
information about this, read the
telnet and ftp help sheet.
For additional information, ask me or the CS Lab Administrator, Julie