1.2 Software and software development Flashcards

(63 cards)

1
Q

What is an Operating System?

A

Software that manages hardware and provides a platform for applications; manages memory, processes, security, files, I/O.

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

What is paging?

A

Dividing memory into fixed-size pages; programs are divided into pages; stored in frames.

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

What is segmentation?

A

Dividing memory into variable-sized segments based on logical divisions (e.g., data segment, code segment).

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

What is virtual memory?

A

Using secondary storage (HDD/SSD) as an extension of RAM when physical RAM is full.

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

What is an interrupt?

A

A signal sent to the processor indicating an event requiring immediate attention.

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

What is an Interrupt Service Routine (ISR)?

A

A subroutine executed in response to an interrupt.

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

What is a maskable interrupt?

A

An interrupt that can be ignored or delayed by the CPU.

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

What is a non-maskable interrupt (NMI)?

A

An interrupt that cannot be ignored; used for critical errors (e.g., power failure).

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

Round Robin scheduling.

A

Each process gets a fixed time slice (quantum); cycles through processes.

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

First Come First Served (FCFS).

A

Processes executed in the order they arrive; non-preemptive.

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

Multi-level feedback queue.

A

Processes move between priority queues based on behaviour; prevents starvation.

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

Shortest Job First (SJF).

A

Executes the process with the smallest total execution time next; non-preemptive.

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

Shortest Remaining Time (SRT).

A

Preemptive version of SJF; executes the process with the least time remaining.

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

Which scheduling algorithms are preemptive?

A

Round Robin, Shortest Remaining Time (SRT).

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

Which scheduling algorithms are non-preemptive?

A

First Come First Served (FCFS), Shortest Job First (SJF).

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

What is a Real Time Operating System (RTOS)?

A

Guarantees response within a strict deadline; used in medical devices, airbags.

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

What is a distributed OS?

A

Manages a group of independent computers and makes them appear as a single system.

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

What is an embedded OS?

A

Designed for specific devices with limited resources (e.g., smartwatch, microwave).

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

What is a multi-tasking OS?

A

Allows multiple tasks/processes to run concurrently by sharing CPU time.

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

What is a multi-user OS?

A

Allows multiple users to access the system simultaneously.

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

What is BIOS?

A

Basic Input Output System; firmware stored in ROM; initialises hardware and boots the OS.

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

What does POST stand for?

A

Power On Self Test.

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

What does POST do?

A

Checks that essential hardware (RAM, keyboard, storage) is present and functioning before booting.

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

What is a device driver?

A

Software that allows the OS to communicate with a specific hardware device.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
What is a **virtual machine**?
A software emulation of a physical computer; runs an OS within another OS (e.g., VirtualBox, JVM).
26
What are **utilities**?
System software that performs maintenance tasks (e.g., defragmentation, backup, antivirus).
27
**Open source** vs **Closed source**.
Open: Source code available, often free, community modified (e.g., Linux). Closed: Source code hidden, owned by company (e.g., Windows).
28
What does an **interpreter** do?
Translates and executes source code line-by-line; slower; easier debugging.
29
What does a **compiler** do?
Translates entire source code into machine code in one go; produces an executable; faster execution.
30
What does an **assembler** do?
Translates assembly language (mnemonics) into machine code.
31
**Lexical analysis** stage.
Removes comments/whitespace; replaces constants with tokens; builds symbol table.
32
**Syntax analysis** stage.
Checks token sequence against grammar rules; builds Abstract Syntax Tree (AST).
33
**Code generation** stage.
Converts AST into object/machine code.
34
**Code optimisation** stage.
Makes code more efficient (faster/less memory) without changing functionality.
35
What is a **linker**?
Combines multiple object code files and libraries into a single executable.
36
What is a **loader**?
Loads the executable into memory and starts it.
37
**Waterfall** model.
Sequential stages (Analysis -> Design -> Code -> Test -> Maintain); rigid; good for safety critical systems.
38
**Agile** methodologies.
Iterative; incremental; flexible requirements; frequent customer feedback (e.g., Scrum, XP).
39
**Spiral** model.
Risk driven; combines iterative with waterfall; suitable for large, high-risk projects.
40
**Rapid Application Development (RAD)**.
Prototyping over planning; fast delivery; user involvement; timeboxed.
41
**Extreme Programming (XP)**.
Agile methodology; pair programming, test-driven development, continuous integration.
42
When would you use **Waterfall**?
Requirements are fixed and clear; safety critical systems; low client involvement needed.
43
When would you use **Agile**?
Requirements likely to change; client available for feedback; fast delivery needed.
44
**Immediate addressing**.
Operand is the actual value (e.g., `LDA #5`).
45
**Direct addressing**.
Operand is the memory address where the value is stored (e.g., `LDA 50`).
46
**Indirect addressing**.
Operand points to a memory location that contains the address of the data.
47
**Indexed addressing**.
Adds an index register to the address to calculate effective address (useful for arrays).
48
**LMC Mnemonic: ADD**
ADD - Add.
49
**LMC Mnemonic: SUB**
SUB - Subtract.
50
**LMC Mnemonic: STA**
STA - Store (Alternative: STO).
51
**LMC Mnemonic: LDA**
LDA - Load (Alternative: LOAD).
52
**LMC Mnemonic: BRA**
BRA - Branch always (Alternative: BR).
53
**LMC Mnemonic: BRZ**
BRZ - Branch if zero (Alternative: BZ).
54
**LMC Mnemonic: BRP**
BRP - Branch if positive (Alternative: BP).
55
**LMC Mnemonic: INP**
INP - Input (Alternatives: IN, INPUT).
56
**LMC Mnemonic: OUT**
OUT - Output.
57
**LMC Mnemonic: HLT**
HLT - End program (Alternatives: COB, END).
58
**LMC Mnemonic: DAT**
DAT - Data location (reserves memory).
59
What is a **class**?
A blueprint/template for creating objects.
60
What is an **object**?
An instance of a class.
61
What is **encapsulation**?
Bundling data (attributes) and methods (procedures) that operate on the data; restricting direct access (private).
62
What is **inheritance**?
Creating a new class (child) based on an existing class (parent); inherits attributes/methods.
63
What is **polymorphism**?
Ability to present the same interface for different underlying data types (e.g., method overriding).