6: Fundamentals of Computer Systems Flashcards

1
Q

Hardware

A

The physical components of a computer system

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

Software

A

Instructions / code / programs

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

System Software

A

Software used in the management of a computer system

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

Application Software

A

Software for carrying out user-oriented tasks

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

Operating System (3)

A
  • Provides a user interface between the user and the hardware
  • Runs application programs
  • Manages resources / hardware
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Utility Program (1, 1:4)

A
  • Programs designed to help maintain the computer
  • Examples include:
    • Virus scanner
    • Disk defragmenter
    • System monitor
    • File managers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Library Program (2)

A
  • Are collections of resources used to develop software
  • Include pre-written code and subroutines
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Translators (4)

A
  • Convert source code into machine code
  • Assembler converts assembly code into machine code
  • Compiler converts source code written in a high-level language into machine code
  • Interpreter treats high level language source code as data and interprets that data as instructions to its own routine
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Examples of System Software (4)

A
  • Operating systems (OSs)
  • Utility programs
  • Libraries
  • Translators (compilers, assemblers, interpreters)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

The operating system hides ____

A

The complexities of the hardware

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

OS Functions (8)

A
  • To hide the complexities of the hardware from the user
  • To call appropriate interrupt handler when an interrupt occurs
  • To allocate processors to processes
  • To allocate memory to processes
  • To allocate I/O devices to processes
  • To allocate space on a storage device to files
  • Installation of new software and managing updating software
  • Manage power consumption
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Classification of Programming Languages (2)

A
  • Low-level languages: are based upon the instruction set of the computer
  • High-level languages: are problem-oriented and close to a natural language
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Low-Level Languages (2)

A
  • Machine-code
  • Assembly language
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

High-level languages include ____

A

Imperative high-level language

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

Machine-Code Language

A

Is written in binary and doesn’t require translation to be run

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

Assembly Language

A

Help programmers write machine-code using a set of ‘mnemonics’, that represent a binary, machine-code statement

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

Low-Level Languages + (4)

A
  • Programs give better access to computer hardware
  • Programs may execute more quickly as they require less translation
  • Some programs can only be written using a low-level language particularly some parts of a computer’s operating system
  • Programs may use less memory
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

High-Level Languages + (8)

A
  • Programs are portable
  • Program code is easier to understand
  • Faster development time
  • Availability of flow control structures
  • Improved features for supporting modularity
  • Built-in support for data structures
  • Language is problem-oriented
  • Support for different paradigms
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Imperative High-Level Language (4, 1:4)

A
  • Instructions are executed in a programmer-defined order
  • Imperative languages describe how to solve a problem
  • High-level languages use English-like keywords
  • They support structured statements
  • They support the use of:
    • Local variables
    • Parameters
    • Named constants
    • Indentation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

One statement in an imperative high-level language corresponds to ____

A

Many low-level language statements

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

Compilation +/- (4)

A

+ Commercial software is compiled before distribution to protect the source code
- Errors are reported at the end of compilation, which makes debugging harder
+ Object code runs very quickly but programs take long to compile
+ Users don’t need a translator to run object code

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

Interpretation +/- (4)

A

+ Developers can quickly test the program without having to translate the entire program every time
+ Errors appear as they occur so it is easy to identify and fix them
- Interpreting source code is slower than running object code
- Users must have a translator to run the source code

23
Q

Intermediate Language (3)

A
  • Some compilers produce an intermediate language (e.g., bytecode) as their final output
  • This is because the code may need to run on multiple platforms
  • To execute it, a virtual machine performs just in time translation to convert the intermediate language to object code and execute it
24
Q

Source Code vs Object (Executable) Code

A

Source code is code in its original form, written by the programmer whereas object code is compiled source code, which can be executed

