History Of Operating Systems

  • Uploaded by: Muhammad Tauseef
  • 0
  • 0
  • August 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View History Of Operating Systems as PDF for free.

More details

  • Words: 751
  • Pages: 5
A Short History of Operating Systems

Hand programmed machines (1945-1955) Single user systems OS = loader + libraries of common subroutines Problem: low utilization of expensive components

History of Operating Systems: Phases Phase 1: Hardware is expensive, humans are cheap User at console: single-user systems Batching systems Multi-programming systems

Batch/Off-line processing (1955-1965) Card Reader: CPU:

Card Reader:

observation interval

= % utilization

Printer:

Job 2

Execute Job 1

Printer:

CPU:

time device busy

Read Job 1

Job 2

Print Job 1

Read Batch 1

Batch 2 Execute Batch 1

Sequential

Job 3 Job 3 Job 2

Job 3

Batching

Batch 3 Batch 2 Print Batch 1

Batch 3 Batch 2

Batch 3

Batch Processing (1955-1965)

Multiprogramming (1965-1980)

Operating system = loader + sequencer + output processor

Keep several jobs in memory and multiplex CPU between jobs program P begin : Read(var) : end P

User Data User Program n Tape

...

User Program Tape

“System Software”

User Program 2

Operating System Input Card Reader

Compute

system call Read() begin StartIO(input device) WaitIO(interrupt) EndIO(input device) : end Read

User Program 1

Output

“System Software” Tape Operating System Printer

Tape

Multiprogramming (1965-1980)

Multiprogramming (1965-1980)

Keep several jobs in memory and multiplex CPU between jobs Program 1

I/O Device

main{ k: read()

User Program 2

k: read()

User Program 2

startIO() waitIO()

k+1:

Operating System

main{

endio{ interrupt

“System Software”

}

interrupt k+1:

Operating System }

Program 2 I/O Device

read{ startIO() schedule() }

User Program 1 endio()

OS

main{

User Program n read{

User Program 1 “System Software”

Program 1

...

User Program n ...

OS

Keep several jobs in memory and multiplex CPU between jobs

}

schedule() }

Phase 1: Hardware is expensive, humans are cheap User at console: single-user systems Batching systems Multi-programming systems

Phase 2: Hardware is cheap, humans are expensive Time sharing: Users use cheap terminals and share servers

Timesharing (1970-) A timer interrupt is used to multiplex CPU between jobs Program 1 main{

User Program n ...

History of Operating Systems: Phases

k:

Program 2

OS timer interrupt

User Program 2

schedule(){

User Program 1 schedule(){

“System Software”

k+1:

Operating System

History of Operating Systems: Phases Phase 1: Hardware is expensive, humans are cheap User at console: single-user systems Batching systems Multi-programming systems

Phase 2: Hardware is cheap, humans are expensive Time sharing: Users use cheap terminals and share servers

Phase 3: Hardware is very cheap, humans are very expensive Personal computing: One system per user Distributed computing: many systems per user Ubiquitous computing: LOTS of systems per users

main{

}

timer interrupt

timer interrupt

} schedule(){

Operating Systems for PCs Personal computing systems Single user Utilization is no longer a concern Emphasis is on user interface and API Many services & features not present Evolution Initially: OS as a simple service provider (simple libraries) Now: Multi-application systems with support for coordination

Distributed Operating Systems

Ubiquitous Computing

Abstraction: present a multi-processor system appears as a single processor one. New challenges in consistency, reliability, resource management, performance, etc. Examples: SANs, Oracle Parallel Server

PDAs, cellular phones, sensors

User Program

User Program

OS

OS

process management

process management memory management

file system name services mail services

CPU

CPU

CPU

OS

Challenges Small memory size Slow processor Battery concerns Scale Security Naming

LAN/WAN 37 Network

History of Operating Systems: Phases Phase 1: Hardware is expensive, humans are cheap User at console: single-user systems Batching systems Multi-programming systems

Phase 2: Hardware is cheap, humans are expensive Time sharing: Users use cheap terminals and share servers

Phase 3: Hardware is very cheap, humans are very expensive Personal computing: One system per user Distributed computing: many systems per user Ubiquitous computing: LOTS of systems per user

Richer Services Real-time operating systems

Real time Operating System Goal: To cope with rigid time constraints Hard real time: OS guarantees that application will meet deadline Examples: health monitors, factory control, traffic collision avoidance systems (TCAS)

Soft real time OS provides prioritization, on a best effort basis No critical failure if time constraint is violated Example: most electronic appliances

“Real time” means predictable NOT fast

Over the years Not that batch systems were ridiculous They were exactly right for the tradeoffs at the time

The tradeoffs change 1981

2006

MIPS

1

6570/CPU

Factor 1,000

$/MIPS

$100000

$0.11

900,000

DRAM

128KB

2GB

8,000

Disk

10MB

250GB

25,000

Net Bandwidth

9600 b/s

100 Mb/s

10,000

# Users

>> 10

<= 1

0.1

#CPU

1

4

4

Need to understand the fundamentals So you can design better systems for tomorrow’s tradeoffs

Related Documents


More Documents from ""

Book .xlsx
June 2020 13
Bab I.pdf
November 2019 39
Sharait E Bai'at
November 2019 36