6 - Fundamentals of Computer Systems Flashcards

1
Q

Describe the roles of the four types of system software.

A

Describe the roles of the four types of system software.

Operating system - Provides a user interface between the user and the hardware, runs application programs and manages hardware resources.

Utility programs - Programs designed to help maintain the computer. Examples include virus scanner or file managers.

Library programs - Collections of resources used to develop software. They include pre-written code and subroutines.

Translators - Converts source code into machine code. An assembler converts assembly code into machine code, a compiler converts source code written in a high level language into machine code and an interpreter treats high level language source code as data and interprets that data as instructions to its own routine.

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

What are utility programs?

A

Software that is used to support the efficient running of a computer system. Utility programs can be part of the OS or installed separately. Typically, utility programs perform maintenance, analysis, configuration, and optimisation tasks.

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

State one purpose of library programs.

A
  • To allow sharing of run-time code across programs.
  • To save memory as routines are only loaded when needed.
  • To provide access to procedures/functions when writing a program.
  • To reduce the time taken to write a program.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

State one purpose of the operating system.

A
  • Provide an interface between the computer and the user.
  • To manage devices/files/memory.
  • To provide a virtual machine.
  • To provide a software platform on which other programs can run.
  • To hide the complexity of the hardware from the user.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the difference between application software and system software?

A

Application software is used to perform tasks that the user would have to do if they didn’t have a computer.
System software is a layer of software which enables users to operate the computer and is used in the management of a computer system.

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

Are Operating Systems classified as system software or application software?

A

System Software because it is required for the functioning of the system itself.

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

What types of resource management is an operating system responsible for?

A
  • Processors.
  • Input / Output Devices.
  • Main Memory.
  • Storage.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How does the OS manage processors?

A

The OS is responsible for scheduling processes for programs that are running and allocating them processor time.

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

How does the OS manage I/O devices?

A

The OS allocates I/O devices to different processes and manages the communication between these processes and devices.

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

How does the OS manage memory?

A

The OS keeps track of what portions of memory have been allocated; determines how much memory to allocate to each process and determines when a portion of memory should be available for a process.

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

How does the OS manage storage?

A

The OS will allocate space on a storage device to files, organise files into directories and determine where on the device to save a file. All of these features are part of a filesystem. The OS will also manage which processes / users can access different files and directories.

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

What is a low-level language?

A

A low-level language is a language that is very similar to the instruction set of the computer.

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

Most computer programs are initially written in an imperative high level language rather than assembly language.
Explain why this is the case.

A
  • High level languages are problem oriented.
  • High level languages are platform independent.
  • High level languages have English like keywords.
  • High level languages are less tedious to program as there is a one to many mapping of HLL statements to machine code commands.
  • High level languages are easier to write, understand and debug the code.
  • High level languages offer extra features such as data structures.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are the advantages of writing a program in assembly language over writing a program in machine code?

A
  • Easier to understand.
  • Takes less time to code.
  • Fewer mistakes made in coding.
  • Ability to add comments to code.
  • Use of symbolic name for operands.
  • Use of labels.
  • Easier to maintain/debug.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Why are there so many high level programming languages?

A
  • Languages used for a specific problem type.
  • Access to specific data types.
  • Providing different function libraries.
  • Languages developed for specific hardware.
  • Languages developed for visual applications.
  • Competition between different companies who develop languages.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Some high level languages are imperative. Explain the term imperative.

A

Imperative high level language programs define sequences of commands for the computer to perform. Imperative high level languages describe how to solve a problem.

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

Explain the advantages and disadvantages of programming using imperative high level languages compared with low level languages.

A

Advantages:
• Programs written in a high level language are machine independent.
• People find it easer to debug high level language programs.
• People find it easier to read, write and understand high level language program code.
• High level languages save time for programmers as they use fewer lines of program code.

Disadvantages:
• Programs written in a high level language may not make best use of specific features of a particular processor.
• Programs written in a high level language may not execute as quickly.
• Programs written in a high level language may use more memory.

18
Q

What features of high level programming languages make high level language programs easier to understand.

A
  • Use of meaningful identifier names.
  • Use of indentation to separate out statement blocks.
  • Use of comments to annotate the program code.
  • Use of procedure, functions and sub-routines.
  • Use of constants.
19
Q

What is the symbol for a NOT gate?

Construct the truth table for a NOT gate.

A

─▷∘─