25
Logic Gates (6)
- NOT - AND - OR - XOR - NAND - NOR
26
Truth Table for NOT Logic Gate
Input | Output 0 | 1 1 | 0
27
Truth Table for AND Logic Gate
Input | Input | Output 0 | 0 | 0 0 | 1 | 0 1 | 0 | 0 1 | 1 | 1
28
Truth Table for OR Logic Gate
Input | Input | Output 0 | 0 | 0 0 | 1 | 1 1 | 0 | 1 1 | 1 | 1
29
Truth Table for XOR Logic Gate
Input | Input | Output 0 | 0 | 0 0 | 1 | 1 1 | 0 | 1 1 | 1 | 0
30
Truth Table for NAND Logic Gate
Input | Input | Output 0 | 0 | 1 0 | 1 | 1 1 | 0 | 1 1 | 1 | 0
31
Truth Table for NOR Logic Gate
Input | Input | Output 0 | 0 | 1 0 | 1 | 0 1 | 0 | 0 1 | 1 | 0
32
Diagram for NOT Logic Gate
https://isaaccomputerscience.org/api/v2.19.3/api/images/content/computer_science/computer_systems/boolean_logic/figures/sys_bool_logic_gates_not.svg
33
Diagram for AND Logic Gate
https://isaaccomputerscience.org/api/v2.19.3/api/images/content/computer_science/computer_systems/boolean_logic/figures/sys_bool_logic_gates_and.svg
34
Diagram for OR Logic Gate
https://isaaccomputerscience.org/api/v2.19.3/api/images/content/computer_science/computer_systems/boolean_logic/figures/sys_bool_logic_gates_or.svg
35
Diagram for XOR Logic Gate
https://isaaccomputerscience.org/api/v2.19.3/api/images/content/computer_science/computer_systems/boolean_logic/figures/sys_bool_logic_gates_xor.svg
36
Diagram for NAND Logic Gate
https://isaaccomputerscience.org/api/v2.19.3/api/images/content/computer_science/computer_systems/boolean_logic/figures/sys_bool_truth_tables_nand2_2.svg
37
Diagram for NOR Logic Gate
https://isaaccomputerscience.org/api/v2.19.3/api/images/content/computer_science/computer_systems/boolean_logic/figures/sys_bool_truth_tables_nor2_labelled.svg
38
Boolean Expressions (6)
- A AND B = A ⋅ B - A OR B = A + B - NOT A = ̅A - A NAND B = ̅A ̅⋅ ̅B - A NOR B = ̅A ̅+ ̅B - A XOR B = A ⊕ B
39
____ can be Used to Simplify Simple Boolean Expressions
Truth tables
40
Boolean Identities (5)
- Commutative law - Associative law - Absorption law - Distributive law - De Morgan's law
41
Commutative Law
AND: A ⋅ B = B ⋅ A OR: A + B = B + A
42
Associative Law
AND: (A ⋅ B) ⋅ C = A ⋅ (B ⋅ C) OR: (A + B) + C = A + (B + C)
43
Absorption Law
AND: A ⋅ (A + B) = A OR: A + (A ⋅ B) = A
44
Distributive Law
AND: A + (B ⋅ C) = (A + B) ⋅ (A + C) OR: A ⋅ (B + C) = (A ⋅ B) + (A ⋅ C)
45
De Morgan's Law
AND: ̅A ̅⋅ ̅B = ̅A + ̅B OR: ̅A ̅+ ̅B = ̅A ⋅ ̅B
46
Order of Boolean Operations (4)
- Brackets (first) - NOT - AND - OR
47
Compilation vs Interpretation (6)
- A compiler produces object code whilst an interpreter does not - A compiler translates the whole of the source code into object code whilst an interpreter translates line by line - The object code produced by a compiler will execute faster, than interpreting the source code - An interpreter can run parts of a program whilst there are syntax errors in other parts of it, which a compiler cannot - Once code has been compiled it does not need to be recompiled whilst an interpreter has to translate code every time a program is run - If using an interpreter, it needs the source code each time it executes the program whereas a compiler only needs to use the source code once
48
Binary Half-Adder Circuit
https://isaaccomputerscience.org/api/v3.1.6/api/images/content/computer_science/computer_systems/boolean_logic/figures/isaac_cs_sys_bool_binary_half_adder.svg
49
https://isaaccomputerscience.org/api/v3.1.6/api/images/content/computer_science/computer_systems/boolean_logic/figures/isaac_cs_sys_bool_binary_full_adder.svg
Binary Full-Adder Circuit
50
Edge Triggered D-Type Flip-Flop (3)
- This is used as a NAND flash memory unit - On the rising edge of each clock signal, the state of the data input is accepted and the output is updated to reflect this - Once the clock signal input goes low, the state of the circuit will not change and store the output
51
OS Processor Management (2)
* To allocate processors to processes * Schedule processes
52
OS Memory Management (4)
* To allocate memory to processes * To determine what areas of memory are used for what purpose * Moving data into and out of RAM / to a paging file for virtual memory * Ensuring processes can only write to memory that they have been allocated
53
OS I/O Devices Management (3)
* To allocate I/O devices to processes * Manages communication between processes and I/O devices * Automatic installation of drivers for new I/O devices
54
OS Storage Management (4)
* To allocate space on a storage device to files * Organising files into directories * Determines where on a device to save a file * Recognising storage devices when they are connected