Topic 6 - Fundamentals of Computer Systems Flashcards

You may prefer our related Brainscape-certified flashcards:
1
Q

What are the two components of computer systems?

A

The two primary components of a computer are hardware and software.

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

Define one of the components of computer systems.

A

Hardware is the electrical and electro-mechanical components of a computer such as the keyboard, mouse, speakers, hard drive or SSD, power supply, printer.

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

Define another one of the components of computer systems.

A

Software is the program and program code of an application of a computer; this may be a word processor, video games, and other programs such as Spotify, Internet Explorer, Skype and many more.

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

Give examples of devices that are part of both components of computer systems.

A

Wireless routers and wireless keyboards are devices which are both hardware and software.

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

Define application software.

A

Application software is simply software which completes a specific task for the user.

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

Define system software.

A

System software is software which maintains the computer, ensuring it is running healthily with no problems.

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

What are the 4 types of system software?

A
  • Utility program
  • Operating System (OS)
  • Library programs
  • Translators
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Define an OS.

A

An operating system is the system software which manages the computer’s hardware and peripherals and also completes other important tasks such as providing a user interface for the user.

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

What are utility programs?

A

Utility programs are programs that maintain and optimize the computer, and its storage via housekeeping tasks; data backup, defragmentation of hard drive, data compression and data encryption.

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

Describe library programs.

A

Library programs are pre-compiled routines/modules which can be imported into the code of a program by the user. These programs are very useful as they simplify the programming process and prevent unnecessary lines of code.

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

Describe translators.

A

Translators are another type of utility programs which translate between languages, typically translating the program source code to low-level machine code.

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

State the types of translators.

A

Types of translators are:

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

Why were low-level languages created?

A

At the time during the earliest computers, these computers were very weak in speed and memory so programmers would write instructions which directly manipulated the CPU to execute commands.

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

What are high-level languages?

A

High-level programming languages are languages which directly communicate with the processor of a computer, making the programming process much easier.

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

What are low-level languages?

A

Low-level languages are instructions which directly manipulate the CPU of a computer as they are specific to the type of CPU and directly affect the CPU.

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

What are the two types of low-level languages?

A
  • Machine Code

- Assembly Language

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

Define machine code.

A

Machine code is a type of low-level language in the form of pure binary bits.

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

Give a disadvantage of machine code.

A

Because it is in the form of binary bits, machine code can get very long, making it hard to debug.

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

Give another disadvantage of machine code.

A

Machine code can be prone to errors.

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

Describe an advantage of machine code.

A

Because it is already in binary format, when being executed by the computer it does not need to be translated so it can run easily and quickly, making it powerful and strong.

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

State two uses of machine code.

A

Machine code can be used in real-time applications and embedded systems.

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

Define assembly languages.

A

Assembly languages are another type of low-level language which use mnemonics (ADD, MOV, STR…) instead of binary code, aiming to simplify the programming process.

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

Describe an advantage of assembly languages.

A

Assembly languages are generally less vulnerable to errors as they are more compact than machine code.

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

What correlation do assembly languages and machine code have?

A

Assembly languages and machine code have a 1 to 1 correlation;
e.g: The assembly instruction MOV R2, R1 is directly correlated to the binary number 11011001:
MOV stands for the MOVE command, represented by the 4-bit identifier 1101, R2 stands for Register 2, so in binary this would be 10, and R1 stands for Register 1 so in binary this would be 01.

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

Give examples of imperative high-level languages.

A

High-level languages include FORTRAN, Python, C++, C#, Delphi, Ruby and many more.

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

How are instructions presented in high-level languages?

A

High-level languages instructions don’t include mnemonics or binary code; English instructions such as while, if, print and mathematical symbols like ‘+’, * are used instead.

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

Define imperative high-level languages.

A

