COS 431: Operating Systems -- Syllabus
Fall, 2010
- Catalog Description
- Study of the structure of current computer operating systems. Topics include I/O management, memory management,
multiprogramming, linking loaders, real and virtual systems, batch and time sharing. Prerequisites & Notes:
COS 226, COS 335 or permission. Credits: 3
-
Extended Course Description:
- The following classic operating system topics will be discussed: overall operating system structure, processes, process management, and process communication, process scheduling, threads, synchronization, deadlocks, memory management, virtual memory, file systems, and I/O systems. Projects in UNIX and C are assigned, as well as a full scale operating system simulation, BRAIN10. Students will work both individually and in groups.
-
Place and Time:
- Tuesday/Thursday, 8:00am-9:15am, Room 227 Neville Hall
-
Instructor:
-
Larry Latour, Assoc. Prof., Dept. of Computer Science
Office: 222 Neville Hall
Tel: 581-3523
Email: Firstclass (Larry Latour) or larry_latour@umit.maine.edu
Office Hours: Tuesday/Thursday 1:00pm-2:00pm and by appointment
- Textbook:
- Silbershatz, Galvin, and Gagne, Operating Systems Concepts, 8th Edition , Wiley & Sons, Inc., 2009.
- Ada Notice:
- If you have a disability for which you may be requesting an accommodation, please contact Ann Smith, Director of Disabilities Services, 121 East Annex, 581-2319, as early as possible in the term.
Computer accounts:
You will need a UNIX account to do the first assignment. If you don't have one, you will
need to complete an account request form (available from the CS office) and submit it to the
Department office. If you have access to UNIX elsewhere (e.g., LINUX on a home machine or your home
department), you might still want to get an account on the UMCS machines; it might make your life a
little easier when it comes time to demonstrate your programs. Those who are running intel-based Macs
can also do a good deal of Unix work under Mac OS X.
Grading:
Grades will be based on the following work:
- preliminary exam 1 (1 hr. 15 min.) - 12.5%
- preliminary exam 2 (1 hr. 15 min.) - 12.5%
- final exam (2 hrs.) - 20%
- Project Part ZERO: Unix Programming (Individual) - 10%
- Project Parts 1-4: BRAIN10 - (Group) 30%
- Homework - 15%
I expect that you attend class regularly. Although this is not part of the final grade, you are responsible on tests for EVERYTHING discussed in class, unless otherwise noted. Missing class is no excuse for missed information. Coming to class consistently late is not proper behavior. We all know that the class is 8:00am. Deal with it!
The Part ZERO Unix programming portion of the major project is an individual assignment, while Parts 1-4 BRAIN10 portion of the project is a 2 member group project in which you and your team will design and implement an operating system, BRAIN10, in C!. You will be expected to prepare a poster (typically 18" x 23") describing the interface, architecture, and concepts behind your completed BRAIN10 system. See the project description documents (to be handed out in class and available on firstclass) for more details.
You must complete and present, as a group and individually, (at incremental project due dates and during the public presentation session) all five parts of the major project in order to pass the course with a D or better.
Assignments:
Unless otherwise announced, (1) all projects are to be demonstrated to
me in my office and (2) all source code and supporting documentation for
the assignments are to be submitted on the web ONLY. It is your responsibility
to give me the URLs for the individual and group Web pages in a timely
manner. These will be kept confidential.
The Importance of Deadlines:
A critical part of the discipline of software development is the deadline. Therefore:
- Due dates for each of the class work assignments will be assigned incrementally throughout the semester.
- Lateness of assigned work must be negotiated with the instructor in advance of the due date.
- Lateness of any work can be given in return for a percentage of the grade for that work, mutually agreed upon by the student(s) and the instructor.
- No late work will be accepted unless it has previously been negotiated with the instructor and authorized by the instructor before the due date.
- Late work can be renogotiated for an even later date in return for an additional percentage of the grade for that work, again, mutually agreed upon by the instructor and student.
- Absence from class on the due date is never in itself an excuse for lateness. If a student is sick they can negotiate a lateness over the phone or email.
Acknowledgement that this syllabus has been read and understood:
All students must send an email to the instructor acknowledging that they have read and understood the entire syllabus.
Web Page and Firstclass Conference:
In addityion to this course webpage (http://www.umcs.maine.edu/~larry/latour/courses/431/f10) There will be a course firstclass conference [cos431(latour)] containing course-related information, announcements, and links to related sites. You are encouraged to check on both the web page and firstclass conference often for new information. Of particular interest is a Web version of the Introduction to UNIX in the UMaine CS Dept. pamphlet, available
in both
single-page
and
multiple-page
forms.
Academic Honesty:
Academic dishonesty includes cheating, plagiarism and all forms of misrepresentation in academic work, and is unacceptable at The University of Maine. As stated in the University of Maine's online undergraduate "Student Handbook," plagiarism (the submission of another's work without appropriate attribution) and cheating are violations of The University of Maine Student Conduct Code. An instructor who has probable cause or reason to believe a student has cheated may act upon such evidence, and should report the case to the supervising faculty member or the Department Chair for appropriate action.
Topics:
- Chapter 1: Introduction
- Purpose of an Operating System, OS Structure, Overview of Process Management, Memory Management, Storage Management, Protection and Security, Distributed Systems, Special-Purpose Systems, Computing Environments, Open-Source OS.
- Chapter 2: Operating System Structures
- Operating-System Services, User Interface, System Calls, System Programs, OS Design and Implementation, OS Structure, Virtual Machines, OS Debugging, OS Generation, System Boot.
- Chapter 3: Processes
- Process Concept, Process Scheduling, Operations on Processes, Interprocess Communication, Examples of IPC Systems, Communication in ClientServer Systems.
- Chapter 4: Threads
- Thread Concept, Multithreading Models, Thread Libraries, Threading Concerns, OS Examples.
- Chapter 5: CPU Scheduling
- Basic Concepts, Scheduling Criteria, Scheduling Algorithms, Thread Scheduling, Multiple-Processor Scheduling, OS Examples, Algorithm Evaluation.
- Chapter 6: Process Synchronization
- Background, The Critical-Section Problem, Petersons Solution, Synchronization Hardware, Semaphores, Classic Problems of Synchronization, Monitors, Synchronization Examples, Atomic Transactions.
- Chapter 7: Deadlocks
- System Model, Deadlock Characterization, Methods for Handling Deadlocks, Deadlock Prevention, Deadlock Avoidance, Deadlock Detection, Recovery from Deadlock.
- Chapter 8: Main Memory
- Background, Swapping, Contiguous Memory Allocation, Paging, Structure of the Page Table, Segmentation, Example: The Intel Pentium.
- Chapter 9: Virtual Memory
- Background, Demand Paging, Copy-on-Write, Page Replacement, Allocation of Frames, Thrashing, Memory-Mapped Files, Allocating Kernel Memory, Other Considerations, Operating-System Examples.
- Chapter 10: File-System Interface
- File Concept, Access Methods, Directory and Disk Structure, File-System Mounting, File Sharing, Protection.
- Chapter 11: File-System Implementation
- File-System Structure, File-System Implementation, Directory Implementation, Allocation Methods, Free-Space Management, Efficiency and Performance, Recovery, NFS, Example: The WAFL File System.
- Chapter 12: Mass-Storage Structure
- Overview of Mass-Storage Structure, Disk Structure, Disk Attachment, Disk Scheduling, Disk Management, Swap-Space Management, RAID Structure, Stable-Storage Implementation, Tertiary-Storage Structure.
- Chapter 13: I/O Systems
- Overview, I/O Hardware, Application I/O Interface, Kernel I/O Subsystem, Transforming I/O Requests to Hardware Operations, STREAMS, Performance.
Last Updated: 8/29/2010