CS4328: Operating Systems

Fall 2011

Current course material is maintained on TRACS

[ Home ]

Instructor:
Mina Guirguis
Email: msg AT txstate DOT edu
Phone: (512) 245-6384
Office: Nueces building (office #265)

Office Hours:
Mondays: 4:30 - 6:00 (in Round Rock, Faculty offices, 4th floor)
Tuesdays: 3:30 - 5:00 (in San Marcos, Nueces building, office #265)
Thursdays: 10:00 – 12:00 (in San Marcos, Nueces building, office #265
Before and after class and also by appointment

Lectures:
Mondays: 6:30 – 9:20 (in Round Rock, AVRY Room #362)

Textbook:
Operating Systems Concepts, Silberschatz, Galvin and Gagne, 8th Edition.

Grading Policy:
Midterm exam (25%)
Final exam (35%)
Written assignments (15%)
Programming assignments (25%)

Late written assignments will not be accepted without prior arrangements. Late programming assignments would incur a penalty of 20% per day for up to 2 days, and then they will not be accepted.

Academic Honesty:
Discussion of course material and problem sets are encouraged between students. However, you must write-up your answers on your own. You must also write the names of other students you discussed each problem with. As for programming assignments, you may still discuss them with other students; however, you must never submit someone else's code as part of your own.

Course Description:
This course is about the design of operating systems.

Course Content:

  • Computer system overview.
  • Process description and control.
  • Concurrency issues (mutual exclusion and synchronization).
  • Deadlock prevention, avoidance and detection.
  • Memory management and paging.
  • Virtual memory.
  • CPU scheduling algorithms.
  • Disk scheduling algorithms.
  • File management.
  • Virtual machines.
  • Other topics (security, embedded systems and distributed systems) as time allows.

Learning Objectives:

  • Explain the objectives and functions of modern operating systems.
  • Know how operating systems have evolved over time from primitive batch systems to sophisticated multi-user systems.
  • Discuss the advantages and disadvantages of using interrupt processing.
  • Describe the need for concurrency.
  • Demonstrate the potential run-time problems arising from the concurrent operation of many separate tasks.
  • Create state and transition diagrams for simple problem domains.
  • Explain conditions that lead to deadlocks.
  • Compare and contrast the common algorithms used for both preemptive and non-preemptive scheduling of tasks in operating systems.
  • Describe relationships between scheduling algorithms and application domains.
  • Discuss the need for preemption and deadline scheduling.
  • Explain memory hierarchy and cost-performance tradeoffs.
  • Summarize the principles of virtual memory as applied to caching, paging, and segmentation.
  • Describe the performance metrics used to determine how a system performs.
  • Compare and contrast the common algorithms used for disk scheduling.
  • Analyze the performance of different implementations in a variety of settings via simulation experiments.
  • Implement system calls.

Prerequisites:
CS 2318 Assembly Language
CS 3358 Data Structures
  
Accommodations:
If you require any special accommodation(s), please make sure to let me know during the first two weeks of the semester.