CSE 380
Computer Operating Systems
         Instructor: Insup Lee
       University of Pennsylvania
                Fall 2003
      Lecture Note 1: Introduction
                                     1
     What is an Operating System?
Operating systems provides an interface between hardware and user
  programs, and makes hardware usable
                                                                    2
Resource Abstraction and Sharing
q It is an extended machine providing abstraction of the
  hardware
   ß Hides the messy details which must be performed
   ß Presents user with a virtual machine, easier to use
q It is a resource manager
   ß Time on CPU is shared among multiple users/programs
   ß Space in memory and on disks is shared among multiple
       users/programs
                                                             3
Pentium Architecture
                       4
          Abstractions in OS
Hardware             OS abstraction
q Disks              q Files
q Memory             q Programs
q Processors         q Threads / Processes
q Network            q Communication
q Monitor            q Windows and GUI
q Keyboard           q Input
q Mouse              q Locator
                                             5
             Sharing of Memory
                 Issues
                 q Allocation schemes
Program 1
                 q Protection from each other
Free space       q Protecting OS code
                 q Translating logical addresses to physical
Program 3
                 q Swapping programs
Program 2
                 q What if physical memory is small: Virtual
                    memory
  OS
                                                               6
                                 Timesharing
        P1 OS        P2   OS       P1         OS P3     OS
q At any point, only one program can run on CPU
q Context switch: changing the program that has CPU
q When to switch (goal: to optimize the CPU usage)
    ß When a program terminates
    ß When a program has run “long enough”
    ß When a program executes a system call or waits for I/O
    ß When an external interrupt arrives (e.g. mouse click)
q OS must do all the book-keeping necessary for context switch, with minimum number
   of instructions
                                                                                  7
                          Challenges in OS
           Why can’t Microsoft still get rid of all bugs in Windows ?
q Performance is critical
    ß How to reduce the memory and time overhead due to OS
q Synchronization and deadlocks due to shared resources
q Scheduling of multiple programs
    ß Fairness, response time, real-time applications
q Memory management
    ß Virtual memory, paging, segmentation
q Security and Protection
    ß Authorization, authentication, viruses
q Interrupt management and error handling
q Marketability and backward compatibility
                                                                        8
                How does OS work?
q OS gets control of the CPU repeatedly
q Let’s look at two typical scenarios to get a glimpse of how
  things work (we will get a more accurate and detailed
  understanding as the course progresses)
q Basic knowledge about computer architecture is essential !
  (Read Sec 1.4 to review CSE 240)
                                                                9
                         Inside a CPU
q State of a running program
   ß Registers
   ß Program counter (PC)
   ß Stack pointer
   ß Program status word (PSW)
q Key distinction in PSW: user mode vs kernel (OS) mode
q Key instruction for OS calls: TRAP (switch to kernel mode)
q Many operations (such as accessing I/O devices) are possible only in
  the kernel mode
                                                                         10
       Different types of Memory
q Use of disks unavoidable (permanence and size)
q Access time is significantly slower for disks
                                                   11
                     Sample Scenario 1
q Consider a statement to read from a file in a user program P
q User program stores parameters such as file-id, memory-address, number-
   of-bytes, and system-call number of read, and executes TRAP instruction
   to invoke OS
q Hardware saves the state of current program, sets the mode-bit in PSW
   register in CPU to 1, and transfers control to a fixed location in OS code
q OS maintains an internal file table that stores relevant information about all
   open files
                                                                                12
          Sample Scenario 1 (continued)
q OS read routine examines the parameters, checks for errors (e.g. file must
   be open), consults its file table, and determines the disk address from
   where data is to be retrieved
q then it sets up registers to initiate transfer by the disk controller
q While disk controller is transferring data from disk to memory, OS can
   suspend current program, and switch to a different program
q When OS routine finishes the job, it stores the status code, and returns
   control to the user program P (hardware resets mode-bit)
q Note: Disk controller is accessed only by OS code (this is ensured by
   hardware protection)
                                                                             13
                     Sample Scenario 2
q Consider an assignment x:=y in a program P
q Compiler assigns logical addresses, say Add1 and Add2, for program
   variables in P’s data space
q When P is loaded in memory, OS assigns a physical base address to store
   P and its data
q Compiled code looks like
    Load (R, Add1); Store (R, Add2)
q While executing Load instruction the hardware translates the logical
   address Add1 to a physical memory location (this is done by Memory
   Management Unit MMU)
                                                                         14
          Sample Scenario 2 (continued)
q However, OS may not keep all of P in memory all the time
q OS maintains an internal table, called page table, that keeps track of which blocks
   of P are in memory
