CS Digital World Mid-term

Pataasin ang iyong marka sa homework at exams ngayon gamit ang Quizwiz!

Bandwidth Law?

"Bandwidth" (the amount of information one can pump though a connection) doubles every nine months or so.

THE UBER STACK

(Software): Applications Middleware Operating Systems Computers (Hardware): Processors, Memories, Display components, interconnects Materials Physics

Arpanet

1969 Arpanet (Advanced Research Projects Network) is commissioned by the DoD with nodes at UCLA, Stanford Research, UCSB and Univ. of Utah...designed as a "best effort" network 1971- 15 nodes operational w/ 23 Systems 1972- Email is introduced 1982- TCP/IP is chosen as the new communications protocol for Arpanet

Internet History 1990

1990- Arpanet ceases to exist and is now known as the Internet as restrictions on commercial use are dropped by the Govt. Commercialization of the Web: Original ban on commercial sites lifted (1990) ".com" becomes the most dominant origin designator as opposed to .edu, .gov, .org, .biz, etc; e-commerce is born: electronic transactions over the Web (and Internet)

Binary Nominclature

A BIT is a single 1 / 0 position A NIBBLE is 4 BITS A BYTE is 8 BITS A WORD is a multiple of BYTES eg: 16 bits, 32 bits, 48 bits, 64bits.......... Common nomenclature today is to define memory storage and data capacity in BYTES As computers have become capable of processing and storing more data, we have coined: KiloBytes (Thousands) MegaBytes (Millions) GigaBytes (Billions) TeraBytes (Trillions) -Library of Congress 30Tb PetaByte (1000 Trillion) ExaByte (Million Trillion)

Compilers and Interpreters

A compiler is a program than turns a high-level language program into a machine-language program. (Then when one wants, once can execute the machine-language version.) An interpreter is a program that executes the high-level program directly and translates it into machine language on the fly.

File server

A file server is a computer that returns files requested by users on other computers. (When you request a file from the Brown computer system, you are communicating with a file server.)

Origins of Digital Computers

Abacus, Mechanical caluclators

World's First Programmer

Ada King, daughter of Lord Byron wrote the "programs" for the Difference Engine, thus making her the first programmer

The Memory Manager

Allocating segments of RAM to each program is the responsibility of the memory manager.

Pseudo Code(ing)

Allows you to write a program in english for the purpose of design without having to worry about specific computer language syntax and allows the programmer to concentrate on the logical sequences Start Input (amount) Amount = amount*4.33 If amount < 58 then print "It's less than 58" Else print "It's over 58" End

Input/Output (I/O) Drivers

An I/O driver is a special program that knows how to communicate with a peripheral device and the CPU To read or write a file to a disk the file manager determines the name and location of the file, and control is passed to the disk's I/O driver, which will send commands to the disk arm, read head, etc.

World Wide Web

An assortment of computers (web servers) connected by the Internet employs a common protocol (standard) HTTP (hyperText transfer protocol), basically "Text on Drugs" Sending and receiving hypermedia documents

Analog vs. Digital

Analog is continuous, Digital is discrete

Representing Letters w/ Binary

Ascii is an agreed upon code in which every character, numbers, etc. is given a unique 8 bit code (1 byte). So we need 4 bytes to represent the word "love"

Assembly Languages

Assembly language is machine language made slightly easier. LDACC 0A ; (current_balance) ADD 0B ; (add new_check) STACC 0A ; (store new_balance)

Caching Servers

Caching servers are located at locations where there is a high degree of activity They maintain copies of the most frequently accessed web pages so that they can be retrieved "locally" instead of having to go over the internet for each access This works for those web pages that don't change very often Most large businesses and institutions have local caching servers Increases performance and conserves bandwidth

Fetch, Decode, Execute Cycle

Computer instructions are stored (as bits) in memory. To run a program, each instruction is: Fetched from memory. Decoded (the computer figures out what it should do based on the number). Then the instruction is executed. The speed at which this cycle occurs is determined by the system clock

Natural Languages

Computers don't understand English Need to deal with Ambiguity Redundancy Literalness So, we express what a computer should do in a formal language

John Von Neumann (1903-1954) (von Neumann architecture)

