Set 5 Flashcards

1
Q

What is application software? Give 3 examples

A

Application software is designed to perform tasks a user wants to complete (user-oriented tasks), e.g. word processors, spreadsheet software, movie editing etc.

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

What is systems software?

A

Systems software is software used in the management of a computer system.

This comprises layers of software that abstract the user from how the computer works.

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

What are utility programs?

A

Utility programs are systems software that is used to perform a non-core/ancillary/specific management function for a computer.

They help to manage or maintain a computer system but are not critical to the system.

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

What are two ways utility programs can be installed

A

Utility programs can either be supplied with the operating system or installed at a later time.

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

Give four types of system software

A

Operating System
Utility Programs
Libraries
Translators

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

Give three examples of utility programs

A

antivirus software, defragmentation, compression

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

What are libraries?

A
  • Libraries are precompiled, pretested routines (sets of code) that other programs can link to and use
  • As long as the programmer includes a reference to the library in their code, they can access all the functions of the library
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How do libraries save developers time?

A
  • Common tasks can be written as libraries for repeated use
  • This saves time for developers as it saves them from having to rewrite the instructions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are translators?

A

Translators are systems software tools that are used to convert program code from one format into another, without adjusting the logical operation of the original program code

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

Name three types of translator

A

Compilers, Assemblers, Interpreters

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

What is the purpose of compilers?

A

To turn program source code into a target language version (eg machine code / bytecode) that can be executed by the computer

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

What is the purpose of assemblers?

A
  • To turn low-level assembly language code into executable machine code
  • They are very fast to run
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

How do interpreters work?

A

Interpreters run instructions from a high-level language by determining what actions should occur line-by-line and executing equivalent prewritten executable code.

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

Why is the operating system classified as systems software?

A

It is required for the functioning/maintenance of the system itself, and performs tasks that are machine oriented

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

2 main roles of OS

A
  1. To hide the complexities of the hardware from the user
  2. To manage the resources which processes compete for

Give a concrete example, e.g. “To allocate I/O devices to processes”

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

How does the OS hide the complexities of the hardware from the user?

A

By presenting the user with a virtual machine to interact with.
e.g.
- Graphical User Interfaces (GUIs)
- Command Line Interfaces (CLIs)
- Application Programing Interfaces (APIs)

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

What is a virtual machine?

A

A virtual machine is the apparent machine or interface that the OS presents to the user

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

What is a process?

A

A process is an instance of a program being executed

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

Give four resources processes compete for:

A
  • (Secondary) Storage
  • I/O Devices
  • Memory
  • Processor time
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Give four ways the OS manages storage:

A
  • Allocating space on storage devices to files
  • Organising files into directories
  • Determining where on the device to save a file
  • Manages which process/user can access (read/write/modify) different files and directories
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

How does OS manage I/O devices?

A
  • By allocating I/O devices to different processes
  • And managing communication between the processes and devices
22
Q

How does OS manage memory?

A

By allocating different parts of main memory for all the processes. (Locations may not be contiguous)

23
Q

How does OS manage processors?

A

By allocating processor time to each of the processes (aka processor scheduling)

24
Q

Give four characteristics of a low-level language:

A
  • They are defined by the processor they are designed to run on
  • Non portable - they are specific to the instruction set of the processor they are written for
  • They are machine-oriented and have no built-in functions
  • There is a one-to-one mapping between a low-level language instruction and its equivalent machine code language instruction
25
Q

Why are low-level languages non-portable?

A

They are specific to the instruction set of the processor they are written for

26
Q

What two things make up a low level instruction?

A
  • Opcode - an mnemonic which represents the machine operation that the processor should perform
  • Operand(s) - a value or set of values relevant to the opcode
27
Q

Give three things the operand of a low level instruction can be, and what addressing type it is

A
  • memory locations (direct memory addressing)
  • register values (direct register addressing)
  • actual decimal values (the operand is the datum) (immediate addressing)
28
Q

Why is hexadecimal used in some low level languages?

A
  • Binary machine code is difficult for humans to debug and fix problems in.
  • So hexadecimal is usually used instead, as it is easier to read and understand
29
Q

What is assembly code?