q If Add1 is not in memory, MMU generates a page fault, and transfers control to OS
q OS examines the cause, and initiates a disk transfer to load in the relevant block of
   P
q OS needs to decide memory allocation for the block to be fetched (page
   replacement algorithms)
q While this block is being fetched, P may be suspended using a context switch
                                                                                     15
 Brief History of Operating Systems
q 1940's -- First Computers
q 1950's -- Batch Processing
q 1960's -- Multiprogramming (timesharing)
q 1970's -- Minicomputers & Microprocessors
q 1980's -- Networking, Distributed Systems, Parallel
  (multiprocessor) Systems
q 1990's and Beyond -- PCs, WWW, Mobile Systems,
  embedded systems
                                                        16
        1940's -- First Computers
q Computer dedicated to one user/programmer at a time. Program
  loaded manually by programmer, using console switches.
  Debugging using console lights.
q Advantages:
   ß Interactive (user gets immediate response)
q Disadvantages:
   ß Expensive machine idle most of time, because people are slow.
   ß Programming & debugging are tedious.
   ß Each program must include code to operate peripherals -- error
      prone, device dependencies.
q Libraries of subroutines to drive peripherals are example of
  typical OS service.
                                                                      17
            1950's -- Batch Processing
q User/programmer submits a deck of cards that describes a job to be
  executed.
q Jobs submitted by various users are sequenced automatically by a
  resident monitor.
q Tape drives available for batching of input and spooling of output.
q Advantages:
   ß Computer system is kept busier.
q Disadvantages:
   ß No longer interactive; longer turnaround time.
   ß CPU is still idle for I/O-bound jobs.
q OS issues -- command processor (JCL), protection of resident monitor
  from user programs, loading of user programs after monitor.
                                                                         18
          Typical Batch System
Early batch system
   ß bring cards to 1401
   ß read cards to tape
   ß put tape on 7094 which does computing
   ß put tape on 1401 which prints output
                                             19
                1960's -- Multiprogramming
                       (timesharing)
q The advent of the I/O processor made simultaneous I/O and CPU processing
  possible.
q CPU is multiplexed (shared) among a number of jobs -- while one job waiting for
  I/O, another can use CPU.
q Advantages:
    ß Interactiveness is restored.
    ß CPU is kept busy.
q Disadvantages:
    ß Hardware and O.S. required become significantly more complex.
q Timesharing - switch CPU among jobs for pre-defined time interval
q Most O.S. issues arise from trying to support multiprogramming -- CPU scheduling,
  deadlock, protection, memory management, virtual memory, etc.
q CTSS (Compatible Time Sharing System), Multics
                                                                                    20
         1970's - Minicomputers &
             Microprocessors
q Trend towards many small to mid-range personal computers,
  rather than a single mainframe.
q Early minicomputers and microprocessors were small, so there
  was some regression to earlier OS ideas.
   ß e.g. DOS on PC is still essentially a batch system similar to those
     used in 1960, with some modern OS ideas thrown in (e.g.,
     hierarchical file system).
q This trend changing rapidly because of powerful new
  microprocessors.
q Also, the user interface (GUI) became more important.
q UNIX, DOS
                                                                           21
                  1980's - Networking
q Powerful workstations (e.g., PDP, VAX, Sunstations, etc.)
q Local area networks (e.g., Ethernet, Token ring) and long-distance
  network (Arpanet)
q Networks organized with clients and servers
q Decentralization of computing requires more communication (e.g.,
  resource sharing)
q O.S. issues -- network communication protocols, data encryption,
  security, reliability, consistency of distributed data
q Real-Time Systems – timing constraints, deadlines, QoS (quality of
  service)
                                                                       22
                    1990's and Beyond
q Parallel Computing (tera-flops)
q Powerful PCs, Multimedia computers
q High-speed, long-distance communication links to send large amounts of
  data, including graphical, audio and video
q World Wide Web
q Electronic notebooks and PDAs using wireless communication
  technologies
q Embedded computers: medical devices, cars, smartcards
q O.S. issues -- Large heterogeneous systems, mobile computing, utilization
  of power, security, etc.
                                                                           23
    Operating System Structure
q Monolithic Systems
q Layered Systems
q Virtual Machines
q Client-Server Model
                                 24
    Operating System Structure (1)
Simple structuring model for a monolithic system
                                                   25
Operating System Structure (2)
   Structure of the THE operating system
                                           26
Operating System Structure (3)
      Structure of VM/370 with CMS
                                     27
Operating System Structure (4)
    The client-server model
                                 28
  Operating System Structure (5)
The client-server model in a distributed system
                                                  29