Creates von Neumann architecture: "stored program" serial uniprocessor design binary internal encoding ***CPU-Memory-I/O orgranization**** "fetch-decode- execute" instruction cycle

File Manager

Creating and maintaining references to a system's files is the responsibility of the file manager. The actual address of a file is a pathname, which is made up of the folders in which the file is located (sometimes called directories) and the file name. The File Manager maintains the hierarchy between the physical and logical

Legacy of Babbage

Designed the first, general-purpose digital computing device Unfortunately his ideas and achievements were lost on his successors

"Digital"

Digital means discrete. Digital representation is comprised of a limited number of data points to encode information. Most of our electronic devices use Digital techniques to work with data and information Since we have a limited number of data points to work with, it means that many representations are approximations of the real thing

Domain Names

Domain names are more intuitive names for IP addresses. The name cs.brown.edu is the domain name for the Brown computer science home page.

ENIAC

ENIAC (Electronic Numerical Integrator And Computer) was the first electronic "general purpose" digital computer John W. Mauchly (1907-1980) and J. Presper Eckert (1919- ) headed the ENIAC team at the Moore School of Engineering, University of Pennsylvannia Commissioned by the Army for computing ballistic firing tables

"The most important invention of the 20th century..."

Early Bell Labs Transistor 1947 / 1952

The Integrated Circuit (IC)

Enabled many transistors to be grouped into a single package Lowered cost and decreased space compared to using individual transistors Still the building blocks for all modern electronics today

Machine Language

Every computer CPU has its machine language, the set of instructions it knows how to execute. This is the lowest level. A typical instruction might say, get the contents of a memory location and put it in the accumulator (perhaps in preparation for adding it to another number). Put contents of memory location 10 in accumulator. Add contents of memory location 11 to accumulator. Put contents of accumulator back in location 10 It might look like 110011011111100111110000011110000010000011111 100010001000100100001000001111000001110000000 010000100010010000101010000111001110000011000 .....not very user friendly! But believe it or not, computers were programmed in machine language at one time.

Challenges to continuing innovation in smaller, cheaper, faster microprocessors

Extreme thinness in atoms Heat, keeping cool Noise, loud noise affects reliability

Gordon Bell

Father of the Minicomputer, Digital Equipment Corporation Developed the first "Mini" computers 1960-83 Brought computing to small businesses Created major competition for IBM, UNIVAC, who only built Mainframes at the time

File Management

Files are collections of data arranged in a specified format for use by programs Files can reside in memory as well as in peripheral devices such as disk drives, CD-ROMs or tape drives Every file has a name and attributes that specify its size, its location and its type

Intel 4004 Microprocessor - 1972

First commercially available micro-processor - first used in a programmable calculator This technology made the personal computer possible Contained 2300 transistors and ran at 100 khz

Cycle Times

Generally the faster your computer can get through a fetch-decode-execute cycle, the faster it will perform. Cycle times are measured in "gigahertz", a billion cycles per second. PCs these days reach 3500 Megahertz or 3.5 Gigahertz (3 billion cycles/sec)

Levels of code (Levels of complexity)

High-level Language --> Assembly Language --> Machine Code

IBM PC - 1982

IBM's first PC Signaled a significant shift for the giant manufacturer Established a new standard which is still being built on today Operating system written by Bill Gates & Co. at Microsoft

Claude Shannon 1916-2001

In 1937 , Claude Shannon introduces the concept of binary logic for use in creating digital computing machines In 1948 he publishes "A mathematical theory of communication" which sets forth the principals for encoding information so that it might be computed and transmitted electronically He is affectionately thought of as the Father of the modern information age

The Internet uses Packet Switching

In packet switching, the message is broken up into separate data packets each addressed to the destination Packets are transmitted over any available connection to the destination, where the receiving node reassembles the message

Transistor Functionality

In various circuits Transistors can be made to: Amplify or Attenuate electrical signals Invert electrical signals Store electrical voltage values Switch electrical signals off and on

Information Transfer inside the CPU (How is it done?)

Individual bits in a memory unit are transferred to the CPU in parallel (all at the same time). This is opposed to serially (one at at time). The same goes for information transferred between registers in the CPU.