A
  • A low-level language that uses a set of mnemonics that represent binary machine code instructions
  • Assembly code is converted into machine code using an assembler.
30
Q

Give three characteristics of high-level languages

A
  • High-level languages are problem oriented
  • Portable - not specific to any type of processor
  • One instruction in a high-level language represents many instructions in a low level language
31
Q

What is an imperative language?

A
  • A high level language where a problem is solved by writing a sequence of instructions that state how it should be solved
  • It has structures for assignment/iteration/selection and uses English-like keywords for these
32
Q

Give four pros of high-level languages:

A
  1. Programs are machine independent / portable
  2. People find it easier to debug high-level language programs
  3. People find it easier to read/write/understand high-level language program code
  4. Saves time for programmers as they use fewer lines of program code
33
Q

Give four cons of high-level languages:

A
  1. Programs written in a high-level language may not make best use of specific features of a particular processor
  2. Programs written in a high-level language may not execute as quickly
  3. Programs written in a high-level language may use more memory
  4. Some programs are easier to write using a low-level language - e.g. some parts of a computer’s operating system
34
Q

Give four pros of low-level languages:

A
  1. Programs written in a high-level language may not make best use of specific features of a particular processor
  2. Programs written in a low-level language may execute quicker
  3. Programs written in a low-level language may use less memory
  4. Some programs are easier to write using a low-level language - e.g. some parts of a computer’s operating system
35
Q

Give four cons of low-level languages:

A
  1. Non-portable as they are specific to the instruction set of the processor they are written for
  2. People find it harder to debug low-level language programs
  3. People find it harder to read/write/understand low-level language program code
  4. Requires programmers to write more lines of program code
36
Q

What is a low-level language?

A
  • A language that is based upon the instruction set of a processor
  • They are defined by the processor they are designed to run on
37
Q

What is immediate addressing?

A
  • When the operand value is an actual decimal value that is part of the instruction
  • There is no need to go to any memory address in this case
38
Q

Give three advantages of compilers (over interpreters):

A
  • The source code cannot be accessed by users
  • Users do not need to have an interpreter to the run the program
  • The program will execute more quickly
39
Q

Why is code that will be executed in a web browser often interpreted rather than compiled?

A
  • It’s impossible to know what type of processor will be in the user’s computer
  • A compiled program will only execute on a processor of a specific instruction set, whereas interpreters can execute on a computer with any type of processor
40
Q

Why are translators necessary?

A
  • High-level instructions cannot be executed directly
  • Processors can only execute machine code instructions
41
Q

How do compilers and interpreters approach errors differently?

A
  • Compilers analyse the program as a whole, and will not translate any of the program if it encounters an error
  • Interpreters analyse the program on a line-by-line basis, and execute until the first error is encountered
42
Q

Give an example of an intermediate language and how its used

A
  • Bytecode
  • Compilers convert high-level code into bytecode, and then use a virtual machine to execute the bytecode on different processors
43
Q

What is the difference between source code and object code?

A
  • Source code is the input to a translator
  • Object code is the output of a translator
44
Q

Explain the relationship between hardware and software

A
  • Software is the programs that execute on the hardware
  • Hardware is the physical components that allow the software to execute
45
Q

What does computationally secure mean for a cipher?

A

A cipher is computationally secure if it cannot be cracked in ‘reasonable time’.

46
Q

What are the disadvantages of Caesar cipher?

A
  • Easy to crack because there are only 25 keys
    • → so very quick to crack with brute force
  • Frequency analysis reveals the likely shift
  • Word structure is preserved
  • Key length is such shorter than the message
  • So NOT computationally secure
47
Q

What is encryption?

A

The process of converting plaintext to ciphertext, so that it cannot be understood if intercepted

48
Q

What is special about a Vernam cipher key?

A
  • The key is randomly generated, or taken from a ‘one-time pad’.
  • and key length = plaintext length
49
Q

What operation does the Vernam cipher use for encryption and decryption?

A

XOR

50
Q

What are the five conditions for perfect security?

A
  • Key is chosen truly randomly
  • Key is only used once
  • Key is known only to the sender and receiver
  • Key must be destroyed after use
  • Key length at least message length
51
Q

What is symmetric encryption?

A

When the same key is used for both encryption and decryption