Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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