Introduction to Operating Systems: Design and Implementation


Book - Silberschatz, Galvin and Gagne - Operating System Concepts, 9th edition


        First exam - 10/5 (M)                          15%

        Second exam - 11/9 (M)                     15%

        Final exam – Dec. 15, 11:30-2pm (T)  20%

        Quizzes, homework and labs               20%

        Current literature critique                     10%

        Programming projects                         20%



This course will cover different operating systems, but the UNIX & Linux Operating Systems (OS) will be highlighted in greater detail and will be studied more closely. VMS (Virtual Memory System), the DEC (Digital Equipment Corporation) OS that was used primarily on the VAX (Virtual Address eXtension) mini-supercomputers, will also be studied in detail along with several different versions of Microsoft’s system software. How to take advantage of multi-core processors, via concurrency techniques, will be heavily emphasized in the second half of the course.


Course Objectives:


          Learn how the operating system integrates all of the following “systems”:

                   File System

                   Process/thread management

                   Primary/Virtual Memory

                   Resource Allocation Techniques

                   Concurrent programming structures (like semaphores)


Professor John A. Trono, JeanMarie 267, Phone: x2432

Office hours: MW 3-4PM, T 9-10:30AM & 1-3pm, Th 1-2PM, and by appointment.

The materials used in this class, including, but not limited to, exams, quizzes, and homework assignments are copyright protected works.  Any unauthorized copying of the class materials is a violation of federal law and may result in disciplinary actions being taken against the student.  Additionally, the sharing of class materials without the specific, express approval of the instructor may be a violation of the College's Student Honor Code and an act of academic dishonesty, which could result in further disciplinary action.  This includes, among other things, uploading class materials to websites for the purpose of sharing those materials with other current or future students.   

Rough Schedule of Chapters and Topics


    Week #1 Chap. 1, sections 20.1-20.3, 13.1, 13.2, 13.3.4, 13.4.6, 18.1-18.4, 3.3 (by F),

                    4.4.1-4.4.3, chapter 2, and chapter 19 (stop at

        - The history of operating systems

        - Roles of the O/S to different applications

        - O/S's from mainframes to PC's: O/S design strategies

        - Interrupts, system calls and basic shell process


    Weeks #2-3 Sections 10.1, 10.2, 13.3-13.5, 11.1, 11.2, chapter 12,

                         18.7, 18.8, 19.5, rest of Chapter 11, 10.4-10.8

        - Characteristics of physical I/O devices

        - Maintaining a file system, directories, etc.


    Weeks 4-5 Chapters 3.1-3.2, 4.1, all of 6, 18.5, 19.7.3-

        - What is a (heavy-weight) process

        - The process view: scheduling of who uses the CPU

        - Threads (or light-weight processes)


    Weeks 6-7 Chapters 8-9, 21.6, 19.7.5

        - Memory management: from contiguous, to paged, then segmented

        - Virtual memory and demand paging

        - Working Sets


    Week 8 Finish chapter 9 and then begin Chap 7

        - Deadly embrace of resources (i.e. deadlock)


    Weeks 9-11 3.4, 3.6.3, 3.7, 18.9, Chapter 5

        - Inter-Process communication (IPC)

        - Sharing of information and concurrency operations

        - Semaphores, critical sections, and events

        - Software monitors


    Weeks 12-14 Material from Chapters 14, 15.3.1, and 17.1-17.3, (as time permits)

        - Some security issues

        - Current trends in distributed systems (PDF hand-out)