CSE150 Operating Systems (Spring semester 2008)
Instructor
Miguel Á. Carreira-Perpiñán
Assistant professor
Electrical Engineering and Computer Science
School of Engineering
University of California, Merced
mcarreira-perpinan-[at]-ucmerced.edu; 209-2284545
Office: 284, Science & Engineering Building
Office hours: Wednesdays 3:30-5pm (SE284).
TA: Oktar Özgen, oozgen-[at]-ucmerced.edu (SE290).
Lectures: Wednesdays 12-2:50pm (COB270)
Lab class: Wednesdays 6:30-10:20pm (Linux Lab, SE138)
Course web page: http://faculty.ucmerced.edu/mcarreira-perpinan/CSE150
Course description
Concepts of computer operating systems including memory management, file systems, multitasking, performance analysis, and security.
Prerequisites: CSE31
Textbook
Required textbook (get the errata and additional errata):
The companion site for the book has additional materials (slides, etc.). There are also simulators available.
Other books recommended as additional reading:
- Andrew S. Tanenbaum and Albert S. Woodhull: Operating Systems: Design and Implementation, 3rd ed. Prentice-Hall, 2006. Another OS textbook by the same author but with an emphasis on OS design, and containing the C source code for MINIX.
- Avi Silberschatz, Peter Baer Galvin and Greg Gagne: Operating System Concepts, 7th ed. Wiley, 2005. Another good OS textbook.
- Maurice J. Bach: Design of the UNIX Operating System. Prentice-Hall, 1986.
- Evi Nemeth, Garth Snyder and Trent R. Hein: Linux Administration Handbook, 2nd ed. Prentice-Hall, 2007. A useful reference for Linux and Unix system administration.
- Brian W. Kernighan and Dennis M. Ritchie: The C Programming Language, 2nd ed. Prentice-Hall, 1988. A useful C reference.
- Frederick P. Brooks, Jr.: The Mythical Man-Month, Addison-Wesley, 1995. An insightful book on software project management.
Syllabus and required textbook reading
Before each class, you should have read the corresponding part of the textbook. I will teach the material in the order below (which is more or less the order in the book):
- Ch. 1: Introduction.
- Ch. 2: Processes and Threads.
- Ch. 3: Memory Management.
- Ch. 4: File Systems.
- Ch. 5: Input/Output.
Make sure to refer to the case studies in chapters 10-12 (particularly ch. 10 on Linux) as specific implementations of the concepts discussed in class.
If time permits, I'll also teach part of the following material:
- Ch. 6: Deadlocks.
- Ch. 7: Multimedia Operating Systems.
- Ch. 8: Multiple Processor Systems.
- Ch. 9: Security.
- Ch. 10: Case Study 1: Linux.
- Ch. 11: Case Study 2: Windows Vista.
- Ch. 12: Case Study 3: Symbian OS.
- Ch. 13: Operating System Design.
Handouts, projects and lab assignments
- I will suggest exercises from the textbook for you to do and give solutions for them. They will not count towards your final grade, but I strongly recommend that you try to solve as many of the book exercises on your own ahead of time.
- Lab sessions:
- Projects (to be submitted and graded):
- Project #1 due April 30, in groups of 1 or 2 students. Late projects will get a grade of zero.
The following tools will be useful for the lab work (they are all installed in the Linux lab):
- Text editors: XEmacs (reference card), vi.
- Text processing: LaTeX
- Programming tools (check their respective man pages): gcc, as, ld, od, xxd, gdb, xxgdb, ddd, ar, nm, objcopy, objdump, readelf, size, gcov, gprof, oprofile. See also Linux System Administration and Configuration.
Course grading
- Midterm exam (30%): in-class, partly closed-book, consisting of problems and conceptual questions.
- Final exam (30%): as the midterm.
- Lab projects (40%).
While I encourage you to discuss your work with other students, the projects and the exam must be the result of your own work without collaboration.
Grade curves: as of Apr. 30 and final.
Links
Miguel A. Carreira-Perpinan
Last modified: Sun May 18 16:59:13 PDT 2008
UC Merced |
EECS |
MACP's Home Page