The course follows a bottom up construction of a general-purpose operating system beginning with the hardware interface and ending with the user interface. Specific topics covered include concurrent processes, process management, I/O, virtual memory, file management, resource scheduling, and performance measurement. Students are assumed to be familiar with general machine architecture, functions of system software (compilers, loaders, editors, etc.), data structures, and to have some experience with UNIX or another multiprogramming operating system.
The class is dual-listed as an undergraduate (COS 450) and graduate course (COS 550); graduate students will have additional reading and must prepare a presentation for the class (see below).
Stephen Houser email@example.com
After completing this course, you should be able to:
- Describe what the purpose of an operating system is.
- Describe the major challenges in an operating system design and implementation.
- Describe the major functional components of an operating system.
- Describe the typical architectures of operating systems.
- Describe how an operating system is designed and implemented.
- Develop code that extends an existing operating system.
- Evaluate operating system designs and functions.
The course is designed to meet the following program outcomes of the Computer Science program at the University. While, your work will be assessed within the program against these outcomes they are not used in grading your work.
- An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution
- An understanding of professional, ethical, legal, security and social issues and responsibilities
- An ability to use current techniques, skills, and tools necessary for computing practice.
Prerequisites and Expectations
- COS 285 Data Structures
- COS 251 Systems Programming
The course involves a fair amount of independent learning, experimentation, and work. Internet resources on network programming are plentiful and class time is limited. You will be expected to read (or at least skim and absorb) enough of these materials to be prepared for class.
You will use the textbook in and out of class. The examinations will combine material from in-class discussion and the textbook. The textbook is the reference for the course. All textbook material may not be covered during in-class discussions, yet you will still be responsible to demonstrate an understanding of it on the examinations.
Operating System Concepts Essentials 2nd Edition 2013, Silberschatz, Galvin, and Gagne.
ISBN-13: 978-1118804926 ISBN-10: 1118804929 Publisher: John Wiley & Sons Book Website: [http://os-book.com](http://os-book.com)
NOTE: Operating System Concepts 9th edition is an acceptable, but more expensive substitute. The Essentials version has the same but fewer chapters. We will only be covering material that is in the Essentials version.
In addition to the textbook, you will need the Pintos Documentation to complete the assignments in the course.
The course is partially project-based. There will be three (3) required programming projects for undergraduate students and four (4) for graduate students. The projects will require you to implement key operating system components within an existing operating system. They will be graded on solving the problem at hand and your design approach documentation. The projects are complex and time consuming. Do not underestimate the time and thought needed to complete them. Start early, work often.
Each project consist of two parts; implementing features and a design document. Each part is 50% of the project grade. The feature implementation requires that you write code to implement features in the Pintos operating system. There is an automated test and grading infrastructure to assist you in your work. The
DESIGNDOC is a guided writing exercise. There are several questions about your design that you are required to document. Within the guided questions are hints about good implementation decisions for the project.
Schedule of Projects
|0||Memory Allocation||25 (extra credit)|
|4||File System (graduate)||100|
Your code will be submitted (checked in/pushed) on GitHub to an assignment for each project. Details on what needs to be submitted will be included with each assignment. In all cases, you should submit only source code as directed, no binary executable files.
Your code must compile and run on systems other than your own, specifically the instructor’s system as described in the Pintos documentation. Be diligent not to include absolute paths or other common mistakes that prevent your code being compiled and executed on other systems.
Code should work and be your own creation. There are numerous sources of information on the Internet, including code. However, your submissions should be your own work not that of others cut-and-pasted into your projects or that of your classmates. Plagiarism is a serious offence and will be treated accordingly.
Project Grading Rubric
|90-100||A||Passes all tests, design complete and well thought out|
|80-89||B||Passes most tests and/or design mostly complete|
|60-79||C||Passes some tests and/or design flaws|
|50-59||D||Passes only a few tests and/or design flaws|
|<50||F||Does not pass enough tests, does not satisfy the requirements, did not attempt|
Quizzes and Examinations
The course includes weekly quizzes and two (2) examinations. The quizzes cover the material being discussed in class each week. The examinations will cover all the material since the last examination. The questions on the quizzes and examinations will be a combination of material in the assigned sections of the book and what is discussed in class. The questions at the end of each chapter in the book are an excellent reference for what to expect on the quiz and examination questions. Each quiz and examination is built at the time you take it from a pool of applicable questions, so it is very unlikely that any two will be the same.
|Weekly Quiz*||100||All quiz scores / 1400, each quiz ~7 points|
The quizzes and examinations will be conducted within Blackboard (bb.courses.maine.edu).
Quizzes will be available from Fridays (00:00) to Mondays (23:59) for the reading assigned that week. The Chapter 1 quiz will thus be available the Friday after our first meeting and due the Monday before our second meeting. Each exam will be available to you on the day of the exam (the same day as class) and require you to complete all the questions within a specific time duration (60 minutes). We will have abbreviated classes on those days (ending early) to give you time to take the exam. All the quizzes and examinations will be automatically graded and your results immediately available for all non-essay answers. After the due date has passed, you will be able to see more detail about your incorrect answers.
The following is the schedule for the course. Topic coverage and due dates may change based on progress, snow-days, holidays, and other events.
|WEEK||TOPIC||READING||NOTES & LINKS|
|Week 1||Course Overview & Introduction, Pintos Introduction Session||Ch. 1||Syllabus, Pintos Documentation|
|Week 2||Operating System Structures, Project 1 - Threads Session||Ch. 2||Group Assignments Complete|
|Week 3||Processes||Ch. 3|
|Week 4||Threads||Ch. 4|
|Week 5||Process Synchronization||Ch. 5|
|Week 6||CPU Scheduling||Ch. 6||Project 1 - Threads Due|
|Week 7||Project 2 - User Programs Session||Midterm Exam (online)|
|Week 8||Main Memory||Ch. 7|
|Week 9||Virtual Memory||Ch. 8|
|Week 10||Mass Storage Systems||Ch. 9|
|Week 11||Project 3 - Virtual Memory Session||Project 2 - User Programs Due|
|Week 13||File System Interface & Implementation||Ch. 10 & 11|
|Week 14||I/O Systems||Ch. 12|
|Week 15||Protection & Security||Ch. 13 & 14|
|Finals||Project 3 - Virtual Memory Due, Project 4 - Filesystems Due (graduate only), Final Exam (online)|
Grades for the course will be based on an accumulation of points from the examinations and assignments.
Schedule of Point Accumulation for Final Grade:
|COS 450 Points||COS 550 Points||% Score||Grade|
For projects, you are granted three (3) “late days” to use at your discretion. These can be used all on one project, to hand in three days late with no penalty. Or they could be used one day late on each of three projects, again with no penalty. You are however required to indicate you are using late day(s) to the instructor by email prior to or on the original due date. The subject of the email should be “COS 450 Late Submission Project __” and fill in the project number.
Other extensions on projects and any extension on examinations will not be granted except in the case of an emergency. Technical difficulties do not constitute an emergency. Late submissions will be penalized. Lateness will be determined by submission in the University course management system (Blackboard at bb.courses.maine.edu) and the assigned due date.
Accommodations and Inclement Weather
Should you need services or accommodations due to a disability to fully participate in the class, please speak with the instructor or contact the Office of Academic Support for Students With Disabilities, Luther Bonney 242 on the Portland Campus.
Class cancellations are posted on USM’s website (http://usm.maine.edu) and on the Storm Line at 780-4800. You can also receive cancellations and emergency information from the USM Alert text messaging system (http://usm.maine.edu/usmalert).