(Latest Revision -- August, 2002)
Course Description
for Operating Systems I: CS
3750
"An elephant is a mouse with an operating system."
TERM: Fall 2002
CLASS INFO FROM SCHEDULE:
40580 CS 3750 001 Operating Systems I Lec 3.0 MW 10:10-11:08P-114
40581 CS 3752 001 Operating Systems I Lab 0.0 F 10:10-11:08 P-114 or P-288
INSTRUCTOR: John Sarraille, Professor of Computer Science
OFFICE: P-286, Professional Schools Building, Cal State
Stanislaus
OFFICE HOURS: MWF 9:00-10:00, TTh 10:05-11:05;
or by appointment
(Office hours commence on Sep 04 and end on Dec 09.)
E-MAIL:
john@ishi.csustan.edu
HOMEPAGE:
http://www.cs.csustan.edu/~john/jsHomepage.html
PREREQUISITES:
It is important that you be adequately prepared for taking this
course, CS 3750. Check with me if you have not passed
both:
- Data Structures + Algorithms (CS 3100), or the equivalent,
and
- Computer Organization (CS 3740), or the equivalent.
COURSE OBJECTIVES:
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
systems.
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
systems.
Other aims of this course include developing programming skills
and learning to program cooperating concurrent
processes.
REQUIRED TEXT:
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.
RECOMMENDED READING:
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
you.
COURSE COVERAGE:
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 discuss material
from chapters 1-10, giving special attention to chapters 7 and 8,
which deal with the areas of process control. Also we 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
lecture.
Each day we do whatever we need to do: lab, lecture, or some of both.
Usually we will meet in the lecture room (P-114) 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
class schedule.
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. Homework problems
will be exercises from the textbook or assignments to write 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.
LATE ASSIGNMENTS:
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.
PARTICIPATION:
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
engineering solutions.
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
have access.
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
problems.
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
http://www.cs.csustan.edu/~john/Classes/CS3750/
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:
http://www.cs.csustan.edu/~john/Classes/General_Info/
COMPUTER EQUIPMENT:
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
Science Lab:
P-288.
P-288 is in the Professional Schools Building (aka
Demergasso-Bava Hall), in the extreme northwest corner of the
north wing.
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
document entitled
loginDirections.html.
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
account.
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, julie@eos.csustan.edu.
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
ssh or telnet from some other kind of computer in the lab, such
as a Macintosh or a "Wintel".
Remote login programs such as ssh and telnet make it possible for
many people to use a given workstation simultaneously. We will
have a demonstration of how to get an ssh connection. (You can
probably get help just by asking someone in the lab.) You can
also access the Sun Ultra's via an ssh or 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 login remotely to a CS
Department workstation.
MODEM CONNECTIONS:
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-3687.
INTERNET CONNECTIONS:
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:
http://thelist.internet.com.
ISP's also advertise in the yellow pages and in newspapers.
If you get an Internet connection, make sure you have remote
login and file transfer capability. Depending on what
kind of computer you have, you may need to get some special
add-on software for doing doing remote login and file transfer.
For more information about this, read the
telnet and ftp help sheet.
For additional information, ask me or the CS Lab Administrator,
Julie Gorman.