4.6 - Fundamentals of computer systems Flashcards
What is hardware vs software?
Hardware is the physical components of a computer system, while software is the name given to program code - sequences of instructions which are executed to perform a task.
What is application software?
Programs that complete a specific task for the user, such as word processors and web browsers.
What is system software?
It operates, controls and maintains the computer and its components. It includes the operating system, as well as utility programs , library programs and translators.
What is the operating system?
Software that provides a virtual machine to the user, which allows the user to control the computer with ease.
What is the role of the operating system?
Hiding the complexity of the computer and its hardware.
Managing the computer resources which processes compete for: Processors, I/O devices, memory and storage.
What are utility programs?
Used for completing housekeeping tasks in a computer system such as data backup, data compression and defragmenting hard drives.
What are libraries?
Libraries are collections of prewritten instructions that can be repurposed for use in other programs.
What are translators?
Pieces of software that translate between different types of language.
What are low-level languages?
Directly manipulate the processor and are specific to the type of processor they are written for.
What is machine code? What are its advantages and disadvantages?
Low-level language that uses 1s and 0s only.
Adv:
- Powerful paradigm
- Programmers not constrainer
- No need to translate before executing
- Useful for embedded systems
Dis:
- Programs are very long
- Difficult for humans to understand
- Prone to errors
- Difficult to debug
What is assembly language? What are its advantages?
Low level language that uses mnemonics in place of binary instructions. Each instruction has a 1-to-1 correlation to a machine code instruction
- Easier for humans to understand
- Debugging easier
- 1-to-1 correlation to machine code so translation faster than high-level languages.
What are high-level languages? What are their advantages and disadvantages?
Languages that use English instructions and mathematical symbols.
Adv:
- Not platform specific
- Very easy for humans to understand
- Built-in functions save time
- Easier to debug
Dis:
- Must be translated into machine code before they can be executed
What is an assembler?
Translates assembly language into machine code. Quick and easy since 1-to-1 relationship. Platform specific so different assembler for each processor instruction set.
What is a compiler?
Translates high-level into machine code. Takes high-level as source code, checks for errors line by line, then translates entire program at once.
If source contains error won’t be translated.
Platform specific.
Compiled program can be run without the requirement for any other software to be present.
Source code difficult to extract.
What is an interpreter?
Translates high level into machine code line by line. Have procedures that can be used to translate each kind of program instruction.
Program with errors can be partially translated since errors checked at each line.
Both source code and interpreter must be present, resulting in poor protection of source code.