Imperative high-level languages are a type of high-level languages which is similar to low-level languages because the code tells the computer how to execute the code via commands and steps for the computer to perform. This is a sharp contrast from declarative programming where the computer is only told what to execute.

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

How do named variables, commenting and indenting help with coding?

A

These features make coding so much better and easier to debug as the code is far more detailed.

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

How useful are built in functions to programming?

A

Built in functions in high level programming are very useful as they help simplify the programming process, saving lots of time.

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

What happens when a high-level language program is run?

A

When a high-level language program is run, a compiler or interpreter translator will translate the code into machine code for the computer to understand, then the program will be executed.

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

What is an assembler?

A

An assembler is a type of translator which translates assembly code to machine code. As assembly code and machine code have a 1 to 1 correlation, the procedure should be straightforward and simple. Assemblers are also platform specific as certain assemblers only work on certain processor instruction sets.

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

What is a compiler?

A

A compiler is a type of translator which is used in many high-level languages to translate the code to machine code. This makes it platform specific as machine code may differ depending on the CPU used.

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

What is an interpreter?

A

An interpreter is a type of translator which translates high-level language code into machine code. Unlike, compilers, interpreters do not produce object code.

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

How does a compiler work?

A

A compiler first checks for errors in the program then translates the entire program into machine code. If an error is detected during the initial check, the program won’t be translated.

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

How does an interpreter work?

A

The interpreter has individual procedures for each program instruction, but the general process is that the interpreter will check for errors line by line, and if there are no errors then the line will be translated into machine code; this may mean if errors are detected later in the program, the program will still be partially translated.

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

Give one problem with using an interpreter.

A

During translation, the source code must be present with the interpreter, posing a huge security risk as the source code is at risk of extraction.

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

What are intermediate languages used for?

A

Intermediate languages are used by compiler translators to help translate program source code into machine code, so the program can be executed.

38
Q

Describe how compilers use intermediate languages.

A

The high-level source code is compiled into bytecode, an intermediate language, and as bytecode is a portable file, it can be run on any computer as long as the computer runs JVM (Java Virtual Machine). Here, the Java compiler will convert the bytecode into machine code.

39
Q

Explain how intermediate language is effective for interpreters.

A

Intermediate language will allow the source code to be present and translated only once, so it can be prevented from extraction, making the interpreter more secure.

40
Q

Define the term ‘source code’.

A

Source code is defined as the input to a translation; for assemblers this is assembly code, for compilers and interpreters this is the high-level language code.

41
Q

Define the term ‘object code’.

A

Object code is the output of a translation.

42
Q

Define a logic gate.

A

A logic gate is an electronic device which applies logical expressions to boolean inputs to produce a singular output.

43
Q

Give the names of the logic gates.

A
  • AND
  • OR
  • NOT
  • NAND
  • NOR
  • XOR
44
Q

Define the AND gate.

A

The AND gate is a logic gate with 2 inputs on the left, and create 1 output. A 1 will only be outputted if both inputs are 1. The truth table will have 3 columns (2 for input, and 1 for output).
Formula is Q = A x B

45
Q

Define the OR gate.

A

The OR gate is a logic gate with 2 inputs on the left, combining to create 1 output. If at least 1 input is 1, the output will be 1. The truth table will have 3 columns (2 for input and 1 for output).
Formula is Q = A + B

46
Q

Define the NOT gate.

A

The NOT gate is a logic gate with 1 input on the left and 1 on the right. The output will always be opposite to the input. The truth table will have 2 columns (1 for input and 1 for output).
Formula is Q = ‾A (Overline should be over A)

47
Q

Define the XOR gate.

A
The XOR (Exclusive OR) gate is a logic gate with 2 inputs on the left used to combine to make 1 output. Only if strictly one of the inputs is 1, the output will be 1 and if both inputs are 0 or 1, then the output will be 0. The truth table will have 3 columns (2 for input and 1 for output).
Q = A ⊕ B
48
Q

Define the NOR gate.

A

