Lecture #13 (26 February 2002)

Operating Systems

Overall Reading
Brookshear: Ch. 3.1, 3.3

Outline:

  • Overview
  • Shared Resources
  • The Operating System
  • History
  • Concept of a Process
  • Process State
  • Process Table
  • Time Slicing and the Scheduler
  • Memory Management
  • Client-Server Model

  • Overview

    Life would be simple if a computer was always devoted to only one activity at a time. This was the case with the earliest computers, but certainly is no longer the case.
  • Multiuser environments
  • Single-user environemnts, with multiple processes
  • Multiple Processor Distributed Environments (Network)

  • Shared Resources

    The main issue is that all activities must share resources with each other.
  • Use of the CPU
  • Use of main memory
  • Mass Storage and File Systems
  • Keyboard, Printer, etc.

  • The Operating System

    The operating system coordinates the use of all of these resources.
  • History
  • The Human Operator and the Job Queue
    (still one job at a time)

  • Time-Sharing
    (multiple users sharing the same machine at the same time)

  • Multitasking
    (single user might still want to run multiple tasks at the same time)

  • Networked Systems
    many processors/computers working across the network. Still may need to share files, information, software licenses, etc.

  • Concept of a Process

    We want to make a distinction between a program, and the activity of executing a program. We will call the activity of executing a program a process.
  • Process State
    When a program is executing in PIPPIN, what information must be written down to describe the current status?
    (Program Counter, Registers, Memory Contents)

  • Process Table
    The operating system keeps track of all the active processes. A process table is maintained with information on each process. In addition to the process' state, informatin such as a 'priority' may be maintained.

    In Windows, if you want to see the list of active processes, type control-alt-delete, and select the "Task Manager" button. Then select the "Processes" tab.

  • Time Slicing and the Scheduler
    In a time-sharing system, control of the CPU is given to a process only for a very short time slice. After that time slice, the process state is saved to memory, and then another process is given a time slice. A scheduler coordinates this CPU use (see Fig. 3.6, p. 133 of [Br]).

    When one time-slice ends and another begins, a process switch takes place. There is a natural trade-off between the performance and reaction time, depending on the length of time per slice (typically chosen to be about 50 milliseconds).

  • Memory Management
    In addition to controlling process' use of the CPU, the operating system must coordinate the use of main memory among processes. It would be very bad if one process was allowed to read or change information stored in memory by another process.

  • Client-Server Model

    All of this interaction requires a good deal of communicaiton. A common design within an operating system is the use of a client/server model. networks).

    In this asymmetric design, components play one of two roles:

  • a client makes requests of other units
  • a server sends replies which satisfy the requests made by clients,
  • This design greatly simplifies the system. In fact, a similar model can be used across a network, where clients and servers reside on different machines, and messages are passed through the network.


    comp150 Class Page
    mhg@cs.luc.edu
    Last modified: 26 February 2002