Fundamentals and a Brief History of Computer Systems.

Post on 18-Dec-2015

225 views 0 download

Tags:

Transcript of Fundamentals and a Brief History of Computer Systems.

Fundamentals and a Brief History of Computer Systems

The first computer was called the ENIAC, which was built during World War II (1943-1946).

Charles Babbage is considered to be the father of computing after his invention and concept of the Analytical

Engine in 1837.

The IBM 5100 is the first portable computer, which was released on September 1975.

Q: What is a computer?

A: A machine that manages information

Definition: General purpose machine, commonly consisting of digital circuitry, that accepts (inputs), stores, manipulates, and generates (outputs) data as numbers, text, graphics, voice, video files, or electrical signals, in accordance with instructions

called a program.

Representing Information

• Computers store and manipulates numbers– Information needs to be encoded or

represented– The numbers need to be interpreted

• The memory of any computer just looks like:

010011010010011101001001001011010100100100100100100101111110000001

Adding meaning to bits

• As programmers we add meaning to the bits by defining an interpretation

• Handled by the programming language– Types and variables

• Examples

42 -> 000000000000000000000000001010103.14159 -> 01000000010010010000111111010000“unix” -> 01111000011010010110111001110101

• Four components of a computer system:– CPU - central processing unit

• Makes decisions, performs computations, and delegates input/output requests

– Memory: Disk Drives, CD drives, Tape drives, USB flash drives.

• Stores information– Input devices: Keyboard, Mouse,

• Gets information from the user to the computer– Output devices: monitor

• Sends information from computer to the user

Hardware

Hardware

Memory

CPU

InputDevices

OutputDevices

SystemSoftware

ApplicationSoftware

Software

• Application software– Easy-to-use programs designed to perform

specific tasks• System software

– Programs that support the execution and development of other programs

– Two major types• Operating systems• Translation systems (compilers & linkers)

Software

Copyright © 2000 by Brooks/Cole Publishing Company

A division of International Thomson Publishing Inc.

Computer Software Relationships

UserInterface

Basic Input and Output Services (BIOS)• needed for a computer to boot up

User Interface Operating System

User Interface Application Programs

Computer Hardware

Application Software

• Application software makes computer popular and easy to use

• Common application software: Microsoft Word, WordPerfect PowerPoint Netscape, Internet Explorer PhotoShop, Photo-Paint Quick Time Dreamweaver

• Controls and manages the computing resources• Examples

– Windows, Unix, MSDOS,

• Important services that an operating system provides:– Security: prevent unauthorized users from accessing

the system– Commands to manipulate the file system– Input and output on a variety of devices– Window management

Operating System

What is a (programming) language?

• A program needs to be written in a language• There are many programming languages

– Low-level, understandable by a computer– High-level, needs a translator!

• C++ is a high level programming language

A sequence of instructions

A program(in computer language)

An algorthm (in human language)

• Machine binary language: unintelligible

• Low-level assembly language – Mnemonic names for machine operations– Explicit manipulation of memory addresses– Machine-dependent

• High-level language– Readable– Machine-independent

Levels of programming language

Machine binary language Low-level assembly High-level

An example:

How to translate?

Examples of compilers:– Microsoft Visual C++, Eclipse, g++

A program written in high-level programming language (for example, C++ program)

A low-level (machine language) program that is understandable by a computer (for example, a PC)

COMPILER (for example, Visual C++)

Integrated Development Environments

• Combine all of the capabilities that a programmer would want while developing software (VC++ 2008, Eclipse) Editor Compiler Linker Loader Debugger Viewer