Component 4 - Key Definitions Flashcards
The need for, function and purpose of operating systems
The operating system is software which controls all hardware and software in the system. Consists of a user interface, kernel and drivers. Operating systems provide a platform for all software to run on – what this basically means is it provides a core set of services so you don’t have to write code in every single program for simple things like controlling mouse movement, printing, saving and so forth. The OS will also control the resources available in a “fair” way to prevent programs monopolising the CPU, RAM or Storage
Memory Management (paging, segmentation and virtual memory).
Memory management is a key role of the OS. RAM is split into “pages” and these are allocated to programs. They provide flexibility and efficiency because they can be moved around an re-organised as necessary. The OS allocates RAM to programs, ensures programs cannot overwrite each other or access memory that does not belong to them. It also includes the handling of virtual memory where necessary. Without memory management, an OS could not offer multitasking or multiprogramming
Interrupts, the role of interrupts and Interrupt Service Routines (ISR), role within the Fetch- Decode-Execute Cycle
Interrupts are a key hardware feature of all CPU’s. an interrupt is a request for CPU time – in other words, something has happened and it requires CPU execution time to process. Interrupts can be “requested” by hardware devices or software. The CPU recognises an interrupt has occurred but it is not the job of the CPU to decide when an interrupt should be serviced – this is controlled by an algorithm in the OS.
Scheduling: round robin, first come first served, multi-level feedback queues, shortest job first and shortest remaining time
Scheduling is the algorithm used by the OS to decide when a program should be executed by the CPU. The scheduling algorithm must perform a careful balancing act to ensure all processes receive attention from the CPU, that programs receive adequate execution time so that they appear to run smoothly and finally, must not allow a process to prevent others from executing.
Distributed, embedded, multi- tasking, multi-user and Real Time operating systems
Operating systems are usually optimised/specialised to handle a certain type of environment. Most devices we use are single user operating systems designed to give full access to all system resources to one user and their requirements. However, in a networked environment or distributed, the OS needs to handle the resources of multiple machines and users to ensure that performance is maintained for all users.
BIOS
Basic Input Output System. More modern systems make use of UEFI – Unified, Extensible Firmware Interface. Both exist to boot a PC, the code is stored in ROM on the motherboard and called by the CPU at power on. The BIOS is designed to detect hardware, perform basic self tests and then find a device to boot from such as SSD/HDD
Device drivers
A device driver is a piece of software which allows hardware to communicate with the operating system. An OS provides “generic” services and hardware calls, it is up to the manufacturers of specific devices to write the code which will allow their hardware to interact with an operating system, taking care of all the specifics of how it works. This is essential as it simply isn’t possible for OS developers to write code for every possible device that may be connected to a system, it also enables future devices to work with operating systems without the need for them to be updated
Virtual machines, any instance where software is used to take on the function of a machine, including executing intermediate code or running an operating system within another
Virtual machines are software which emulates (pretends to be) all of the hardware in a PC system. They are extremely useful in server environments as they allow “machines” to be more easily managed. For example, one physical server may run many virtual machines – a much more efficient use of hardware and ensures that resource use is maximised. VM’s can also be backed up, moved, restored as necessary as well as have their states saved – making it possible to recover to an earlier known good point in the case of failure