3.2.1 Fundamentals of Computer Systems
Hardware and Software
Hardware - the physical components of a computer.
Software - programs which run on the hardware.
Classification of Software
System software - performs the tasks needed to operate the hardware.
Application software - allows the user to perform non-computer tasks.
- Interface between user and hardware
- Virtual machine
- Hides the complexity of the hardware from the user
- Provides a software platform on which other programs can run
- Collection of compiled routines that other programs can use
- Perform a specific computer-related task
- Some come with the OS and some can be installed later
Programming language translators:
- Translates programming language into machine code that can be executed by a computer
Assemblers translate assembly language programs into machine code. Each mnemonic instruction is converted into its binary equivalent.
Compilers translates the source code high-level language into object code. The whole code is translated at once and may take some time to compile. The object code produced runs quicker than interpreted code as no translation needs to take place at run-time. No compiler needs to be available during run-time.
Interpreters analyse and execute each line of a program independently. This is slower than executing compiled code as each line must be analysed during execution. No object code is generated so the program must be interpreted each time it is run.
General purpose: Many users, many tasks (e.g. word processor)
Special purpose: Many users, one task (e.g. web browser)
Bespoke: One user, one task (e.g. air traffic control)
Generations of Programming Language
Machine code (1GL):
- Tedious to write (binary)
- Difficult to debug
Assembly language (2GL):
- Use of mnemonics
- Translated into machine code by an assembler
- Labels - refer to instructions by name
Imperative high level language (3GL):
- Imperative - instructions are executed in a programmer-defined sequence
- One statement translated into several machine code statements
- Different languages for solving different types of problems
- English-like syntax - more like natural languages
- Problem centered
- Object-oriented - objects know all their own properties by default
Declarative language (4GL):
- Declarative - define what is to be done, not how it is to be done
3.2.2 Fundamental Hardware Elements of Computers
Need to know:
- Logic gates - Symbols, boolean symbols and truth tables for each
- De Morgan’s laws
- Boolean identities
3.2.3 Machine Level Architecture
Internal and External Hardware Components of a Computer
The Processor, System Bus and Main Memory is called the CPU (Central Processing Unit). Components external to the CPU are called peripherals, e.g. secondary storage.
- Responsible for executing programs
- Carries out arithmetic and logical operations on data
- In a von Neumann computer it stores program instructions and data
- Contains many individual cells, each of which is uniquely addressable
- Random Access Memory
- Readable and writable
- Volatile - data is lost when there is no power
- Read-Only Memory
- Non-volatile - retains data when there is no power
- Can only be written once