What is System Software? Full details with suitable example

System software is directly related to coordinating computer operations and performing tasks associated with controlling and utilizing computer hardware. These programs assist in running application software and are designed to control the overall operation of a computer system. System software directs the computer what to do, when to do it, and how to do it.


System software can be further categorized into:

  1. Operating System
  2. Language Translators

1. Operating System

An Operating System (OS) is the most important system software. It is a set of programs that control and supervise the hardware of a computer and also provide services to application software, programmers, and users. It manages all hardware and software resources, including input, output, and processing activities within the computer system. It also controls the flow of information to and from the processor and sets priorities for handling different tasks.

Without an operating system, a computer cannot perform any useful task. When a computer is switched on, the operating system is the first program that loads into its memory.

A user cannot communicate directly with computer hardware; therefore, the operating system acts as an interface between the user and the hardware.

Some of the popular operating systems used in personal computers are DOS, Windows, UNIX, Linux, and Solaris.

An operating system can be either Single User or Multiuser:

  • A Single User Operating System allows only one user to work at a time.
  • A Multiuser Operating System allows two or more users to use a powerful computer simultaneously.

For example, Windows 7 is a single-user operating system, while Linux is a multiuser operating system.


Need for an Operating System

The operating system provides a platform on which other programs, called application programs, can run. It acts as an interface between the computer and the user and is designed to operate, control, and execute various applications on the computer.

It also allows the computer to manage its own resources such as memory, monitor, keyboard, printer, etc.

The choice of an operating system depends largely on the CPU, connected devices, and the applications we intend to run. The OS controls the various hardware and software resources and allocates them to users or programs as required.


Functions of an Operating System

An operating system performs a variety of functions. The main ones include:

1. Processor Management

This deals with the management of the Central Processing Unit (CPU). The operating system manages the allotment of CPU time to various processes, a process known as scheduling. Two main scheduling techniques are:

  • Priority Scheduling:
    Each task is assigned a priority. Tasks with higher priority get CPU time before those with lower priority. However, a major drawback is that smaller tasks may have to wait a long time if a lengthy high-priority task is executing.
  • Round Robin Scheduling (Time-Sharing):
    Each process is given a fixed amount of CPU time. If the process is not completed within that time, it is moved to the end of the queue. This ensures all processes get fair CPU time and improves response time, making it suitable for network and interactive environments.

2. Device Management

The operating system communicates with hardware and peripheral devices, maintaining balance between them and the CPU. Since CPU processing speed is much faster than I/O devices, the OS uses two techniques to optimize performance:

  • Buffering:
    Input and output data are temporarily stored in buffers. While one buffer is being processed, another can be filled or emptied, ensuring continuous processing without delay.
  • Spooling (Simultaneous Peripheral Operations On-Line):
    Used when multiple users share a slow device like a printer. The OS temporarily stores each user’s print data on the hard disk and sends it to the printer one by one. This allows users to continue working without waiting for printing to finish.

3. Memory Management

Both CPU and I/O devices interact with memory. When a program is executed, it is loaded into main memory until completion. The OS ensures optimal memory use through the following techniques:

  • Partitioning:
    The total memory is divided into partitions (fixed or variable) to accommodate multiple programs. Variable partitions minimize memory wastage but may cause fragmentation over time.
  • Virtual Memory:
    Allows execution of programs larger than the main memory. The OS divides memory into equal-sized pages and loads only part of a program into main memory. The rest resides in secondary storage. The OS uses Page Map Tables (PMT) to track which page corresponds to which memory block, enabling efficient use of available memory.

4. File Management

The operating system manages files, folders, and directory structures. All data is stored in the form of files, and the OS maintains information about each using the File Allocation Table (FAT)—which includes details like filename, file type, size, starting address, and access mode.

The file manager allows users to create, edit, copy, and allocate memory to files, ensuring proper access rights for reading and writing.


Types of Operating Systems

Operating systems are classified based on their processing capabilities:

  1. Single User, Single Task OS:
    Used on standalone computers to perform a single task at a time (e.g., MS-DOS).
  2. Multiuser OS:
    Allows multiple users to access and share the same system simultaneously (e.g., UNIX, Linux).
  3. Multiprocessing OS:
    Uses two or more processors for parallel execution of tasks, enhancing speed and power (e.g., UNIX, Linux, Windows 7).
  4. Time-Sharing OS:
    Enables concurrent execution of multiple tasks by rapidly switching between them. Each user feels they have dedicated CPU time (e.g., Windows 95 and later).
  5. Real-Time OS:
    Designed for time-sensitive applications like robotics, where tasks must be completed within fixed deadlines. Missing a deadline is called a deadline overrun.
  6. Distributed OS:
    Used in network environments where data and resources are shared across multiple systems. It gives users the impression that all data is locally available.
  7. Interactive OS:
    Provides a Graphical User Interface (GUI) that allows users to interact directly with the system and receive immediate feedback.

Commonly Used Operating Systems

  1. Windows:
    Developed by Microsoft in 1985, Windows is a GUI-based OS. Popular versions include Windows 95, 98, NT, XP, 7, and 8.
  2. Linux:
    A free and open-source OS available for modification and redistribution. Its kernel is the core component. It is widely used and supported globally.
  3. BOSS (Bharat Operating System Solutions):
    An Indian Linux-based distribution that includes an office suite, Firefox browser, multimedia tools, and file-sharing features.
  4. UNIX:
    A multiuser, multitasking OS developed at Bell Labs in 1969. Written in C language, UNIX is known for its portability, flexibility, and power. Popular variants include GNU/Linux and macOS.
  5. Solaris:
    A UNIX-based OS introduced by Sun Microsystems in 1992, now known as Oracle Solaris. It is scalable and often used in virtual environments.

Mobile Operating Systems (Mobile OS)

Mobile operating systems are designed for smartphones and tablets. They include features like touch screens, Bluetooth, Wi-Fi, GPS, cameras, and media players. The most popular mobile OS are Android and Symbian.

  • Android:
    A Linux-based OS developed by Google, first released on November 5, 2007. By 2011, it held more than 50% of the global smartphone market. Android is open-source, customizable, and user-friendly. Versions are named after desserts, such as Cupcake, Honeycomb, Ice Cream Sandwich, and Jelly Bean.
  • Symbian:
    Developed by Nokia (now maintained by Accenture), Symbian offers high integration between communication and personal information management. It supports multiple languages (up to 48 in the latest Symbian Belle release) and includes easy access to Google applications.

2. Language Processors

Computers understand instructions only in machine language (binary code: 0s and 1s). Writing programs directly in machine code is difficult, so programmers use high-level languages (like BASIC, C++, Python) or assembly language.

A program written in a high-level or assembly language is called the Source Program or Source Code.
However, the source code cannot be executed directly—it must first be translated into machine code known as the Object Program or Object Code.

The software that performs this translation is called a Language Processor or Translator Program.

There are three main types of language processors:

  1. Assembler:
    Converts programs written in assembly language into machine code. The input is the source program, and the output is the object code.
  2. Compiler:
    Translates the entire source code at once into machine code. If the source program contains errors, the compiler lists them after compilation with line numbers. The program must be error-free before successful recompilation (e.g., C and C++ compilers).
  3. Interpreter:
    Translates and executes the source code line by line. If an error is found, translation stops, and an error message is displayed. Once corrected, execution resumes from the next line. Examples include Python and BASIC interpreters.