Main Page About Template

Systems Software

Operating Systems

An operating system is a collection of programs that work together to provide an interface between the user and computer. Popular operating systems include WindowsOS, MACOS, IOS, and Linux.

Memory Management

Memory must be shared between multiple programs running simultaneously. Here are some of the methods used to manage memory in a system.

The key issue with each of these techniques is disk thrashing. When pages of the main memory are swapped too often, more time is spent swapping the sections than executing them. This leads to "freezes" and slows down the running programs.

Interrupts

Interrupts are signals from software or hardware indicating that a process needs attention. Different processes have different priorities, so they are stored in order of priority in a priority queue. Examples of interrupts include: the power button being pressed, a mouse being disconnected and a printer finishing a job.

At the end of each FDE cycle, the CPU checks for higher priority tasks than the current one. If one exists, the contents of each register in the CPU are stored in a stack while the higher priority task is executed.

Scheduling

It is the operating system's job to ensure each section of each program receives a fair amount of processing time. To do this, scheduling algorithms are used to determine which job should be processed first.

Types of operating systems

BIOS

The BIOS, or basic input output system, is the first program that runs when a computer is turned on. The BIOS checks that the CPU is operational, the hardware is connected and for external memory devices.

Device drivers

Device drivers are programs that allow the OS to communicate with hardware. It translates signals between the hardware and processor. Device drivers are specific to both the OS and the architecture of the CPU.

Virtual machines

A virtual machine is an emulation of a physical computer. The functionality of a physical computer is provided using software. Virtual machines have translators to translate intermediate code into bytecode that the virtual hardware can run.

  1. A program is run in the virtual machine
  2. The program is translated to intermediate code
  3. The virtual machine's translator then translates this into bytecode
  4. Virtual hardware then processes this bytecode
  5. This executes the program

However, because they are not run on processor-specific hardware, virtual machines are typically slower than a physical machine.