Interpreters vs. Compilers

Interpreters are easier to write than compilers. Interpreter languages allow immediate editing and execution without the intermediate step of compiling. Compiled code runs faster than interpreted code however so it is preferred in performance sensitive applications. But this is slowly changing.....Why?

The Enigma Machine

Invented in 1918, it was the most sophisticated code system of its day, and was a priority of the Allies to decipher so that they could keep supply convoys out of the path of German submarines (U-boats) Breaking the code was pivotal in allowing the allies to know where the Germans believed the D-Day invasion would occur "Saved 14 million lives and shortened war by 2 years"

TCP (Transfer Control Protocol)

Messages are broken up into units of a fixed size and sent out on the internet. These messages may be received in an order different from that in which they were sent. Each packet contains a destination address Individual packets may also be lost. TCP may request packets to be resent, and finally it puts the units back in order.

Desktop and Portable Computers 1978

Microprocessor based all-in-one designs, performance/price tradeoffs aimed at knowledgeable hobbyists personal computers workstations

IPV6

Offers far more addresses than there are now -- we are at 3.2 b being used, with only 4 b available.

Today's Computers' Price/Performance

Over 4 Billion operations per second costs less than $300 Memory is measured in Gigabytes....not Megabytes, Kilobytes Magnetic Storage is Terabytes, soon to be Petabytes Communications speeds are measured in Megabits/Gigabits per second, not Kilobits

URL (Uniform Resource Locator)

Parts of a URL: http:// This states that we a requesting a page from a remote web server. www.cs.brown.edu This is the name of the web server. This name must be "registered" with the powers that be. /courses/cs002 indicates which of the many pages from that server is being requested.

What are computers made of?

Primarily Transistors Invented in 1951, the Transistor is the basic electrical building block for all modern electronics Called by many the greatest invention of the 20th century For Digital applications, transistors are packaged in what is known as Integrated Circuits (ICs) As many as 30+ Billion Transistors can be packaged in a single large IC today

Use of Logic Gates in Computers

Primary Uses: Switches and logic circuits that can be switched between 0 and 5 volts. In this way a Switch can signify a "bit" that is a 1 or a 0 Storage of voltage levels equivalent to 0 or 5 volts. In this way a "bits" of memory can be implemented or pixels on an LCD display on a laptop can be created By combining gates we can create useful functions such as a the ability to store a bit of information

Software Creation Process

Problem specification Pseudocoding (or flowcharting) Coding Testing and debugging

DRAM (Dynamics RAM)

RAM allows for both reading and writing in memory. Contrast this with ROM (read-only memory). Most RAM is volatile, or "dynamic". When you turn off the power, the contents of RAM is lost.

ROM

Read Only Memory can only be read from It's contents cannot be altered or written over easily This type of memory is used to hold instructions that need to always be there and always be the same For example, the initial instructions that are executed when your PC is turned on which instructs the machine to load Windows from the disk drive

Registers

Registers are memory locations that are used to facilitate the movement of data inside a digital computer Registers work in conjunction with the system clock which determines the speed with which a computer fetches and executes instructions

The Software Revolution

Relatively few people actually "program" computers. Most use software (programs) developed by others, intended to be used by people with limited understanding of how computers work, hence a huge market in commecial computer appications

Apple MacIntosh - 1984

Second PC with GUI interface (Graphical user interface; icons etc) Adopted from the work that was done at Xerox Designed to be a computer appliance for "Real People" Introduced at the 1984 Superbowl

What is Software?

Software = Programs Programs = a set of computer instructions for carrying out computing tasks Programmer = He or She that attempts to correctly structure those instructions to achieve a desired result !

Complexity

Software is becoming more complex as we attempt to solve more complex and difficult problems Managing complexity is a huge problem in software reliability and cost The problem is getting worse, not better at the present time as reflected in industry software issues worldwide

Babbage's Difference Engine

Special purpose calculating machine automated both the computation of tables and their printing employed the method of differences to calculate polynomials

Machine Instructions (What two numbers?)

Such an instruction would consist of two numbers: One would be the address of the memory unit to be accessed. The other would be the operation code of the instruction - the (somewhat arbitrary) number that refers to a unique and particular type of instruction

