(Latest Revision -- 08/16/00)
"An elephant is a mouse with an operating system."
for Operating Systems I: CS
TERM: Fall 2000
CLASS CODES: 40660 CS 3750 001 Operating Systems I Lec 3.0 TR
INSTRUCTOR: John Sarraille, Professor of Computer Science
OFFICE: P-286, Professional Schools Building, Cal State
OFFICE HOURS: MWF 9-10, TTh 11:15-12:15; or by appointment
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, Fifth Edition by Abraham
Silberschatz and Peter Galvin, published by John Wiley & Sons,
Inc., ISBN 0-471-36414-2.
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 and Galvin. 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-9 in detail, giving special attention to chapters 6
and 7, which deal with the key area of process control. I will
discuss topics from chapters 10-24 as time allows. The
material on distributed systems has special relevance for the
future of operating systems.
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 fashion.
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 lively 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
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 10 and
Sun Ultra 30 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-150, and the telephone
number is 667-3687.
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 Gorman.