Alan Kaminsky Department of Computer Science Rochester Institute of Technology 4486 + 2220 = 6706
Home Page
Operating Systems I 4003-440-02 Winter Quarter 2012
Course Page

4003-440-02 Operating Systems I
Module 1. OS Structures -- Lecture Notes

Prof. Alan Kaminsky -- Winter Quarter 2012
Rochester Institute of Technology -- Department of Computer Science


What Is an Operating System?

  • Examples of OSes
     
  • Views of the computer
    • Below the operating system
    • Above the operating system


Review of Computer Organization

  • The three major parts of a computer
     
  • Input/output
    • I/O devices
    • Device controllers
    • The two methods of transferring data from/to I/O devices
       
  • Interrupts and traps
     
  • Storage hierarchy
    • Registers
    • Level 1 cache
    • Level 2 cache
    • Main memory
    • Electronic disk
    • Magnetic disk
    • Optical disk
    • Magnetic tape


Review of Computer Architecture

  • Single processor computers
     
  • Multiprocessor computers
    • Asymmetric multiprocessors
    • Symmetric multiprocessors (SMPs)
       
  • Multicore processors
     
  • Cluster computers
     
  • Hybrid SMP cluster computers
     
  • Distributed systems
     
  • Relationship between computer architecture and OS
    • Single processor OS
    • SMP/multicore OS
    • Cluster computers/distributed systems
      • Separate independent OSes
      • Distributed OS
         
  • Relationship between computer architecture and application design
    • Multiple threads, shared memory
    • Multiple processes, message passing
       
  • The coming importance of multiprocessor programming (parallel programming)


Operating System Operations

  • Multiprogramming
    • Why multiprogramming is good
    • Batch/non-interactive
    • Time sharing/interactive
       
  • Interrupt handling
    • Interrupts from I/O devices
    • Traps from user programs
    • User mode and kernel (privileged) mode
    • Timer interrupts
       
  • Process management
    • Job scheduling
    • CPU scheduling
    • Threads and processes
       
  • Interprocess communication
    • Synchronization
    • Shared memory
    • Messages
    • Streams
      • Pipes
      • Sockets
         
  • Storage management
    • Swapping
    • Virtual memory
    • File system management
    • Mass storage management
    • Caching of mass storage data
       
  • I/O management
    • Peripherals
    • Network protocol stacks
       
  • Graphical user interface (GUI) management
    • Integrated into the OS
    • Above the OS
       
  • Protection and security
    • User authentication
    • Access control


Operating System Structure

  • Three major alternatives
     
  • Monolithic OS
    • The entire OS is one big program that runs in kernel mode
    • Example: Early Unix systems
       
  • Modular OS
    • OS consists of a base program that is always loaded plus modules that are loaded only when needed, all running in kernel mode
    • Examples: Linux (2.5 million lines of code), Windows (> 5 million lines of code)
       
  • Microkernel OS
    • OS consists of a very small program running in kernel mode (microkernel) plus lots of manager processes running in user mode
    • Examples: Minix (microkernel has 4,000 lines of code); many embedded and real-time OSes
       
  • Pros and cons
     
  • Article: "Can we make operating systems reliable and secure?"


Operating System Interfaces and APIs


Virtual Machines

  • Virtual machines to provide virtual hardware
    • IBM's VM
    • VMware
       
  • Virtual machines to provide a hardware-independent computing platform
    • Java Virtual Machine (JVM)
    • Android Dalvik Virtual Machine
    • Microsoft .NET

Operating Systems I 4003-440-02 Winter Quarter 2012
Course Page
Alan Kaminsky Department of Computer Science Rochester Institute of Technology 4486 + 2220 = 6706
Home Page
Copyright © 2012 Alan Kaminsky. All rights reserved. Last updated 20-Nov-2012. Please send comments to ark­@­cs.rit.edu.