4.6 Computer systems Flashcards

You may prefer our related Brainscape-certified 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 is the operating system?

A

A collection of programs that control the operation of computer hardware and provide an interface between the user and the computer

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

What are utility programs? (2*)

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
5
Q

2 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
6
Q

4 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
7
Q

3 examples of utility programs

A

antivirus software, defragmentation, compression

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

What are libraries? (2*)

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
9
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
10
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
11
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
12
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
13
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
14
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
15
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
16
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
17
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
18
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
19
Q

What is an API (in the context of the operating system)?

A
  • An application programming interface
  • APIs are layers of software that allow the application programmers use the functions the OS provides
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
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
21
Q

4 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
22
Q

4 ways 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
23
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
24
Q

How does OS manage memory?

A

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

25
Q

How does OS manage processors?

A

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

26
Q

4 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
27
Q

Why are low-level languages non-portable?

A

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

28
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
29
Q

3 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)
30
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
31
Q

What is assembly code? (2*)

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.
32
Q

3 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
33
Q

What is an imperative language? (2*)

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
34
Q

4 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
35
Q

4 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
36
Q

4 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
37
Q

4 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
38
Q

How are logic gates used in a half-adder?

A

XOR for S(um)
AND for C(arry)

39
Q

What are S, C_in and C_out in a full adder?

A
  • S is the sum
  • C_in is the carry from the previous calculation
  • C_out is the carry that is going to be passed to the next calculation
40
Q

Inputs for an edge-triggered D-type Flip-flop

A

D and a clock signal

41
Q

Outputs for Edge-triggered D-type Flip-flop

A

Q and not Q

42
Q

What is the purpose of the clock in an Edge-triggered D-type Flip-flop? (2*)

A
  • To synchronise the change of state of the circuit
  • The clock oscillates between low and high signals at regular time intervals
43
Q

How does Q change in an Edge-triggered D-type Flip-flop?

A
  • On the rising edge of the clock signal, Q and not Q are updated to hold D and not D respectively
  • Output Q only takes on a new value if the value at D has changed at the point of a clock pulse
44
Q

How can an Edge-triggered D-type Flip-flop be used?

A

As a memory unit

45
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
46
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
47
Q

3 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
48
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
49
Q

Why are translators necessary? (2*)

A
  • High-level instructions cannot be executed directly
  • Processors can only execute machine code instructions
50
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
51
Q

Give an example of an intermediate language and how it’s used

A
  • Bytecode
  • Compilers convert high-level code into bytecode, and then use a virtual machine to execute the bytecode on different processors
52
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
53
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
54
Q

What is the name of the sequential circuit with a Data and Clock input that can be used as a memory unit?

A

Edge-triggered D-type flip-flop

55
Q

Simplify A . (A+B)

A

A
(can be a useful shortcut)