Systems Software Flashcards

1
Q

Open source software (governed by open source initiative)

A

Software is LICENSED for use but there’s no charge for the license
Software should be distributed with the source code so anyone can modify
Any software created from open source must also be open. Should be distributed/sold in a way that others can read and edit it
Developers can sell software created

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

How is open source different from freeware

A

Restrictions on use and no access to source code

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

Closed software (proprietary)

A

Sold in the form of a license to use it.
Restrictions on how software can be used e.g. Only allows one concurrent user or permit 50 users on one site
Company or person who wrote it holds copyright. No access to source code or modify and sell it on as infringes CDPA

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

How to select application

A
Provide necessary functionality?
Run on available hardware?
Available off the shelf or need to be specially written?
Cost?
Is it well tried used and tested?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Assembly code

A

Low level language thats ARCHITECTURE dependent and usually one instruction is equivalent to one machine code instruction . They’re 2-4 character mnemonics representing all machine code instructions and representing operation codes and addresses. (opcodes and operands)

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

Machine code and assembly code in different machines

A

Completely dependent on hardware- different PROCESSORS have different machine code instruction set and different architectures have different assembly codes

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

Assembler

A

Translates assembly code (aka source code) to corresponding machine code (object code). Each line is converted to corresponding 0 and 1s

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

Compiler

A

Different compilers for hardware specific object code.
Translates high level language to machine code. The source code is INPUTTED AS DATA and compiler scans through it several times, performing different checks and building up tables of information needed to build final object code as a whole.
This object code can then be SAVED and run whenever without the compiler

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

Interpreters

A

Translates high level language to machine code. Written and saved program, interpreter looks at each individual line and analyses, translates and executes it if no syntax errors

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

Bytecode

A

An intermediate representation, simplified code, combining compiling and interpreting- executed by a bytecode interpreter
It can be compiled into bytecode once and for all e.g. Java or each time a change in the source code is detected e.g. Python

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

What’s so good about bytecode

A

Achieve platform independence: any computer which can run java programs will have a java VM ( a piece of software) which a) understands bytecode and converts it to machine code for a particular computer b)is a software masking inherent differences between computer architectures and OS
Acts a an extra security layer between computer and program: java bytecode interpreter is executed instead of program, guarding against malicious programs
Secure: can distribute whilst protecting intellectual property
Error free when interpreted
Original code can be written in different languages by different programmers

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

Java interpreter for python

A

Compile python to java bytecode via jython compiler and using Java interpreter to interpret and execute

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

When use compiler

A

When program to be run regularly with only occasional changes.
When object code produced is going to be distributed and sold outside software company bc software code not present so can’t be amended or copied

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

Advantages of compiler vs interpreter

A

Errors presented all in one go at start
Can save object code on disk so can run whenever with no need to recompile (unless one error found then recompile all)
Object code can be distributed and executed without compiler present
More secure and protects intellectual property as can’t be read without great deal of reverse engineering
Executes faster than interpreted code

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

Advantages interpreter vs compiler

A

Platform independence: source code can be run on any machine with appropriate interpreter available
Useful for program development where no lengthy recompilation each time error discovered
More secure byte code rather than source code

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

Interpreter disadv

Compiler disadv

A

Much slower than compiled because each statement translated to machine code each time encountered
errors not presented at start altogether

compiler- diff versions for diff hardware
slow recompilation if error found

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

e.g. C++ where compiled

A

Can save compiled code and run whenever
Protected intellectual property- don’t need to give away source code just object code

Need different versions for different hardware
(lengthy recompilation if one error during development)

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

e.g. Java where interpreted

A

Can be run one any hardware w VM, platform independence
Security: gives intermediate code rather than source code bc java
(no lengthy recompilation during development)

Longer time to interpret line by line

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

E.g. Javascript interpreted using browser

A

Any access to internet can interpret

Takes longer to interpret: pure interpreting
Not really closed because source code available

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

systems software

A

software needed to run computer’s HARDWARE and APPLICATION PROGRAMS and to be able to perform TASKS as requested by the user e.g. OS, utility programs, libraries and programming language translators

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

OS function e.g. UI

A

enables users to perform tasks e.g. running application software, changing settings and downloading new software

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

utility programs

A

system software designed to optimise the performance of a computer by e.g. compressing/decompressing, firewall, backing up files and restoring backup-ed files

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

UP: backup

A

several free for COMMERCIAL or personal use. specify what (source) to backup, where (destination) to backup, when (schedule auto/manual), how (zip or mirror backup). done INCREMENTALLY, at regular intervals

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

UP: compression

A

can be purchased from independent supplier e.g. WinZip, quicker transmission speeds and to reduce space in hard disk or for email by compressing and zipping files then sharing and DECOMPRESS on other side

25
Q

UP: virus checker

A

checks hard drive (and perhaps incoming emails and downloads depending on level of protection) for viruses, and removes them e.g. Windows Defender, also stops files being sent INFECTING other systems

26
Q

UP: auto updating

A

auto checks to see if installed applications are up to date. checks internet, if newer version then downloads and installs. important for firewall and antivirus as new viruses and threats constantly being devised and discovered. also for bug fixes and improvements for licensed software

27
Q

UP: disk defragmenter

A

program that reorganises the magnetic hard disk so that files split into blocks stored all over the disk will be RECOMBINED in a single series of sequential blocks so QUICKER to read file. e.g. Optimise drives- weekly auto schedule in latest Windows version

