CSCI 380

Operating Systems

Coordinator: chad hogg

Credits: 4.0

Description

Design and implementation of operating systems including types of operating systems, file systems, resource management, concurrent processes, deadlocks, memory management techniques, processor scheduling, disk scheduling, operating system security and system administration. Students expected to develop significant operating systems programming projects.

Prerequisites

C- or higher in CSCI 362 and CSCI 370

Sample Textbooks

Course Outcomes

  1. familiar with the basic components of an operating system.
  2. familiar with some of the classical operating systems issues
  3. able to study and modify an operating system.
  4. familiar with the structures of operating systems on various computer platforms.
  5. familiar with classical problems of concurrency and be able to develop programs using concurrency primitives.
  6. familiar with tasks of a system administrator on various platforms.
  7. familiar with security issues related to system protection.

Major Topics Covered

  1. Introduction
    1. Early Operating Systems
    2. Multiprogramming
    3. Time Sharing
    4. Real-Time Systems
    5. Multi-Processor Systems
  2. Operating System Services
    1. Types of services
    2. The user view
    3. The operating system view
  3. Concurrency
    1. The Critical Section Problem
    2. Semaphores
    3. Classical Process Coordination Problems
    4. Interprocess Communications
    5. Modularization
    6. Synchronization
    7. Concurrent Languages
  4. Deadlocks.
    1. The problem.
    2. Characterization
    3. Prevention
    4. Avoidance
    5. Detection
    6. Recovery
  5. Memory Management
    1. Resident Monitors
    2. Swapping
    3. Paging
    4. Segmentation
    5. Fragmentation
    6. Garbage collection
    7. Placement strategies
  6. Virtual Memory
    1. Overlays
    2. Demand Paging
    3. Virtual Memory concepts
    4. Page Replacement Strategies
    5. Thrashing
    6. Locality and the Working Set
  7. File Systems
    1. Access Methods
    2. Allocation Methods
    3. Directory Structures
    4. Protection
  8. CPU Scheduling
    1. Multiprogramming Concepts
    2. Scheduling Strategies
    3. Performance Trade-offs
  9. Disk Scheduling
    1. Physical Characteristics
    2. First-Come-First-Serve Scheduling
    3. Shortest-Seek-Time-First
    4. Scan
    5. Sector Queuing
  10. Operating System Security.
    1. Issues in OS security, prevention, detection, monitoring.
    2. Viruses, worms, Trojan horses.
    3. Software packages for secure systems.
  11. System Administration.
    1. Issues in system administration.
    2. Adding users, peripherals, networks, email, Internet.
    3. Startup and shutdown procedures.
    4. Backup and restore facilities.
    5. System Accounting.
    6. Automating routine tasks using shell scripts.
  12. Other Topics.
    1. Example operating systems:
    2. Performance Issues.
    3. System Tuning.