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

(Last Revision -- 08/09/99)

TERM:

FALL 1999

CLASS CODE:

40338 CS 3750 Section 001

INSTRUCTOR:

John Sarraille, Professor of Computer Science

OFFICE:

P-286, Professional Schools Building, Cal State Stanislaus

OFFICE HOURS:

MWF 9:00-10:00; Tu-Th 10:00-11:0-0; or by appointment

TELEPHONE NUMBERS:

Office: 667-3345; CS Dept: 667-3185

E-MAIL:

john@ishi.csustan.edu

HOMEPAGE:

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

BASIC SCHEDULE INFO:

Class meets Tu-Th 11:15-12:42 in P-101

My expectation is that everyone will attend all the classes and keep current 
with everything that is happening in class.

PREREQUISITES:

It is important that you are adequately prepared for taking this course, CS 
3750.  Check with me if you have not passed one or both of the following 
classes:

1) Data Structures and Algorithms (CS 3100) 
2) Computer Organization (CS 3740)

REQUIRED TEXT:

"Operating Systems Concepts, Fifth Edition" by Abraham Silberschatz and Peter 
Galvin (ISBN: 0-201-59113-8) 

RECOMMENDED READING:

You will doubtless need a textbook on C as a reference while doing programming 
assignments.  Feel free to use any book on C that you like.  

COMPUTER EQUIPMENT:

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.

If needed, we'll have a special lab session to teach you what you need to know 
in order to use the Ultra's for class assignments.

The Ultra's and other CS computers are located in the Computer Science Lab: 
P-288.  P-288 is in the Professional Schools Building, in the extreme 
northwest corner of the north wing.  

Some programming using a C-threads package on the NeXT'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".

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 
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 is looking for 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@siggraph.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".  

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.





MODEM CONNECTIONS:

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

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 advertize in the yellow pages and in newspapers.

If you get an Internet connection, make sure you get "telnet" and "ftp" 
capability so that you can login remotely to your computer account at the 
college and also transfer files back and forth.  To be ready to do telnet and 
ftp, you may need to get some special add-on software from your ISP.

NETWORK AVAILABILITY OF COURSE MATERIALS:

Most course documents, assignments, supplements, and so on will be made 
available via gopher.  To access my gopher server, you can do the command 
"gopher ishi" from any of the CS Department NeXT computers, or you can open 
the URL "gopher://ishi.csustan.edu" from any web browser on any computer 
connected to the campus network or Internet.  From there, just select 
"Classes" and then "CS3750_OperatingSys_I" to get to the area containing the 
class information.




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.

COVERAGE:

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, programs, and exams.  There 
will be approximately seven written homework assignments, approximately two 
programming assignments, and exactly three course exams.  The course exams 
will consist of two in-term exams and a final.  

In determining your grade, normally your homework average will be given a 
weight of 20%, your programming assignment average a weight of 35%, and each 
exam a weight of 15%.

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:

Late assignments will be penalized by 10% credit per calendar day (yes, 
including holidays and weekends).  Homework assignments late more than 2 days 
and programming assignments late more than 5 days will not be accepted.

SPECIAL PROBLEMS:

If you think you are going to be unable to take a test or turn in an 
assignment on time due to circumstances beyond your control, then let me know 
at the very earliest time possible.  I'll try to make some fair arrangement 
with you.

RESPONSIBILITY FOR YOUR OWN WORK:

You may discuss program and homework assignments with other people, including 
your classmates, as much as you like, but you may not discuss or give away any 
specific program code segments.  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 must not accept any other help. You must not copy or discuss code from any 
other source.  

Quizzes and exams must be written with no discussion or help from other 
students.  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.  The rest of the class will be told any new 
information that arises from such an exchange.

If there is compelling evidence that homework, programs, or tests were not 
done according to the above criteria, credit will be withheld.

PARTICIPATION:

I hope to be accessible, helpful, and responsive to your needs during this 
course.  You can do well, and I want that. 

To optimize your likelihood of success, consider participating fully in the 
class:  Attend all classes.  Faithfully listen and take notes.  Finish all 
assignments on time.  Review your notes before each class.  Reply to questions 
or remarks addressed to you.  Ask questions.  When you are not getting 
anywhere on some problem, and it's not the kind of thing you can get resolved 
in class, seek my help during office hours.  

Do all this, even when things are not going well.  And have fun!