28
Q

Applications software: general purpose

A

used for many different purposes e.g. graphics package (ads, animations, vector or bitmapped images), word processor, spreadsheet, browser

29
Q

Applications software: special purpose software

A

performs a single specific task or set of tasks e.g. payroll and accounts, hotel booking systems, finger scanning

30
Q

off the shelf adv and disadv

A

cheap because cost is shared among all those buying the package
wide user base support
lots of choice
ready to install immediately
well documented, tested and error free
may have some unnecessary features and lack some desired features, not meeting all clients needs
no access to original developers

31
Q

bespoke adv and disadv

A

more costly and requires expertise to analyse document requirements
takes a long time to develop
may contain errors that don’t surface immediately
features customised to user requirements and other features added as needs arise

32
Q

proprietary software adv

A

support available from company, regular updates, technical support lines, training courses, large user base vs open source: changing over time as developers modify and distribute new versions, just enthusiastic developers, no regular updates or helpline

33
Q

application software

A

**perform a specific set of tasks

34
Q

advantages of low level language e.g. assembly code and uses

A

can manipulate individual bits, takes up less memory, quicker to execute. e.g. embedded- where little memory used e.g. smart watch

35
Q

advantages of high level language e.g. python and uses

A

quicker and easier to write, easier to debug and maintain e.g. application software e.g. enrolment, accounts, stock control
fewer lines of code than machine code
can include libraries
error diagnostics
can be translated/compiled into machine code of different architectures

36
Q

original coding

A

machine code: done in binary codes- 1 and 0s

37
Q

altering the flow of an assembly language program

A

using conditional branches: BRZ and BRP: causing a branch to a GIVEN LABEL in the program depending on the CONTENTS of the accumulator
using unconditional branches: cause a branch whatever the value in the accumulator

38
Q

stages of compilation

A

lexical analysis, syntax analysis, code generation and optimisation

39
Q

stages of lexical analysis

A

purpose: makes it easier to do syntax analysis and compile into machine code as makes source code consistent and standardised.
1. superfluous spaces removed
2. comments removed (identified by //, #)
3. simple error checking eg illegal identifier or assigning illegal value to constant (of wrong data type/causing overflow or underflow) NOT DETECT MISSPELT KEY WORDS OR UNDECLARED VARIABLES = syntax analyser
4. all keywords, constants and identifiers used in source code replaced by tokens/unique symbols eg numbers converted to run time representation and identifier replaced by a pointer to an address in the symbol table. Keywords eg input/print will be replaced by a single item code

40
Q

symbol table

A

contains an entry for every keyword eg ‘input’ ‘print’ and identifier. entries in table show: above and kind of item (variable/array/procedure/keyword), type of item (integer/real/char), run-time address of item/value if constant, pointer to accessing info (eg bounds of array or parameter info for procedures)

41
Q

lexical analyser and symbol table

A

lexical analyser puts identifier and run time address in symbol table so it can replace them in the source code by tokens

42
Q

syntax analyser and symbol table

A

fills in kind of item and type of item

43
Q

what has a great impact of overall speed of compiler

A

the lexical analyser looking up the symbol- as a great proportion of time is spent doing this

44
Q

great factor to ensure entries can be found as quickly as possible in the symbol table

A

the symbol table is organised through a hash table normally: keywords/identifiers ‘hashed’ to produce an array subscript

45
Q

hash table problem and overcoming this

A

synonyms (collisions) are inevitable so store synonym in next available free space in table

46
Q

what is syntax analysis

A

the process of determining whether the sequence of input characters, symbols, items or tokens form a valid sentence in the language. To do this, language has to be expressed through set of rules eg using syntax diagrms/backus-naur form

47
Q

process of syntax analysis:

A
  1. parsing- systematically applying set of rules to each statement to determine if valid
  2. stacks used to check eg brackets paired correctly
  3. priorities of operations determined
  4. expressions converted into a form eg reverse polish notation, from which machine code can be more easily generated
  5. semantics of program checked: semantics define meaning rather than grammar of language if statements don’t obey rules for writing a correct program
  6. error messages outputted
48
Q

eg of symantic errors

A

use of undeclared variable
trying to assign a real value to an integer variable
using real number instead of integer for counter in for…next loop

49
Q

code generation and optimisation

A

final phase when machine code is generated: most high level language statements translated into a number of machine code statements

50
Q

code optimisation techniques attempt to:

A

reduce execution time of the object program by spotting redundant instructions and then producing object code achieving the same net effect as specified by source program but by diff means

51
Q

disadvantages code optimisation

A

increase compilation time

produce unexpected results

52
Q

off the shelf software

A

software that already exists and can be purchased

53
Q

bespoke software

A

software specially written by a team of programmers for a particular organisation satisfying their particular requirements

54
Q

linking

A

puts the appropriate machine addresses in the external call and return instructions so all the modules are linked together correctly

55
Q

dynamic linking

A

all separately compiled subroutines need to be linked into the object code. Includes built in routines or routines written by the programmer and stored on disk in a library of subroutines

56
Q

static linking

A

all the code required is included directly into the finished compiled code = large

57
Q

loader

A

loads the programs into memory for use. a relocating loader can load the object code anywhere in memory providing the user has used no absolute addresses and the object code is in a relocatable format

58
Q

libraries

A

ready-compiled programs which can be run when needed, and are grouped together in software libraries. e.g. user’s own library, dll, programming language