Operating Systems

Course number: 
CIS 5512
Fall 2016
Name E-mail Office location
Qiang Zeng qzeng@temple.edu
Science Education and Research Center (SERC), Room 328

Either the equivalent of CIS 3207 and its prerequisites, or the single course CIS 5502; and either CIS 3223 and its prerequisites, or the single course CIS 5501.

Required Textbook:
"Operating Systems", Deitel, Deitel and Choffnes, 3rd edition, Pearson Education, 2004
Highly Recommended for Linux/Unix programming:
"Operating Systems: Principles and Practice", Anderson and Dahlin, 2nd edition, Recursive Books, 2014
"Interprocess Communications in Linux: The Nooks and Crannies", Gray, Pearson Education,

Topics covered: 
1. Introduction to Operating Systems (OS): kernel: monolithic, microkernel, distributed systems
    a. Virtual Machines and the role of the OS in virtualizing computers
2. Processes and Threads
    a. Implementation of kernel level threads and user level threads
    b. POSIX threads and implementations
3. Interrupts and exceptions
4. Concurrency
    a. Theoretical introduction to synchronization and synchronization primitives
    b. Development of synchronization primitives: busy-waiting using spin-locks, ticket
        (Dekker) algorithm, bakery algorithm; semaphores, event counts, sequencers;
        monitors; message-passing
5. Single and Multiprocessor Management
     a. Examination of single CPU scheduling methods
     b. Development of a simple multi-CPU, multi-process scheduling algorithms
6. Examination of Memory management and virtual memory in single CPU systems
7. Introduction to multiprocessor architecture
8. Organizations of multi-processor operating systems
     a. Multiprocessor memory access architectures
     b. Multi-processor scheduling, process migration, load balancing
9. File Systems
Course goals: 
To expand on the basic concepts for understanding and evaluating operating systems
and the most important computer architectural issues impacting operating system
design and implementation. This course will concentrate on theoretical and practical
issues of kernels, threads and processes; concurrency, multi-processor management and
virtual memory, and file systems.
Attendance policy: 
Student attendance to each class is Mandatory
Accomodations for Students with Disabilities: 
Any student who has a need for accommodation based on the impact of a documented disability, including special accommodations for access to technology resources and electronic instructional materials required for the course, should contact me privately to discuss the specific situation by the end of the second week of classes or as soon as practical. If you have not done so already, please contact Disability Resources and Services (DRS) at 215-204-1280 in 100 Ritter Annex to learn more about the resources available to you. I will work with DRS to coordinate reasonable accommodations for all students with documented disabilities. (http://www.temple.edu/studentaffairs/disability/accommodations/).
Student and Faculty Academic Rights and Responsibilities: 
Freedom to teach and freedom to learn are inseparable facets of academic freedom. The University has a policy on Student and Faculty and Academic Rights and Responsibilities (Policy #03.70.02) which can be accessed through the following http://policies.temple.edu/PDF/99.pdf.