6. Fundamentals of Computer Systems Flashcards

1
Q

What is Hardware?

A

Hardware is the physical components of the computer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is Software?

A

Software is the computer programs which run on the computer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is the difference between System Software and Application Software?

A

System Software is used to interact with and maintain the Hardware of the computer. Application Software is designed for a specific purpose, such as a word processor or web browser.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is the purpose of the Operating System?

A

The Operating System provides a software interface for the user and Applications to work with the Hardware of the computer. The Operating System will:
- manage system resources, e.g. CPU (Process Scheduling), and Memory Management.
- manage users and security.
- provide an interface for interacting with the computer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is Utility Software? Give an example.

A

Utility Software is used to maintain and optimise the performance of the computer. An example would be Defragmentation Software which re-orders data on a Hard Drive to improve performance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is a Library?

A

A Library contains software which can be used by Applications. A Library is linked to a program when it is compiled.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is a Translator? What kinds of Translators are there?

A

A Translator converts a computer programs into (usually) Machine Code. The three types of Translator are:
Compilers
Interpreters
Assemblers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is Memory Management?

A

Memory Management is where the Operating System allocates space in RAM to a program whilst it is running. A program needs to store both its Instructions and Data in RAM whilst executing as a process. If there is not enough RAM to store all the currently executing processes then an idle process may be moved to Secondary Storage to make space. This process is called Virtual Memory and can slow the computer because it is swapping data between RAM and Secondary Storage which takes clock cycles.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is Process Scheduling?

A

Process Scheduling is where the Operating System allocates time on the CPU for a process to execute instructions. A process usually does not run on the CPU until it is finished, instead it will execute a number of instructions and then be saved in an idle state until the CPU becomes available again. This allows a computer with a single core CPU to perform Multi-tasking by switching between running processes. Scheduling is organised such that all processes should get a fair amount of time on the CPU and are not starved of resources.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is Backing Storage Management?

A

Backing Storage is the hardware on the computer which is used for persistent storage of data. This will be Secondary Storage devices such as Hard Drives which contains Files and Folders. The Operating System will manage this storage.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is Peripheral Management?

A

A Peripheral is a device which is connected to the computer. The Operating System will have Device Drivers which are software which enable Applications to communicate with the Peripheral. The Operating System will also allow configuration of the Peripherals.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is a Low Level Language?

A

A Low Level Language consists of instructions which correspond to the Instructions of the CPU Instruction Set for the computer on which it will be run.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is Machine Code?

A

Machine Code is a Low Level Language. Machine Code is the native language of the CPU. A CPU will have an Instruction Set which contains all of the executable Instructions for the chipset. Machine Code will be stored in binary, and may not be compatible between computers which have different types of CPU.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is Assembly Language?

A

Assembly Language is a Low Level Language. Assembly Language is a human-readable version of Machine Code and will be specific to the Instruction Set for a particular chipset. Assembly Language uses mnemonics, short text codes, to represent the operations available on the CPU.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

How does an Assembler work?

A

An Assembler translates a program written in Assembly Language into Machine Code. Because each line in an Assembly Language Program translates to a single Machine Code Instruction the translation is relatively simple. However, Assemblers may need to handle symbolic variables and other convenient features, such as branch labels, which means it may need multiple passes to perform the translation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is a High Level Language?

A

A High Level Language is a Programming Language which is closer to a mathematical language to make it easier for humans to program computers. They are not fixed to the Instruction Set of a particular CPU, and so are more portable than Low Level Languages. They need a Translator to execute on a computer.

17
Q

What are the main differences between a Compiler and an Interpreter?

A

A Compiler will run on the Source Code of the program, performing several steps (such as Lexical Analysis and Linking) before generating an Executable File. The Executable File contains the Machine Code of the program. Once the Executable File has been created, no further translation is required - however, it will only work on the Computer Architecture (CPU + Operating System) on which it was compiled. The program can then be loaded into RAM and executed.

An Interpreter translates the Source Code of the program into Machine Code, and Executes it in the same process. Every time the program is executed it is translated again. For this reason Interpreted languages, such as Python or Javascript, tend to be slower than compiled languages. However, they are more portable so long as there is an Interpreter available on the machine where it is to be run.