2. Software and Software Development 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 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 are Paging and Segmentation?
Paging and Segmentation are techniques for managing memory. Paging splits memory into fixed size Pages, and a process may be allocated multiple non-contiguous Pages for its data and instructions. A virtual addressing system will be used to make these Pages appear as contiguous to the program. Segmentation is where contiguous Segments of memory are allocated to processes depending upon their requirements.
What is Virtual Memory?
When there is not enough available RAM to allocate to a process, the Operating System will move an idle process to Secondary Storage. This makes available the memory required for allocation. This is called Virtual Memory because it effectively increases the available memory by using Secondary Storage to increase capacity. However, swapping processes in and out of Secondary Storage takes time, and this can reduce the efficiency of the computer.
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.
Compare Round Robin, First Come First Served, Shortest Remaining Time, Shortest Job First, and Multi-Level Feedback Queues for Process Scheduling.
Round Robin - a queue of processes is maintained, each process is given a short period on the CPU before being returned to the back of the queue.
First Come First Served - processes are executed in the order that they are received.
Shortest Remaining Time - processes with the fewest remaining instructions are executed first.
Shortest Job First - processes with the shortest total execution time are executed first.
Multi-Level Feedback Queues - a more complicated algorithm which schedules processes according to several factors such as: length of process, whether it is I/O bound, and their individual requirements of the processor.
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 an Interrupt, what is Interrupt Handling?
An Interrupt is an event which must be handled immediately, interrupting the current process. When this occurs the state of the current process will be moved into an idle state, and stored into RAM. Then an Interrupt Service Routine will be loaded into the CPU and executed to handle the Interrupt (Interrupt Handling). When this is finished the original process is restored and resumed.
What is a Distributed Operating System?
An Operating System which splits jobs into tasks which are performed on multiple connected Servers which operate in parallel.
What is a Multi-Tasking Operating System?
A Multi-Tasking Operating System can run many jobs at the same time on a single computer by switching between them (Process Scheduling). It will appear to a user as though the jobs are executing simultaneously even when run on a single core processor.
What is a Multi-User Operating System?
A Multi-User Operating System shares system resources on a Server/Mainframe between multiple Client terminals.
What is a Real-Time Operating System?
A Real-Time Operating System is used in time critical environments such as the Operating System for an aircraft. It must respond quickly, be able to handle many simultaneous inputs, be robust to failure of components, and incorporate redundancy.
What is the BIOS?
The Basic Input Output System is used to initialise the computer on start up, it interacts with the Hardware components of the system and tests that they are working correctly.
What is a Device Driver?
A Device Driver is a software interface which allows Applications to interact with connected Hardware. Device Drivers are specific to and are managed by the Operating System.
What is a Virtual Machine?
A Virtual Machine is Software which allows the emulation of another computer system. For example a Virtual Machine can be used to run the Windows Operating System from within OSX on a Mac. The Java Virtual Machine is used to execute intermediate bytecode files, which are the output of compiling Java code, on different computers with different Operating Systems.
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 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 does it mean for a program to be Open Source?
An Open Source program is distributed with its source code. This means that the code can be read, understood, and potentially changed by the people who use the Software. This does not mean that the software is free (Freeware). If the source code of a program is not disclosed it is considered Closed Source or Proprietary Software.
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 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.