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