CS 302 Ch. 1 The Big Picture Computing Systems Computing

advertisement
CS 302
Ch. 1 The Big Picture
1.1
Computing Systems
Computing system: computer hardware, software, and data, which interact to
solve problems
Computer hardware: the collection of physical elements that make up the
machine and its related pieces: boxes, circuit boards, chips, wires, disk drives,
keyboards, monitors, printers, and so on.
Computer software: the collection of programs that provide the instructions that
a computer carries out
Layers of a Computing System
Information (innermost layer)- reflects the way we represent info. on a computer;
info. on a computer is managed using binary digits, 1 and 0; types of info. we
manage: numbers, text, images, audio, video
Hardware (next layer)- consists of the physical hardware of a computer system;
includes devices such as gates and circuits, which control the flow of electricity in
fundamental ways; Central Processing Unit (CPU), memory
Programming (next layer)- deals with software, the instructions used to
accomplish computations and manage data; programs take many forms,
performed at many levels, implemented in many languages; goal is to solve
problems
Operating system (OS)( next layer)- helps manage the computer’s resources;
Windows XP, Linux, Mac OS; help us interact with the computer system and
manage the way hardware devices, programs, and data interact
Applications (outer layer)- focuses on using the computer to solve specific realworld problems; run application programs to take advantage of the computer’s
abilities in other areas, such as helping us design a building or play a game; The
spectrum of area-specific computer software tools if far-reaching and involves
specific sub disciplines of computing, such as information systems, artificial
intelligence, and simulation
Communications (outmost layer)- computers are connected into networks so they
can share information and resources; the Internet
Abstraction: a mental model that removes complex details; ex. the levels of a
computing system
-Miller’s law: a human being can actively manage about 7 (+/- 2 depending
on the person) pieces of information in short-term memory at one time
-Ex.: driving a car; we don’t need to know how a car works (the engine in
detail) to drive one; you only need to know some basics about how to interact
with the car (pedals, knobs, steering wheel)
-the key to computing; the layers of a computing system embody the idea
of abstraction
1.2
The History of Computing
A Brief History of Computing Hardware
Early History
-the Stonehenge, the abacus (16th B.C), mechanical machines that did
addition and subtraction (middle 17th), mechanical device to do four wholenumber operations (late 17th), Jacquard’s Loom/ punched card (late 18th)
-Charles Babbage’s analytical engine: too complex for him to build for the
technology of his time; his vision included memory and the input of both numbers
and mechanical steps, making use of punched cards
-Ada Augusta/ Countess of Lovelace: first programmer; the concept of the
loop-a series of instructions to repeat; programming language Ada
-mechanical adding machine (late 19th), electro-magnetic tabulator- read
info. from punched card- U.S. census (early 20th)
-Turing machine (1936): an abstract mathematical model
-World War II: Harvard Mark I, ENIAC, EDVAC (1950), UNIVAC I (1951)first computer used to predict outcome of presidential election
First Generation (1951-1959)
-commercial computers built using vacuum tubes to store info.; a
vacuum tube generated a great deal of heat and not very reliable;
required very large, specially built rooms with air-conditioning
-magnetic drum: primary memory device that rotated under a read/
write head; when the memory cell that was being accessed rotated,
data was written to or read from that place
-inpute device was a card reader that read the holes punched in an
IBM card; output device was a punched card or a line printer
-magnetic tape drives: sequential storage devices; the data on the
tape much be accessed one after another in a linear fashion
-auxiliary storage devices: storage devices external to the computer
memory; ex. magnetic tape
-peripheral devices: input devices, output devices, auxiliary storage
devices
Second Generation (1959-1965)
-transistor: replaced the vacuum tube as the main component in
the hardware; smaller, more reliable, more durable, and cheaper
-advent of immediate access memory; magnetic cores: tiny doughnut shaped devices, capable of storing one bit of information; cores
strung together w/ wires to form cells, and cells combined to form
a memory unit; device was motionless and accessed electronically
-magnetic disk: new auxiliary storage device; faster than the magnetic tape b/c each data item accessed directly by referring to its
location on the disk; organized so each piece of data has own location
identifier (an address)
Third Generation (1965-1971)
-integrated circuits (ICs): solid pieces of silicon that contained the
transistors, other components, and their connections; much smaller,
cheaper, faster, reliable than printed circuit boards (2nd gen.)
-Moore’s law: the # of circuits that could be placed on a single
integrated circuit was doubling each year
-IC technology allowed memory boards to be built using transistors
-Aux. storage devices still needed because transistor memory was
volatile (info. went away when power turned off)
-terminal: an input/output device w/ a keyboard and a screen introduced; keyboard gave user direct access to computer, screen
provided an immediate response
Fourth Generation (1971-?)
-Large-scale integration
-several thousand transistors on a silicon chip
-Moore’s law: chip density was doubling every 18 months
-personal computer (PC): microcomputers become so cheap that
anyone could have one; kids played Pac Man
-Apple
-IBM PC (1981); Apple Macintosh (1984)
-workstations: mid 1980s; larger, more powerful machines generally
meant for business; workstations connected by cables, or networked
so they could interact w/ each other
-machine language: set of instructions each computer was designed
to understand
-RISC chip: Reduced-Instruction-Set-Computer
-Moore’s law: Computers will either double in power at the same
price or halve in cost for the same power every 18 months
parallel architectures: rely on a set of interconnected central processing
units rather and a single primary processing unit
-offer several ways to increase the speed of execution; a given step
in a program can be separated into multiple pieces, and those pieces
can be executed simultaneously on several individual processors
-SMID computers: single-instruction, multiple-data-stream
-MIMD computers: multiple-instruction, multiple-data stream
-The Ethernet (1973): invented by Robert Metcalfe and David Boggs; used a
cheap coaxial cable to connect the machines and a set of protocols to allow the
machines to communicate w/ one another
-The Internet: uses packet switching, a way for messages to share lines; made
up of many different networks across the world that communicate by using a
common protocol, TCP/IP (transmission control protocol/ Internet protocol)
A Brief History of Computing Software
First-Generation Software (1951-1959)
-first programs were written using machine language, the instructions built into the electrical circuitry of a particular computer; the
first programmers were mathematicians and engineers; programming in machine language is both time-consuming and prone to errors
-assembly languages: used mnemonic codes to represent each
machine-language instruction; the 1st artificial programming langugages
-software translators: translate programs written in assembly
language to machine code
-assembler: reads each of the program’s instructions in mnemonic
form and translates it into the machine-language equivalent
-systems programmers: the programmers who wrote these tools to
make programming easier for others
Second-Generation Software (1959-1965)
-high-level languages: allowed the programmer to write instructions
using more English-like statements
-FORTRAN- language designed for numerical applications
-COBOL- language designed for business applications
-Lisp- used mainly in artificial intelligence applications and research
-compiler: a program written in FORTRAN or COBOL can be translated and run on any machine that has this kind of translating
program
-Systems programmers wrote tools like assembler and compilers
-Applications programmers: people who used the tools to write
programs
Third-Generation Software (1965-1971)
-operating system: a program that would determine which programs
were run when
-systems software: loaders, linkers, operating system, and the
language translators (assemblers and compilers)
-time sharing: many different users, each at a terminal, communicating (inputting and outputting) w/ a single computer all at the
same time; each user is assigned a small slice of central processing
time and then is put on hold while another user is serviced
-general-purpose application programs were being written
-systems programmers were writing programs-software tools- for
others to use; there were now computer users who were not programmers
Fourth Generation (1971-1989)
-structured programming: a logical, disciplined approach to pro-
gramming; languages Pascal and Modula-2
-C- a language that allows the user to intersperse assembly-language
statements in a high-level program introduced
-C++: a structured language that allows the user access to low-level
statements as well, became the language of choice in industry
-more powerful OS: UNIX by AT&T, PC-DOS for IBM PC, MS-DOS
for PC compatibles
-OS for Macintosh introduced concept of the mouse and the pointand-click graphical interface
-high-quality, reasonably priced applications software packages
became available: spreadsheets, word processors, database
management systems; Lotus 1-2-3, WordPerfect
Fifth Generation (1990-Present)
-3 main events
1. the rise of Microsoft as a dominant player in computer software
2. object-oriented design and programming
3. the World Wide Web
-Microsoft’s Windows OS emerged as major force in PC market
-Word was most used word processing program
-mid 1990s: word processors, spreadsheet programs, database
programs, and other app. Programs bundled- office suits
-Object-oriented design: the design of choice for large programming
projects; based on a hierarchy of data objects; Java
-1990: Tim Berners-Lee created set of technical rules for what would
be a universal Internet document center- World Wide Web
-created HTML, language for formatting documents, and a
basic, text-only browser, a program that allows a user to access info.
from websites worldwide
-1993: Mosaic released; first graphics-capable browser
-Two giants in browser market: Netscape Navigator (Mosaic),
Microsoft’s Internet Explorer (IE)
-Around 2002 Web changed: social networking sites; MySpace,
Facebook, Twitter; online blogging; Wikipedia; (“Web 2.0”)
-the ever-changing role of the user: we are now the user
1.3
Computing as a Tool and a Discipline
-Everyone is using the computer as a tool except for those people who are
creating the tools for others; for these toolmakers, either computing is a discipline
(low-level tools) or the discipline of computing has made their tools possible
(applications built upon applications)
-discipline: a field of study; “the body of knowledge and practices used by
computing professionals in their work… This discipline is also called computer
science and engineering, computing, and informatics”. “The body of knowledge
of computing is frequently described as the systematic study of algorithmic
processes that describe and transform information: their theory, analysis, design,
efficiency, implementation, and application”
-Skilled in four areas
1. Algorithmic thinking: one is able to express problems in terms of
step-by-step procedures to solve them
2. Representation: one is able to store data in a way that it can be
processed efficiently
3. Programming: one is able to combine algorithmic thinking and
representation into computer software
4. Design: the software serves a useful purpose
-1989 curriculum model covering the subareas of computer
-theory (mathematics)
-experimentation-called abstraction by computer scientists (science)
-design (engineering)
-Theory: the building of conceptual frameworks and notations for understanding
relationships among objects in a domain
-Experimentation (abstraction): exploring models of systems and architectures
within different application domains and determining whether the models predict
new behaviors
-Design: constructing computer systems that support work in different application
domains
-Research is ongoing in both systems and applications; Systems research
produces better general tools; applications research produces better tools for the
domain-specific applications
Download