2.2 Fundamentals of computer systems Flashcards
Define hardware
A generic term for the physical parts of the computer, both internal and external
Define software
A generic term for any program that can be run on a computer
Define application software
Programs that perform specific tasks
Define system software
The range of programs that are concerned with the setup and running of the computer - the 4 main types of system software are utility programs, library programs, translators, and operating system software
Define utility program
Programs that perform specific common tasks relating to the running of the computer
Define library program
Code, data, and resources that can be called by other programs
What is a translator?
Software that converts programming language instructions into machine code. There are 3 types of translator - compilers, assemblers, and interpreters
What is a compiler?
A program that translates high-level language into machine code by translating all of the code in one block. This will often create a file such as a .exe file which will not need translating to be run again
What is an assembler?
A program that translates a program written in assembly language to machine code
What is an interpreter?
A program for translating a high-level language into machine code by reading each statement in the source code line by line and performing the action. Code that is translated by an interpreter will need to be interpreted each time it is run
Define operating system software
A suite of programs designed to control the operations of the computer
Define virtual machine
The concept that all of the complexities of using a computer are hidden from the user and other software by the operating system
What tasks are performed by the operating system?
- Controls start-up configuration of the computer
- Recognises input from peripherals and decides what action to take
- Sends signals to hard disk controller telling it what programs to transfer to memory
- Decides what sections of memory to allocate to the program currently running
- Attempts to handle errors
- Ensure complete and correct shutdown process
- Controls print queues
- Manages users on a network
Define resource management
How an operating system manages hardware and software to optimise the performance of a computer. This includes tasks such as managing input/output devices, memory management, file management, and scheduling tasks
Define scheduling
A technique to ensure that different users or different programs are able to work on the same computer system at the same time
Define memory management
How the operating system uses RAM to optimise the performance of the computer
Define file management
How an operating system stores and retrieves files
Define machine code
The lowest level of code that is completely understandable by a computer, which is written in binary
Define assembly language
A way of programming that involves writing mnemonics. This is one level above machine code
Why is assembly language used?
- Programs are executed quickly as a compiler does not optimise the machine code it produces as effectively as a programmer writing assembly language
- Program code is relatively compact
- Assembly language allows for direct usage of registers on the processor, giving lots of control over how the program is run
Define source code
Programming code that has not yet been compiled into an executable file
Define object code
Compiled code that can be run as an executable on any computer
Define low level language
A programming language that is machine oriented, this refers to assembly language and machine code
Define high level language and what are the 4 main types?
A programming language that allows programs to be written using English keywords and that is platform independent. The 4 main subsections of this are imperative, object-oriented, declarative, and functional (a subset of declarative)
What are the characteristics of a high level language?
- It is easier for a programmer to recognise what a command word does
- Require translation
- One to many relationship between lines of high level language code and lines of machine code
- Portable
- Make use of a wide variety of program structures that make writing in them more straightforward, which also makes them easier to maintain
Define imperative language
A language based on giving the computer commands or procedures to follow
Define object-oriented language
A programming paradigm that encapsulates instructions and data together into objects
Define declarative language
Languages that declare or specify what properties a result should have e.g. results will be based on functions
Define functional language
A programming paradigm that uses mathematical functions
What is a translator?
The general name for any program that translates code from one language to another, for example translating source code to machine code
Define interpreter
A program for translating a high level language by reading each statement in the source code and immediately performing the action
Define compiler
A program that translates a high level language into machine code by translating all of the machine code
What are the pros and cons of using an interpreter?
Pros:
- You do not need to compile the whole program in order to run small sections of code, as it can be executed one statement at a time
- As the code is translated each time it is executed, it can be run on processors with different instruction sets
Cons:
- Each line of code will need translating again each time it is executed, meaning the time taken to execute a problem can be long
- The source code can only be translated and executed on a computer that has the same interpreter installed
- The source code must be distributed to users
What are the pros and cons of using a compiler?
Pros:
- Once the source code has been compiled, you no longer need the compiler or the source code
Cons:
- The object code will only work on a computer that has the same platform
- As the whole program must be converted from source code each time, it can take longer to debug
Define bytecode
An instruction set used for programming that can be executed on any computer using a virtual machine
Define boolean expression
An equation made up of Boolean operations
Define logic gate
An electronic component used to perform Boolean algorithms. A logic circuit is defined as a combination of logic gates
Define half adder
A circuit that performs addition using inputs from A and B only
Define full adder
A circuit that performs addition using inputs from A and B plus a carry bit
Define carry bit
Used to store a 0 or 1 depending on the result of binary addition
What is a flip flop?
A memory unit that can store 1 bit
What is an edge triggered D type flip flop?
A memory unit that changes state with each pulse of the clock