1 of 23

An Operating System?

  • What is an Operating System?
    • A program that acts as an intermediary between a user of a computer and the computer hardware.
  • What is the purpose of an operating system?
    • To provide an environment in which a user can execute programs.
  • What are the goals of an Operating System?
    • The primary goal of an Operating System is to make the computer system convenient to use.
    • The secondary goal is to make the computer system efficient to use.

2 of 23

Computer System Components

  • Hardware – provides basic computing resources (CPU, memory, I/O devices).
  • Operating system – controls and coordinates the use of the hardware among the various application programs for the various users.
  • Applications programs – define the ways in which the system resources are used to solve the computing problems of the users (compilers, database systems, video games, business programs).
  • Users (people, machines, other computers).

3 of 23

Abstract View of System Components

4 of 23

Function of Operating System

  • OS as Extended machine
    • Computer Architecture shows that computer is made up of chips and wires
    • We do not want to program on the bare metal
    • Virtual machine creates a hardware abstraction
    • Abstract machine can provide hardware independent interfaces
    • Increase portability
    • Allow greater protection
    • Implication is that it is much faster and easier to program with less errors

5 of 23

Function of Operating System

  • OS as resource manager
    • Coordination and control of limited resources such as memory, disk, network, etc
    • Deal with resource conflicts
    • Deal with resource fairness
    • Make access efficient as possible

6 of 23

Parts of an Operating System

  • No universal agreement on the topic, but most likely
    • Memory Management
    • IO Management
    • CPU Scheduling
    • IPC
    • MultiTasking/Multiprogramming

(On some Operating System, this functionality is provided by a single program known as the kernel)

  • What about?
    • File System
    • Multimedia Support
    • UI (X Windows, MSWin)
    • Internet Browser?
    • Why would extras be important

7 of 23

Evolution (History) of OS

  • First Generation: Punched cards
  • Second Generation: Transistors and batch systems.
  • Third Generation: (Integrated Circuits)
    • Spooling
    • Multiprogramming
    • Multitasking
    • Virtual Memory

*

CSE421, Spring 2001

7

8 of 23

Spooling

  • Stands for Simultaneous Peripheral Operation On-Line
  • Takes advantage of disk technology (new at this point)
  • Allows for overlap of IO from one job with the computation of another job
  • While executing current job
    • Read next job from card reader to disk
    • Print previous job to printer
  • Disk is relegated to the role of a partitioned buffer

9 of 23

Job pool

  • Advent of disk allows for random access
    • (Tape and card are sequential)
  • Several jobs can be waiting on the disk
  • The job pool is a data structure that contains info and points to the jobs on the disk
  • We can now have job scheduling to determine the order in which the jobs run so that CPU utilization can increase.

10 of 23

Multiprogramming

  • Memory partitioned into several pieces
  • CPU Starts a job
  • If the job is waiting for IO, the CPU can switch to another task

11 of 23

Multitasking (Time-sharing)

  • Extension of Multiprogramming
    • Need for user interactivity
    • Instead of switching jobs when waiting for IO, a timer causes jobs to switch
  • User interacts with computer via CRT and keyboard
    • Systems have to balance CPU utilization against response time
    • Better device management
  • Need for file system to allow user to access data and code
  • Need to provide user with an “interaction environment”

12 of 23

Virtual Memory

  • Programs can be larger than memory
    • Program loaded into memory as needed
    • Active program and data “swapped” to a disk until needed
  • Memory space treated uniformly

13 of 23

Key Events 3rd Generation

  • 1964-1966 IBM/360 and OS/360
  • 1964 Dartmouth Time Sharing System
  • 1965 DEC PDP-8
  • 1965 MIT – Multics Time sharing System
  • 1969 – Beginnings of ARPANet
  • 1969 - Unix
  • 1971 IBM 4001 – Processor on a chip
  • 1973 – Ethernet concept Bob Metcalf @ Xerox Parc
  • 1974 - Gary Kildall – CP/M OS
  • 1974 Zilog Z80 Processor

14 of 23

Key Events (cont)

  • 1974 - Edward Roberts, William Yates and Jim Bybee
    • MITS Altair 8800.
      • $375
      • contained 256 bytes of memory
      • no keyboard, no display, and no aux storage device.
  • 1976 Steve Jobs and Steve Wozniak
    • Apple II
  • 1977 Commodore PET, Radio Shack TRS_80
  • 1979 Unix 3BSD

15 of 23

Fourth Generation : (1980 – 1990)

  • Personal Computers
  • Computer dedicated to a single user
  • IO Devices now consist of keyboards, mice, CGA-VGA displays, small printers
  • User convenience and responsiveness
  • Can adopt lessons from larger operating systems
  • No need for some of the advanced options at the personal level

16 of 23

Key Events 4th Generation

  • 1981 IBM PC (8086)
  • 1981 Osborne 1
  • 1981 Vic 20
  • 1981 Xerox Star Workstation
  • 1984 Apple macintosh
  • 1984 SunOS
  • 1985 C++
  • 1985 MSWindows
  • 1986 – 386 Chip

17 of 23

Key Events 4th Generation (cont)

  • 1987 OS/2
  • 1988 Next Unix Workstations
  • 1989 Motif
  • 1990 Windows 3,
  • 1990 Berners-Lee Prototype for the web

18 of 23

5th Gen Parallel Systems

  • Multiprocessor systems with more than one CPU in close communication.
  • Tightly coupled system – processors share memory and a clock; communication usually takes place through the shared memory.
  • Advantages of parallel system:
    • Increased throughput
    • Economical
    • Increased reliability
      • graceful degradation
      • fail-soft systems

19 of 23

Parallel Systems (Cont.)

  • Symmetric multiprocessing (SMP)
    • Each processor runs an identical copy of the operating system.
    • Many processes can run at once without performance deterioration.
    • Most modern operating systems support SMP
  • Asymmetric multiprocessing
    • Each processor is assigned a specific task; master processor schedules and allocates work to slave processors.
    • More common in extremely large systems

20 of 23

Real-Time Systems

  • Often used as a control device in a dedicated application such as controlling scientific experiments, medical imaging systems, industrial control systems, and some display systems.
  • Well-defined fixed-time constraints (known as deterministic).
  • Hard real-time system.
    • Secondary storage limited or absent, data stored in short-term memory, or read-only memory (ROM)
    • Conflicts with time-sharing systems, not supported by general-purpose operating systems.
  • Soft real-time system
    • Limited utility in industrial control or robotics
    • Useful in applications (multimedia, virtual reality) requiring advanced operating-system features.

21 of 23

Distributed Systems

  • Distribute the computation among several physical processors.
  • Loosely coupled system – each processor has its own local memory; processors communicate with one another through various communications lines, such as high-speed buses or telephone lines.
  • Advantages of distributed systems.
    • Resources Sharing
    • Computation speed up – load sharing
    • Reliability
    • Communications

22 of 23

Distributed Systems (Cont.)

  • Network Operating System
    • provides file sharing
    • provides communication scheme
    • runs independently from other computers on the network
  • Distributed Operating System
    • less autonomy between computers
    • gives the impression there is a single operating system controlling the network.

23 of 23

Why Operating Systems?

  • OS for CSE :
    • Real world OS is a software engineering problem
      • Design of the Virtual/Extended machine
      • Development of the Kernel
    • OS Usability, Human Factors for OS
  • OS for CSE:
    • New algorithms to help make OS better, more efficient
    • Hypothesis, experiments regarding OS approaches
  • OS for anyone else :
    • Help to understand better the parts of the OS and how to compare and contrast the various qualities of Operating Systems