Abstract View of System Components

Download Report

Transcript Abstract View of System Components

Operating System History --and maybe some future ?
In the beginning there were vacuum
tubes …
Early Processors ~ 1950
• Three types of command
•
•
•
•
– Arithmetic (add, subtract, and, or)
– Load/store
– Transfer of control
“Your” machine
No protection
You are operating system
Memory faster the CPU
Bare Iron Era – early 1950s
•
•
•
•
Software
One program – one machine
Billing by hours of computer use
Innovations
– Bigger, faster memory – 8k words
– “Fast” input devices – paper tape, punch cards
Simple Batch – late 50s …
• Memory now slower than CPU
• Sequence program (jobs) – save
overhead
• Monitor processing to bill by
program
• Device drivers to off-load I/O
• Interrupts
Memory Layout for a Simple Batch
Efficiency of Early Batch
•
•
•
•
Read record from file (.0015 seconds)
Execute 100 instructions (.0001 seconds)
Write record to file (.0015 seconds)
Total (.0031 seconds)  3.2 %
Batch Multiprogramming --- early 60s
•
•
•
•
•
Several jobs in memory at once
One job at a time “using” CPU
One program executes – others wait
Hardware includes supervisor mode
“Hybrid” OS (software and human) provides
– Protection
– Scheduling
– Accounting
– Resource allocation (files, software, … )
Multiprogrammed Batch
Several jobs are kept in main memory at the same
time, and the CPU switched among them based on ?
“Mainframe” Computing -- 1970s
•
•
•
•
•
Bigger (64k ??), faster memory
Much faster CPU
Memory hierarchies
Time sharing
All software OS provides
– Interactive environment
– File systems
– Illusion of single-user machine
Virtual Memory --- early to mid 1970s
• Added during “mainframe era”
• Subset of program in main memory during
execution
• OS (with hardware support) maintains
“necessary” part of program in memory
during execution
Trends – Each Generation:
•
•
•
•
•
•
Reduces cost by 10x or more
Improves performance by 10x or more
Improves capacity by 10x or more
Improves “ease of computing”
Increase customer base by 100x or more
Increase “sharing” --- need for resource
management and protection
Operating System Terms
• Resource allocator – manages and
allocates resources.
• Control program – controls the
execution of user programs and
operations of I/O devices .
• Kernel – the one program running at all
times (all else being application
programs).
Parallel Systems
• Multiprocessor systems with parallel CPUs in
“close” communication.
• Advantages of parallel system:
– Increased throughput
– Economical
– Increased reliability
• graceful degradation
• fail-soft systems
A “Thought”
“The key to the brain’s ability to make such good use
of nighttime downtime is something it shares with
your computer: the capacity to run multiple programs
at once – to go on wrestling with a problem even
when you’re turned your conscious attention
elsewhere. … Conscious awareness is able to focus on
only one thing at a time.”
Kluger, Jeffrey “Shhh! Genius at Work”, Time, April 23, 2012, p. 46
Parallel Systems (Cont.)
• Terms overlap, BUT
• Ways to categorize parallelism
– Symmetric vs. Asymmetric
– Flynn categorization
– Granularity of parallelism
– Distributed vs. Clustered
Parallel Systems (Cont.)
• Symmetric multiprocessing (SMP)
– Each processor runs identical copy of
operating system.
– Many processes can run at once without
performance deterioration.
• Asymmetric multiprocessing
– Each processor assigned a specific task;
master processor schedules and allocates
work to slave processors.
– More common in extremely large systems
Symmetric Multiprocessing Architecture
Flynn’s Classification
• Each of instructions and data can be
parallel --- or not
• 4 categories
– SISD
– SIMD
– MIMD
– MISD ???
Granularity of Parallelism
•
•
•
•
•
Instruction-level
Data-level
Loop-level
Thread-level
Task-level
Distributed Systems
• Loosely coupled system – processors
communicate through “available”
communications lines
• Advantages of distributed systems
– Resources Sharing
– Unlimited Resources ?
– Reliability
– Communications cheap
• Disadvantages ?
Real-Time Systems
• Control, Sensors, Image Processing
• Well-defined fixed-time constraints.
• Real-Time systems may be either hard
or soft real-time.
Handheld Systems
•
•
•
•
Personal Digital Assistants (PDAs)
Cellular telephones
Mobile devices
Issues:
– Limited memory
– Slow (?) processors
– Small display screens
– Power constraints
Operating System Types (current)
•
•
•
•
•
•
•
Mainframe Systems
Desktop Systems
Multiprocessor Systems
Distributed Systems
Clustered Systems
Real -Time Systems
Handheld Systems
Operating Systems Types (future)
• Heterogeneous multiprocessor systems on a
chip
• Multi-core
• Many-core
• SIMD/GPU
• ?
A Final Thought
“For x86 computers, we expect to see two additional cores per
chip every two years and the SIMD width to double every four
years. Given these assumptions, over the next decade the
potential speedup from SIMD parallelism is twice that of MIMD
parallelism.”
Hennessy, J.l. and Patterson, D.A., Computer Architecture – A
Quantitative Approach, 5th edition, 2012 p. 263.
OS Airlines – MAC
• All stewards, stewardesses, captains, baggage
handlers, ticket agents, look the same, talk the
same, act the same
• Anytime you ask about details you’re told you
don’t need to know, don’t want to know, and
everything will be done for you without your
having to ask. So shut up and sit down.
OS Airlines – Windows 3.1
• The airport terminal is nice and colorful with
helpful stewards and stewardesses
• Easy access to plane and uneventful takeoff …
then
• The plane blows up without any warning
whatsoever
OS Airlines – Windows xx
• Planes are remarkably similar to ones used by
Windows 3.1 OS
• Environment is even nicer, but the plane takes 5
times as long to get started – or to stop
• Plane flies well enough, smooth and quite fast
• Then the plane blows up for no explainable reason
OS Airlines -- UNIX
• Each passenger brings one part of the plane to
the airport
• Passengers go to the runway and put the
plane together piece by piece, constantly
arguing over what type of plane they’re
building