N

Operating Systems - Vocabulary Flashcards

What is an Operating System?

  • An Operating System (OS) is a program that acts as an intermediary between a user of a computer and the computer hardware.

  • Purpose: To provide an environment in which a user can execute programs.

  • Goals:

    • Primary goal: to make the computer system convenient to use.

    • Secondary goal: to make the computer system efficient to use.

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 (e.g., compilers, database systems, video games, business programs).

  • Users: people, machines, other computers.

Abstract View of System

  • System composition (from the diagram):

    • users (user 1, user 2, user 3, …, user n)

    • application programs: compiler, assembler, text editor, database, etc.

    • system and application programs

    • operating system

    • computer hardware

  • The layout shows how users interact with application programs, which rely on the OS to manage hardware resources.

Function of Operating System

OS as Extended machine

  • Computer Architecture shows that the computer is made up of chips and wires; we do not want to program on bare metal.

  • A virtual machine creates a hardware abstraction.

  • An abstract machine can provide hardware-independent interfaces.

  • Benefits:

    • Increase portability

    • Allow greater protection

    • Implication: it is much faster and easier to program with fewer errors.

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.

Parts of an Operating System

  • No universal agreement, but most likely components include:

    • Memory Management

    • IO (Input/Output) Management

    • CPU Scheduling

    • IPC (Inter-Process Communication)

    • Multitasking/Multiprogramming (On some OS, this functionality is provided by a single program known as the kernel)

  • What about extras?

    • File System

    • Multimedia Support

    • UI (X Windows, MSWin)

    • Internet Browser?

    • Why would extras be important?

Evolution (History) of OS

  • First Generation: Punched cards.

  • Second Generation: Transistors and batch systems.

  • Third Generation: Integrated Circuits

    • Key concepts: spooling, multiprogramming, multitasking, virtual memory.

  • Note: The slide highlights major milestones leading to modern OS features.

Spooling

  • Spooling stands for Simultaneous Peripheral Operation On-Line.

  • It takes advantage of disk technology (new at this point) and allows overlap of I/O from one job with the computation of another job.

  • How it works while executing the current job:

    • Read next job from card reader to disk.

    • Print previous job to printer.

  • Disk acts as a partitioned buffer.

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.

Multiprogramming

  • Memory partitioned into several pieces.

  • CPU starts a job.

  • If the job is waiting for I/O, the CPU can switch to another task.

Multitasking (Time-sharing)

  • Extension of Multiprogramming.

  • Need for user interactivity.

  • Instead of switching jobs when waiting for I/O, a timer causes jobs to switch.

  • User interacts with computer via CRT and keyboard.

  • Systems have to balance CPU utilization against response time.

  • Benefits:

    • Better device management.

    • Need for a file system to allow user to access data and code.

    • Need to provide user with an “interaction environment.”

Virtual Memory

  • Programs can be larger than memory.

  • Program loaded into memory as needed.

  • Active program and data can be swapped to disk until needed.

  • Memory space treated uniformly.

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.

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.

  • 1977: Commodore PET, Radio Shack TRS-80.

  • 1979: Unix 3BSD.

Fourth Generation: (1980 – 1990) Personal Computers

  • Computer dedicated to a single user.

  • IO devices now consist of keyboards, mice, CGA-VGA displays, small printers.

  • Focus on user convenience and responsiveness.

  • Can adopt lessons from larger operating systems.

  • No need for some of the advanced options at the personal level.

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: MS Windows

  • 1986: 386 Chip

Key Events (cont)

  • 1987: OS/2

  • 1988: Next Unix Workstations

  • 1989: Motif

  • 1990: Windows 3, 1990: Berners-Lee Prototype for the Web

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:

    • Increased throughput

    • Economical

    • Increased reliability

    • graceful degradation

    • fail-soft systems

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.

Real-Time Systems

  • Often used as a control device in a dedicated application such as:</n- controlling scientific experiments

    • medical imaging systems

    • industrial control systems

    • some display systems

  • Well-defined fixed-time constraints (deterministic).

  • Hard real-time system:

    • Secondary storage limited or absent, data stored in short-term memory, or ROM (read-only memory).

    • Conflicts with time-sharing; not supported by general-purpose OS.

  • Soft real-time system:

    • Limited utility in industrial control or robotics.

    • Useful in applications (multimedia, virtual reality) requiring advanced OS features.

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 (e.g., high-speed buses or telephone lines).

  • Advantages:

    • Resources Sharing

    • Computation speed up – load sharing

    • Reliability

    • Communications

Distributed Systems (Cont.)

  • Network Operating System (NOS):

    • provides file sharing

    • provides communication scheme

    • runs independently from other computers on the network

  • Distributed Operating System (DOS):

    • less autonomy between computers

    • gives the impression there is a single operating system controlling the network

Why Operating Systems?

  • OS for CSE (Computer Science and Engineering):

    • 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: (research focus)

    • 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