(Latest Revision -- January 25, 2018)
[2018/10/25: Initial Revisions]

Course Description
for Operating Systems I: CS 3750

"An elephant is a mouse with an operating system."
TERM: Spring 2018


🍇 20566 CS 3750 001 Operating Systems I Lec 3.0 TuTh 14:00-14:50 P-101 
🍇 20567 CS 3750 002 Operating Systems I Lab 0.0 TuTh 14:00-14:50 P-101
INSTRUCTOR: John Sarraille, Professor of Computer Science

OFFICE: P-286, Professional Schools Building (also known as Demergasso-Bava Hall), Cal State Stanislaus

OFFICE HOURS: (The first day of scheduled office hours is Wednesday, January 31, 2018, and the last is Wednesday, May 16, 2018.)

E-MAIL: john@ishi.csustan.edu

PROFESSOR SARRAILLE'S HOMEPAGE: http://www.cs.csustan.edu/~john/js.html

CS 3750 HOMEPAGE: http://www.cs.csustan.edu/~john/Classes/CS3750/


It is important that you be adequately prepared for taking this course, CS 3750. Check with me if you have not passed both: 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.


Silberschatz: Operating Systems Concepts, Ninth Edition ; written by Abraham Silberschatz, Peter Galvin, and Greg Gagne; published by John Wiley & Sons, Inc; ISBN-13: 978-1118063330


Peek: Learning the Unix Operating System (5th edition); by Jerry Peek, Grace Todino-Gonguet and John Strang; published by O'Reilly and Associates, 2001; ISBN 9780596002619


I strongly recommend that you read the Silberschatz book - all of it. Operating Systems is a big area, and you have to do a lot of reading to get an adequate background in the subject. I expect to discuss material in chapters 1-13 in class, giving special attention to chapters 5 and 7-9, which deal with the areas of process control and memory management. I'll discuss more material if time allows.


For technical reasons, students in this class are required to sign up separately for a lecture section and a lab section, and a typical CSU Stanislaus Schedule of Classes indicates that lecture and lab occur on different days or times. In actual fact, I don't run the class that way.


I'll give you problems you can work on to help you study for tests. I don't collect or grade homework, and it does not have any direct effect on your course grade. However I'll go over the answers as part of the preparation for tests, and I think working the problems is likely to help you do better on tests.

There will be: Generally homework will be a combination of problems from the textbook and assignments to write small essays. Quizzes will cover the reading and lectures.

By default, the quizzes combined will count for 60% of your grade and the final will be worth 40%. If your scores on these tests are uneven, I'll see about giving more weight to what you did better.


When you sign up for this course, and when you remain in this course, you have agreed to be available during all the class meeting times and the final exam time. You have also agreed to follow all the course rules and guidelines. Therefore, I will ordinarily not grant requests to change the way the course is conducted. For example, I don't ordinarily give make-up tests to individual students, or allow individual students to take tests before or after the rest of the class.

Having said that, it is possible that there could be a compelling reason why I should make a special accommodation for you. If it has to do with a disability, you should probably discuss it with someone in the Disability Resource Center. You can also discuss the matter with me, if that seems like the more appropriate option, and I'll do my best to make the right decision or referral.

Get started early on assignments. That way, if you run into difficulty, you can seek help in class and/or office hours in a timely fashion.

We can have class discussions about which dates the class will take quizzes. I may be willing to change some of these dates. If you want a change in the schedule, please bring this up (in class, preferably) as soon as possible, and not at the last minute. (It's usually a good idea for class members to try to work out some consensus before bringing the subject up with me.)


If you find yourself in difficulty with some aspect of the course, seek help from me promptly. Maybe I can clear things up if you ask me a question in class. Other students may benefit from hearing the discussion. You may speak to me after class or during my office hours. You may send me a message by e-mail. You are entitled to get help this way. Office visits and such are a normal part of a college education. Whatever you do, please don't subvert your chances of success by continuing to spin your wheels when you are stuck in a rut. To get through a class like this successfully, you may have to get over foolish pride, stubbornness, and/or shyness.


I hope to be accessible and helpful to you during this course. I want you to get as much as possible out of it.

Remember that you are a member of a class, a group, a team. People intentionally designed the university education to be a group activity. If you scrunch down in your seat and sew your mouth shut, you make your education and the education of the other students more difficult. Don't be worried about seeming ignorant, because we are all lacking in education. A college education is self-help for ignorant people, and that includes the instructors, by the way.

To do well in the class, and to help the rest of the class, read everything I assign as soon as possible, and read with care. Read difficult material more than once! Attend all classes. Pay close attention. Take notes - yes, write things down on paper, or key into a computer. Studies show that people who write notes learn better. It has to do with the actual activity of writing while listening and thinking. 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 explained better.


Sometimes it can be difficult for the student to figure out the difference between 'cheating' and 'working smart.' Here is some guidance:

Homework: Since the homework is not graded, you are free to discuss it with others to the extent you want. To get the most out of it, you should probably do as much as you can by yourself, but you'll have to be the judge of how much that is. We'll go over all the answers in class, before you get any related questions on any quizzes.

Tests: You must write your quizzes and final exam 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.

Academic Dishonesty: If caught cheating, expect to receive the full extent of consequences allowed under University policy. Cheating degrades the integrity and the core values of our shared educational system. There are always better alternatives. Be open to them.


I will make course documents, assignments, supplements, and so on available on the world wide web. To access the on-line CS 3750 materials, you can open the URL:


There is also 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 Lab computers. Most of the computers share a networked file system, and you get the same home directory, regardless of which which one you log into.

If you don't seem to have access to those computers, then let me know right away.

The 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 second floor of the north wing.

Generally, CS Department workstations are available for access 7 days a week and 24 hours per day. However campus computer labs do not remain open at all hours. Therefore sometimes network connections are the only means available for connecting. See the section below entitled "INTERNET CONNECTIONS" for more information. 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 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, in the "message of the day" that is printed on your screen when you log on to your CS computer account, or check on the web.

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, Deep Gill: P-288C, (209) 667-3273, dgill@cs.csustan.edu.

You can access many CS Department Lab computers via an ssh or sftp connection from anywhere on the Internet. When the CS Lab is closed, you may wish to login from a host on the campus local area network, such as those in the University open labs. Generally those labs are open during the same hours that the campus library is open. Please check postings online, or at the labs, or ask lab personnel in order to get further information about lab hours. Lab assistants should be able to show you how to establish ssh or sftp connections to a CS Department workstation. You'll need to know your login name and password.


You may want to obtain Internet connectivity for your residence. 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 (ISPs) that serve this area. Chances are that members of the class can make good recommendations. If you like, we can devote some time to this topic in class.

One can find many ISPs by doing a web search. ISPs also advertise in the yellow pages and in newspapers.

If you get an Internet connection, make sure you get remote login (ssh) and file transfer (sftp) software. This will allow you to log in from home to your computer account at the college and also transfer files back and forth. For more information about this, read the remote login and file transfer help sheet. For additional information, ask me or the CS Lab Administrator, Deep Gill: P-288C, (209) 667-3273, dgill@cs.csustan.edu.