The User Interface (CLIs vs. GUIs)

Text-based Command Line Interpreters (CLIs) terse, powerful steeper learning curves, unforgiving Graphical User Interfaces (GUIs) intuitive, user-friendly slower, less efficient

Xerox

The Computer Company that Wasn't, Xerox Many of the innovations that became part of the Personal Computer scene were actually invented at XEROX Parc (Palo Alto Research Center) Xerox was never able to successfully exploit those innovations that included the mouse, graphic user interface and the concept of WYSIWYG, (What you see is what you get)

Admiral Grace Murray Hopper

The First real "Computer Scientist" 1906-1992 Invented the first Compiler because she was tired of generating machine code by hand. Vastly improved programming speed and efficiency

IBM Harvard Mark I- 1944

The IBM Automatic Sequence Controlled Calculator after installation at Harvard University, 1944. It is 51 feet long, weighs 5 tons, and incorporates 750,000 parts.

The Communications Revolution

The Internet (email, world wide web, file transfers, mobile computing, etc) The convergence of Computers, TV, Telephone, Multi-Media, Personal Digital Assistants that now communicate with each other in increasing numbers using a wide variety of media (images, video, sound, text, etc.)

IP (Internet Protocol)

The Internet Protocol governs addressing and routing. An IP address is 4 numbers, each less than 256. For example, 156.222.111.255 The routers on the web know how to interpret IP addresses and send the packets to the correct destination. IP packets are also known as DATAGRAMS. Domain names are more intuitive names for IP addresses.

Packet Errors

The Internet was designed to be a ***"best effort"*** network when it was conceived Performance, Security and Reliability enhancements have been band aids on top of the original, simple design Approximately 1-3 % of ALL packets sent over the Internet get lost and have to be re-transmitted

Operating System

The OS is a collection of resident programs that manage the system's resources supervise the execution of processes provide useful services

Low and High Level Programming Languages

The closer the language is to machine language, the lower the level. In general, high level languages make things easier to develop large complex programs.

Execution Monitor

The execution monitor is responsible for ensuring that an error caused by a program does not cause the entire system to crash.

The Osborne 1 - 1981

The first "portable" personal computer Came with lot's of software bundled Only weighed about 40 lbs and sold for $1795 Note the large 5" screen!

Earliest Internet Apps

The first application was a crude form of email which enabled researchers located at the various hosts to share text information electronically This was soon followed by a file transfer application which allowed the sharing of medium sized text files Next up was the establishment of "bulletin boards" which allowed groups of researchers to post message threads around topics of mutual interest...an early form of "blogging" Also known as Newsgroups

The Apple II - 1978

The first commercially available Apple Initially sold to Wall St. bankers who wanted the Spread-sheet program called Visicalc which ran on the Apple II Put Apple on the Map

Radio Shack TRS-80, 1978

The first plug and play personal computer available at retail Programmed in BASIC Very successful Very affordable Limited commercial software Created a cottage industry

Random Access Memory

The main computer memory is called RAM (Random Access Memory) It is "random" in that one may access any addressable memory unit independently of any other (and thus in "random" order). In almost all modern machines the smallest single addressable amount of memory is one byte. Memory is measured in megabytes or gigabytes or terabytes

Moore's law

The number of transistors that can be manufactured into a square inch of integrated circuit doubles every 18 months or so. This means: The amount of memory that can be supplied for a given cost doubles every 18 months or so and, the speed of computation goes up by a factor of 2 about every 1.5 years for the same cost!

How Does Google Work?

The short, short summary is that Google (and other search engines) continuously crawl the web, using a program called a spider or crawler. It stores a local copy of the pages it finds, and builds a lexicon of common words. For each word, it creates a list of pages that contain that word. A query for a given word returns that list, sorted by pagerank. Pagerank is computed based on the pageranks of the pages linking to a document.

Evaluating Content on the Web

The web is an anarchist's heaven. There is little accountability for anything published there; for example: No censorship Accuracy of unverified information is always an issue since it is easy to remain anonymous Much of the content is "rushed" into print Information (true and false) on practically everything can be found there however and it is constantly evolving and being updated

