6. Fundamentals of Computer Systems Flashcards
What is Hardware?
Hardware is the physical components of the computer.
What is Software?
Software is the computer programs which run on the computer.
What is the difference between System Software and Application Software?
System Software is used to interact with and maintain the Hardware of the computer. Application Software is designed for a specific purpose, such as a word processor or web browser.
What is the purpose of the Operating System?
The Operating System provides a software interface for the user and Applications to work with the Hardware of the computer. The Operating System will:
- manage system resources, e.g. CPU (Process Scheduling), and Memory Management.
- manage users and security.
- provide an interface for interacting with the computer.
What is Utility Software? Give an example.
Utility Software is used to maintain and optimise the performance of the computer. An example would be Defragmentation Software which re-orders data on a Hard Drive to improve performance.
What is a Library?
A Library contains software which can be used by Applications. A Library is linked to a program when it is compiled.
What is a Translator? What kinds of Translators are there?
A Translator converts a computer programs into (usually) Machine Code. The three types of Translator are:
Compilers
Interpreters
Assemblers
What is Memory Management?
Memory Management is where the Operating System allocates space in RAM to a program whilst it is running. A program needs to store both its Instructions and Data in RAM whilst executing as a process. If there is not enough RAM to store all the currently executing processes then an idle process may be moved to Secondary Storage to make space. This process is called Virtual Memory and can slow the computer because it is swapping data between RAM and Secondary Storage which takes clock cycles.
What is Process Scheduling?
Process Scheduling is where the Operating System allocates time on the CPU for a process to execute instructions. A process usually does not run on the CPU until it is finished, instead it will execute a number of instructions and then be saved in an idle state until the CPU becomes available again. This allows a computer with a single core CPU to perform Multi-tasking by switching between running processes. Scheduling is organised such that all processes should get a fair amount of time on the CPU and are not starved of resources.
What is Backing Storage Management?
Backing Storage is the hardware on the computer which is used for persistent storage of data. This will be Secondary Storage devices such as Hard Drives which contains Files and Folders. The Operating System will manage this storage.
What is Peripheral Management?
A Peripheral is a device which is connected to the computer. The Operating System will have Device Drivers which are software which enable Applications to communicate with the Peripheral. The Operating System will also allow configuration of the Peripherals.
What is a Low Level Language?
A Low Level Language consists of instructions which correspond to the Instructions of the CPU Instruction Set for the computer on which it will be run.
What is Machine Code?
Machine Code is a Low Level Language. Machine Code is the native language of the CPU. A CPU will have an Instruction Set which contains all of the executable Instructions for the chipset. Machine Code will be stored in binary, and may not be compatible between computers which have different types of CPU.
What is Assembly Language?
Assembly Language is a Low Level Language. Assembly Language is a human-readable version of Machine Code and will be specific to the Instruction Set for a particular chipset. Assembly Language uses mnemonics, short text codes, to represent the operations available on the CPU.
How does an Assembler work?
An Assembler translates a program written in Assembly Language into Machine Code. Because each line in an Assembly Language Program translates to a single Machine Code Instruction the translation is relatively simple. However, Assemblers may need to handle symbolic variables and other convenient features, such as branch labels, which means it may need multiple passes to perform the translation.