CS420 Operating Systems
Instructor: Dr. M.S. Jaffe
Location and Time: Section 1: TTh noon - 1:15, Building 54
Section 2: TTh 2:50 - 4:05, Building 52, room A
Office Hours: MWF 11-1, TTh 1:50 - 2:50 Textbook: Silberschatz, Galvin, & Gagne, Operating System Concepts, 9th Ed. Reference Materials: http://ultra.pr.erau.edu/~jaffem/classes/cs420/cs420_standard_web_pages/cs420_references.htm Prerequisites: CS125 or equivalent (see the section on Programming, below) Final Exam: TBA
Overview: The course will cover, at a minimum, chapters 3 - 10 of the text. Chapters 1 and 2 I don't much care for and we'll use some slides of mine instead. After the basics (chapters 3 - 10), if we have time, we'll cover parts of chapters 11 through 13. Part 1 of the text is essentially an introduction and overview that we'll cover very quickly. Parts 2 and 3 cover process and memory management, respectively —the two most interesting and significant of the three essential functions of all operating systems (and the third, I/O management, is not as conceptually strange as the first two; you can figure it out on your own, in other words). We'll be spending our time on fundamental concepts and vocabulary to describe the services that nearly every operating system must provide (and why), the various alternatives that have been developed to provide them, and the relative strengths and weaknesses of each.
Goals and objectives: Course Outline
- Understand the relationship between the OS and the hardware on which it executes, including the basics of how the OS and the hardware must cooperate to help enforce a computer security policy.
- Understand the major, sometimes conflicting, purposes of modern operating systems and the issues and compromises that must be dealt with to satisfy them.
- Understand the major components, features, services, and even some of the algorithms required in modern operating systems
- Be able to use vendor documentation to learn how to request OS services from within application programs written in C
- The CPU (including the privileged mode bit and its relationship to computer security), interrupts, system service calls, and the IVT
- Process management
- Processes, PCBs, context switching, and the process state diagram
- Interprocess communications
- Threads and TCBs
- Short term
- (Midterm scheduling gets covered later, as part of memory management with demand paging)
- Process synchronization (race conditions, critical sections, mutex locks, and Dijkstra semaphores)
- Memory managment
- Binding, linking, and loading
- Compile time binding
- Load time binding
- Execution time binding
- Contiguous memory management schemes and issues
- External and internal fragmentation
- Compaction and its costs
- Noncontiguous memory management
- Paged memory management
- The page table
- Translation look aside buffers
- Segmented memory management and segment tables (and their importance to computer security)
- Segmented and paged memory management
- Demand paging, thrashing, and the mid-term scheduler
- File systems and I/O management (topics as time permits)
Programming: There will be several small to medium sized programming assignments in which you make system service calls to the operating system to get a feel for how some of the theoretical concepts of this class work in practice. Your programming must be done on the campus UNIX environment; homework submission instructions are here. As always, if you need help, come see me — I get paid to help you (and usually enjoy it, come to that). The campus Linux operating system is provided by a Red Hat Linux, whose documentation can be found online and which will be the source of the information needed to complete (and enjoy, I hope) the programming assignments. Please read the integrity policy for the programming in this course; you will be held accountable for compliance with it whether you've read it or not.
Grading: There will be a midterm worth 30% and a final worth 40%, both exams closed notes, closed book. The remaining 30% will be equally apportioned among the 4 or 5 programming assignments. I grade on the curve, so difficult exams should not per se be cause for panic. At the end of the semester, the upper half of the class gets A's and B's, lower half gets C's and below. I do not feel obligated to gives D's or F's to match the A's, but I don't hesitate to do so for performance significantly below the rest of the class. Note: Regardless of overall curve, you can't get an A in this class without having successfully completed all the programming assignments.
Other stuff. Some items are included here because I think they're important, some because some bureaucrat or other thinks they're important (in some cases, I actually agree; in some I don't):
- Civil Rights Equity and Title IX. I regret that it is necessary to say such things, but I think the administration is correct; so here it is:
ERAU seeks to provide an environment that is free of bias, discrimination, and harassment. If you have been the victim of harassment, discrimination or sexual misconduct, we encourage you to report this. If you inform me of an issue of harassment, discrimination, or sexual misconduct I will keep the information as private as I can, but I am required to bring it to the attention of the institution's Title IX Coordinator. If you would like to talk to the Title IX Coordinator (Dr . Liz Higgins Frost) directly, she can be reached at Building 49, Dean of Students Office, 928-777-3747, firstname.lastname@example.org . For more information, please refer to the Nondiscrimination/Title IX webpage at https://prescott.erau.edu/title-ix/ .
- Academic Integrity. Read my guidelines for academic integrity for programming assignments, please; you will be held accountable to these standards, whether you read them or not. (I gave D's to two students last semester who ignored this advice.)
- Access To Learning.
ERAU is committed to access for all students. It is University policy to provide reasonable accommodations to students with disabilities who qualify for services. [I agree with this wholeheartedly. Don't be bashful about asking for accomdations if you need them.] If you would like to discuss and/or request accommodations, please contact Disability Support Services (DSS). DSS is located on the first floor of Hazy Library, at the end of the hall. You may stop by, call 928/777-6750, or email the director at: email@example.com
- ABET Outcomes and Objectives. Why anyone would think that this stuff is of interest to students is beyond me; but here's some ABET stuff I have been requested to include in my syllabus. Consider me compliant.