System Calls

The work of the OS comes about through system calls to one of the OS components. The system calls are initiated either by the user (e.g., by a mouse click) or by the user application software. For instance, saving a file to a directory location.

How Internet Information is Routed

There are many protocols that govern how information is transferred on the web. A "protocol" is a convention established to govern some activity. The "http" at the start of the URL stands for "Hypertext transfer protocol," which is the main such protocol.

Anatomy of a Transistor

Transistors are fabricated using silicon (derived from quartz) and tiny amounts of impurities such as selenium or gallium arsenide to create what is called a "semiconductor" Semiconductors allow us to control the flow of electrical charge (electrons) very precisely. Billions of semiconductors can be placed on an integrated circuit using a process called photolithography

Combining Transistors

Transistors can be combined to create logic circuits commonly known as "GATES" Gates are packed into Integrated Circuits commonly known as "Chips"

Factors behind the early development of the Internet

U.S. and Soviet Bloc engaged in a "cold war" escalating after WWII The U.S. Govt. did not have an adequate communications to function effectively in the event of a real nuclear conflict with the USSR The early funding from DARPA was an attempt to identify technologies that could be employed to create a "resilient" data network that could continue to function in the event of war

Web browsers (clients)

Web browsers (clients)

Organization of the Web

Web clients (browsers) and Web servers common protocol: HTTP HyperText Transfer Protocol (connect, request, send, receive, display) Naming convention called URLs for identifying resources HTML (HyperText Markup Language) defines how Web pages are structured

Multitasking

While most modern computers can only execute one operation at a time, it is often useful to give users the illusion that several things are going on at the same time This is most apparent if several users are sharing the same computer, but it is also useful for single user computers that are running multiple programs

So....What is the Internet?

a loose confederation of data communication networks "data communications": sending digital information from computer to computer "information highway" connecting far corners of the world an open, distributed system: no central control

Bits (AKA Binary Digits)

all data can be thought of as being expressed in "bits", where on = 1 and off = 0.

1960's....IBM System/360

built using solid-state circuitry family of computer systems with backward compatibility established the standard for mainframes for a decade Used the "Timesharing" paradigm

Domain name servers

connection made between the domain name and the IP address. Top level company is Network Solutions

Hypermedia and Hyperlinks

electronic documents containing multimedia information hyperlinks ("links") to cross-reference pages and resources links provide automatic access hypermedia documents are "navigated" using these links

UNIVAC I

first commercial general-purpose computer system delivered in 1951 used to forecast the 1952 presidential election

Charles Babbage (1791-1871)

first true pioneer of modern computing machines designed two prototype calculating machines neither of which was practical to build, called: Difference Engine Analytical Engine

Arithmetic and Logical Operations (Type of processor operation)

integer arithmetic comparing two quantities shifting, rotating bits in a quantity testing, comparing, and converting bits

Alan M. Turing (1912-1954)

led the WWII research group that broke the code for the Enigma machine proposed a simple abstract universal machine model for defining computability devised the "Turing hypothesis" for Artificial Intelligence

Central Processing Unit (CPU)

manages the instruction-execution cycle FETCH - DECODE - EXECUTE coordinates the activities of other devices

Data Movement Operations (Type of processor operation, where is it moved?)

moving data from memory to the CPU moving data from memory to memory input and output

Web servers

remote systems that store Web documents process client requests and send resources A "server" is simply a computer that acts as a utility for other computers. A web server is a server that serves up web pages.

Program Control (Type of processor operation)

starting a program halting a program skipping to other instructions testing data to decide whether to skip over some instructions

Software

the applications one uses or writes to get stuff done

Hardware

the physical components of the computer - central processing unit, memory, input-output devices

Operating System

the program that serves as a buffer between the user and the hardware


Kaugnay na mga set ng pag-aaral

SCIENCE TERMS ( GENETICS ) WITH EXAMPLES

View Set

Identifying Verbs - Is it a linking, action, or helping verb?

View Set

Human Relations Chapter 3: Self-Awareness and Self-Disclosure

View Set

Psych Exam 2 - Ch. 10 (Stress Responses and Stress Management)

View Set