UNT | University of North Texas

Search form

CSCE 4600: Introduction to Operating Systems

Course Number: 
CSCE 4600
Course Name: 
Introduction to Operating Systems
Description: 

 Concepts in operating system analysis and design. General topics of process, resource and file management are presented and analyzed in the context of different system architectures and performance constraints. 

Start Date: 
Monday, May 3, 2004
Last Review Date: 
Thursday, April 2, 2015
Prerequisite (should have grade of C or better): 
Credit Hours (Including Labs): 
3.00
UNT Topics: 
  1.  Introduction
    1. Parts of a computer
    2. Views of OS
    3. Storage hierarchy
    4. Synchronous and asynchronous I/O
    5. Organization of OS
    6. Types of kernels
    7. Virtualization and virtual machines
    8. Interrupts and traps
    9. Privileged and non-privileged states and instructions
    10. System call interface and implementation
    11. Relationship between API and system call
    12. Client-server paradigm
    13. Multiprocessor systems
    14. Multicore systems
    15. Batch system
    16. Multitasking
    17. Process scheduling 
    18. Physical vs logical memory
    19. Files
    20. Protection and security
  2. Processes and Threads
    1. Processes
      1. Parts of a process
      2. States of a process
      3. Process control block
      4. Process creation
      5. Process termination
      6. Cooperating processes
      7. Process scheduling
      8. Domain and range of a process
      9. Precedence relations
      10. Process flow graph
      11. Determinacy
      12. Mutual non-interference
      13. Context switch
      14. Interprocess communication
    2. Threads
      1. Parts of a thread
      2. Single and multithreaded processes
      3. Benefits of multithreaded programming
      4. Concurrency
      5. Parallelism
      6. Relationships between user and kernel threads
      7. Thread libraries
      8. Thread pools
      9. Thread signal handling
      10. Thread cancellation
  3. Process scheduling
    1. CPU and I/O-bursts
    2. Process scheduling queues
    3. Process schedulers
    4. Process scheduling parameters
    5. Process scheduling evaluation criteria
    6. Process dispatching
    7. Embedded vs autonomous schedulers
    8. Priority function
    9. Preemptive and nonpreemptive scheduling
    10. Scheduling algorithms
    11. Priority inversion
    12. Priority inheritance
    13. Multiprocessor and distributed scheduling
    14. Scheduling algorithm evaluation techniques
  4. Process coordination and communication
    1. Critical section problem
    2. Race condition
    3. Types of blocking
    4. Mutual exclusion
    5. Software vs Hardware based mutual exclusion
    6. Binary semaphores
    7. Counting semaphores
    8. AND synchronization
    9. Monitor
    10. Condition variable
  5. Synchronization problems
  6. Deadlocks
    1. Definition of deadlock
    2. Reusable and consumable resources
    3. Process blocking
    4. Deadlock state
    5. Deadlock conditions
    6. Resource allocation graphs
    7. State transitions
    8. Deadlock detection 
    9. Deadlock prevention
    10. Deadlock avoidance
    11. Deadlock recovery
  7. Memory
    1. Importance of separate per-process memory spaces
    2. Registers
    3. Address binding
    4. Virtual/logical and physical address spaces
    5. Memory management unit
    6. Static and dynamic linking
    7. Static and dynamic loading
    8. Shared libraries
    9. Swapping
    10. Single and multiple partition allocation
    11. Fixed and variable partitions
    12. The buddy system
    13. External and internal fragmentation
    14. First-fit, best-fit, worst-fit
    15. Segmentation
    16. Paging
    17. Associative memory
    18. Translational lookaside buffer (TLB)
    19. Memory protection
  8. Virtual memory
    1. Virtual memory
    2. Virtual address space
    3. Page fault
    4. Locality of reference
    5. Copy on write
    6. Page replacement
    7. Thrashing
    8. Allocating frames to processes
    9. Memory mapped files
    10. Memory mapped I/O
  9. Mass storage structure
    1. Hard drives
    2. Solid state drives
    3. Magnetic tape
    4. Logical block
    5. Physical/low-level formatting
    6.  Disk scheduling algorithms
    7. Disk partitioning
    8. Boot block
    9. Bad block
    10. Swap space
  10. File systems
    1. File
    2. Block
    3. File system
    4. I/O control
    5. Logical file system
    6. Examples of file systems
    7. Directory structure
    8. Mount table 
    9. Open-file table
    10. File descriptor
    11. Partition
    12. File system interfaces
    13. Allocation
    14. Free space management
    15. Consistency checking
    16. Journaling
  11. Protection and Security
    1. Least privilege
    2. Hardware and software objects
    3. Protection domains
    4. Process isolation
    5. Resource encapsulation
    6. Access rights
    7.  Access control matrix
    8. Role based access control
    9. Revocation of access rights
    10. Language-based vs kernel-based protection
    11. Threat
    12. Attack
    13. CIA Triad
    14. Physical security
    15. OS security
    16. Network security
    17. Program Threats
    18. System and network threats
    19. Cryptography
    20. User authentication
    21. Implementing security defenses
UNT Outcomes: 
  1. Use the principles of processes and threads for abstraction of real-world events
  2. Formulate solutions for mutual exclusion and process synchronization
  3. Understand the concept of deadlock to develop deadlock free systems of processes
  4. Understand principles of memory and resource management
  5. Identify different process scheduling paradigms and utilize them in system development
  6. Develop fundamental security features to protect systems and data. 
Course Materials: 

Operating Systems Concepts – Essentials, Second Edition by Silberschatz, Galvin, and Gagne 

UNT Department: 
Computer Science and Engineering (CSE)
Course Level: 
Undergraduate
Course Documents: