Operating Systems - CIS 8512
Fall, 2007

Professor:      Dr. Eugene Kwatny

Office:              Room 1014 Wachman (10th Floor)
Phone:              215-204-­1679
EMAIL:           gkwatny@temple.edu
Class Hours:    Thursday 4:40 ­- 7:10 PM   [Tuttleman room 302]
Office Hours:   Tuesday  1:00PM - 2:00 PM 

                        Thursday  2:00PM - 4:00PM
                        (other times available by appointment)

Required Textbook:
Operating Systems”, Deitel, Deitel and Choffnes, 3rd edition 2004, Pearson Education

Highly Recommended for Linux/Unix programming:
“Interprocess Communications in Linux: The Nooks and Crannies”, Gray, Pearson Education, 2003
        
        [Also, see attached list of additional references]

Grading:   Course grade will be determined by ­
        Final Exam (35%)  [the final exam will be comprehensive, covering all course material]
           Mid­term Exam (35%)
           Homework, problem assignments and class and Discussion Board
             participation (30%)


Aim of Course

To expand on the basic concepts for understanding and evaluating operatingsystems and the most important computer architectural issues impacting onoperating 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 security and authentication.


Course Topics

  1. Introduction to Operating Systems (OS):   kernel: monolithic, microkernel, distributed systems
    1. Virtual machines and the role of the OS in virtualizing computers
    2. Processes and threads
      1. implementation of kernel level threads and user-level threads
        1. Posix threads and implementation
    1. Interrupts and exceptions
  2. Concurrency
    1. Theoretical introduction to synchronization and synchronization primitives 
    2. Development of synchronization primitives: busy-waiting using spin-locks, ticket (Dekker) algorithm, bakery algorithm; semaphores, event counts, sequencers; monitors; message-passing
  3. Single and Multiprocessor Management
    1. Examination of single CPU scheduling methods
    2. Development of a simple multi-CPU, multi-process scheduling algorith
  4.  Examination of Memory management and virtual memory in single CPU systems
  5. Introduction to multiprocessor architecture
  6. Organizations of multi-processor operating systems
  7. Multiprocessor memory access architectures
  8. Multi-processor  scheduling, process migration, load balancing
  9. Case Studies of scheduling used in current operation systems: Linux, Solaris, Windows XP
  10. Security
    1. Authentication
    2. Access Control
    3. Key agreement protocols
    4. Case study: Unix systems security

Content
Reading and lecture material from Deitel ('Operating Systems') Chapters 1 - 6, 8 - 11,  15, part of 17 (related to synchronization and mutal exclusion), 19 and case studies in part 8 related to lectures; and Professor Kwatny's notes on concurrency dealing with mutual exclusion, locks, semaphores, monitors and message ­passing.

Deitel chapters 1 and 2 contain material that are a review of topics that you should be familiar with. Concepts in these chapters will be referenced in class discussions. The first three lectures will cover materials discussed in chapters 1 - 4 as well as additional material.
The subsequent 5 or 6 lectures will be concerned with concurrency and concurrency mechanisms. Chapters 5, 6 and part of 17 as well as Dr. Kwatny's notes should be read for those lectures.
The next set of lectures will be concerned with Multiprocessor management. Chapter 15 and some handouts will be the reading for these lectures.
Memory Management and Virtual Memory will be the topics of the next set of lectures. Chapters 8 - 11 and Dr. Kwatny's notes are the reading materials for these lectures.

Lecture materials will also be available through Blackboard.

DATES of IMPORTANCE:
First class: Monday, August 27
Last day to drop (tuition refund available): September 10.
Last day to withdraw (no refund): Monday, October 29.
Last Class:
Thursday, November 29 .
Final Exam: Thursday,
 December 13 .



Student Responsibilities
Student's are responsible for reading all assigned text materials, handouts,and referenced sources.The Linux workstation systems (all laboratories, except room 207, are dualboot Windows XP and Red Hat linux)), the Sun Unix (Solaris) workstations (room 207) in the Temple CIS laboratories and the University's Astro ( HP/Compaq Tru64 Unix) system are available for student use. Accounts are available for the Linux and Sun systems in the department(see second floor laboratory staff). Astro accounts are available for all students, and permanent accounts should be acquired. Astro accounts (also called AccessNet) are required for access to Blackboard. Also Unix or Linux workstations are the recommended environment for developing and implementing homework solutions.
Homework exercises will require use of a Unix or Linux system (although a Windows 2000/Xp system could be used). Programs may be written in C, C++, Fortran, or Pascal (although the systems services are probably more readily available in C, C++, or Fortran). Since most example programs and texts use the C language, it is recommended that students become familiar with programming in C. Students will be required to learn to use the system services available in Unix and Linux, and will have  to use multiple processes, shared memory, pipes, mailboxes, event flags,  'shared libraries', threads, etc. These services and features should be learned and experienced immediately at the start of the semester, since all homework assignments will require them. Students may use any of these systems available to them,a snoted above. It is recommended that students use one of the Unix programming texts, in particular the text by Gray).

Students will be assigned tasks of developing questions and answering questions developed by other students for each lecture. These question/answer dialogues will be via the class discussion board (see below).

Students who miss the final exam and do not make alternative arrangements with me before I turn in grades, will receive a grade of F.


Resources

We will use the Blackboard course management system in this course (http://tuportal.temple.edu or through the TUPortal). In order to access Blackboard you must have an AccessNet account. You can get such an account from the Help desk on the ground floor of Wachman Hall. Students will be automatically enrolled in the CIS 8512 Blackboard course. But this can only happen if you have an AccessNet account. Until you have such an account, you cannot access the course materials in Blackboard.

Your AccessNet account also gives you login capability for Astro. Astro is an HP/Compaq Unix system running TrueUnix64 and has all of the necessary programming resources for your assignments. All materials for the course will be available from Blackboard. This includes a threaded discussion list, class notes and lecture slides. Students will be required to interact with themselves, and the instructor via this discussion list. The discussion list and Blackboard are accessed through a web browser. When you select the 'Operating Systems' course in Blackboard, you can access the discussion board from the button on the left side of the panel.

All course documents, lecture notes, problem assignments, announcements, etc. will be available through Blackboard.

Office visits, Voice Mail and EMAIL are encouraged for communication with the instructor.
 


Additional Textbook References