0% found this document useful (0 votes)
55 views27 pages

02-Brief History of OS

Timesharing introduced the interactive service for multiple users.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
55 views27 pages

02-Brief History of OS

Timesharing introduced the interactive service for multiple users.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

CPSC 457

CPSC 457
Introduction, History, Basic concepts

Fall 2017

1
CPSC 457
Outline

● attempt to define OS
● brief history of OSes
● Chapter 1 of the book

2
CPSC 457
Defining an OS

● no 'precise' definition
● it is a layer of software that provides application programs with a better, simpler, cleaner, model
of the computer (hardware)
● it manages all resources
● it is the software that runs all the time (in kernel mode)
● all other applications need it in order to run
● we will look at an OS from two different perspectives:
○ as an extended machine
○ as a resource manager

3
CPSC 457
OS - an extended machine

● abstraction/generalization is the key to managing


Applications
complexity
● step 1: define and implement the abstractions ugly
interface
○ eg. files - working with files is easier than dealing
with raw disk space Operating system
● step 2: use the abstractions to write applications / solve
nice
problems
interface
○ e.g. file editor, image viewer
● mask the ugly hardware and provide nice interfaces Hardware

● many OS concepts are abstractions

4
CPSC 457
OS - a resource manager

● resource allocator
○ multiplex resources
■ multiplex in time
● eg. 3 programs trying to print to the same printer (spooling)
● eg. 2 programs trying to run at the same time (scheduling)
■ multiplex in space
● eg. 2 programs allocating memory
○ manage conflicts among multiple programs or users
● control program
○ controls execution of programs (eg. interrupts)
○ prevent errors and improper use (eg. traps)

5
CPSC 457
History of OSes

● When was the first OS invented?


○ 1930s
○ 1950s
○ 1970s
○ 1990s

● Which of the following OSs first appeared in the 70s?


○ Linux
○ Unix
○ Apple OSs
○ MS Windows

6
CPSC 457
History of operating systems

● OSes often developed by


● When was the first OS invented?
customers instead of HW
○ 1930s manufacturers
● IBM developed first OS in the
○ 1950s 60's
○ 1970s
○ 1990s

● Which of the following OSs first appeared in the 70s?


○ Linux
○ Unix (late 60's)
○ Apple OSs (Apple DOS)
○ MS Windows

7
CPSC 457
History of operating systems

• The 1st generation (1945 - 1955): Vacuum Tubes and no OS

• programs either hard-wired or on punch cards


• programs in machine language
• complicated wiring
• no OS (no need)
• only basic numerical calculations
• designers = builders = programmers
• one user/application at one time

8
CPSC 457
History of operating systems

● The 2nd generation (1955 - 1965): Transistors and Batch Systems


○ mainframe computers
○ FORTRAN programs on punch cards
○ OS: FMS (Fortran Monitor System) and IBSYS (IBM’s OS)
○ important concepts: batch systems

9
CPSC 457
Batch systems

10
CPSC 457
Batch systems

Structure of a typical FMS job


11
CPSC 457
History of operating systems

● The 3rd generation (1965 - 1980): ICs and Multiprogramming


○ Uses ICs (Integrated Circuits)
○ OS’s: IBM OS/360, CTSS (by MIT), MULTICS (today’s client-server model), UNIX (one-user
version of MULTICS), Linux (90's)
○ Important concepts:
■ multiprogramming: a different job in each memory partition, CPU execute other jobs
while waiting for the I/O of some jobs
■ spooling (Simultaneous Peripheral Operation On Line): read jobs from cards to disk,
load jobs from disk automatically, no more tapes
■ timesharing: interactive service for multiple users and work on big batch jobs in the
background

12
CPSC 457
Multiprogramming

Single Program Multiprogramming

OS OS

CPU Programs CPU Programs

A A B
C D

13
CPSC 457
Running single program at a time

program 1 run I/O run I/O run

program 2 run I/O run I/O run

program 3 run I/O run

CPU: p1 idle p1 idle p1 p2 idle p2 idle p2 p3 idle p3

14
CPSC 457
Multiprogramming

program 1 run wait run wait run run

program 2 wait run wait run wait

program 3 wait run wait run wait run wait

CPU: p1 p2 p3 p1 p3 p2 p3 p1 p1

15
CPSC 457
Spooling
● a way of dealing with slow devices / peripherals
● eg. printing:

fast

slow

spooler

fast

16
CPSC 457
History of operating systems

● The 4th generation (1980 - present): personal computers


○ cheap mass-produced computers → user friendly shells on top of OS
○ Windows, Mac OS, GNOME, KDE

● The 5th generation (1990 - present): mobile computers

17
CPSC 457
History of operating systems

18
CPSC 457
Online resources

● Computer History Museum


○ http://www.youtube.com/user/ComputerHistory
○ http://www.computerhistory.org
○ http://www.youtube.com/watch?v=qundvme1Tik

19
CPSC 457
Summary
● Define OS
○ An extended machine
○ A resource manager

● OS history
○ Batch systems
○ Multiprogramming
○ Spooling
○ Time sharing

● References:
○ 1.1 - 1.2, 1.4 (Modern Operating Systems)
○ 1.1 (Operating System Concepts)
20
CPSC 457
Example question

● Which one of the following concepts introduced the interactive service for multiple users?

○ Batch system

○ Multiprogramming

○ Spooling

○ Timesharing

21
CPSC 457
System calls

22
CPSC 457
Operating system

● provides services to applications, eg.


○ access to hardware through abstractions
○ resource management
● OS services are accessible through system calls (aka kernel calls)
○ usually accessible via traps (software interrupts)

23
CPSC 457
Kernel vs. user mode
User 1 User 2 User 3
(Human) (Computer) (Device) ... User n

Compiler Assembler Text Editor ... Database

Application Programs: Web browser, Media players User mode - no access to


hardware, limited
instruction set
OS Kernel:
Linux, Windows, Mac OS Kernel mode - full
access to hardware, full
Hardware: instruction set
CPU, memory,
I/O devices
CPSC 457
System calls
● when an application wants to access a service / resource of the system:
○ the application must make an appropriate system call - call a routine provided by the OS
○ usually done through a mechanism called trap
■ trap is a special CPU instruction
■ switches from user mode to kernel mode
■ invokes a pre-defined trap handler, registered by kernel
○ inside trap handler:
■ OS saves application state
■ OS does the requested operation, usually involving some hardware
■ OS switches back to user mode and restores application state
○ the application resumes
● from app's perspective, making a system call is just like calling any other routine
25
CPSC 457
System calls

● system calls provide an interface to the services made available by OS


○ think of it as an API provided by the OS
○ the interface for system calls varies from OS to OS, although the underlying concepts tend to
be similar
○ OS often executes 1000s of system calls per second

26
CPSC 457
Questions?

27

You might also like