A collection of programs that work together to provide an interface between the user and the computer.
Features of operating systems?
Memory, Resource, File, Input/Output and Interrupt management, utility software, security and user interface
Why is memory management needed?
Computer memory needs to be shared fairly between multiple programs, and the main memory is not large enough to store every program being used
What is paging?
A memory management technique where memory is split up into equal-sized sections called pages (physical division). These pages can be swapped into and out of main memory and the hard disk when needed.
What is segmentation?
The splitting up of memory into logical divisions called segments, which vary due to the segments considering the structure and logical flow of the programs.
What is virtual memory?
Where a section of the hard drive acts as RAM when space in main memory is struggling. Programs not in use are moved to VM through paging.
What is a risk of paging, segmentation and VM?
Disk thrashing, this is when the computer swaps pages between the hard disk and main memory too quickly, so more time is spent transferring these pages than running the program.
When does disk thrashing become worse?
When the virtual memory fills up
What are interrupts?
Signals generated by software/hardware to indicate to the processor that a process needs attention.
How are interrupts stored?
In order of their priority (in a priority queue) in an interrupt register.
How are interrupts serviced?
Through the ISR (interrupt service routine)
What are the steps of the Internet Service Routine?
The processor checks content of the interrupt register at the end of every FDE cycle. Interrupts that are higher priority to a process displace the current process, which is transferred to a stack. The processor responds to interrupt by loading the ISR to RAM and a flag is set to signal the ISR. The interrupt is services and the flag resets, and the interrupt queue is checked before removing the old process from it’s stack.
What is scheduling?
Operating system ensuring programs have a fair amount of processing time
What are the two types of scheduling algorithm?
Pre-emptive, jobs are actively made to start and stop by the OS.
Non-pre emptive, jobs are left alone until they are completed
Describe the round robin algorithm
Each job is given a section of processor time called a time slice, in which a program is allowed to execute. Once every job has used its time slice , the queue repeats. It ensures each job is seen too, but longer programs take longer for completion. Job priority is not taken into account.
Describe the first come first served algorithm
Jobs are processed in chronological order by which they are entered in the queue, does not take into account priority.
Describe multilevel feedback queues
Makes use of multiple queues, each which is ordered based on a different priority, processor needs to decide priority
Describe the shortest job first algorithm
The queue storing jobs to be processed is ordered according to how much time is needed for the program to be executed. The processor has to calculate how long each job takes and there is also a risk of program starvation if short jobs keep being added to the queue
Describe the shortest time remaining algorithm
The queue storing jobs to be processed is ordered according to time left until completion, with the jobs with the least time being serviced first, there is also a risk for processor starvation.
What are the five types of operating system?
Distributed
Embedded
Multi-tasking
Multi-user
Real-time
Describe distributed operating systems
An operating system which is run across multiple devices, allowing the load to be spread across multiple computer processors when a task is run.
Describe embedded operating systems
An operating system built to perform a small range of tasks, which is catered towards a specific device. They have limited functionality and are hard to update but consume less power
Describe multi-tasking operating systems
Enable the user to carry out tasks simultaneous, this is done by time slicing to switch quickly between programs and applications
Describe multi-user operating systems
Multiple users make use of one computer, scheduling algorithms must be ensured to distribute processing time to avoid processor starvation
Describe real time operating systems
Used in time critical computer systems, the OS is designed to perform a task within a guaranteed time frame.
What is the BIOS?
Basic Input Output System - the first program that runs when a computer system is switched on. The PC points to the location of the BIOS each time the computer starts up
What is the BIOS responsible for?
POST (power on self test), checking clock, memory and processor operation, testing externals. Only after these checks can the RAM be loaded from the hard disk
What are device drivers?
Computer programs which are provided by the OS to allow the OS to interact with hardware
What are device drivers specific to?
Computer’s architecture and the operating system itself
What are virtual machines?
A theoretical computer which is a software implementation of a computer system.
What is intermediate code?
Code that is halfway between machine code and object code, it is independent of the processor architecture so can be used across machines and operating systems
What are Virtual Machines used for?
Used to create a development environment for programmers to test programs on different operating systems. It saves time and money but is relatively slower in terms of code processing.
Application software definition?
Software that is designed to be used by the end-user to perform one specific task.
Requires system software in order to run
Application software examples?
Word Processing, Spreadsheets, Web Browsers
System Software Definition?
Low level software that is responsible for running the computer system smoothly, providing a platform for application software to run. Users do not directly interact with this software