The NOR gate is a combination of the NOT and OR logic gates, and its outputs will be the exact opposite of the OR gates outputs; if at least one input is 1, the output will be 0.
Q = ‾‾‾‾‾‾
A + B

49
Q

Define the NAND gate.

A

The NAND gate is a combination of the NOT and AND gates, with its outputs being the exact opposite of the AND gates outputs; if strictly one input is 1 or if there are two 0 inputs, the output will be 1.
Q = ‾‾‾‾‾‾‾
A x B

50
Q

What is ‘A • B’?

A

The ‘•’ means multiplication so here the two variables are multiplying, so an AND gate is applied here.

51
Q

What is the answer to C • C?

A

A boolean value AND itself will always return the value itself; e.g C • C = C, A • A = A…

52
Q

What is the answer to F + F?

A

A boolean value OR itself will always return the boolean value; F + F = F, G + G = G…

53
Q

Give the answer to E + 1.

A

A boolean value OR 1 will always be 1.

54
Q

What is ‾‾A (double overline)?

A

Double overline of a boolean value will just be the value itself as the expression would be: NOT(NOT A).

55
Q

Describe De Morgan’s Law.

A

De Morgan’s Law is a law devised for simplifying expressions in Boolean algebra; it reads:
‘Break the bar and change the sign’.

56
Q

Give the steps used to carry out De Morgan’s Law in simplifying expressions.

A

1) Change the OR symbol to an AND symbol (or vice versa)
2) NOT the terms on both sides of the expression
3) NOT everything in the expression.
4) Remove double negations (remove NOT overlines)
5) Remove all brackets
6) Depends on the question; if there are two terms repeated at the end in a logic gate (AND or OR), then simplify and cancel the terms out.

57
Q

What are distributive rules?

A

Distributive rules are a set of rules used for simplifying expressions and expanding brackets in boolean algebra.

58
Q

Give a use of an operating system.

A

An operating system provides a user interface (GUI, command line or menu-driven) to hide the inner complexities of the computer and let the user access the computer with ease.

59
Q

Give another use of an operating system.

A

The OS plays the role of the ‘middle-man’ or messenger as the hardware and software of the computer can’t directly communicate, so the OS helps with communication here.

60
Q

What is disk defragmentation?

A

Disk defragmentation is a type of utility program which constantly rearranges files to prevent fragmentation where large clusters of files are scattered across the drive. This program helps improve file access speeds and times.

61
Q

List the types of application software.

A
  • General purpose software
  • Special purpose software
  • Bespoke software
  • Off the shelf software
62
Q

Define one type of application software.

A

General purpose application software is software which is not limited to only one purpose. Examples include word processors, graphics packages, spreadsheet software.

63
Q

Define another type of application software.

A

Special purpose application software is software which only has one purpose/use. Examples include presentation software, driving simulator, payroll/accountancy software.

64
Q

Describe a type of application software.

A

Bespoke software is a type of application software which is tailor-made for a user or an organisation. This means the user or organisation will have lots of control on the functionality of the program. Examples include the software used for certain armed forces, NASA, or certain e-commerce software.

65
Q

Describe another type of application software.

A

Off the shelf software is application software which may be purchased from retailers. This can be special or general purpose software.

66
Q

What is data backup?

A

Data backup is a type of utility program which is only used if a computer system malfunctions. The program restores the computer system to a previous state using a system saved as a backup.

67
Q

Describe data compression programs.

A

Data compression programs are a type of utility software which compress/reduce file size so they can be transmitted across a network easier or stored easier.

68
Q

Define data encryption programs.

A

Data encryption programs are a type of utility software which encrypts files and folders to prevent unauthorized access by hackers or cyber attackers.

69
Q

What is an API?

A

An API (Application Programming Interface) is a user interface which hides the complex operations that take place in a computer whenever we issue commands for those operations (e.g. loading or saving files, recording or playing sounds…)

