SLR 2 Flashcards

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

What features do operating systems provide

A
  • Memory management (​paging, segmentation, virtual memory​)
  • Resource management (​scheduling​)
  • File management (​moving, editing, deleting files and folders​)
  • Input/ Output management (​device drivers​)
  • Interrupt management
  • Utility software (​disk defragmenter, backup, formatting etc.​)
  • Security (​firewall​)
  • User interface
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is segmentation

A

Segmentation is the ​splitting up of memory into logical sized divisions

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

Interrupts

A

Interrupts are​ signals generated by software or hardware to indicate to the processor that a process needs attention​

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

Different types of operating systems (D)

A

Distributed - This is a type of operating system which is run across ​multiple devices​, allowing the load to be spread across multiple computer processors​ when a task is run.

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

Different types of operating systems (E)

A

Embedded - Built to perform a​ ​small range of specific tasks​, this operating system is catered towards a specific device​. They are limited in their functionality and hard to update although they consume significantly less power​ than other types of OS.

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

What does a translator do?

A

A translator is a program that ​converts high-level source code into low-level object code​, which is then ready to be executed by a computer

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

What is a compiler?

A

Compilers translate high-level code into machine code ​all at once​, after carrying out a number of checks and reporting back any errors

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

What is a interpreter?

A

Interpreters ​translate and execute code line-by-line​. They stop and produce an error if a line contains an error

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

Assembler

A

Assemblers translate assembly code into machine code. Each line of assembly code is equivalent to almost one line of machine code​ so code is translated on almost a one-to-one basis.

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

Assembly code

A

Assembly code is considered to be a low-level language as it is the ​‘next level up’ from machine code​. Assembly code is ​platform specific​

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

Stages of compilation

A

Lexical Analysis
Syntax Analysis
Code generation
Optimisation

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

Lexical Analysis

A

​whitespace and comments are removed​ from the code.

The remaining code is analysed for keywords and names of variables and constants. These are ​replaced with tokens​ and information about the token associated with each keyword or identifier is stored in a ​symbol table.

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

Syntax Analysis

A

​tokens are analysed against the grammar
and rules of the programming language​. Any tokens that break the rules of the programming language are ​flagged up as syntax errors​ and added to a list of errors.

e.g. incomplete brackets or variables not defined

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

Semantic Analysis (Within Syntax Analysis)

A

where logic mistakes within the program are detected. e.g. multiple declaration​, ​undeclared identifiers

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

Code Generation

A

The abstract syntax tree produced in the syntax analysis stage is used to produce machine code.

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

Optimisation

A

This stage of compilation searches through the code for areas it could be made more
efficient. The aim of optimisation is to​ make the code faster to execute​ although this stage can significantly ​add to the overall time taken for compilation​.

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

Linkers

A

This is a piece of software that is responsible for​ linking external modules and libraries included within the code

18
Q

What are the 2 types of linkers and what are their functions?

A

Static - Modules and libraries are ​added directly​ into the main file. This ​increases the size of the file​. Any updates to modules and libraries externally will not affect the program.

Dynamic - Addresses of modules and libraries​ are included in the file where they are referenced. When the program is run, the loader retrieves the program at the specified address so it can be executed

19
Q

What are loaders?

A

Loaders are programs provided by the operating system. When a file is executed, the l​oader retrieves the library or subroutine from the given memory location​.

20
Q

Libraries

A

Libraries are ​pre-compiled programs ​which can be incorporated within other programs
using either static or dynamic linking

21
Q

Alpha testing

A

Alpha testing is ​carried out​ ​in-house​ by the software development teams within the company. Bugs are pinpointed and fixed.

22
Q

Beta testing

A

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.

23
Q

Black box testing

A

Simply checks wherever the input produces the expected output

24
Q

White box testing

A

Involves testing the algorithms in the code and making sure all parts of those algorithms functions as intended, unlike black box testing, white box testing also checks the overall efficiency of the code

25
Q

Waterfall cycle

A

Analysis
Design
Implementation
Evaluation
Maintenance

26
Q

Advantages & Disadvantages of Waterfall

A
  • Straightforward to manage
  • Clearly documented
  • Lack of flexibility
  • No risk analysis
  • Limited user
    involvement
27
Q

Advantages & Disadvantages of Agile

A
  • Produces high quality code
  • Flexible to changing
    requirements
  • Regular user input
  • Poor documentation
  • Requires consistent interaction
    between user and programmer
28
Q

Advantages & Disadvantages of Extreme programming

A
  • Produces high quality code
  • Constant user involvement means high usability
  • High cost of two people working on one project
  • Teamwork is essential
  • End-user may not be able to be present
29
Q

Advantages & Disadvantages of Spiral

A
  • Thorough risk-analysis and mitigation
  • Caters to changing user needs
  • Produces prototypes throughout
  • Expensive to hire risk assessors
  • Lack of focus on code efficiency
  • High costs due to constant
    prototyping
30
Q

Advantages & Disadvantages of Rapid Application Development (RAD)

A
  • Caters to changing user requirements
  • Highly usable finished product
  • Focus on core features, reducing development time
  • Poorer quality documentation
  • Fast pace may
    reduce code quality
31
Q

Types of programming Paradigms

A

Imperative & declarative

32
Q

What does Imperative programming do?

A

Imperative programming paradigms use code that ​clearly specifies the actions to be performed​.

33
Q

What does procedural programming do?

A

uses a ​sequence of instructions​ which may be contained within procedures. These instructions are carried out in a ​step-by-step manner​ e.g. Pascal, Python

34
Q

What does object orientated programming do?

A

OOP is built on entities called ​objects formed from classes​ which have certain ​attributes and methods​. OOP focuses on making programs that are ​reusable​ and easy to update and maintain​.

35
Q

Déclarative programming

A

Declarative programming focuses on ​stating the desired result​ rather than the exact series of instructions that need to be performed to get to the result

36
Q

Functional programming

A

Functional programming uses the concept of ​reusing a set of functions​, which form the core of the program.

37
Q

Sequence

A

Code is executed ​line-by-line​, from top to bottom.

38
Q

Selection

A

A certain block of code is run ​if a specific condition is met​, using IF statements.

39
Q

Iteration

A

A block of code is executed a ​certain number of times​ or​ while a condition is met​. Iteration uses FOR, WHILE or REPEAT UNTIL loops.

40
Q

Recursion

A

Functions are ​expressed in terms of themselves​. Functions are executed, calling themselves, until a certain condition known as a​ base case ​(which does not call the function) is met.

41
Q

What is paging?

A

Paging is when​ memory is split up into equal-sized sections known as pages​, with programs being made up of a certain number of equally-sized pages