MIS course plan

Computers & Information Systems

by

Matthew Martin

Contents

  1. How A CPU Does Its Job
  2. Types Of Computer
  3. Parallel Processing
  4. Types Of Networks - The Basics
  5. Protocols
  6. Programming Languages

Key Computer Components

Central Processing Unit (CPU)

This is the “brain” of the computer, performing the major computational tasks and assigning tasks to other systems in the computer. Today the market is dominated Intel’s 8086-family architecture, the latest versions of which are called the Pentium series. The speed of a processor indicates the cycles per second (measure in Hetz (Hz)), the size of the processor indicates how large a statement (measured in bits) it can handle per processor cycle.

Random Access Memory (RAM)

This is solid-state (no moving parts) storage, typically with fast access times, allowing for rapid data retrieval (reading) and data storage (writing). What is held in RAM is only maintained while the computer is turned on, so this is temporary storage only.

Read Only Memory (ROM)

Used to store data and small program routines required for system initialisation, typically accessed at boot-up. For example on PCs the ROM holds the Basic Input Output System (BIOS) and the Basic Disc Operating System (BDOS). These should not be confused with the Operating System (OS), which resides on the HDD. In PCs the ROM may be called an EPROM – standing for Erasable Programmable Read Only Memory. The fact that it is erasable and programmable means that the BIOS can be updated.

Hard Disc Drive (HDD)

The HDD provides long-term storage. The Operating System, application programs and data are all stored on the HDD. The HDD is the main storage device in most computers.

Other Drive Types and Portable Storage Devices

These include CD, DVD, flash (typically slotting into a USB port), smart media, memory sticks. Smart media and memory stick are being more and more widely used in cameras and PDAs, as well as in some phones. These storage devices are increasing in capacity, for example smart media cards now have more than 1Gb of storage.

Output Devices

These can include a graphics card, monitor (or Video Display Unit (VDU)), printer, plotter, etc. Any device that is used for output from the system.

Input Devices

These include keyboard, mouse, graphics tablet, etc. Any device that is used for input to the system.

Input/Output (I/O) Devices

These include modem, network card, infrared port, blue tooth adapter, etc. Any device used for both input and output.

Power Supply Unit (PSU)

The key unit used to supply the components with electricity of the correct voltage. It is a good idea to use surge and spike protection in addition, in order to protect against damage to computer components due to fluctuations in the mains power supply.

Uninterruptible Power Supply (UPS)

Specialised power unit with large, rechargeable batteries. This is used to ensure that the computer is constantly supplied with power even in the event of a mains power failure. Often a PSU will include current damping, preventing damage to the delicate components of a computer in the event of power spiking.

top of page

How A CPU Does Its Job

The Processor Fetch and Execute Cycle

The processor executes a single instruction at a time, one after the other. Each of these instructions is held in memory, usually loaded into the memory at the time the program is started. In order to keep track of where the processor is in the execution of a program a register is used, called the Program Counter (PC). The PC holds the memory location of the next instruction to be executed in the program. A line of a program is also known as a statement. In order to execute a program the processor goes through a sequence known as the fetch and execute cycle. This cycle is repeated for each line of the program. The updating of the PC within each fetch and execute cycle is vital to the correct sequential execution of the program. There are six steps in the fetch and execute cycle.

1.        Instruction fetch

2.        Update program counter

3.        Decode instruction

4.        Load operands

5.        Do the operation (execute)

6.        Store results

1. Instruction fetch:

The instructions for a single line of program (statement) are fetched from the memory address indicated by the PC to the instruction register.

2. Update program counter:

The PC is updated to hold the memory address of the next line of the program, usually by incrimination of the address it holds.

3. Decode instruction:

The instruction held in the instruction register is decoded. The processor decodes the instruction, identifying the opcode and the operands involved.

4. Load operands:

The values for any operands (variables) for the instruction are loaded from memory and usually held in one or more data registers.

5. Do the operation:

The instruction is executed.

6. Store results:

Store any resulting values in memory.

 

The six steps of the fetch and execute cycle are depicted as sequential. In practice some of these steps will be performed in an overlapping way, providing a greater degree of efficiency.

Programs working at this level are written in assembler. Typically most programmers work in higher level languages (like C or Java), which are compiled to native binary.

top of page

Types Of Computer

Personal Digital Assistant (PDA)

These have become more popular in the last few years, with a range of models appearing on the market. Some manufacturers have pushed the term Handheld Computer, which is not miss-applied, to indicate PDAs using Microsoft’s Windows CE. The other main OS for PDAs is the Palm OS, the next version of which may include a UNIX-based kernel.

Personal Computer (PC)

This term has two meanings; it can refer to a computer with an Intel 8086-family CPU, or alternatively any computer that is for personal use. It is worth noting that there are other systems other than those offered by Intel (and AMD). Apple make the Macintosh series, that have a dedicated following. In the past there have been others like the Sinclair computers (ZX80, ZX81, Spectrum) and Commodore (VIC20, Commodore 64, Amiga), although these are no longer produced.

Workstation

Typically more powerful than the average PC, with enhanced processing (more powerful CPU) and larger memory (RAM). It sits on a desktop and is connected to a Local Area Network (LAN). For example Sum Microsystems make SPARK stations, a series of powerful workstations.

