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.