Topic 2: Software and software development Flashcards

1
Q

What are the functions of an OS

A
  • Interrupts
  • User Interface
  • File Management
  • Peripheral Management/Drivers
  • User Management
  • Memory Management
  • Processor Scheduling
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is the purpose of an OS

A

To manage interaction between hardware and software

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

What does a GUI have

A

WIMP

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

What does WIMP stand for

A

Windows
Icons
Menus
Pointers

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

What does BIOS do in terms of OS

A

BIOS loads OS to RAM

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

What is CLI and when would it be used

A

Command Line Interface, used at a technical level as you interact with hardware more

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

What is MDI and when would it be used

A

Menu Driven Interface, used to simplify options so the user can’t be annoying (ATM)

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

What is Memory Management

A

Manage memory, Paging and Segmentation

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

What is Paging

A

A process loaded to RAM is allocated sufficient pages that may not be contiguous in physical terms. Pages are fixed length blocks of memory. Each page has an address.

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

What is Segmentation

A

Variable length memory-size data, Logical

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

What are the benefits of Paging

A

So data can swap into and out of virtual memory.
Page tables don’t have to have data contiguous

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

What does a page table do

A

Maps between the logical and the physical memory locations

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

What is swapping

A

Moving data to and from virtual memory

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

How are the pages that get swapped decided

A

By the OS

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

Why is swapping bad

A

It causes disk thrashing which slows performance

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

What is Immediate addressing

A

Actual value

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

What are the 4 types of addressing

A

Immediate
Direct
Indirect
Indexed

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

What is Direct addressing

A

Address of value

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

What is Indirect addressing

A

Address of Address of value

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

What is Indexed addressing

A

Index value + Value

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

What sends interrupts

A

Software, Hardware devices or the CPUs internal clock

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

When would you Interrupt

A

User Input
Errors
Power Failure
An I/O sends and Interrupt signal

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

When are interrupts checked for

A

CPU checks for interrupts at the end of every cycle

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

What happens if an Interrupt is found

A