Server

A server is anything that provides (serve-up) services for other computers (clients) over a network. Such services include e-mail, file sharing, databases, web pages, printers, etc. Servers can be specialised pieces of hardware running specialised software but it is also true that servers can be standard desktop PCs running shared services over a network. Servers may run a specialised OS, such as Novell Netware or Windows 2003 Server. Specialised network server OS can provide functionality specific to the needs of networking, including user administration, security, file sharing, back-up and recovery.

Mainframe

These are large computers with massive amounts of memory and heavy processing power. Typically only used by large companies and universities.

Supercomputers

These are rare beasts, typically found in research laboratories of universities and research institutions, rarely are they used in business (if at all it is when a business rents some time on one from a university). They have massive computational power, allowing them to solve problems that other computers cannot handle. Currently the fastest is in Japan and is used for modelling weather patterns.

top of page

Parallel Processing

Parallel processing allows more than one instruction to be executed simultaneously. The Pentium 4 chip is the first in the 8086-family to be able to do this. Supercomputers typically use parallel processing, some other computers also take this approach.

top of page

Types Of Networks – The Basics

There are a number of different types of network, generally these are defined by their scale but also by the protocols they use.

Local Area Network (LAN)

Typically used in a single office or building. The main group pf protocols used for LANs are the 802.x protocols, a group of protocols defined for different types of networks including Ethernet and WiFi. The 802.x standards are defined by the Institute of Electrical and Electronics Engineers (IEEE).

Wide Area Network (WAN)

Used to network a number of LANs together, allowing an organisation to connected offices and building over an extended area. A range of protocols may be used for WANs.

The Internet

The network of networks. There is only one of these. The principle protocol used on the Internet is TCP/IP.

Virtual Private Network (VPN)

Using encryption for security an organisation can connect different locations using the Internet. The encryption combined with fast connections allows the organisation to connect sites together as if they were on a private WAN.

top of page

Protocols

Protocols are defined means of communicating. Without protocols communications between computers would be impossible. The Internet uses two main protocols, Transport Control Protocol (TCP) and Internet Protocol (IP); usually written TCP/IP and stated as, “TCP over IP”. There are various other protocols for network communications. Microsoft have netBIOS (network Basic Input Output System) for LAN communications. Hyper-Text Transfer Protocol (HTTP) allows for the transfer of web pages of the Internet (over TCP/IP in fact). There are many more protocols, too many and varied to go into here.

top of page


Programming Languages

Low Level Languages – Binary & Assembler

The computer hardware offers a simple set of instructions. This instruction set defines the programming language, providing the interface between the hardware of the machine and the software. It is this interface that is the computer architecture. The programming language provided by the architecture is called the machine language.

e.g. Sample machine language for the Pentium:

55

8b ec

83 ec 08

53

56

57

The transistors on the chip have an off state, 0, and an on state, 1. This results in a binary code. This is difficult to work with, so often a higher level base is used, such as hexadecimal, as shown in the example machine code for the Pentium architecture. Separate commands are shown on separate lines in this example. Working purely in numbers, either directly coding to the transistors in binary or coding in a higher level base, such as hexadecimal or octal, is cumbersome. In order to simplify programming for the programmer a level of abstraction is provided through the use of the more human-readable assembly language. An assembler is used to translate the assembly language instructions into machine language (1s and 0s - binary). The same line of code shown above now become:

Push ebp

Mov ebp, esp

Sub ebp, 8

Push ebx

Push esi

Push edi

This level of abstraction provided by assembler language makes it far easier for a programmer to understand the program than does directly coding the states of transistors by the use of binary.

High Level Languages

The level of abstraction provided by assembler is still quite low and many programmers do not bother working in assembler because it can take a long time to write a program. Programming languages with a higher level of abstraction have been developed, such as C, C++, PASCAL and BASIC. These higher-level languages still need to be transformed into machine code. This is performed by either a compiler or a translator – which defines whether the language is a compiled language or a translated language.

Compiled languages (e.g. C) generate files that may be executed by an operator typing in commands to execute the program or calls by other programs (in the case of 8086 architecture processors the files generated are typically .exe or .com files). In the case of translated languages (e.g. BASIC) the high level instructions of the program are translated on the fly for immediate execution by the processor. This on the fly conversion to machine code means that translated languages are typically slower in execution compared to programs written in a compiled language.

 

Compiled

Translated

High-level

language program

 


compiler

 

assembly language

program

 

assembler

 

machine language

program

in a file.

High-level

language program

 

translator

 

assembly language

program

 

assembler

 

machine language

program

for immediate execution.

Structured and Object Oriented Programming

These are high level language types.

Structured programming languages execute statement (commands) in sequence but the code is organised (usually into blocks of statements) and there is flow control through the use of if, else type statements and also looping with while and for statements. Typical structured programming languages include C and Pascal.

Object oriented programming involves abstracting classes and creating objects. From the classes objects can be created (instantiated). Classes can also be used to create other, child, classes, a process known as inheritance. For example, the class of reports can be used to derive the class of stock reports, from which specific stock report objects for a given date can be produced. The objects are the “real” thing. Object oriented programming languages include C++ and Java.

 

by

Matthew Martin

top of page