Web link: |
http://www.lawrence.edu/fast/evansj/cmsc450.html |
|
|
Catalog description: |
Viewable at http://www.lawrence.edu/academics/coursedisplay.php?subjcode=CMSC (2.5 MB) |
|
|
Instructor: |
James S. Evans
Science Hall 131
Extension 6571
Home: 734-6304 (not after 10:00 PM, please) |
|
|
Office hours: |
You may either make a specific appointment, or just stop by the office any time that the door is open (that will be most of the time). |
|
|
Class meetings: |
8:30–9:40 M W F, Briggs Hall 419 |
|
|
Text: |
Operating Systems, 3rd ed., by Gary Nutt (University of Colorado at Boulder), published by Addison-Wesley, ISBN 0-201-77344-9 (2004). |
(Errors: click here) |
|
|
Supporting web page: |
http://www.cs.colorado.edu/~nutt/OSAMP/ |
|
|
Coverage: |
The course may include some material selected from other sources. Topics may be introduced in class in a somewhat different order and style than the treatment in the text. The intent is complementation and supplementation, not conflict. Assignments may require that you combine knowledge and skills gained from the text, class presentations, and other reference sources. |
|
|
|
|
Rationale for this course: |
The lay person’s view of an operating system seldom penetrates beneath the glossy surface of the user interface. Some awareness of the internals of computer software systems and their interaction with the underlying hardware will contribute to maturity of understanding among students pursuing a computer science emphasis in their undergraduate years. |
With experience from this course, and/or from the companion Hardware Organization course (CMSC 430) and Computer Architecture course (CMSC 440), you will be better able to comprehend the technical basis for what you may read in the media about, for instance, the challenge to Windows operating systems posed by Linux and the open source movement. |
|
|
|
|
Class meeting format: |
Every member of the class is expected to keep up with the reading assignments in the text in order to participate actively at class meetings. Class periods will be used to focus on highlights and difficult concepts, not on exhaustive coverage of the material from the book. Slides made available by the author of the text will sometimes be used. Members of the class will help decide on the balance to be struck this year among traditional discussion, student presentations, and the author’s slides. |
|
|
|
|
Assessments: |
Frequent problem assignments, two in-class exams, the final examination, and an optional individual project will form the basis for evaluation. |
| Assignments | 45% |
| Hour exams | 30% |
| Final exam | 25% |
| Optional project | displace 5–15% |
|
There is room for individual expression of emphasis among problems, exams, and personal efforts. Persons differ in styles of learning, and you may arrange an individual conference very early in the term to determine how you want these various components to be weighted. |
The cumulative distribution of grades for this course in previous years from this instructor has been as follows: A, 55%; B, 24%; C, 14%; D, 3%; F, 3%. These percentages are merely history, however, and in no way represent quotas or promises for this year. |
|
|
|
|
Assignments: |
There will be ten or so assignments, coming along after every two or three class meetings. |
Assignments are due at 1:00 PM on the stated day. Late work is never fun to evaluate. Each student will begin with a “contingency” account containing 10 “contingency points.” When an assignment is late, this account reduces at the rate of 2 points per calendar day (or fraction thereof). If an assignment can be completed nicely and handed in earlier than 5:00 PM preceding the stated due date, then additional contingency points can be accrued at a rate of 1 per calendar day. The contingency account uses signed integer arithmetic. At the end of the term, the balance may be used to resolve ultimate grading decisions, but there is no predetermined relationship of contingency points to the standard grading scale. |
The text contains many problems. Some seem to be relatively short. Others seem rather challenging. Development of proficiency with such problems is important, through both written exposition and oral expression (in class, or outside of class when studying with others). |
|
|
|
|
Optional individual or group project: |
Some colleges and universities offer a “laboratory” to accompany a course about operating systems, with assignments or “projects” involving UNIX system programming. Some courses study a simple made-up operating system like Minix rather than real ones. Since writing even a tiny operating system is a really big challenge, prewritten software to simulate certain concepts has been used elsewhere. |
Individuals or groups may submit proposals by the end of Week 3 for term projects that could displace 5–15% of the weighting of other components making up the course grade. (A project would not produce “bonus points” or the like.) |
|
|
|
|
Honor code: |
Each piece of work that you submit in this course should bear the Lawrence University honor pledge, your signature, and the date of completion on the final page. |
Please seek help from others whenever you can learn effectively in the process, but always acknowledge the source, nature, and extent of assistance or collaboration. The final product should be distinctively your own. |
|
|
|
|
Assistance: |
CMSC 450 is an advanced-level opportunity intended for mature students who can seek out assistance well in advance of the fabled “point of desperation.” Please bring any ambiguities in the assigned work or any lack of clarity in class presentations to the instructor’s attention immediately. |
|
|
|
|
Instructor’s absence(s): |
In the past the instructor has undertaken non-teaching responsibilities on behalf of Lawrence, and some meetings were held off-campus and involved travel out of town. Although no such obligations are known at this time, there may be a personal trip to New England during the “reading period” break in order to visit an “ancient aunt” and check on some family property holdings. If planes don’t fly back into Appleton on that Sunday, you will be expected to carry on with class activities anyway on Monday.
|
|
|
|
|
Tentative schedule (2010-11): |
The pace will be brisk. Procrastination can be fatal. Keep up! Although the book has 23 chapters, the schedule shown below reflects a slower pace that does not finish the book by the end of the term. Some chapters can probably be handled in just one class period. |
Week | Day | Date | Readings, assignments, and events |
|
1 | Wed | 23 Mar | Chapter 1 |
Fri | 25 Mar | Chapter 2 |
Sat | 26 Mar | Assignment 1 due at 1:00 PM |
|
2 | Mon | 28 Apr | Chapter 3 |
Wed | 29 Mar | Chapter 4 |
Thu | 30 Mar | Assignment 2 due at 1:00 PM |
Fri | 01 Apr | Chapters 4 and 5 |
|
3 | Mon | 04 Apr | Chapter 5 |
Tue | 05 Apr | Assignment 3 due at 1:00 PM |
Wed | 06 Apr | Chapter 6 |
Fri | 08 Apr | Hour exam (Ch 1–5) |
|
4 | Mon | 11 Apr | Chapter 7 |
Wed | 13 Apr | Chapter 7 |
Thu | 14 Apr | Assignment 4 due at 1:00 PM |
Fri | 15 Apr | Chapter 8 |
|
5 | Mon | 18 Apr | Chapter 8 |
Wed | 20 Apr | Chapter 9 |
Thu | 21 Apr | Assignment 5 due at 1:00 PM |
Fri | 22 May | Chapter 9 |
|
6 | Mon | 25 Apr | Chapter 10 |
Tue | 26 Apr | Assignment 6 due at 1:00 PM |
Wed | 27 Apr | Chapter 10 |
Fri | 29 Apr | no class (reading period) |
|
7 | Mon | 02 May | Chapter 11 |
Tue | 03 May | Assignment 7 due at 1:00 PM |
Wed | 04 May | Chapter 11; pick up hour exam (Ch 6–10) |
Fri | 06 May | Chapter 12 |
|
8 | Mon | 09 May | Chapter 12; hand in hour exam (Ch 6–10) |
Wed | 11 May | Chapter 13 |
Thu | 12 May | Assignment 8 due at 1:00 PM |
Fri | 13 May | Chapter 13 |
|
9 | Mon | 16 May | Chapter 14 |
Tue | 17 May | Assignment 9 due at 1:00 PM |
Wed | 18 May | Chapter 14 |
Fri | 20 May | Chapter 15 |
Sat | 21 May | Assignment 10 due at 1:00 PM |
|
10 | Mon | 23 May | Chapters 15 and 16 |
Wed | 25 May | Chapter 16 |
Fri | 27 May | Chapter 17 |
Sat | 28 May | Assignment 11 due at 1:00 PM |
Sat | 28 May | Final deadline for all written work is 1:00 PM |
|
11 | Wed | 01 Jun | Final examination at 3:00–5:30 PM |
|
|
|
|
|
Printed references: |
Texts and monographs on operating systems are written from several different perspectives for different audiences. Here is a sampling of those primarily oriented to the undergraduate level. |
Some of these printed references are available in the Lawrence University library, a few are available in the instructor’s office, and others are newly published. Note that certain items may be rather dated, yet may still be useful for background. |
General |
Design approach |
Operating Systems: A Design-Oriented Approach by Charles Crowley. McGraw-Hill/Irwin, 1997. Out of print. Source for project ideas? |
Principles of Modern Operating Systems by José M. Garrido and Richard Schlesinger. Jones and Bartlet Publishers, 2008. Shorter, more elementary. |
Operating Systems: Internals and Design Principles by William Stallings, 6th ed. Upper Saddle River, NJ: Prentice Hall, 2009. ISBN 0-13-600632-9. [older edition: QA76.76.O63 S734 1998] More theoretical. |
Modern Operating Systems by Andrew S. Tanenbaum, 3rd ed. Upper Saddle River, NJ: Prentice Hall, 2008. ISBN 0-13-600663-9. More advanced. |
|
|
Survey approach |
An Introduction to Operating Systems by Harvey M. Deitel, 2nd ed. Reading, MA: Addison-Wesley, 1990. Older, but still useful. |
Operating Systems by Harvey M. Deitel, Paul J. Deitel, and David R. Choffnes, 3rd ed. Prentice Hall, 2004. ISBN: 0-13-182827-4. Advanced undergraduate and graduate level. |
Understanding Operating Systems by Ida M. Flynn and Ann McIver McHoes, 3rd ed. Pacific Grove, CA: Brooks/Cole, 2001. [An earlier edition is in the library collection: QA76.76.O63 F598 1997] |
Operating Systems by Gary Nutt (University of Colorado at Boulder), 3rd ed. Addison-Wesley, ISBN 0-201-77344-9 (2004). |
Operating System Concepts by Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne, 8th ed. Wiley, ISBN 0-470-12872-0 (2008). |
|
|
User-level approach |
Operating Systems: A Systematic View by William S. Davis and T. M. Rajkumar, 6th ed. Boston: Addison Wesley, 2005. ISBN 0-321-26751-6. Less theoretical, more applied. |
|
|
Concurrent emphasis |
Concurrent Systems: Operating Systems, Database and Distributed Systems—An Integrated Approach by Jean Bacon, 2nd ed. Reading, MA: Addison Wesley, 1998. [QA76.58.B33 1988] |
Concurrent Programming: The Java Programming Language by Stephen J. Hartley. New York: Oxford University Press, 1998. [QA76.73.J38 H375 1988] |
|
|
Specific |
Linux |
Kernel Projects for Linux by Gary Nutt. Boston, MA: Addison Wesley Longman, Inc. 2001. Source for project ideas? |
LINUX & UNIX Programming Tools: A Primer for Software Developers by Syed Mansoor Sarwar and Khaled H. Al-Saqabi. Addison-Wesley, 2003. ISBN 0-201-77345-7. |
|
|
MINIX |
Operating Systems: Design and Implementation by Andrew S. Tanenbaum and Albert S. Woodhull, 3rd ed. Upper Saddle River, NJ: Prentice Hall, 1997. ISBN 0-13-142938-8. [older edition: QA76.76.O63 T36 1997] |
|
|
OSP |
OSP: An Environment for Operating System Projects by Michael Kifer and Scott A. Smolka. Reading, MA: Addison-Wesley, 1991. [QA76.76.O63 K542 1991] |
|
|
UNIX |
The UNIX Time-Sharing System, Bell System Technical Journal 57 (6) part 2 (1978). |
UNIX System Programming by Keith Haviland, Dina Gray, and Ben Salama, 2nd ed. Addison-Wesley, 1998. Now out of print. |
|
|
Windows |
Operating System Projects Using Windows NT by Gary Nutt. Reading, MA: Addison-Wesley, 1999. Source for project ideas? |
|
|
|
|
|
Electronic references: |
To an ever-increasing extent, the effort to master a new subject requires the use of electronic as well as print resources. |
Some of these electronic references may assist with comprehension of the material in the text, perhaps in conjunction with the assigned problems. Others may be useful for background. Still others may provoke ideas for projects or deeper study. |
Manuals |
Linux |
GNU Manuals |
|
|
UNIX |
AIX (for pSeries hardware from IBM) |
HP-UX (for PA-RISC or Itanium hardware) |
IRIX (for MIPS hardware from Silicon Graphics) |
Solaris |
|
|
Windows |
Any suggestions where to find comparable information? |
|
|
Specifications |
POSIX |
The Open Group Base Specifications Issue 6 is the single common revision to IEEE Std 1003 2004 edition. |
|
|
OS and virtual machine freeware |
Bochs |
Open source IA-32 emulator, written in C++, which is capable of running several x86 operating systems from DOS to Windows to Linux. |
|
|
Freebyte’s guide |
Links to commercial and freeware operating systems and emulators. |
|
|
QEMU |
Generic and open source processor emulator for Linux which achieves a good emulation speed by using dynamic translation. |
|
|
Linux kernel |
Primary site for the Linux kernel source, but it has much more than just kernels. |
|
|
Others |
Any additional suggestions for inclusion here? |
|
|
Pedagogical operating systems |
MINIX |
Information about MINIX, an open source operating system for educational purposes, by the coauthor of a related book. |
|
|
Nachos |
An instructional operating system, which has been used at Duke and Washington universities. |
|
|
Others |
Any additional suggestions for inclusion here? |
|
|
Learning tools |
BACI |
An Introduction to BACI (Ben-Ari Concurrent Interpreter) by Bill Bynum and Tracy Camp. A way to explore semaphores and monitors. Versions are available for Linux, UNIX, and the MS-DOS command prompt window. |
|
|
HyperLearning Center |
Formerly called the Center for the New Engineer, this site at George Mason University offers tutorial modules, Java-based workbenches, and other learning aids for operating systems and certain other topics in computing. |
|
|
MOSS |
Modern Operating Systems Simulators for UNIX/Linux and Windows, four separate simulators designed by Ray Ontko and Alexander Reeder to accompany Modern Operating Systems, 2nd ed., by Tanenbaum. |
|
|
Steven Robbins |
Located at the University of Texas at San Antonio, he has written several simulators for operating system components. Eight simulators are currently available online. |
|
|
Others |
Any additional suggestions for inclusion here? |
|
|
Book support sites |
Flynn and McIver-McHoes |
Understanding Operating Systems, 3rd ed. |
|
|
Nutt |
Operating Systems, 3rd ed. (new book purchase or paid registration required). |
|
|
Silberschatz et al. |
Operating System Concepts with Java, 6th ed. |
Operating System Concepts, 7th ed. |
|
|
Stallings |
Operating Systems: Internals and Design Principles, 6th ed. |
|
|
|
|
Bibliographies |
General |
The Collection of Computer Science Bibliographies, brought to you by Alf-Christian Achilles, offers one way to search the technical literature. (The site is in English.) |
|