Current processing is pushed to a stack

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
What happens when the interrupt is finished
Processing is popped back
26
What is the ISR
Interrupt Service Routine
27
What is a Queue
FiFo
28
What is a Stack
LiFo
29
How are interrupts processed
In order of priority using levels
30
Can an interrupt be interrupted
Yes, by a higher level interrupt, it will be pushed to the stack
31
What is processor Scheduling
Allows us to have the illusion that the CPU is multitasking
32
Name some features of a Round Robin
FIFO Set amount Time slices Sent to back of Queue
33
What is a Round Robin routine
Each job is given a time slice of processor time to run in. When a job has used up it’s time slice it is returns to the start of the queue and receives another. This repeats until the job is complete.
34
What is First come First Served Routine
Jobs are processed in the order they entered the queue
35
What is a Multilevel feedback queue routine
Uses multiple queues, each with a different priority
36
What is a Shortest job first routine
The queue is ordered by the amount of processor time needed. Shortest jobs are completed first.
37
What is a Shortest time remaining routine
The queue is ordered based on the time left to completion. Jobs with the least time needed to complete are finished first
38
Advantages and Disadvantages of Round Robin
A: All jobs are eventually attended to. D: Longer jobs take much longer. Takes no account of priority.
39
Advantages and Disadvantages of First come First Served
A: Easy to implement. D: Takes no account of priority.
40
Advantages and Disadvantages of Multilevel Feedback
A: Considers job priority. D: Tricky to implement
41
Advantages and Disadvantages of Shortest Job First
A: Works well for batch systems D: Requires additional processor time to order the queue. Takes no account of priority.
42
Advantages and Disadvantages of Shortest time Remaining
A: Increased throughput D: Requires additional processor time to order the queue. Takes no account of priority.
43
Name 5 types of Software Development
- Waterfall - Agile - Extreme Programming - Spiral - Rapid Application Development (RAD)
44
Advantages and Disadvantages of Waterfall
A: Straightforward to Manage. Clearly documented D: Lack of Flexibility. No risk analysis. Limited user involvement
45
Advantages and Disadvantages of Agile
A: High quality code. Flexible to changing requirements. Regular user inputs. D: Poor Documentation
46
Advantages and Disadvantages of Extreme Programming
A: High quality code. Constant user involvement means high usability. D: High cost as two people needed. Teamwork is essential. User needs to be present.
47
Advantages and Disadvantages of Spiral
A: Thorough risk analysis. Caters to changing user needs. Prototypes produced throughout. D: Expensive to hire risk assessors. Lack of focus on code efficiency. High costs due to constant prototyping.
48
Advantages and Disadvantages of RAD
A: Caters to changing requirements. Highly usable finished product. Focus on core features, reducing development time. D: Poorer quality documentation. Fast pace and late changes may reduce code quality.
49
Uses of Waterfall
Static, low-risk projects with little user input
50
Uses of Agile
Small to medium projects with unclear initial requirements
51
Uses of Extreme Programming
Small to medium projects with unclear initial requirements requiring excellent usability.
52
Uses of Spiral
Large, Risk intensive projects with a high budget
53
Advantages of Open Source Software
Online, free, community support. Many individuals will work on the code meaning it is of high quality. Free.
54
What is Open Source Software
Provided along with the source code. No license required to use.
55
Disadvantages of Open Source Software
Not always well supported or documented. Variable quality code. Less secure.
56
What is Closed Source Software
Needs a license to use. Source code is not available. Protected by Copyright
57
Advantages of Closed Source Software
The company provides support and documentation. Professionally developed. More secure. Regular updates
58
Disadvantages of Closed Source Software
Code cannot be customised to meet user needs. License may restrict use. More expensive.
59
What are the 4 stages of Compilation
- Lexical Analysis - Syntax Analysis - Code Abstraction - Optimisation
60
What is Lexical Analysis
* Comments and whitespace removed * Identifiers and keywords replaced with tokens * Token info stored in a symbol table
61
What is Syntax Analysis
* Tokens checked against language rules * Flags syntax errors * Abstract Syntax Tree Produced
62
What is Code Abstraction
* Machine code produced using Abstract Syntax Tree
63
What is Optimisation
* Reduces execution time * Most time consuming part * Removes redundant code
64
What is a Translator
Convert source code into object code
65
What is a Compiler
* Translates code all in one go * Compilation process is longer * Produces platform specific code * Complied code can be run without a translator * Produces an executable
66
What is an Interpreter
* Translates and executes code line by line. * Will error if a line contains an error. * Slower to run than compiled code. * Code is platform independent. * Useful for testing.
67
What is an Assembler
* Assembly code is platform specific, low level code. * Translates assembly code to machine code. * 1 line of assembly code = 1 line of machine code.
68
What is a Device Driver
* Code which allows OS to interact with hardware * Specific to the OS and architecture type
69
What is a Linker
* Link external modules and libraries used in the code. * Static linkers copy the library code directly into the file, increasing its size. * Dynamic linkers just add the addresses of the module or library.
70
What is a Loader
Provided by the OS to fetch the library or module from the given location in memory
71
What is a Library
* Libraries include pre compiled, error free, code which can be used within other programs * Common functions can quickly and easily be reused across multiple programs * Saves the time and effort associated with developing and testing code to perform the same task over and over again.
72
Ways to Address Memory
* Machine code comprises an operand and opcode. * Operand is the value relating to the data on which the instruction should be performed. * Opcode holds the instruction and the addressing mode. * The addressing mode is how the operand should be interpreted.
73
What are Virtual Machines
* A software implementation of a virtual computer * Intermediate code is halfway between machine code and object code. * It is independent of process architecture allowing it to run across different systems. * It takes longer to execute * Virtual machines can be used to help protect from malware, test software, or run software with different versions or OS requirements.
74
What is Applications software
Used by an end user to perform a specific task. e.g. word processor or web browser
75
Name 3 types of Software
- Applications - Systems - Utility
76
What is systems software
Manages computer resources to maintain performance e.g. operating system or device driver
77
What is Utility Software
Has a specific function to maintain OS performance e.g. backup or compression software
78
What is Assembly Language
* One level up from machine code. * Low level language. * Uses abbreviations for machine code called mnemonics. * Processor specific. * One line in assembly language equals one line in machine code.
79
What do the Mnemonics mean: - ADD - SUB - STA
- ADD the value at the memory address to the value in the accumulator - SUB-tract the value at the memory address from the value in the accumulator - STores the value in the accumulator at the memory address
80
What do the mnemonics mean: - LDA - INP - OUT
- Load the value at the memory address into the accumulator - Allows the user to INPut a value to be held in the accumulator - Prints the value in the accumulator
81
What do the Mnemonics mean: - HLT - DAT - BRZ
- Halt, stops the program at that line - DATa, Creates a flag with a label at which data is stored - Branch if Zero, branches to an address if the value in the accumulator is zero. A conditional branch
82
What do the mnemonics mean: - BRP - BRA
- Branch if Positive, branches to a given address if the value in the accumulator is positive. A conditional address. - Branch Always. Branches to a given address no matter the value in the accumulator. An unconditional branch.
83
What is Extreme Programming
*An agile model. *Development team includes developers and user representatives. * The system requirements are based on “user stories”. *Produces highly usable software and high quality code. *Programmers work no longer than 40 hours per week. *Hard to produce high quality documentation.
84
What is Rapid Application Development
*An iterative methodology. *Uses partially functioning prototypes. *Users trial a prototype. * Focus groups gather user requirements. * This informs the next prototype. * This cycle repeats. *Used where user requirements are unclear. * Code may be inefficient.
85
What is Spiral Programming
*Used for high risk projects. *Has four stages. *Analyse requirements. * Locate and mitigate risks. *Develop, test and implement. * Evaluate to inform the next iteration. * The project may be terminated if it is deemed too risky. *Specialist risk assessors are needed.
86
What are Agile Methodologies
*A collection of mythologies. *Aimed to improve flexibility. *Adapt quickly to changing user requirements. *Sections of the program are developed in parallel. *Different stages of development can be carried out simultaneously. *A prototype is provided early and improved in an iterative manner. * Low focus on documentation. *High focus on user satisfaction.
87
What is Waterfall
* The stages are completed in order. * The clear structure makes this model easy to follow. * Changes mean that all stages must be revisited. *User involvement is low.
88
What is Procedural Programming
* Simple to implement. * Applicable to many problems. * Is not suited to every problem. * Uses traditional data types and structures.
89
What is Structured Programming
* A subsection of procedural programming * The flow is given four structures: sequence, selection, iteration and recursion.
90
What is Object Oriented Programming, Adv/Disadvantages
Advantages * Reusable * Code is more reliable * Code is easy to maintain and update * Classes can be reused, saving time and effort Disadvantages * Requires an alternative style of thinking * Not suited to every problem * Not best suited for small problems
91
What is a Class
A template for an object. Defines the behaviour and state of the object
92
What is a state
Defined by attributes giving the objects properties
93
What is Behaviour
Defined by the methods. Describes the action an object can perform
94
What is Instantiation
Using a class to create an object
95
What is an Object
An instance of a class. Classes can create multiple objects
96
What's a setter
A method which sets the value of an attribute
97
What is a Getter
A method which retrieves the value of an attribute
98
What is a constructor method
Allows a new object to be created from a class. Every class must have one.
99
What is inheritance
Process where a subclass will inherit methods and attributes of a superclass
100
What is Polymorphism
Allows objects to behave differently depending on their class
101
What is Overloading
Avoiding a method by passing different parameters to a method
102
What is Overriding
Redefining a method to allow it to produce a different output or function differently
103
What are 2 programming paradigms
Imperative (procedural and OOP) Declarative (Functional and Logic)
104
What's Declarative
States the desired result with the language deciding how to achieve it. Users are unaware how the result is obtained.
105
What's Imperative
Code specifies clearly the actions to be performed
106
What's Functional Programming
Based around functions Function calls can be combined Linked to mathematics
107
What's Logic Programming
Rules and facts of the problem are defined Queries are used to find answers to these problems
108
What are Algorithms
* A set of instructions used to solve a set problem. * Inputs must be clearly defined. * Must always produce a valid output. * Must be able to handle invalid inputs. * Must always reach a stopping condition. * Must be well-documented for reference. * Must be well-commented.
109
Name 4 types of testing
Black Box White Box Beta Testing Alpha Testing
110
What is Black Box Testing
Software is tested without the testers being aware of the internal structure of the software and can be carried out both within the company and by end-users. The test plan traces through inputs and outputs within the software. This is also known as functional testing
111
What is White Box Testing
Testing carried out by software development teams in which the test plan is based on the internal structure of the program. All of the possible routes through the program are tested. This is also called structural testing.
112
What is Beta Testing
Beta testing is carried out by end-users after alpha testing has been completed. Feedback from users is used to inform the next stage of development.
113
What is Alpha Testing
Alpha testing is carried out in-house by the software development teams within the company. Bugs are pinpointed and fixed.
114
What do Programmers use in the Feasibility Study
TELOS
115
What does TELOS Stand for
technical Economical Legal Operational Scheduling
116
Name 5 Types of OS
- Distributed - Embedded - Real Time - Multi User - Multi Tasking