(Latest Revision -- August, 2001)

Course Description
for Operating Systems I: CS 3750

"An elephant is a mouse with an operating system."

TERM: Fall 2001


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 Stanislaus

OFFICE HOURS: MWF 12:20-13:25, TTh 11:15-12:20; or by appointment (Office hours commence on Sept 06.)

E-MAIL: john@ishi.csustan.edu

HOMEPAGE: http://www.cs.csustan.edu/~john/jsHomepage.html


It is important that you be adequately prepared for taking this course, CS 3750. Check with me if you have not passed both:


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.


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 you.


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.


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-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 class schedule.


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 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.


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.


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 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 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 workstation.


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: http://thelist.internet.com. 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.