(Last Revision -- 09/04/97) ////////////////////////////////////////////////// COURSE INFORMATION FOR OPERATING SYSTEMS I CS 3750 SECTION 1 ////////////////////////////////////////////////// "An elephant is a mouse with an operating system." TERM: FALL 1997 CLASS CODE: 40208 CS 3750 Section 001 INSTRUCTOR: Prof. John Sarraille OFFICE: CS-102B, Cal State University OFFICE HOURS: MWF 10:20-12:00; or by appointment PHONE NUMBERS: Office: 667-3345; CS Dept: 667-3185 E-MAIL: john@ishi.csustan.edu HOMEPAGE: http://yahi.csustan.edu/~john/jsHomepage.html BASIC SCHEDULE INFO: Class meets MWF 15:35-16:33 in C-202 Everyone is expected to attend all the classes. It is your responsibility to keep current with everything that is happening in class. PREREQUISITES: It is important that you adequately prepare for taking this course, CS 3750. Check with me if you have not taken one or both of the classes below: 1) Data Structures and Algorithms (CS 3100) 2) Computer Organization (CS 3740) GETTING STARTED: Some members of the class may be recent transfer students. They and others may not be familiar with how to use some of the various computers and computing labs on campus, or may need information on how to use the campus network or how to access campus computers from off campus. Those of you with such needs should let me know, preferably during class when other students can take part in a discussion. Also, if there seems to be a need, we can arrange to visit one or more labs for demonstrations. REQUIRED TEXT: "Operating Systems Concepts" by Abraham Silberschatz and Peter Galvin (ISBN: 0-201-50480-4) 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. The following book is a 'classic' and I have requested that the campus bookstore keep some copies on hand. "The C Programming Language", by Kernigan and Ritchie, published by Prentice Hall. (ISBN 0-13-110362-8) Another C book that I like to use as a reference is "A Book on C, programming in C, 2nd Edition", by Al Kelley and Ira Pohl, published by Benjamin Cummings. (ISBN 0-8053-0060-0) EQUIPMENT: Each of you will eventually have an account on the Computer Science Department Sun and NeXT computers located in CS-102, the CS Department Laboratory. Some programming using the C-threads package on the NeXT's will be necessary. CS-102 is open during certain hours. Due to budgetary constraints beyond our control, these hours are subject to change on short notice. Please check the postings of the lab hours that are included in the "message of the day" that is printed on your screen when you login to your Sun or NeXT account. Generally, the Sun and NeXT 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". The CS lab facilities are located in two rooms: CS-102, and CS-103. The CS Department Lab is open during certain hours (basically mid-morning until about 5:00 p.m.). During these times, you can be physically present in the department lab while using a computer. This can be very beneficial when you desire to work and communicate with fellow students and members of the faculty. Due to budgetary constraints beyond our control, the hours that the CS Department Lab will be open are subject to change on short notice. Please check the postings of lab hours that are given in the "message of the day" that is printed on your screen when you log in to your Sun account. Incidentally, the CS Department is looking for volunteers to help keep the lab open longer hours. For further information, ask our system administrator, Julie Gorman. While you are in the CS Lab, you will be able to access Sun and NeXT workstations by logging in directly at the console, or by using telnet from one of the other computers in CS-102 or CS-103. Telnetting in from another computer makes it possible for many people to use a given workstation simultaneously. Let me know if you need a demonstration of how to get a telnet connection. Also, you can often find out a lot just by asking people in the lab. You can also access the Suns and NeXTs via a telnet connection from most any computer on the campus local network. There are many such computers in the campus general computing labs in L-125 and L-145. Generally these 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 phone numbers for making modem connections are: from Turlock 667-3130, 667-3794 & 664-7072 (28.8K); toll-free from Modesto 523-2173; toll-free from Merced 723-2810 & 723-2826; and toll-free from Stockton 473-1225 (28.8K). 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 access providers (ISP's) that service this area. You can find many of them by searching "internet service providers ISP" in a web-browser. Here are some possibly useful URL's from a search that I did: http://www.herbison.com/herbison/iap_meta_list_us_ca.html http://www.gvn.net/~creative/access.htm http://www.isps.com/advscripts/United_States/California.asp Also, you can find ads in the yellow pages and newspapers. If you get an Internet connection, make sure you get "telnet" and "ftp" capability so that you can connect to your computer account at the college and 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: Many 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 most any networked Unix computer on campus, 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: You are expected to read all of Silberschatz and Galvin. In class we will completely cover chapters 1-9, giving special attention to chapters 6 and 7, which deal with the key area of process control. We will cover the topics I think you need most to see from chapters 10-21 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 six 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. 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, let me know at the earliest possible time. I will do my best to be fair. 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 and helpful to you during this course. I want you to get as much as possible out of it. But remember that you have to get involved to get educated. You have to hold up your end of the class, and maybe even help some other members of the class hold up their end. A college class is a group inquiry. Attend class. Listen. Think. Wonder a little about how things might be done another way. Reply to some of the questions asked by me or other members of the class. You will have some of your own questions -- ask them. Make remarks. If you have something to say that you think is half-way important, say it! You don't have to stand on ceremony. Come to office hours or see me after class if you want to discuss something one-on-one. Remember too that class, like chance, "favors the prepared mind". Read material before the day it is covered. Do homework and programs early. Take lecture notes and review them before each class. Make notes on what you read.