LSSC Comp. Sc. Chapter 4 System Software
LSSC Comp. Sc. Chapter 4 System Software
a. Operating System (OS): The operating system is the core component of system software. It provides an
interface between the user and the hardware, enabling the execution of applications and managing system
resources. The OS handles tasks such as process management, memory management, file system management,
device management, and user interface.
b. Device Drivers: Device drivers are software components that allow the operating system to communicate
and interact with hardware devices such as printers, scanners, graphics cards, and network adapters. Device
drivers provide the necessary instructions and protocols for the proper functioning of hardware devices.
c. Firmware: Firmware is software that is embedded in hardware devices, such as the BIOS in a computer
or the firmware in a router. It provides low-level control and initialization routines for the hardware, enabling
it to start up and operate correctly. Firmware is typically stored in non-volatile memory and is responsible for
initializing the hardware during the boot process.
d. Language Translators: Language translators are tools that convert high-level programming languages
(such as C, C++, Java) into machine-readable code that the computer can execute. These translators include
compilers, interpreters, and assemblers.
e. Utilities: System utilities are software tools that perform various system management and maintenance
tasks. They include disk management utilities, file compression tools, antivirus software, backup and recovery
tools, system diagnostic utilities, and performance monitoring tools.
Furthermore, system software enables the development and execution of application software. It provides the
necessary abstractions and services that applications rely on, such as memory management, file system access,
and device communication. System software also plays a crucial role in ensuring system security, protecting
against malicious software and unauthorized access.
In summary, system software acts as the foundation of a computer system, providing the necessary services,
management tools, and interfaces for the efficient operation of the system. It enables the execution of
applications, manages system resources, and ensures the overall stability, security, and usability of the
computer system.
- Process Management: The OS manages the execution of multiple processes, allocating system resources,
scheduling tasks, and ensuring fair and efficient utilization of the CPU.
- Memory Management: The OS oversees the allocation and deallocation of memory to processes, ensuring
efficient utilization of available memory resources.
- File System Management: The OS provides a file system that enables the storage, organization, and retrieval
of data on storage devices. It manages file access, permissions, and directory structures.
- Device Management: The OS interacts with hardware devices through device drivers, enabling
communication, control, and coordination of devices such as printers, scanners, network adapters, and storage
devices.
- User Interface Management: The OS provides a user-friendly interface, allowing users to interact with the
system through graphical elements, command lines, or touch-based interfaces.
- CPU Management: The system software schedules and manages the execution of processes, allocating CPU
time based on priority, fairness, and efficiency.
- Input/Output Management: System software controls input/output operations, coordinating data transfer
between the CPU, memory, and peripheral devices. It ensures efficient data flow and minimizes bottlenecks.
3. Hardware Abstraction:
System software provides an abstraction layer between the hardware and software components of a computer
system. It hides the low-level details of hardware operations and provides a standardized interface for software
programs to interact with hardware devices.
- Device Drivers: System software includes device drivers that facilitate communication between the operating
system and hardware devices. Device drivers provide an abstraction layer, presenting a consistent interface to
applications regardless of the specific hardware implementation.
- User Authentication: The system software manages user accounts, authentication mechanisms, and access
control to ensure that only authorized users can access the system and its resources.
- Data Protection: System software provides mechanisms for data encryption, secure file access, and backup
and recovery, safeguarding data from accidental loss or unauthorized access.
- Malware Protection: System software includes antivirus software and security features that detect and
prevent malware infections, protecting the system from malicious software.
- System Utilities: System software provides utilities for tasks such as disk management, file compression,
disk defragmentation, backup and recovery, system diagnostics, and performance monitoring.
- Error Handling: The system software handles system errors, exceptions, and crashes, providing error
messages and diagnostic information to assist in troubleshooting and resolving issues.
In summary, system software serves the purpose of managing and controlling the computer system, optimizing
resource usage, providing hardware abstraction, ensuring system security, and enabling system maintenance
and troubleshooting. It plays a critical role in creating a stable and user-friendly environment for running
applications and supporting the overall functionality and performance of a computer system.
Resource Management: The operating system manages and allocates memory, CPU time, and other hardware
resources among the various programs and processes running on the computer.
Process Management: The operating system is responsible for starting, stopping, and managing processes and
programs. It also controls the scheduling of processes and allocates resources to them.
Memory Management: The operating system manages the computer’s primary memory and provides
mechanisms for optimizing memory usage.
Security: The operating system provides a secure environment for the user, applications, and data by
implementing security policies and mechanisms such as access controls and encryption.
File Management: The operating system is responsible for organizing and managing the file system, including
the creation, deletion, and manipulation of files and directories.
Device Management: The operating system manages input/output devices such as printers, keyboards, mice,
and displays. It provides the necessary drivers and interfaces to enable communication between the devices
and the computer.
2. Device Drivers:
Device drivers are software components that facilitate communication between the operating system and
hardware devices. They provide the necessary instructions and protocols for the proper operation of devices
such as printers, scanners, graphics cards, network adapters, and storage devices. Device drivers have a
specific scope within system software as they enable the interaction between the OS and hardware peripherals.
3. Firmware:
Firmware refers to software code that is embedded in hardware devices. It provides low-level control and
initialization routines for the hardware, ensuring proper functioning during the boot process and operation.
Firmware has a specific range within system software as it resides within the hardware components
themselves, such as the BIOS (Basic Input/Output System) in a computer, firmware in routers, or firmware in
other embedded devices.
4. Language Translators:
Language translators are tools that convert high-level programming languages into machine-readable code.
These translators include compilers, interpreters, and assemblers. They have a specific scope within system
5. System Utilities:
System utilities are software tools that perform various system management and maintenance tasks. They have
a wide range within system software and include a diverse set of utilities such as disk management tools, file
compression tools, backup and recovery software, antivirus programs, system diagnostic utilities, performance
monitoring tools, and more. System utilities cover a broad range of functionalities aimed at managing,
securing, and optimizing the computer system.
6. Virtualization Software:
Virtualization software falls within the scope of system software as it enables the creation and management of
virtual environments on a physical computer system. Virtualization software allows multiple operating
systems or instances to run simultaneously, each in its isolated virtual environment. Examples of virtualization
software include VMware, VirtualBox, and Microsoft Hyper-V.
7. System Libraries:
System libraries are collections of pre-compiled code that provide standard functions and procedures for
software developers. These libraries have a specific range within system software as they offer reusable code
modules that simplify software development and allow developers to access system-level functionalities.
Examples include standard C libraries, Java libraries, and graphics libraries like OpenGL.
In summary, the scope and range of system software encompass the operating system, device drivers,
firmware, language translators, system utilities, virtualization software, system libraries, and system
configuration tools. These components collectively manage and control the computer system, provide
essential services, enable application execution, and facilitate user interaction. The diverse nature of system
software ensures the efficient operation, stability, security, and usability of the computer system.
IV. Need for and the operations of specific pieces of system software
Specific pieces of system software serve distinct purposes and perform various operations to fulfill the needs
of a computer system. Let's explore some examples of system software and their importance:
- Process Management: The OS creates, schedules, and terminates processes, ensuring efficient utilization of
the CPU. For example, Windows Task Manager allows users to view and manage running processes.
- File System Management: The OS provides a file system that organizes and stores data on storage devices.
It manages file access, permissions, and directory structures. For instance, the macOS operating system uses
the Hierarchical File System (HFS) or Apple File System (APFS) to manage files.
- Device Management: The OS interacts with hardware devices through device drivers, allowing the system
to communicate with devices such as printers, scanners, and network adapters. Windows Device Manager is
an example of a tool used to manage devices and drivers.
2. Device Drivers:
Device drivers are system software components that enable communication between the operating system and
hardware devices. They perform the following operations:
- Device Initialization: Device drivers initialize hardware devices during system startup, ensuring they are
ready for operation. For example, a graphics card driver initializes the card's settings and capabilities.
- Data Transfer and Control: Device drivers facilitate data transfer between the CPU, memory, and hardware
devices. They also provide control and configuration options for the devices. An example is a printer driver
that enables printing from software applications.
- Interrupt Handling: Device drivers handle interrupts generated by hardware devices, allowing the CPU to
respond to device events promptly. For instance, a network adapter driver handles interrupts to process
incoming data packets.
3. Firmware:
Firmware is software code embedded in hardware devices and performs the following operations:
- Bootstrapping: Firmware initializes the hardware components during system startup. For example, the Basic
Input/Output System (BIOS) firmware in a computer performs the initial hardware checks and loads the
operating system.
- Hardware Control: Firmware provides low-level control and interface with hardware components, enabling
their proper operation. For instance, firmware in a router controls network protocols and routing functions.
4. Language Translators:
Language translators convert high-level programming languages into machine-readable code. They include
the following operations:
Compiler:
A compiler is a software that translates the code written in one language to some other language without
changing the meaning of the program. The compiler is also said to make the target code efficient and optimized
in terms of time and space.
Interpreter:
An interpreter is a computer program that directly executes, i.e. it performs instructions written in a
programming or scripting language. Interpreters do not require the program to be previously compiled into a
machine language program. An interpreter translates high-level instructions into an intermediate form, which
is then executed.
Interpreters are fast as it does not need to go through the compilation stage during which machine instructions
are generated. The interpreter continuously translates the program until the first error is met. If an error comes
it stops executing. Hence debugging is easy. Examples may include Ruby, Python, PHP, etc.
Assembler:
An assembler is a program that converts the assembly language into machine code. It takes the basic
commands and operations and converts them into binary code specific to a type of processor.
Assemblers produce executable code that is similar to compilers. However, assemblers are more simplistic
since they only convert low-level code (assembly language) to machine code. Since each assembly language
is designed for a specific processor, assembling a program is performed using a simple one-to-one mapping
from assembly code to machine code. On the other hand, compilers must convert generic high-level source
code into machine code for a specific processor.
5. System Utilities:
System utilities provide various system management and maintenance operations. Some examples include:
- Disk Management: Utilities like Disk Utility on macOS or Disk Management on Windows enable formatting,
partitioning, and managing disk drives.
- Antivirus Software: Antivirus utilities protect against malware, viruses, and other security threats. Examples
include Norton Antivirus and McAfee.
- Backup and Recovery: Backup software like Time Machine on macOS or Windows Backup and Restore
allows users to create backups of important data and restore it in case of data loss or system failure.
- System Diagnostic Tools: Tools like Windows Event Viewer or macOS Console help diagnose and
troubleshoot system errors and issues.
These specific pieces of system software are essential for the functioning, management, and maintenance of a
computer system. They provide the necessary abstractions, services, and operations to ensure the efficient
execution of applications, resource management, hardware interaction, system security, and user interaction.
1. Lexical Analysis:
The compiler's first function is to perform lexical analysis, also known as scanning. It breaks down the source
code into a sequence of tokens, which are the basic building blocks of the programming language. Tokens
represent keywords, identifiers, constants, operators, and other language-specific elements. The lexical
analyzer removes comments and whitespace and identifies and categorizes each token.
2. Syntax Analysis:
The next function of the compiler is syntax analysis, also known as parsing. The parser analyzes the sequence
of tokens generated by the lexical analyzer and checks if it conforms to the grammar rules of the programming
language. It builds a parse tree or an abstract syntax tree (AST) that represents the hierarchical structure of the
source code. The syntax analysis ensures that the source code follows the language's syntax rules and detects
any syntax errors.
3. Semantic Analysis:
After syntax analysis, the compiler performs semantic analysis. This phase checks the meaning and correctness
of the program's statements and expressions. It verifies that the types of operands are compatible, detects
undeclared variables or functions, checks for type mismatches, and enforces language-specific semantic rules.
Semantic analysis helps catch logical errors and ensures that the program's behavior aligns with the intended
semantics of the programming language.
5. Optimization:
The compiler performs various optimization techniques on the intermediate code to enhance the program's
efficiency, speed, and resource utilization. Optimization aims to improve the program's performance by
eliminating redundant computations, reducing memory access, and minimizing code size. Common
optimization techniques include loop optimization, constant folding, dead code elimination, and register
allocation. Optimizations can significantly impact the program's execution time and resource requirements.
6. Code Generation:
After optimization, the compiler generates the target code specific to the target machine architecture. It
translates the intermediate code into low-level machine code, which consists of instructions that the hardware
can directly execute. Code generation involves mapping the intermediate representation to the instructions
8. Error Handling:
During compilation, the compiler detects and reports various errors, including lexical errors, syntax errors,
semantic errors, and other language-specific issues. It provides meaningful error messages that guide
developers in correcting the problems. The error handling function assists in identifying and resolving issues
in the source code.
In summary, a compiler performs lexical analysis, syntax analysis, semantic analysis, intermediate code
generation, optimization, code generation, symbol table management, and error handling. These functions
collectively transform high-level source code into executable machine code, ensuring correctness, efficiency,
and compatibility with the target platform.
1. Hardware Communication:
System software serves as an interface between the hardware and software components of a computer,
enabling them to communicate and work together.
2. Resource Management:
System software manages computer resources such as memory, CPU usage, and storage, optimizing their
utilization and ensuring that the system operates efficiently.
3. Security:
System software provides security measures such as firewalls, antivirus software, and encryption, protecting
the system and its data from malware, viruses, and other security threats.
4. User Interface:
System software provides a user interface that allows users to interact with the computer or computing device
and perform various tasks.
5. Application Support:
System software supports the installation and running of applications and software on the system.
6. Customization:
2. Processor Management:
System software, particularly the operating system, is responsible for processor management. It allocates the
main memory (RAM) to processes and deallocates it when it is no longer required. This includes managing
the execution of multiple processes concurrently, scheduling their execution on the processor, and ensuring
fair and efficient utilization of the CPU.
3. File Management:
System software, such as the operating system, performs file management. It provides mechanisms for
creating, organizing, and manipulating files and directories. This involves allocating and deallocating
resources, such as disk space, managing file access permissions, and ensuring data integrity and security.
4. Security:
System software incorporates security features to protect programs and data from unauthorized access. It
includes implementing authentication mechanisms, such as passwords or biometrics, to control user access.
Additionally, it enforces access control policies, encryption techniques, and other security measures to
safeguard sensitive information from unauthorized disclosure or modification.
5. Error-detecting Aids:
System software includes error-detecting aids to assist in identifying and resolving software or hardware
errors. These aids can include the production of dumps, traces, error messages, and other debugging tools that
help programmers and system administrators diagnose and fix issues. They provide valuable information about
the state of the system or software during an error or unexpected behavior.
6. Scheduling:
System software, particularly the operating system, handles process scheduling. It employs scheduling
algorithms to determine the order and priority of executing processes on the CPU. This ensures fair allocation
of resources, optimal system performance, and responsiveness to user requests.
iii. Compatibility:
System software ensures compatibility between different hardware and software components, making it easier
for users to work with a wide range of devices and software.
v. Reliability:
System software helps ensure the stability and reliability of the computer, reducing the risk of crashes and
malfunctions.
Cost: Some system software, such as operating systems and security software, can be expensive.
System Overhead:
The use of system software can result in increased system overhead, which can slow down the performance
of the computer and reduce its efficiency.
Vulnerability:
System software, especially the operating system, can be vulnerable to security threats and viruses, which can
compromise the security and stability of the computer.
Upgrades:
Upgrading to a newer version of system software can be time-consuming and may cause compatibility issues
with existing software and hardware.
Limited Customizability:
Some system software may have limited options for customization, making it difficult for users to personalize
their computing experience.
Dependency:
Other software programs and devices may depend on the system software, making it difficult to replace or
upgrade without disrupting other systems.
System Software maintains the system resources and Application software is built for specific
gives the path for application software to run. tasks.
Low-level languages are used to write the system While high-level languages are used to
software. write the application software.
System software runs when the system is turned on and While application software runs as per the
stops when the system is turned off. user’s request.