70
Q

Describe how an API works.

A

The user gives the API its request, then the API will go to the OS and give it the request and the OS will then send its response to the user via the API.

71
Q

State the individual functions which the OS performs for resource management.

A
  • Backing store management
  • Processor scheduling
  • Memory management
  • Peripheral/IO (Input Output) device management
72
Q

Explain how the OS manages memory (memory management).

A

As the computer is running, the OS allocates a certain amount of memory onto each running program on the RAM to manage the user’s multitasking. However, if the RAM is running low then the OS will remove some programs to free up space and put them on the hard drive. (the HDD here acts as extension or virtual memory)

73
Q

Describe processor scheduling.

A

Processor scheduling works by the OS managing which programs can send data to the CPU and which can’t, causing several instructions of multiple operations to queue. This is linked to multi tasking where the CPU executes small parts of multiple operations, making it appear like processes are running simultaneously.

74
Q

What is a scheduler?

A

A scheduler is a component in the OS which ensures processor time is used efficiently and no problems occur with the processor time.
e.g Windows Task Manager.

75
Q

Give examples of scheduling algorithms.

A

Examples include:

  • Round Robin = each process uses the processor for a given time
  • Shortest job next
  • Priority system (this is where the process with the most importance is given priority and most processor time).
76
Q

Describe and explain backing store management.

A

This is another part of resource management which is focused on the OS keeping track of where files are stored on the HDD and any external drives, and also where there is any free space which may be used. The OS needs to know all this information just in case the user performs a save operation for a backup.

77
Q

Describe and explain peripheral/IO management.

A

IO (Input/Output) management is performed by the OS through its communication with the I/O controller, a component of the CPU. Through this communication, the OS performs important tasks such as checking whether an output device is switched on and ready to receive data and managing CPU interrupt signals such as the ‘out of paper’ interrupt signal from a printer.

78
Q

Define an interrupt signal.

A

An interrupt signal is a signal sent to the CPU from external hardware or software programs which interrupts the currently running process on a computer.
e.g: If you are typing a document and a window randomly pops up, you won’t be able to continue typing until you close the pop-up. The pop-up is an example of the interrupt signal.

79
Q

Give the two components of machine code.

A

The two components of machine code are the opcode and operand.

80
Q

Define one of the components of machine code.

A

The opcode is the first part of machine code, covering the first few bits. The opcode stands for ‘operation code’ as it tells the CPU what it will do.

81
Q

Define another of the components of machine code.

A

The operand is the next part of the machine code, covering the bits after the opcode. It can be in the form of a number value, or memory address which holds the value.

82
Q

What is the instruction set of a computer?

A

The instruction set is simply the instructions a computer understands and can execute.

83
Q

Give an example of a declarative programming language.

A

SQL, a database query programming language, is a widely recognized type of declarative language.

84
Q

Why use high-level languages?

A

High-level languages allow users to code using algorithms, which is useful as users do not need to constantly worry about every single step of their program.

85
Q

What does it mean by a high-level language being ‘portable’? (advantage)

A

A high-level language being portable, simply means that a program written for one type of computer can be used on another type, given that the program is recompiled on the other type of computer.

86
Q

Give a disadvantage of high-level languages.

A

In some applications like device drivers, manipulating individual bits is quite important yet high-level languages don’t have statements for programmers to perform this.

87
Q

Give a disadvantage of using object code.

A

A disadvantage of using object code is that it is generally slower than assembly code or even machine code.

88
Q

State another disadvantage of object code.

A

Embedded systems are small computer systems in electronic devices, and by using object code in these systems, the code can occupy the majority of the already limited memory of embedded systems.

89
Q

Give an advantage of NAND gates.

A

By only using NAND gates to build a circuit, this can significantly decrease production costs.

90
Q

Describe an advantage of NAND gates.

A

By using as few logic gates as possible, this can significantly speed up processing power.