Full Transcript

Chapter 1 Computing Systems Lecture 01 Ph.D. Eng.: Adel Khaled Outlines Describe the layers of a computer system. Describe the history of computer hardware and software. 1-1 Computing Systems Note that we use the term computing sys...

Chapter 1 Computing Systems Lecture 01 Ph.D. Eng.: Adel Khaled Outlines Describe the layers of a computer system. Describe the history of computer hardware and software. 1-1 Computing Systems Note that we use the term computing system, not just computer. A computer is a device. A computing system, by contrast, is a dynamic entity, used to solve problems and interact with its environment. A computing system is composed of hardware, software, and the data that they manage Computer hardware is 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 is the collection of programs that provide the instructions that a computer carries out And at the very heart of a computer system is the information that it manages. Without data, the hardware and software are essentially useless 1-2 Layers of a Computing System 1-2 Layers of a Computing System The innermost layer, information, reflects the way we represent information on a computer. In many ways this is a purely conceptual level. Information on a computer is managed using binary digits, 1 and 0. So, to understand computer processing, we must first understand the binary number system and its relationship to other number systems (such as the decimal system, the one humans use on a daily basis) Information Layer 1-2 Layers of a Computing System Hardware Layer, consists of the physical hardware of a computer system. Computer hardware includes devices such as gates and circuits, which control the flow of electricity in fundamental ways. This core electronic circuitry gives rise to specialized hardware components such as the computer’s central processing unit (CPU) and memory. Hardware Layer 1-2 Layers of a Computing System The programming layer deals with software, the instructions used to accomplish computations and manage data. Programs can take many forms, be performed at many levels, and be implemented in many languages. Yet, despite the enormous variety of programming issues, the goal remains the same: to solve problems. Programming Layer 1-2 Layers of a Computing System Every computer has an operating system (OS) to help manage the computer’s resources. Operating systems, such as Windows, Mac OS, or Linux, help us interact with the computer system and manage the way hardware devices, programs, and data interact. Knowing what an operating system does is key to understanding the computer in general. Operating System Layer 1-2 Layers of a Computing System The previous (inner) layers focus on making a computer system work. The applications layer, by contrast, focuses on using the computer to solve specific real-world problems. We 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 is far-reaching and involves specific subdisciplines of computing, such as information systems, artificial Applications Layer intelligence, and simulation. 1-2 Layers of a Computing System We use computer technology to communicate, and that communication is a fundamental layer at which computing systems operate. Computers are connected into networks so that they can share information and resources. The Internet evolved into a global network, so there is now almost no place on Earth you can’t reach with computing technology. The World Wide Web makes that communication easier; it has revolutionized computer use and made it accessible to the general public. Cloud computing is the idea that our computing needs can be Communications Layer handled by resources at various places on the Internet (in the cloud), rather than on local computers. 1.3 The History of Computing First Generation Second Generation Third Generation Fourth Generation (1951–1959) (1959–1965) (1965–1971) (1971–?) vacuum tube Transistor ICs Microprocessor 1.4. Networking In the 1980s, the concept of a large machine with many users gave way to a network of smaller machines connected so that they can share resources such as printers, software, and data. Ethernet, invented by Robert Metcalfe and David Boggs in 1973, used a cheap coaxial cable to connect the machines and a set of protocols to allow the machines to communicate with one another. By 1979, DEC, Intel, and Xerox joined to establish Ethernet as a standard. 1.4. Networking The Internet as we know it today is descended from the ARPANET, a government-sponsored network begun in the late 1960s, which originally consisted of 11 nodes concentrated mainly in the Los Angeles and Boston areas. Like ARPANET and LANs, the Internet uses packet switching, a way for messages to share lines. The Internet, however, is made up of many different networks across the world that communicate by using a common protocol, TCP/IP (Transmission Control Protocol/Internet Protocol). 1.4. Networking Cloud Computing Some of the most recent changes in the overall management and use of computing hardware are based on the increasing reliance on cloud computing, which is the use of computer resources on the Internet instead of relying on devices at your physical location. The computing hardware is somewhere “in the cloud” instead of on your desktop or even in your building. 1.5. A Brief History of Computing Software The first programs were written using machine language, the instructions built into the electrical circuitry of a particular computer. Even the small task of adding two numbers together used three instructions written in binary (1s and 0s), and the programmer had to remember which combination of binary digits meant what. Programmers using machine language had to be very good with numbers and very detail oriented. It’s not surprising that the first programmers were mathematicians and engineers 1.5. A Brief History of Computing Software Programmers began writing programs in assembly language, which used mnemonic codes to represent each machine-language instruction. 1.5. A Brief History of Computing Software Because every program that is executed on a computer eventually must be in the form of the computer’s machine language, the developers of assembly language also created software translators to translate programs written in assembly language into machine code. A program called an assembler reads each of the program’s instructions in mnemonic form and translates it into the machine language equivalent. 1.5.2. Second-Generation Software (1959– 1965) The second generation saw more powerful languages developed. These high-level languages allowed the programmer to write instructions using more English-like statements. Two of the languages developed during the second generation include: FORTRAN (a language designed for numerical applications) COBOL (a language designed for business applications). Program written in a high-level language has to be translated into machine instructions to be executed. Such a translator is called a compiler, and it also checks to ensure that the syntax of the high-level language is being followed correctly Third-Generation Software (1965–1971) Fourth Generation (1971–1989) Fifth Generation (1990– Present) Dos Systems software. Windows Application Packages. C++ HTML Internet (WWW) Browsers Microsoft’s Internet Explorer (IE)