Skip to Content - Skip to Navigation

COSC 432 Introduction to Operating Systems

Loading...

Prerequisites:  COSC 300 and COSC 310

Introduction to the principles of operating system design and implementation.  Topics include interrupt service, process states and transitions, spooling, management of memory and disk space, virtual storage, scheduling processes and devices, and file systems.

Course Objectives

Upon successful completion of this course, the student will be able to

A. Write all or parts of a simple operating system that performs interrupt processing (real or simulated), CPU management (scheduling), and memory management.

B.  Compare several different approaches to memory management, file management and processor management

C.  Describe various problems related to concurrent operations and their solutions.

D.  Explain in detail virtual address translation and distinguish it from the use of cache.

E.  Discuss various file system organizations and their interaction with the rest of the operating system.

F.  Describe techniques for process synchronization on single and on distributed systems.

G.  Explain the interaction between an operating system and a computer system's devices.

H.  Describe operating system support for users.

I. Discuss various threats to system security and compare protection mechanisms which may be used against the threats.

Detailed Course Outline

A.  Operating Systems overview      (3 hrs)
  1. Components
  2. Goals of the designer
  3. System structures
  4. User services

B.  Interrupt Systems and Device Programming    (4 hrs)
  1.  Interrupt sources and priorities
  2.  Interrupt service routines
  3.  Hardware support - machine states
  4.  Context switching
  5.  Privileged instructions and registers

C.  Concurrency Problems and Solutions     (5 hrs)
  1.  Critical section problem
  2.  Process synchronization and coordination
  3.  Semaphores, special instructions, monitors
  4.  Interprocess communication
  5.  Remote procedure calls
  6.  Special problems of transaction-based systems

D. Deadlock and Resource Conflict      (3 hrs)
  1.  Prevention
  2.  Avoidance
  3.  Detection
  4.  Recovery

E. Process and Thread management     (2 hrs)
  1. Process/thread creation and termination
  3. Process/thread states and their transitions
  4. CPU scheduling algorithms
   a.  Non-preemptive approaches
   b.  Preemptive approaches
   c.  Multi-processor considerations

F. Memory Management       (6 hrs)
  1.  Major issues:  fetch, placement, contiguity, relocation adjustment
  2.  Paging and virtual memory
  3.  Translate-look-aside buffer (associative memory)
  4.  Single and Multi-level page tables
  5.  Paging with segmentation
  6.  Problems of large address spaces and how they are addressed

G.  Virtual Storage Management      (4 hrs)
  1.  Storage hierarchy
  2.  Cache usage
  3.  Partial residency
  5.  Page replacement strategies
  6.  Working sets

H.  Physical Storage Management      (3 hrs)
  1.  Disk seek scheduling
  2.  Disk performance features
  3.  Disk reliability concerns

I.  File System Organization       (4 hrs)
  1.  The boot record - where things start
  2.  Directory organization
  3.  File descriptors
  4.  Access control
  5.  Backup

J.  System Security        (3 hrs)
  1.  Principle of least privilege
  2.  Threats and vulnerabilities
  3.  Protection mechanisms - access and capability control
  4.  User (subject) authentication
  5.  Levels of security in "trusted" systems
  6.  The confinement problem

K.  Project-specific discussion      (2 hrs)
  1.  Discussion of authentication in practice
  2.  Handling of interrupts in project environment
  3.  Using the file system for project actions
  4.  Managing memory for the project

In-class examinations      (3 hrs) 

Evaluation Methods

50% Examinations.  Two mid-term exams and the final exam each count equally toward the 50%.  Examinations consist of short-answer, analysis, and what-if questions.

50% Project(s). If a single project is used, it should involve the writing of an operating system, most likely for a simulated machine.  Such a project would be worked on by teams of students (2 or 3 per team) and needs to include authentication, memory management, device handling, CPU scheduling and some form of resource conflict (preferably over files).

If multiple small projects are used, they need to encompass the same topics or provide equivalent alternatives, such as interprocess communication instead of resource conflict or thread management instead of CPU scheduling.  Small projects may be worked on by students individually or in pairs.

Required Textbook, Supplemental Books and Readings

Silberschatz, Galvin, & Gagne, Operating Systems Concepts, Seventh Edition, Wiley, 2005.

Selected readings from other texts at the professor's discretion.

If the single project is used, a manual for the machine to be used.

Loading...
  • Computer Science Department
  • Stright Hall, Room 319
    210 South Tenth Street
    Indiana, PA 15705
  • Phone: 724-357-2524
  • Fax: 724-357-2724
Loading...
  • Office Hours
  • Monday through Friday
  • 7:30 a.m. – 12:00 p.m.
  • 1:00 p.m. – 4:00 p.m.