A Q
0 1
1 0

20
Q

What is the symbol for an AND gate?

Construct the truth table for an AND gate.

A

═D─

A  B  Q
0  0  0
0   1  0
1   0  0
1    1   1
21
Q

What is the symbol for a NAND gate?

Construct the truth table for a NAND gate.

A

═D∘─

A  B  Q
0  0   1
0   1   1
1   0   1
1   1    0
22
Q

What is the symbol for an OR gate?

Construct the truth table for an OR gate.

A

https://www.google.com/url?sa=i&url=https%3A%2F%2Fcommons.wikimedia.org%2Fwiki%2FFile%3AOr-gate-en.svg&psig=AOvVaw1Y4Lw3IFkCvmyh_Z1pLRg8&ust=1650825187166000&source=images&cd=vfe&ved=0CAwQjRxqFwoTCODJuprpqvcCFQAAAAAdAAAAABAJ

A  B  Q
0  0  0
0   1   1
1   0   1
1    1   1
23
Q

What is the symbol for an XOR gate?

Construct the truth table for an XOR gate.

A

https://www.computerscience.gcse.guru/wp-content/uploads/2016/11/XOR-350x175.png

A  B  Q
0  0  0
0   1   1
1   0   1
1    1  0
24
Q

What is the symbol for a NOR gate?

Construct the truth table for a NOR gate.

A

https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/NOR_ANSI_Labelled.svg/1200px-NOR_ANSI_Labelled.svg.png

A  B  Q
0  0   1
0   1   0
1   0   0
1    1   0
25
Q

What is the Boolean expression for a NOT gate?

A

Q = A̅

26
Q

What is the Boolean expression for an AND gate?

A

Q = A . B

27
Q

What is the Boolean expression for an OR gate?

A

Q = A + B

28
Q

What is the Boolean expression for an XOR gate?

A

Q = A ⊕ B

29
Q

What is the Boolean expression for a NAND gate?

A

Q = A̅ ̅.̅ ̅B̅

30
Q

What is the Boolean expression for a NOR gate?

A

Q = A̅ ̅+̅ ̅B̅

31
Q

What are the three Boolean algebra laws?

A

• Commutative
A . B = B . A

     A + B = B + A
• Associative
     A . (B . C) = (A . B) . C
     A + (B + C) = (A + B) + C    
• Distributive
     A . (B + C) = A . B + A . C
     A + B . C = (A + B) . (A + C)
32
Q

What are the Boolean identities for OR?

A

0 + A = A
1 + A = 1
A + A = A
A + A̅ = 1

33
Q

What are the Boolean identities for AND?

A

0 . A = 0
1 . A = A

A . A = A
A . A̅ = 0

34
Q

How do you simplify Boolean expressions using the identities?

eg. A . B + A . B̅

A
  • Factorise or expand the brackets.
  • Use identities

A . B + A . B̅
A . (B + B̅)
A . 1
A

35
Q

What is De Morgan’s Law?

A

“Break the line, change the sign”

A̅ ̅.̅ ̅B̅ = (A̅ + B̅)
(̅A̅ ̅+̅ ̅B̅)̅ = A̅ . B̅

36
Q

How do you simply Boolean expressions using De Morgan’s Law?

eg. A̅ + A̅ ̅+̅ ̅B̅

A
  • Use De Morgan’s Law.
  • Factorise or expand the brackets.

• Use identities.

A̅ + A̅ ̅+̅ ̅B̅
A̅ + A̅ . B̅
A̅ . (1 + B̅)
A̅ . 1
A̅
37
Q

Explain the general purpose of a D-type flip-flop.

A

Used to store state of data input.

38
Q

What is a D-type flip-flop used for?

A

The state of input data is stored and the output is updated to reflect the current status of the input.

39
Q

What are the inputs of a D-type flip-flop?

A
  • Data

* Clock

40
Q

What is the role of an Operating System?

A
  • To hide the complexities of the hardware from the user so that the user is presented with a machine that is much easier to use.
  • To manage the hardware resources to give an orderly and controlled allocation of the processors, memories and I/O devices among the various processes competing for them, and manage data storage.
41
Q

What are the limitations of using assembly language to code a program?

A
  • Very difficult to understand
  • Very easy to make mistakes
  • Hard to find mistakes in the code
  • Time consuming to develop software in assembly language
  • Lack of portability
  • Lack of in-built functions