Fundamentals of Computer Systems Flashcards

1
Q

What is Hardware?

A

The term given to the physical components of the computer system. If you can touch it; it’s hardware.

Includes the internal (HDD, CPU etc) and external components (Printers, Speakers etc).

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

What is Software?

A

The name given to program code; applications.

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

Explain the difference between Hardware and Software

A

Software are the programs which execute on the hardware; hardware are the physical components which allow the software to execute.

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

What is Application Software?

A

The name given to programs which complete a specific task for the user.

For example:

  • Word Processors
  • Web Browsers
  • Spreadsheet Software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is System Software?

A

Software used in the management of a computer system; layers of software that abstract the user from how the computer works.

For example:

  • Operating Systems
  • Utility Programs
  • Libraries
  • Translators
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is Utility Software?

A

Software that performs a non-core specific management function for a computer.

For example:

  • Disk Defragmentation Software
  • Back-Up Software
  • Antivirus Software
  • Compression Software
  • File Management Software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is a Library?

A

Libraries are pre-complied, pre-tested sets of code used by programmers when coding.

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

What is a Translator?

A

A translator is a program which converts source code into machine code.

There are three types of translators: interpreters, compilers & assemblers.

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

What are the low-level languages?

A

Machine code and assembly language.

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

What are the disadvantages of low-level languages?

A

They’re specific to the processor that they’re written for.

They’re harder to program with.

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

What is Machine Code?

A

Binary instructions that a computer can process.

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

What are the advantages of using Machine Code?

A

It directly manipulates a computer’s processor, meaning that the possibilities are limitless.

No need to translate it beforehand, this makes it useful for efficient/fast programs.

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

What are the disadvantages of using Machine Code?

A

Difficult to remember/understand long strings of binary digits.

It’s processor specific.

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

What is Assembly Language?

A

An alternative to machine language.

Instead of using binary numbers for instructions, it uses short keywords known as mnemonics.

It has a 1-to-1 translation correlation; meaning one line of assembly is equivalent to one line of binary.

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

What translators are used for high-level languages?

A

A Compiler or an Interpreter

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

Machine Code [Portability]

A

Not portable, programs are processor specific.

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

Machine Code [Ease of use]

A

Code is difficult for humans to understand.

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

Machine Code [Ease of debugging]

A

Errors are very difficult to spot and correct.

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

Machine Code [Ease of execution]

A

Machine code is directly executed by processors.

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

Assembly Language [Portability]

A

Not portable. Programs are processor specific.

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

Assembly Language [Ease of use]

A

Mnemonics help to make code slightly easier for humans to understand.

22
Q

Assembly Language [Ease of debugging]

A

Debugging is easier than with machine code but still far more difficult than with high-level languages.

23
Q

Assembly Language [Ease of execution]

A

An assembler must be used before a program is executed, but each instruction has a 1-to-1 correlation to a machine code instruction so translation is quick.

24
Q

High-Level Languages [Portability]

A

Portable. Programs are not specific to certain processors.

25
Q

High-Level Languages [Ease of use]

A

Code uses English, makes it easy for humans to understand.

26
Q

High-Level Languages [Ease of debugging]

A

Named variables, indentation and commenting make debugging easy.

27
Q

High-Level Languages [Ease of execution]

A

A compiler or interpreter must be used to translate source code into object code before it can be executed. This can be time consuming.

28
Q

What is a Compiler?

A

A compiler can be used to translate programs written in high-level languages into machine code.

Compilers take a high-level program as their source code, check it for any errors and then translate the entire program at once. If the source code contains an error, it will not be translated.

Once translated, a compiled program can be run without the requirement for any other software to be present.

29
Q

What is an Interpreter?

A

An interpreter translates high-level languages into machine code line-by-line.

Rather than checking for errors before translation begins (as a compiler does), interpreters check for errors as they go. This means that a program with errors in can be partially translated by an interpreter until the error is reached.

When a program is translated by an interpreter, both the program source code and the interpreter itself must be present. This results in poor protection of the source code.

30
Q

What is an Assembler?

A

An assembler translates assembly language into machine code. Because each assembly language instruction has a 1-to-1 relationship to a machine code instruction, translation between the two languages is quick and straightforward.

Assemblers are platform specific, meaning that a different assembler must exist for each different type of processor instruction set.

31
Q

How does compiling into intermediate language work?

A

Some compilers first convert source code into an intermediate language, like bytecode, which can run on any platform.

This process involves two steps:

translating the high-level code into bytecode

then using a virtual machine to execute the bytecode on different processors.

Each processor has its own virtual machine. This method allows the interpreter to translate the source code once and run it on various processors.

32
Q

What is Source Code?

A

Source code is the initial input to a translator, like assembly language code for an assembler or high-level language code for compilers and interpreters.

33
Q

What is Object Code?

A

The translator’s output, known as object code, is created from this source code.

34
Q

What does a NOT Gate look like?

A
  • 1 input, 1 output
  • Triangle with circle at end
35
Q

What does and AND gate look like?

A
  • Two inputs, 1 output
  • D shape
36
Q

What does an OR gate look like?

A
  • 2 inputs, 1 output
  • curvy D shape “rocket ship”
37
Q

What does an XOR gate look like?

A

Or gate with curved line before shape

38
Q

What does NAND gate look like?

A

AND gate with circle after

39
Q

What does a NOR gate look like?

A

OR gate with circle after

40
Q

How does an XOR gate work?

A

If same -> 0

If different -> 1

41
Q

What is an Adder?

A

A logic circuit that can be used to add binary values together.

42
Q

What is a half-adder?

A

A logic circuit which adds two binary digits.

43
Q

How do we form a half-adder?

A

An AND gate and an XOR gate joined to the same two inputs.

44
Q

What is a full adder?

A

A full adder has three inputs and two outputs.

The inputs are two bits and a carry bit; the outputs are the answer to the binary addition and a carry out bit.

It looks like two half-adders joined together with an OR gate.

45
Q

What is an edge-triggered D-type flip-flop?

A

A circuit which has two inputs: “D” and the Clock pulse.

It has an Output “Q”.

When the clock is at a rising edge, if D≠Q, Q changes to D value.

46
Q

Why do we use D-Type Flip Flops?

A

It acts as a memory unit, storing a single bit.

47
Q

How do you do DeMorgan’s Law?

A

“Break the line, flip the sign.”

“Flip the sign, fix the line.”

48
Q

What are the Boolean Algebra AND Laws?

A

A.A̅ = 0

A.A = A

0.A = 0

1.A = A

49
Q

What are the Boolean Algebra OR Laws?

A

1+A = 1

0+A = A

A+A = A

A+A̅ = 1

50
Q

In Boolean Algebra, what does (A+A.B) simplify to?

A

A

51
Q

In Boolean Algebra, what does A.(A+B) simplify to?

A

A

52
Q

Key Functions of an Operating System

A

Hides complexity of the hardware from the user.

To allocate memory to processes.

Decides which processes to carry out when.

Manages communication between processes and i/o devices.

Manages use of battery.

Handle interrupts

Allocate space on storage device

Installation of new software