COSC 1306 COMPUTER SCIENCE AND PROGRAMMING Jehan-François Pâris jfparis@uh.edu CHAPTER I THE COMPUTER Chapter Overview The computing phenomenon Pervasiveness Computers or computing? Historical perspective Four predecessors The birth of computers Its evolution THE COMPUTING PHENOMENON Computers as life changers They are everywhere They have changed our lives Electronic mail WWW Online order processing Ticketless travel Case study A friend of mine was teaching in a small university in Montevideo, Uruguay He is now in a university in El Salvador Then Before the Internet, his life would have been difficult No access to a good university library Could only communicate with colleagues through Expensive international calls Slow Uruguayan postal service Nearly total isolation from CS community Now He has Full access to research papers posted online Can communicate with colleagues through Email, instant messages, Facebook, … Skype Submits papers to conferences through WWW We write papers together! My point Internet has abolished distance Inexpensive personal computers allow us to work virtually everywhere Still need a good Internet connection Changed the lives of computer scientists and mathematicians working in Small colleges in the boondocks Decent universities in developing countries Counterpoint Human contacts still count: Main reason why scientists travel No Internet access means exclusion Case of most African countries The iceberg Most computing takes place where we do not see it Examples Car computers Set-top box Digital television Fly-by-wire planes Smart phones Many medical appliances An analogy Mid-nineteenth century big textile factories used Steam-powered looms One steam engine powered several looms Power went through transmission belts and pulleys Dangerous transmission belts An analogy (cont'd) Stream engines were progressively replaced by electrical motors Quickly found it was better to have one smaller motor per loom Got rid of transmission belts Allowed more flexible plant layouts Now electrical motors are everywhere Car power windows, razors, toothbrushes, … How it applies Started with a few giant "electronic brains" Replaced by time sharing computers and individual terminals Moved to personal computers Each of us is now likely to have several computing devices Counterpoint Are we now living in the best of all possible worlds? Social problems Lack of privacy Distraction Nothing is forgotten More pressing problems What happens when computers that control critical aspects of our lives go wrong? In 1985 a Canadian-built radiation-treatment device began blasting holes through patients' bodies. How a series of simple computer errors sabotaged a state-of-the-art medical wonder. (http://www.ccnr.org/fatal_dose.html) The full report An Investigation of the Therac-25 Accidents Nancy Leveson, U of Washington Clark S. Turner, UC Irvine IEEE Computer, Vol. 26, No. 7, July 1993, pp. 18-41 http://courses.cs.vt.edu/cs3604/lib/Therac_25/ Therac_1.html Another big problem In fly-by-wire planes, pilots’ inputs are handled by an on-board computer What happens when pilots’ inputs conflict with safety rules implemented in the on-board computer? The answer It depends On Boeing planes, the pilot wins Great for airlines with highly-trained pilots Not so good otherwise On Airbus planes, the computer wins Great for airlines with not-so-well-trained pilots Pilots can still override computer An outcome On June 1, 2009 Air France flight 447 from Rio to Paris crashed in mid-Atlantic Cause of crash was aerodynamic stall Preceded by problems with speed sensors Inquiry noted that "pilots had not been trained to fly the aircraft in manual mode " http://en.wikipedia.org/wiki/Air_France_Flight_ 447 A long-term problem An increasing large number of documents are exclusively stored in digital format without any hard copy Most of your recent pictures Your grades Will they survive as well as hard copies do? The issues Disk failures: Hard to figure exact mean time to fail of hard drives One hundred thousand to one million hours One hundred thousand hours is slightly more than 11 years An array of 150 disks will experience an average of one failure per month The issues (cont’d) Offline storage media become rapidly obsolete Who can read a 5.25” floppy? A 4 MB floppy? A 100MB Zip disk? Can you read these? No No On an old PC But you can still read this And this Or even this SENATVS POPVLVSQ[UE] The Senate and the people … That’s not all Hard copies were easy to authenticate Type of paper and ink that were used Typewriter font Electronic forgeries are harder to detect Can use digital signatures Become easier to break over time Pictures can be “Photoshopped”® My conclusion We are not in the best of all possible worlds Rolling clock backward is not possible The genie is out the bottle! Must understand the issues and push for action Course will only help you with first part HISTORICAL PERSPECTIVE Three stages The ancestors The pioneers The continuation The ancestors Their contributions made computing possible Blaise Pascal Joseph Marie Jacquard Charles Babbage Samuel Morse Herman Hollerith All died well before computers were invented Blaise Pascal Seventeenth-century French physicist, Christian polemist and philosopher His contribution First adding machine He patented it! La machine de Pascal Could only add and subtract Costly to build Not a commercial success Long-term impact Showed that arithmetic operations could be performed by mechanical devices Proof of concept People kept building and using mechanical computing machines until the late sixties Joseph Marie Jacquard Self-taught French inventor Invented in 1801 a mechanical loom that simplified the weaving of fabrics with complex patterns (brocade, damask, …) Key idea was to use punched cards to store the patterns Jacquard loom Long-term impact Jacquard loom was quickly adopted Reduced manpower needs for weaving of fabrics with complex patterns Caused a workers' revolt in Lyon in 1831 Still in use today Showed that information could be stored in a machine-readable form Charles Babbage English mathematician and mechanical engineer Proposed a mechanical calculator that could tabulate polynomial functions Not built until much later Motivation Polynomials were used—and are still used—to compute logarithms, sinus, cosines and so on Boole wanted to speed up the computation of numerical tables The differential engine Long-term impact Boole went on to design a much more ambitious analytical engine Prototype of a modern computer Some difference engines were built later One was used to produce printed logarithmic tables Showed that computations can be programmed Samuel Morse American painter and inventor Invented the telegraph First practical application of electricity "Queen Victoria's Internet" Huge immediate impact on many human endeavors Made the world smaller Long-term impact Was developed to avoid continued fighting after peace treaty (Treaty of Ghent 1814) Did not guarantee universal peace among nations Showed that information could travel fast over long distances Herman Hollerith American statistician Tried to speed up the processing of the 1890 census Invented the tabulating machine Tabulating machine and sorter How they worked (I) Used punched cards Hollerith cards Became obsolete in the late seventies How they worked (II) When tabulating machine read a card, it could Add the values stored in some columns to one of its registers Instruct the sorter to open one of its slots Next step was to make cards move within tabulator and sorter without any human intervention Long-term impact Tabulating machines were produced until the mid-seventies Were used all around the world Made IBM While Babbage’s differential engine was purely mechanical, Hollerith tabulating machines were electromechanical. More inventors (I) Charles Sanders Pierce American philosopher, logician and inventor Showed in 1880’s that Boolean algebra could be implemented by electrical circuits Boolean algebra Uses two quantities (0 or 1; true or false) Basic operations include AND: p AND q is true iff both p and q are true OR: p OR q is true unless both p and q are false NOT: NOT p is true if p is false and false otherwise Boolean algebra and circuits Convention: Switch on is 1, switch off is zero AND: OR: More inventors (II) John Atanasoff and Clifford Berry Iowa State College Built a very limited computer using vacuum tubes in the 1930’s World War II United States had to build very quickly large armed forces Train and equip them Needed better ballistic tables to predict naval gun trajectories Resulted in development of two computers Harvard Mark I Designed by Howard H. Aiken Built by IBM from switches, relays and other electromechanical parts First programmable computer Read its instructions from a punched paper tape Executed them in sequence Loops were implemented by making a paper loop ENIAC Electronic Numerical Integrator And Computer Designed and built at University of Pennsylvania by a team headed by John Mauchly and J. Presper Eckert Used vacuum tubes Thousand times faster than Harvard Mark I Came too late to contribute to war effort Needed to be programmed externally EDVAC Successor to ENIAC Designed by same authors Used binary arithmetic Simpler Stored its programs in its memory Could even modify them while running (Von Neumann architecture) Other WW II Computers Set of top secret machines developed in UK to crack German Enigma code Collectively known as Colossus Existence was not known until much later Binary arithmetic Used by all computers Two-digit arithmetic 0 and 1 Easier to implement Two voltages HIGH and LOW Binary numbers 0 same as decimal 0 1 same as decimal 1 10 same as decimal 2 11 same as decimal 3 100 same as decimal 4 1K = 1 followed by ten zeroes, same as 1,02410 1M = 1 followed by twenty zeroes a million 1G = 1 followed by thirty zeroes a billion Deciphering decimal numbers Both digit value and position count 937 Rightmost value indicates units Value at its left indicates tens Leftmost value indicates hundreds We read 937 as nine hundred thirty-seven Deciphering binary numbers Both digit value and position count 110 Rightmost value indicates units Value at its left should be multiplied by 2 Leftmost value should be multiplied by 4 We read 110 as 0×1 + 1×2 + 1×4 = 6 Binary addition and multiplication 0+0=0 0+1=1 1+0=1 1 + 1 = 10 0×0=0 0×1=0 1×0=0 1×1=1 The Von Neumann architecture Input Output Memory containing program and data Processor Datapath Control Storage subsystem came later A single bus realization A more recent realization Northbridge chip is much faster than Southbridge chip Trend is to include the functionality of the Northbridge in the CPU chip Intel Sandy Bridge AMD Fusion A laptop motherboard THE FIRST GENERATION Used vacuum tubes Were power hungry and unreliable UNIVAC First commercially successful computer IBM Well established tabulating machine maker Started dominating the field in the mid to late fifties The UNIVAC I Overall organization Quite similar to that of today’s computers CPU PERIPHERALS MAIN MEMORY programs + data Evolution Revolution was started by UNIVAC IBM quickly become the leader Was a true computer company Well introduced in most businesses Already used IBM tabulating machines In the sixties and seventies, most people identified IBM as “the” computer maker Batch systems Allow users to submit a batches of requests to be processed in sequence Include a command language specifying what to do with the inputs Compile Link edit Execute and so forth An IBM 1401 Interactive systems Came later Allow users to interact with the OS through their terminals: Include an interactive command language UNIX shells, Windows PowerShell Can also be used to write scripts Time sharing (I) Lets several interactive users to access a single computer at the same time Standard solution when computers were expensive Time sharing (II) UNIX (I) Started at Bell Labs in the early 70's as an attempt to build a sophisticated time-sharing system on a very small minicomputer. First OS to be almost entirely written in C Ported to the VAX architecture in the late 70’s at U. C. Berkeley: Added virtual memory and networking The fathers of UNIX Ken Thompson and Denis Ritchie UNIX (II) Became the standard operating systems for workstations Selected by Sun Microsystems Became less popular because Two many variants Berkeley BSD, ATT System V, … PCs displaced workstations Windows has a better user interface UNIX Today Several free versions exist (FreeBSD, Linux): Source code of these free versions is available at no cost Ideal platform for OS research UNIX/Linux-based kernels used by Apple OS X and iOS operating system Android operating systems Chrome OS is barely modified Linux Time sharing (III) Time sharing become much less important by the end of the eighties Personal computers became almost as cheap as terminals Time sharing could not support graphical user interfaces Why? A graphical user interface must transfer a lot of data between the processor and the display unit Cannot do it if distance exceeds a few feet The workstation was born Combines a computer with its display Graphical user interfaces Called GUIs (pronounced goo-eys): Macintosh, Windows, X-Windows, Linux Require a dedicated computer for each user Pioneered at XEROX Palo Alto Research Center Popularized by the Macintosh Dominated the market with Microsoft Windows Xerox PARC (I) Founded by XEROX in 1970 Invented Laser printing Ethernet The GUI paradigm Object-oriented programming (Smalltalk) Xerox PARC (II) All their inventions were brought to market by other concerns Popular belief is that Xerox management blew it In reality Alto workstations were very expensive Smalltalk was very slow Group was too small to deliver a full system The personal computer By 1971, it was possible to put a very simple CPU on a single chip Intel 4004 was a four-bit microprocessor designed for a desktop calculator Followed by an 8-bit version 8008 Used to build very basic personal computers Evolution (I) 1977: Apple ][ First widely successful mass-produced PC Killer app was Visicalc spreadsheet 1981: IBM PC Big success because people trusted IBM Microsoft designed the OS (PC-DOS) Evolution (II) 1984: Macintosh First mass-produced PC with GUI Was not an instant success Rescued by laser printer 1992: Windows 3.1 MSDOS + Windows 3.1 offered the first GUI solution for IBM PCs How IBM lost the PC market (I) IBM PC used “off-the-shelf” components Microsoft retained the rights to sell PC-DOS to other computer makers (MS-DOS) Sole specific part was BIOS Very basic operating system stored in read-only memory Loads MS-DOS/Windows in main memory © IBM How IBM lost the PC market (II) Chip makers learned to produce functionally equivalent BIOS without violating IBM copyright Reverse engineering: Define IBM BIOS by all its outputs for all possible inputs Hire people who had never seen the IBM BIOS to rewrite it How IBM lost the PC market (III) Rivals could sell PCs at cheaper prices than IBM Leaner cost structure Could come with new models faster than IBM did Less cumbersome review process The new frontiers Smaller devices: Now-defunct PDAs, smart phones, tablets Cheaper than PCs (but tablets) Much bigger market New microprocessor architectures: Intel—and AMD—pulverized the competition (Motorola 68000, MIPS, PowerPC, Sun SPARC) Now competing with ARM chips Challenges Openness Digital divide Addiction