System Software Flashcards
What is the BIOS?
The Basic Input Output System is the first program to run when the computer is turned on.
It performs many tests before the OS is loaded into memory.
One of these tests is a Power On Self Test (POST) which ensures all hardware is functioning correctly.
How are Interrupts Stored?
Interrupts are stored in a priority queue inside the interrupt register allowing them to be stored in the order of their priority.
What is an Operating System?
An Operating System is the low level software that manages the computer hardware.
What is File Management?
File Management is a process completed by the OS. It keeps a directory of where files are stored so that they can be accessed later/
What is an Embedded OS?
Embedded Operating Systems are usually built for a specific device designed for a specific task.
In this case the OS is stored in ROM, controls input/output devices like sensors or motors. The device likely has limited system resources and no permanent data storage.
How does the CPU deal with an Interrupt?
At the end of each fetch-decode-execute-cycle the CPU checks the interrupt register for interrupts. If an interrupt is found with a higher priority than the next current process then all the data in the registers is moved to the system stack and the value of the PC is set the memory address of the appropriate interrupt service routine (ISR).
After the ISR, the interrupt queue is checked again, if there are no interrupts of a higher priority than the current task then the data in the system stack is loaded back into the CPU, and the normal process can resume.
What is Bytecode and what are it’s Advantages?
Bytecode is an intermediate code between source code and machine code that requires a virtual machine to run.
This allows the code to be run on any device as long as it has the virtual machine.
Source code in a particular language can be converted to the bytecode of another language allowing it to be run by that language’s VM.
What is Processor Scheduling?
Processor Scheduling is a responsibility of the OS. It must ensure that all jobs get a fair amount of processor time.
What are the Pros and Cons of High and Low Level Languages?
Low-Level Languages provide more control over the CPU and memory meaning code can be optimized to run faster or use less memory.
However, assembly code needs to be written for a particular CPU.
High Level Languages use compilers which can also optimize the code. Additionally they can be run on many different CPUs.
High Level Languages are also closer to human language making it easier to work with, as well as providing many different paradigms, making it easier to solve problems.
What is Round Robin and What are its Pros and Cons?
Each process is allocated a time slice, the process will be processed by the CPU until this time slice is over, at which point an interrupt occurs and the CPU moves onto the next process.
This ensures that all processes receive an even amount of processor time.
However jobs can take longer to complete because their execution may be divided inefficiently.
It also doesn’t take into account job priority.
What is Shortest Job First and What are its Pros and Cons?
The shortest jobs are processed first.
This prevents small tasks being stuck behind large tasks, however it’s not always possible to know how long a task will take.
Additionally there is a risk that larger tasks will suffer from “processor starvation” where they don’t receive enough processor time.
What is Memory Management?
Memory Management is a responsibility of the OS. It must control the storage of programs in memory, ensuring they do not corrupt each other - as well as allowing “virtual memory” to be used.
There are two memory management techniques that can be used by the OS: paging or segmentation.
What is an Interrupt?
An interrupt is a signal from a program or device to the CPU requesting attention.
What is the difference between Paging and Segmentation?
Paging involves dividing memory into physical equally sized pages, and dividing tasks across these pages.
Segmentation creates logical divides in memory. This allows the location of the divide to be altered for a particular program so that it is divided efficiently.
What is a Virtual Machine?
A Virtual Machine is a Software Implementation of a Computing System.
What is a Memory Buffer?
A memory buffer is an intermediate storage location between two other locations, there are many uses for this.
One of these could be a memory buffer between the CPU and a device like a printer that runs much slower than the CPU can output instructions. In this case this allows the CPU to get on with other tasks whilst the printer slowly intakes the data in the memory buffer.
What is a Real-Time OS?
A Real Time OS is an OS that needs to react to inputs within a guaranteed time-frame.
It usually has fail-safe mechanisms and redundancy to ensure that it meets this time-frame, regardless of any technical failures.
What is First Come First Served and what are it’s Pros and Cons?
Processes are executed in the order they arrive. there is no system of priorities.
This means that smaller tasks risk processor starvation behind larger tasks.