CS420 Operating Systems
Fall 2013
Instructor: Dr. M.S. Jaffe
Logisitics:
Location and Time: AXFAB 104, MWF 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. The course will cover, at a minimum, chapters 1 - 10 of the text; 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 problems that all operating systems must solve and the various alternatives that have been developed to solve them.
High level goals and objectives:
- 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 in some cases 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
Specific topics to be covered:
- Process management
- Processes, PCBs, context switching, and the process state diagram
- Interprocess communications
- Threads and lightweight processes
- Scheduling
- Short term
- Mid-term (and it's relationship to memory management)
- Long-term
- Process synchronization (race conditions, critical sections, mutex locks, and Dykstra semaphores)
- Memory managment
- Binding
- Contiguous memory management schemes and issues
- MFT
- MVT
- External and internal fragmentation
- Compaction and its costs
- Noncontiguous memory management
- Paged memory management
- The page table
- Internal fragmentation
- Multilevel paging and translation look aside buffers
- Segmented memory management and segment tables
- Segmented and paged memory management
- Demand paging, thrashing, and the mid-term scheduler
- I/O management (topics as time permits)
Programming: There will be several small 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. Both Microsoft Windows and UNIX theoretically provide a POSIX API for you to access their services; but since I personally have done very little work with any of the Microsoft operating systems, I can't vouch for their compliance and won't be able to help you if you run into trouble. Accordingly, I recommend (not require, merely strongly recommend) that you use our campus UNIX environment for the programming for this course. Very little sophistication in UNIX or its user interface (shell) will be required; the web page I pointed you to, above, should really give you access to all you'll need; 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, 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 to it whether you've read it or not.
Grading: There a midterm counting for 25% and a final at 50%, both exams closed notes, closed book. The remaining 25% will be equally apportioned among the 4 or 5 programming assignments.
Integrity Policy: Please read my notes on the standards I'll enforce for student integrity; you will be held to these standards whether you read my notes or not.
Disability Accomodation: ERAU is committed to the success of all students. It is a University policy, that I fully support, to provide reasonable accommodations to students with disabilities. If you would like information about what accomodations we can make available, please contact the Disability Support Services at the Wellness Center at 777-6653. If you wish to request some accomodation, please contact either me (your instructor) directly or ask Disability Support Services to do so. Don't be bashful; if you need some help, ask for it. You're here to learn; I'm here to help you do so. All discussions are confidential.
This page last changed 3 May 2013 by M.S. Jaffe