Computer Systems Flashcards

(44 cards)

1
Q

What is hardware?

A

Physical and electrical components of a computer

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

What is software?

A

Programs that run on the computer, made up of sequences and instructions.

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

What are the two main types of software?

A
  • Application software
  • System software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the different 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
5
Q

What is the role of the operating system?

A

Hide the complexity of the computer’s hardware through the use of a virtual machine.

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

What is a virtual machine?

A

A model that creates the illusion that each process has all of the machines processing power to itself.

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

What are the main functions of the operating system?

A
  • Memory Manager
  • Process Manager
  • Application Manager
  • File Manager
  • Device Manager
  • Security Manager
  • Networking Manager
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Describe memory management

A

Controls which areas of memory are allocated to running processes/applications

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

Describe process management

A

Controls the allocation of CPU cycles to multiple running applications. More demanding processes are provided more processing resources as well as those which the OS deems of a higher priority.

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

Describe File Management

A

Controls the storage of data on physical disks as files and manages their read/write/execute permissions.

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

Describe device management

A

Controls interactions with existing hardware devices and handles the installation of device drivers. This is required as each device is designed differently and prevents the programmer from having to know exactly how each one works.

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

Describe security management

A

Authenticates users of the computer and controls access to features and files based on user access levels

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

Describe network management

A

Provides TCP and UDP sockets for networked applications, handles WiFI connection and manages the computer’s IP address.

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

What are utility programs?

A

They allow users to perform system mainantance tasks such as encryption, scanning for viruses, defragmentation and backing up.

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

What are libraries?

A

Provide reusable code that software applications require in order to run. Their use can reduce the amount of programming required as they provide access to standard features.

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

What are translators?

A

Translate higher-level programming code into low-level machine code

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

What are the OR Boolean Algebra identities?

A
  • A + 0 = A
  • A + 1 = 1
  • A + A = A
  • A + Ā = 1
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What are the AND Boolean Algebra identities?

A
  • A . 0 = 0
  • A . 1 = A
  • A . A = A
  • A . Ā = 0
19
Q

What is the NOT Boolean Algebra identity?

20
Q

What is the XOR Boolean Algebra identity?

A

(A . B’) + (Ā . B) = A ⊕ B

21
Q

What is opcode?

A

The binary value associated with a particular instruction

22
Q

What is an operand?

A

The data used by the instruction / opcode

23
Q

What is an imperative language?

A

Provide instructions that are executed by the computer in a defined sequence in order to solve the problem

24
Q

What does machine code consist of?

A
  • Opcodes
  • Operands
25
What is the relationship between assembly and machine code?
One assembly instruction relates to one machine code instruction in a 1:1 mapping
26
What are the advantages of low-level programming languages?
- Direct control over the hardware - Results in smaller object code making it suitable for embedded systems with limited memory - Fast execution speed as the code is written specifically for the hardware and can take advantage of its capabilities
27
What are the disadvantages of low-level languages?
- Difficult to understand and easy to make mistakes - Difficult to trace and identify errors - Time consuming to develop software - No built-in functions - Not portable
28
What are the characteristics of low-level languages?
Instruction made up of opcodes and operands, expressed in binary or mnemonics
29
What are the characteristics of high-level languages?
- Human-oriented, English-like instructions and statements - One statement represents several low-level languages
30
What’s are the advantages of high-level languages?
- Can use meaningful identifiers, subroutines, selection, iteration, data structures - Easier to understand the logic and structure of the program; easier to debug - Maintain one source code that can be used across multiple architectures - Built in libraries and additional functionalities - Portable
31
What are the disadvantages of high-level languages?
- Lack of direct control over the hardware - Execution generally slower than low-level languages as translated machine code is general rather than tailored to the specific machine - Object code is larger
32
What is object code?
Program that contains the binary machine code for the computer’s instruction set
33
What are the three different types of translators?
- Assemblers - Compilers - Interpreters
34
What is an assembler?
Translates assembly source code into machine code.
35
What are compilers?
- Produce object code that can be executed in a specific machine architecture - All of the programs source code is translated in one go before the program is run
36
What are the advantages of compilers and compiled languages?
- Compiled code executes more quickly - No further software is required to run the executable program - Once compiled, source code is not required protecting the developer’s intellectual property - Compiled code is difficult to reverse engineer
37
What are the disadvantages of compilers and complied languages?
- Can only be executed on a machine with a particular instruction set for the object code - Compiling a program can take a long time
38
What are interpreters?
No object code is produced, instead programs are translated into machine code instructions line-by-line as the program is executed
39
What are the advantages of interpreters and interpreted languages?
- More portable as it will run on any host computer with the appropriate interpreter installed - Errors are easy to track down as the program will stop when one is encountered - Program runs immediately
40
What are the disadvantages of interpreters and interpreted languages?
- Executed more slowly as each line needs to be installed on the go - Host computer must have the appropriate interpreter installed - Source code must be made available in order to run the program
41
When would you use a compiler?
- produce an executable binary program file - needs to be run quickly or host has limited memory - protect developer’s intellectual property
42
When would you use an interpreter?
- prototyping and testing code - needs to be run on a wide range of processor architectures
43
What is bytecode?
An intermediate code executed by a virtual machine provided by a runtime environment that performs just-in-time compilation and execution of bytecode or interprets bytecode using pre-compiled subroutines.
44
Why is bytecode used?
- Portable: only if the virtual machine is available on the host computer - Executed faster than fully interpreted languages: not as fast as natively compiled code - Consists of opcodes and operands so no need to distribute source code - Applications need to be run on a different processor architecture