Download Slides 2 - USC Upstate: Faculty

Document related concepts

Speech-generating device wikipedia , lookup

Wizard of Oz experiment wikipedia , lookup

Machine learning wikipedia , lookup

Human–computer interaction wikipedia , lookup

Transcript
Chapter 2
Introduction To Systems Architecture
CSCI 311
Dr. Frank Li
©2016. Cengage Learning. All rights reserved.
Automated Computation
• An automated computation device can:
– Accept numeric inputs
– Perform computational functions
– Communicate results
• summarized as input – process – output
• The list of capabilities is very general and can
implemented with various devices implemented with
underlying technologies based on:
–
–
–
–
–
Biology
Mechanics
Electronics
Optics
Quantum mechanics
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Biological Computing (self-study)
• Humans can perform input – process – output
via the electrochemical processes of our brain
and nervous system
• Biological “technology” occasionally finds use in
computer systems, for example:
– Displays that use “organic” LEDs
– “Genetic” algorithms for applications such as
scheduling
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Mechanical Computing
• Mechanical computers were developed in the
early 1800s and were in use as recently as the
1970s
• The key to performing mechanical computation
is to exploit the mathematics underlying a
mechanical device
– The physical operation of gears, levers, and other
mechanical devices can be described
mathematically
– Operating the device “performs” the mathematical
function
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Mechanical Computers
• Jacquard loom Joseph Jacquard
design punched paper cards as a
template to allow his textile loom to
weave intricate patterns automatically.
(1801)
– the use of punched cards to define woven
patterns can be viewed as an early form of
programmability.
Systems Architecture, Seventh Edition
5
Difference Engine
• Charles Babbage saw high error rate of the
people computing the tables, thus started his
life’s work in trying to calculate the tables
mechanically, removing all human error.
• He began in 1822 with what he called the
difference engine, made to compute values of
polynomial functions.
– around 25,000 parts, fifteen tons, eight feet high.
– Charles did not complete it. but difference engine was
built using his plans in 1991.
© Science Museum/Science & Society
Picture Library
http://www.youtube.com/watch?v=B8tmfc
Og8l8.
Systems Architecture, Seventh Edition
6
Analytical Engine
• Babbage started designing a different, more complex
machine called Analytical Engine would be able to
perform all four arithmetical operations, plus
comparisons and square roots.
– was to be powered by a steam engine, 30 m x 10 m
– The input (programs and data) was to be provided to the
machine via punch cards, was to be a store capable of holding
1,000 numbers of 50 digits each.
– Unfortunately …
• Limitations of mechanical computers
– Complex design and construction
– Wear, breakdown, and maintenance of parts
– Low operating speed
Systems Architecture, Seventh Edition
7
Mechanical Computing - Shortcomings
• Complexity
– Implementing complex mathematical functions requires
correspondingly complex machines
– Designing and building complex machines is difficult and
expensive
• Reliability
– Mechanical devices are subject to wear, resulting in loss of
precision or outright failure
– Maintenance requirements are high
• Speed
– The speed at which an automated device “computes” is
fundamentally limited by the speed of its moving parts
– The mass of mechanical parts combined with wear places a
relatively low upper bound on their computational speed
• For example, How quickly can the crank on the Babbage
difference engine be turned without breaking the machine?
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Electronic Computing
• The behavior of electronic devices such as resistors,
capacitors, and switches can be mathematically
described, thus providing a basis for electrical
computation
• As humans gained experience with electricity,
electrical devices became simpler and cheaper to
design, build, and operate than mechanical devices
– Modern microprocessors have over a billion
transistors (and many additional “parts”)
– Imagine a mechanical machine with a billion moving
parts
• Electricity moves at nearly the speed of light, much
faster than any mechanical part can move
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Optical Computing (self-study)
• Light moves quickly and interacts with optical
devices in mathematically describable ways
• Optics is gradually supplanting electricity (and it’s
cousin, magnetism) in various areas of systems
architecture:
– Data storage – for example, DVDs and holographic
storage)
– Communications – for example, fiber optic network
cabling and fiber optic communication among CPUs
in a supercomputer
• Optics may supplant electronics for processor
implementation in the next few decades
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Data Representation
• Most forms of automated computing rely on clearly
identifiable states of a machine “part” to represent data
values – for example:
– Two neurons are or aren’t connected by a synapse
– A gear is rotated to a specific position
– An electrical switch is open or closed
• The clearly identifiable states provide the basis for
representing a binary digit – zero or one – a bit
• Automated computers operating on single-state data
inputs produce single-state outputs (for example A + B =
C, C is always a single value if A and B are single
values)
• Quantum physics turns this entire concept on its ear!
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Quantum Computing
• “Strange” features of quantum physics:
– Quantum particles can exist in multiple states at the
same time – a qubit
– Quantum “digits” of a multibit data value can store
many different values at once
– Quantum manipulation (computation) on qubit inputs
produces qubit outputs – in essence, one
computational “action” yields many computational
results – a form of parallel processing
• The inherent parallelism of quantum computation is
well-applied in fields such as numerical simulation
and cryptography
• Now for the hard part, building a cheap and reliable
computer that manipulates qubits!!
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Quantum Computing - Continued
• D-Wave Systems has marketed quantum computers
since 2010
– Very exotic and expensive
– Software designers are still figuring out how best to use
them
D-Wave 512 qubit processor © D-Wave Systems, Inc.
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Computer Capabilities
• Computers are automated computation devices
• But all automated computation devices aren’t
computers
• Features that distinguish computers include:
– A general-purpose processor
• Performs computations
• Performs “logic” functions such as comparison and
branching
– Large amounts of storage for instructions and data
– Communication flexibility – many devices for many
purposes
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Computer Processors
• A processor is a device that can perform the following
functions:
– Computation (+, ‒, ×, ÷)
– Comparison (<, =, >, ≠, ≤, ≥)
– Data movement among memory, mass storage, and I/O
devices
• An instruction is a command to a processor to perform
a specific function (e.g., addition) on specific data
input(s)
• Each instruction is relatively simple
• When a computer “follows an instruction” it is said to be
executing the instruction
• Complex tasks are accomplished by combining many
instructions into a program and executing the program
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
General- and Special-Purpose
Processors
• A general-purpose processor:
– Reads its program instructions from a storage
device
– The content of the storage device can be
changed, thus changing the program and the
function performed by the processor
• A special-purpose processor either:
– Uses program storage that can’t be altered (e.g.,
read-only memory)
– Has a single program “wired” into the processor
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Formulas versus Algorithms
• A formula is a complex mathematical relationship
that can be “solved” with a specific sequence of
instructions
• The same instruction sequence works regardless of
the data input values
• An algorithm is more complex than a formula
– Instruction sequence varies depending on data input
characteristics
– Varying the instruction sequence requires the ability
to:
• Evaluate a condition – e.g., is a data input greater
than some threshold value
• Alter instruction sequence – i.e., branching
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Algorithm Example
10
20
30
40
50
60
70
80
90
100
110
120
130
140
150
160
170
180
190
200
210
220
INPUT INCOME
IF INCOME > 9075 THEN GOTO 50
TAX = INCOME * 0.10
GOTO 180
IF INCOME > 36900 THEN GOTO 80
TAX = 907.50 + (INCOME − 9075) * 0.15)
GOTO 180
IF INCOME > 89350 THEN GOTO 110
TAX = 5081.25 + (INCOME − 36900) * 0.25)
GOTO 180
IF INCOME > 186350 THEN GOTO 140
TAX = 18193.75 + (INCOME − 89350) * 0.28)
GOTO 180
IF INCOME > 405100 THEN GOTO 170
TAX = 45353.75 + (INCOME − 186350) * 0.33)
GOTO 180
IF INCOME > 406750 THEN GOTO 200
TAX = 117541.25 + (INCOME − 405100) * 0.35)
GOTO 210
TAX = 118118.75 + (INCOME − 406750) * 0.396)
OUTPUT TAX
END
Burd, Systems Architecture, seventh edition, Figures 2-4 and 2-5, Copyright © 2015 Course Technology
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Algorithms and “Intelligent” Behavior
• Evaluating conditions and altering behavior are the
cornerstone of what we perceive as logic or
intelligence
– For example, evaluating whether the characteristics
of a street, oncoming traffic, and your own physiology
enable you to cross the street without being run over
• For this reason, the instructions that implement
comparison and branching are sometimes called
logic instructions
• A computer’s logic instructions are more limited than
a human’s, but a computer can execute a large
number of them quickly and reliably (e.g., anti-lock
brakes)
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Storage
• Computers needs to store:
– Intermediate processing results (for example, when solving a
complex formula)
– Data (output of past program executions and input to future
program executions)
– Programs
• Each storage category has different characteristics including
importance, quantity, and access time-frame
– Those characteristics may also vary within each category
• Different mixes of data characteristics drive the need for a
variety of storage devices and technologies, each tailored to
cost-effectively match the data characteristics with
appropriate device characteristics such as:
– Speed
– Volatility
– Cost per bit
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Communication Capabilities
• Computers must be able to communicate with:
– Humans
• Vision (e.g., video displays and printers for output,
scanners and cameras for input)
• Sound (e.g., music and beeps for output, speech for
input)
• Mechanics and touch (e.g., mouse, keyboard, and
touch screen)
– Other Computers
• Wired communication (e.g., via Cat6 or fiber-optic
cable)
• Wireless communication (e.g., via infrared or radio
frequency transmission and reception)
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Computer Hardware
Figure 2.6 The major functions of computer hardware
Courtesy of Course Technology/Cengage Learning
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
22
Hardware Components
Figure 2.7 The hardware components of a computer system
Courtesy of Course Technology/Cengage Learning
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
23
Central Processing Unit
• A central processing unit (CPU) is a generalpurpose processor that executes instructions
• CPUs are implemented on microprocessor
“chips”
• Modern chips can have multiple CPUs in a
single chip (e.g., Intel Core i7)
• The CPU is the computer’s “brain”
• Like a human brain, a CPU is internally divided
into regions that perform specialized functions
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
CPU Components
• Arithmetic-logic unit (ALU)
– Performs computation and logic
instructions
• Registers
– Internal storage locations – each
holds one data item
– Hold inputs to and outputs from
the ALU
• Control unit
– Moves data among registers and
other computer system storage
locations
– Accesses program instructions
and either executes them (data
movement) or directs the ALU to
execute them (computation and
logic instructions)
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Figure 2.8 Components of the CPU
Courtesy of Course Technology/Cengage Learning
Primary Storage
• Primary storage, also called, main memory or just memory,
is an area of high-speed storage that:
– Holds programs currently being executed
– Holds data inputs needed (or expected to be needed)
immediately by executing programs
– Is implemented outside the CPU
– Is implemented “close” to the CPU to improve access speed
– Is implemented using “fast” devices to improve access speed
– Is volatile (loses its content when power is lost)
• In modern computers, primary storage:
– Is implemented with electronic random-access memory (RAM)
– Contents can be moved to/from the CPU in a few nanoseconds
– Capacity is normally a few gigabytes (billion data items) per CPU
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Secondary Storage
• Secondary storage is one or more storage areas that:
– Hold large quantities of data and programs (typically
hundreds of billions to a few quadrillions of data items)
– Is non-volatile (holds content indefinitely)
– Is much cheaper per bit than primary storage
– Is much slower than primary storage
• Secondary storage devices include:
–
–
–
–
Magnetic disk
Optical disk
Flash RAM (and solid-state drives)
Magnetic tape
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Storage Comparison Summary
Type
Implementation
Content
Typical quantity
CPU
Registers
High-speed electrical
devices implemented
within the CPU
Currently executing
instruction(s) and
associated data inputs and
outputs
Several dozen to a
few hundred per CPU
Primary
storage
High-speed electrical
devices (RAM)
implemented outside
but close to the CPU
Current programs and
1-8 billion data items
immediately needed data to per CPU
the extent it will fit
Secondary
Storage
Low-speed
electromagnetic and
optical devices
Programs not currently
being executed and data
not currently being
accessed by programs
Table 2.1 Comparison of storage types
Courtesy of Course Technology/Cengage Learning
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Billions (gigabytes),
trillions (terabytes),
or quadrillions
(exabytes) of data
items
Systems Bus
• The system bus is the communication channel that
connects all devices in the computer system
• Bus speed is a critical factor in determining the
overall speed of the computer system
• Modern computers use additional buses improve
performance – for example,
– Storage bus – to connect multiple magnetic disk
drives to a single connection point on the system bus
– CPU-memory bus – for direct transfer of data
between the CPU and primary storage
– Video bus – for direct transfer of data between
memory and the video/graphics controller
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Input/Output Devices
• For example:
–
–
–
–
–
–
–
–
–
–
–
Video display units
Touch screen
Keyboard and mouse
Joystick
Microphone
Speaker
Webcam
Printer
Bar code scanner
Network interface card
USB or Firewire port
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Personal Computing Devices (2014)
Type
Typical product
Typical specifications
Cost
Smart phone
Samsung Galaxy S5
$600
Tablet computer
Apple iPad mini 3
Laptop computer
Lenovo Flex2
Desktop
computer
HP Pavillion 23t All-in-One PC
Workstation
Dell Precision T5810
5.1 inch touchscreen
16 megapixel camera
1 CPU, 3 GB RAM
32 GB flash RAM
7.9 inch touchscreen
5 megapixel camera
1 CPUs, 1 GB RAM
64 GB flash RAM
15.6 inch touchscreen
2 CPU with integrated graphics
4 GB RAM
500 GB hybrid disk drive
23 inch touchscreen
2 CPUs with integrated graphics
8 GB RAM
1 TB hybrid disk drive
Rewritable Blu-ray DVD drive
Dual 23 inch touchscreens
4 high-speed CPUs
16 GB RAM
High-performance video card
1 TB hybrid disk drive
Tower case with expansion bays
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
$500
$600
$950
$3300
Table 2.2 Typical personal computing products
Courtesy of Course Technology/Cengage Learning
Microcomputers and Workstations
• Personal computing devices
– Meets the needs of one user at a time
– Subclasses
•
•
•
•
Workstations
Laptops
Tablets
Smart phones
• Workstation
– Desktop computer―Ordinary or “high-end”
– High-end
• Has greater CPU power, more memory, better graphics,
and/or faster secondary storage
• Customized for very demanding single-user tasks such as
video editing, animation, and computer-aided design
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Smart Devices
• Small computers can be
embedded in a wide variety
of smart devices,
including:
–
–
–
–
–
Appliances
Phones
Power tools
Televisions
Vehicles
http://www.embeddedarm.com/products/boardpictures.php?product=TS-4900
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Midrange Computer
• Midrange computer
– Supports up to several dozen simultaneous users in one or more
modes:
• Sharing a resource via a network such as email
messages/folders, a database, or a Web site)
• Multiple directly-attached video display terminals (e.g., Citrix)
• Virtual computing – hosting multiple “virtual” microcomputers
– Typical subsystem capabilities:
•
•
•
•
•
•
1-16 CPUs
1-8 GB memory per CPU
Large, fast, fault-tolerant secondary storage subsystem
Embedded or directly-connected secondary storage backup
Multiple high-speed network connections
Redundant power supplies
– Typical cost is $5,000-$50,000
– Can also be used as a building block for larger computers
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Mainframe Computer
• A mainframe computer scales up the ability to
support simultaneous users and programs:
– Dozens of CPUs
– Memory to match
– Sustained data transfer rates among primary and
secondary storage measured in hundreds of
megabytes or gigabytes per second
– Sustained data transfer to/from networks measured in
tens of gigabits per second
– Ability to manage and utilize terabytes of data
– Cost ranging up to $1,000,000
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Supercomputer
• A supercomputer has one primary purpose:
– Perform as many calculations as possible in as short a
time as possible
– This implies other high-end capabilities (e.g., memory size
and speed) but they are secondary to computational
performance
• See http://www.top500.org
• Typical specs:
– Hundreds to hundreds of thousands of CPUs performing
trillions to quadrilliions of calculations per second
– Modular architecture:
• All CPUs working on one big problem, or
• CPU subsets assigned to separate problems
– Cost - $1,000,000 to start, the sky is the limit!
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Typical Computers in 2009
Class
Typical product
Typical specifications
Approximate cost
CPUs
Portable
Dell Latitude E6400
$1150
2
Microcomputer
Dell Optiplex 760
$1000
2
Workstation
Dell Precision T7500
$8350
8
Midrange
Dell PowerEdge T610
$15,050
8
Mainframe
IBM Z10 E64
$500,000
64
Supercomputer
IBM Blue Gene/P
4 billion main memory cells
250 billion disk storage cells
Rewritable DVD drive
14-inch display
4 billion main memory cells
500 billion disk storage cells
Rewritable DVD drive
12 billion main memory cells
1.5 trillion disk storage cells
Rewritable high-capacity DVD drive
Dual high-speed 3D graphics processors
16 billion main memory cells
4 trillion high-speed disk storage cells
High-speed fault-tolerant storage subsystem
Tape backup
512 billion main memory cells
100 trillion high-speed disk storage cells
High-capacity tape archive system
Four high-speed network interfaces
2 trillion main memory cells
No internal disk storage
$1,300,000
4096
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Typical Server Computers in Late 2014
Class
Product
Specifications
Cost
Midrange
Dell PowerEdge
R420
$7,765
Mainframe
HP Integrity
Superdome 2
Supercomputer
Stampede
4 CPUs
32 GB RAM
Eight 300 GB removable solid state disks
Fault-tolerant storage subsystem
DVD drive
Dual gigabit network interfaces
Dual power supplies
256 CPUs
8 TB RAM
128 gigabit network interfaces
64 power supplies
No secondary storage (purchased separately)
522,080 CPUs
260 GB
15.6 petabytes
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
$500,000
$51,500,000
Server
• A server is a computer system that manages one or more
shared resources (e.g., file systems, databases, web sites)
and makes them available to users on other computers via a
network
• Server is a mode of use, not a hardware class
• The hardware class required to implement a server varies
with the resource(s) and the number of simultaneous users,
for example:
– Small static web site – any old PC
– 1 terabyte database with 50-100 users – midrange computer
– Best Buy E-Commerce site – mainframe or cluster of midrange
computers
– Weather forecasting and climate prediction – supercomputer for
computations with data storage managed by mainframes and/or
midrange computers
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Vague Computer Class Boundaries
• A computer near the “edge” of one class can often be
“pushed” into the next class by adding some key
hardware.
• For example,
– Starting with a high-end desktop, add a high-end graphics
card, more memory, and a second microprocessor (or
upgrade the original one) to create a workstation
– Starting with a workstation, delete the high-end graphics
card, add a SAS RAID controller, 7 more hard disks, and a
second network card to produce a low-end midrange
computer
– Cluster 4-8 high-end midrange computers together with a
high-speed private network to mimic a mainframe
• Bottom line – flexible hardware platforms and
multicomputer configurations blur the distinctions among
computer classes
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Multicomputer Configurations
• Cluster
– Similar or identical computers connected by a
high-speed network in a dedicated configuration
– Cooperate to simulate a larger-capacity computer
either by redundancy/parallelism, specialization,
or both
• Blade Server
– Essentially a cluster housed within one cabinet
– Blades are circuit boards that contain most of a
computer system (limited secondary storage and
I/O)
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Multicomputer Configurations Continued
• Grid
– Member computer systems are dissimilar and aren’t
always working together
– Tends to use “ordinary” network connections not dedicated
to the grid since computers may be widely dispersed
• Cloud
– An extension of the grid concept
– Users interact with a front-end system which in turn
musters whatever grid resources are needed
– Clouds typically employ some form of virtualization, which
enables “cloned” machines to be quickly brought on-line
– Clouds maintain resources such as storage and web sites
on behalf of users – the resources are permanently
located “outside” the using organization
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Folding@Home
• A grid approach to modeling the folding behavior
of complex proteins
• Grid members interact with servers to download
work units and upload results after execution
• Severs manage workflow and assemble solution
“parts”
• Takes advantage of idle CPU capacity
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Is Bigger Always Better?
• Communication among components within the same “box” is
more efficient that communication among boxes
– For applications that require lots of parallel processing and
communication, a “box” that matches the application demands is
most efficient from a performance perspective
– Examples, many types of numerical simulation, data mining,
database servers
• But !!!
– Cost per CPU cycle increases with computer class
– Advances in grid and networking technology have reduced the
“multi-box penalty” in communication performance
– There are many applications that are too big for any one box
• Thus, for most applications, cost-effective performance is
achieved with the smallest possible box, or a set of small
boxes in a grid or cluster
• In other words, Grosch was right in the 1950s but is wrong
today
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
The Role of Software
• A computer system does “work” by executing instructions
contained within programs
– Where do the programs and instructions come from?
– What do they do?
– What do they “look” like?
• The origin of any program is a user need – a task for the
computer system to accomplish or help the user to
accomplish – for example:
–
–
–
–
–
Generate my company’s income statement
Spell-check my term paper
Find email messages in my inbox from specific senders
Play a video from YouTube
Tell me what my “friends” are doing and saying
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
The Role of Software - Continued
• The role of software is to convert a user request
or statement of need into a set of instructions
that will satisfy the request/need when executed
• Software translates user requests into machine
actions
Figure 2.15 The role of software as a translator between
user requests and CPU instructions
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Software as a Translator
• Human requests are initially stated or formulated in a human
language such as English:
– The language may be general and imprecise
– The concepts embodied in the request are abstract
– The request or command originally embodied in language/thought may
be translated into user action (e.g., a mouse click or a typed command)
• The CPU can only execute machine instructions which are:
– Short strings of zeros and ones
– Are very precise
– Are very low-level and detailed (e.g., add the numbers in registers 1 and
2 and store the result in register 3).
• Software bridges the gaps between human and machine languages:
– General/imprecise to specific/precise
– High-level abstraction to low-level details
• The greater these two “gaps”:
– The more work the software has to do to perform the translation
– The more complex is the software
– The more hardware resources are consumed by the software
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Software Types
• Software can be roughly classified as application or system
• Application software – satisfies a specific user need or a specific
(narrowly defined) class of needs, for example:
–
–
–
–
Word processing program
MP3 player/burner
Video editing software
Payroll program
• System software
–
–
–
–
–
Satisfies a very general class of user needs
May rarely or never interact with end users
Tends to “hide” in the background
Manages or controls hardware resources
Examples:
• Operating system
• Database management system
• Firewall/Antivirus
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Software Layers
• One of system software’s most
important roles is to manage hardware
resources and access them on behalf
of users and their application software
• This is another form of translation that
enables application software to make
general requests such as “Store this
file in my MGMT 337 folder” and leave
it to system software to carry out the
details of the task
• A key benefit for application software
is machine independence (a.k.a.
hardware independence)
– Application software doesn’t manage
or directly interact with computer
hardware
– Thus, application software can more
easily be “moved” to different
hardware without rewriting it
Figure 2.13 The interaction between the
user, application software, system
software, and computer hardware
Courtesy of Course Technology/Cengage Learning
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Web-Based Applications
• A Web-based application has the following characteristics:
–
–
–
–
Uses a Web browser as the primary user interface
Users access the application via a URL
Server-side software components execute or a called from a Web server
Web standards used for browser-server communication
Figure 2.17 Amazon.com main shopping application
Courtesy of Course Technology/Cengage Learning
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Web-Based Applications
Hardware and software Components
Figure 2.18 Hardware and software components of the
Amazon.com shopping application
Courtesy of Course Technology/Cengage Learning
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Web Services
• A web service is a software component accessed over
the Internet using Web protocols
• A Web service is software function, subroutine, method,
or program that:
– Is “called” from one application via a URL or other web
protocol
– Accepts input data embedded within the URL or via
another protocol
– Executes on the web service owner’s servers
– Returns processing results encoded within a Web page or
document
• Web services enable software functions developed by
organization to be embedded within the information
system of another organization
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Web Service Example
• How does an e-commerce site
like Amazon tell you how much a
shipment will cost?
– Shippers such as FedEx and
UPS provide cost estimators as
Web services
– E-commerce sites pass shipping
data to those services as input
and receive cost and delivery
date as output
• Payment approval and
processing is another web
service example
Figure 2.19 Shipping options for an
Amazon.com purchase
Courtesy of Course Technology/Cengage Learning
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Embedded Software
• End user and server computing devices run a rich set of embedded
software
• For an end-user device, embedded software components include:
–
–
–
–
Operating system (e.g., Microsoft Windows and Android)
Preinstalled apps (e.g., Maps on an Android phone)
Web browser (e.g., Safari on a Mac laptop)
Toolbars and plug-ins (e.g., Adobe flash or a PDF reader)
• Embedded software provides benefits and challenges to application
software developers:
– When developing application software, a developer can rely on
embedded software to do some of the work
– Embedded software can provide consistent “look and feel” to apps
written by different developers
– Differences among embedded software across devices mean that
developers must often write software for multiple “targets” – for
example,
• iPhone
• Android phone
• Windows phone
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Operating Systems
• An operating system is a collection of utility programs
that:
– Supports users and application programs
– Allocates computer resources among multiple users and
application programs
– Controls access to computer hardware
• Operating systems are the most important type of
system software
• Examples of operating systems include:
–
–
–
–
–
Microsoft Windows
iOS (Macs and iPhones)
Unix/Linux (in dozens of flavors!)
Android
MS-DOS
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Operating Systems - Continued
• Operating system functions include:
– Program storage, loading, and execution
– File manipulation and access
– Secondary storage management
– Network and interactive user interfaces
• Operating systems tend to be large complex pieces of
software due to the myriad functions they perform
• Some operating systems (e.g., Windows) try to be “all
things to all people” thus increasing their size and
complexity
• Others (e.g., UNIX) implement a smaller set of core
functions and leave it to users or others to write
programs that extend the operating system’s capabilities
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Computer Networks
• A computer network:
– Is a collection of
hardware and software
components
– Enables multiple users
and computer systems
to share information,
software, and hardware
resources
– Enables various forms
of interpersonal
communication such as
email, Facebook,
Wikis, …
Figure 2.13 Computer network functions
and their relationship to computer
hardware and software
Courtesy of Course Technology/Cengage Learning
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Internet and World Wide Web
• The terms Internet and World Wide Web are often used
interchangeably (and incorrectly)
• Definitions:
– Internet―A globally interconnected network of networks
that uses standard Internet protocols
• The Internet is analogous to a highway system, the rules for
using it, and a map of the system
– World Wide Web (a.k.a., the Web)―An interconnected
set of resources (e.g., files, web sites, social media sites,
and application software) accessed via the Internet
• The Web is the set of things contained in all of the locations
connected to the highway system. Those things can be
transported overt the highway from place to place.
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Uniform Resource Locator
•
Any geographic information system needs a way to uniquely identify locations, for
example:
– Latitude and longitude
– A street or mailing address
•
Similarly, the Internet and Web need a way to identify:
– Devices attached to the Internet
– Resources managed by those devices
•
A Uniform Resource Locator (URL) fills both needs with three pieces of
information:
– Protocol header―The language used to access a resources
– Server name (or server address)―Identifies the device that manages the resources
– Resource name―Identifies a specific resource managed by the device
Burd, Systems Architecture, seventh edition, Figure 2.14, Copyright © 2015 Course Technology
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
External Resources
• At a basic level, the role of a network is to enable
users to access resources beyond those directly
contained within or attached to their own computer
systems, for example:
–
–
–
–
Files and databases
I/O devices such as printers and scanners
Application software
Web-accessible resources
• Maturing network technology has increased the
– Number and variety of accessible resources
– Variety of forms in which resources can be accessed
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Networks and System Software
• Recall that one role of system software is to manage hardware
resources and access them on behalf of users
– Those resources include things “contained” within local hardware
devices like files, email messages, and application programs
• Networking extends this aspect of system software to encompass
externally-located resources, thus creating two additional system
software roles:
– Client
• Find the requested resources on the network
• Negotiate resource access with distant resource allocation software
• Receive and deliver the resources to the requesting user or program
– Server
• Listen for resource requests
• Validate resource requests
• Deliver resources via the network
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Network Communication and the Physical
Network
• System software performs additional translation
roles when requesting or providing external
resources:
– Interacting with the physical network via attached
network hardware
– Communicating via well-defined network
protocols such as TCP/IP, LDAP, and HTTP
• Much more on networks in Chapters 8 and 9!
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
Summary
• Basic elements of computer system architecture
– Hardware
– Software
– Networks
• Computer system consist of a CPU, primary
storage, secondary storage, and I/O devices
• Software translates user requests into machine
instructions
• Operating system is most important system
software component
©2016. Cengage Learning. All rights reserved.
Systems Architecture, Seventh Edition
63