Please enable JavaScript.
Coggle requires JavaScript to display documents.
1.2.1 - Coggle Diagram
1.2.1
1.2.1d
Scheduling ensures that all jobs (sections of program) receive a fair amount of processing time. This is done through scheduling algorithms.
Round-Robin:
- Each job is given a specific time slice in which it is able to complete. Once every job has used their first tine slice, a new time slice is allocated.
- Non pre-emptive.
- Longer jobs will take longer to execute.
- Job priority is not considered.
First Come First Served:
- Jobs are served chronologically based on the order that they entered the queue.
- Easy to implement.
- Does not consider job priority.
- Non pre-emptive.
Multi-Level Feedback Queues:
- Multiple queues are formed, each ordered by a different priority.
- Difficult to actually implement as deciding where to place certain jobs can be tricky.
- Pre-emptive.
Shortest Job First:
- Jobs are sorted based on the time needed for completion with shorter jobs going first.
- Best suited for batch systems where multiple short jobs are to be serviced.
- Requires completion time to be calculated which is not always possible.
- Risk of processor starvation if many short jobs arrive at once.
- Non pre-emptive.
Shortest Time Remaining:
- Pre-emptive.
- Better throughput at shorter processes are executed quickly.
- Does not account for job urgency and processor starvation may occur.
1.2.1e
A multitasking operating system can seemingly carry out tasks simultaneously. This is done through time slicing by the processor to quickly switch between tasks.
A multi-user operating system allows for multiple users to access hardware resources simultaneously. This often involves several devices connecting to one super-computer on a network. Such a system keeps log of resources used and works out the most efficient use of processing cycles.
A distributed operating system runs across multiple device. It spreads the load across multiple processors; it appears as if it a single system.
Embedded operating systems are given a range of specific tasks catering towards a specific device. These systems are often limited in functionality but have low power requirements.
A real-time operating system is used in time-critical computer systems. Each task will occur in a guaranteed time frame. Some redundancy is built into these systems to cater for sudden increases in input.
1.2.1b
Because computer memory must be fairly shared between programs, memory management techniques are employed (such a paging segmentation and virtual memory).
Paging is a memory management technique that involves memory being split into equal-sized, physical divisions. These are swapped between the hard disk and main memory when needed but an overuse of paging can cause disk thrashing.
Segmentation involves memory being split into "logical" divisions. These divisions are not equal in size and are complete sections of program.
Virtual memory uses a section of the hard-drive to store not currently used pages. This happens when the RAM is full. These pages have to be loaded back into main memory before they can be run.
1.2.1h
A virtual machine is a means of mimicking a specific computer / device through software. It provides an environment with a translator that allows intermediate code to be run.
Intermediate code is halfway between machine code and object code. It is independent of processor architecture and thus it can be said to be portable.
Virtual machines can be used for testing programs on different devices or operating systems while only necessitating one computer / OS. This saves both time and money.
Running intermediate code in a VM can be considerably slower than running the low-level code on the device it was made for.
1.2.1c
-
Interrupts are stored in order of priority in an abstract data structure known as a priority queue within an interrupt register.
Interrupt Service Routine Process:
- The FDE cycle finishes and the processor checks the contents of the interrupt register. If there is an interrupt of a higher priority then the contents of the registers will be put onto a stack.
- The interrupt service routine is then loaded into RAM. A flag is set to indicate that the ISR has begun.
- After the interrupt has been service, the contents of the interrupt register are again checked and if there are not higher priority interrupts then the contents of the stack are popped off and placed back within their registers.
1.2.1f
The program counter indicates the location of the BIOS upon loading up the computer, the BIOS then performs a series of tests before the OS is loaded to ensure that hardware is functional.
-
The BIOS checks that the hardware is fully functional with the POST, checks that the clock is functional and tests for external storage devices.
1.2.1a
An operating system is simply a series of programs that provide an interface between the user and the software. Such a system allows the user to perform certain low-level tasks such as managing memory and resources.
Operating systems allow for the following:
- Memory management (allocates free memory to programs that need it).
- Resource management.
- File management (deleting, renaming, moving files).
- Input / output management.
- Interrupt management.
- Utility software (disk defragmenter, backup, formatting, compression).
- Security (firewalls).
- User interface.
1.2.1g
Device drivers are computer programs provided by the operating system to ensure that any requests provided by devices are understood by the operating system. Device drivers are architecture specific and OS specific.