0% found this document useful (0 votes)
33 views12 pages

LSSC Comp. Sc. Chapter 4 System Software

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views12 pages

LSSC Comp. Sc. Chapter 4 System Software

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

LSSC COMPUTER SCIENCE

CHAPTER 4: System Software


I. Introduction to System Software
System software is a fundamental component of a computer system that manages and controls the hardware,
software, and resources of the system. It acts as an intermediary between the user and the computer hardware,
providing a platform for running applications and ensuring the efficient operation of the system. System
software plays a vital role in enabling the various components of a computer to work together harmoniously.

1. Purpose of System Software:


The primary purpose of system software is to provide a layer of abstraction that simplifies the interaction
between the user and the hardware. It manages critical system resources, such as memory, processors, devices,
and storage, and provides essential services and utilities that facilitate the execution of applications. System
software also ensures the security, stability, and performance of the computer system.

2. Components of System Software:


System software consists of several components that work together to control and manage different aspects of
the computer system. Some of the key components of system software include:

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.

3. Importance of System Software:


System software is essential for the proper functioning and usability of a computer system. It provides a stable
and secure platform for running applications, manages system resources efficiently, and ensures compatibility

KAMADJE SADJIE DJIENA ALLEN 1


LSSC COMPUTER SCIENCE
between hardware and software components. Without system software, users would have to interact directly
with the hardware, which would be complex and impractical for most users.

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.

II. Purpose of System Software


System software serves several important purposes in a computer system. Its primary role is to provide an
interface between the user and the hardware, enabling the execution of applications and managing system
resources. Here are some key purposes of system software:

1. Operating System Management:


The operating system (OS), as a core component of system software, plays a crucial role in managing and
controlling the computer system. It provides an interface that allows users to interact with the system and
executes user programs. The OS handles tasks such as process management, memory management, file system
management, device management, and user interface management.

- 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.

2. Resource Allocation and Optimization:


System software manages system resources to ensure their efficient allocation and utilization. It coordinates
the sharing of resources among multiple processes and applications, optimizing their usage.

- CPU Management: The system software schedules and manages the execution of processes, allocating CPU
time based on priority, fairness, and efficiency.

KAMADJE SADJIE DJIENA ALLEN 2


LSSC COMPUTER SCIENCE
- Memory Management: System software handles memory allocation, ensuring that processes have the
necessary memory space for execution. It also manages virtual memory, swapping data between RAM and
secondary storage to optimize memory usage.

- 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.

4. Security and Protection:


System software incorporates security measures to protect the computer system and its data from unauthorized
access, viruses, malware, and other security threats.

- 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.

5. System Maintenance and Troubleshooting:


System software includes utilities and tools that help in system maintenance, monitoring, and troubleshooting.

- 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.

III. Scope and range of System software


System software encompasses a wide scope and range of components that collectively manage and control
the operations of a computer system. It includes various software elements that interact with hardware, provide

KAMADJE SADJIE DJIENA ALLEN 3


LSSC COMPUTER SCIENCE
essential services, and enable the execution of applications. Here are the key aspects within the scope and
range of system software:

1. Operating Systems (OS):


The operating system forms the foundation of system software and has a broad scope within the computer
system. It manages the overall operation of the system, providing services and functionalities that enable
application execution, resource management, and user interaction. Examples of operating systems include
Windows, macOS, Linux, Unix, and mobile operating systems like Android and iOS.

The main functions of operating systems are as follow:

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

KAMADJE SADJIE DJIENA ALLEN 4


LSSC COMPUTER SCIENCE
software as they enable the translation and execution of software applications written in programming
languages like C, C++, Java, Python, and others.

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.

8. System Configuration Tools:


System configuration tools are software utilities that enable users to configure and customize various aspects
of the computer system. They provide interfaces and settings to manage system preferences, network
configurations, power settings, display properties, and more. These tools fall within the range of system
software as they allow users to tailor the system to their specific needs.

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:

1. Operating System (OS):


The operating system is a crucial piece of system software that provides a platform for running applications
and manages system resources. It performs the following operations:

- 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.

KAMADJE SADJIE DJIENA ALLEN 5


LSSC COMPUTER SCIENCE
- Memory Management: The OS allocates and deallocates memory to processes, optimizing memory usage.
It may use techniques like virtual memory to provide an illusion of more memory than physically available.
An example is the Linux kernel's memory management subsystem.

- 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.

KAMADJE SADJIE DJIENA ALLEN 6


LSSC COMPUTER SCIENCE
A compiler performs almost all of the following operations during compilation pre-processing, lexical
analysis, parsing, semantic analysis (syntax-directed translation), conversion of input programs to an
intermediate representation, code optimization, and code generation. Examples of compilers may include
gcc(C compiler), g++ (C++ Compiler ), javac (Java Compiler), etc.

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.

KAMADJE SADJIE DJIENA ALLEN 7


LSSC COMPUTER SCIENCE
V. Functions of compiler
A compiler is a software tool that translates source code written in a high-level programming language into an
executable or machine code that can be directly executed by the computer's hardware. It performs several
essential functions during the compilation process. Here are the key functions of a compiler:

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.

4. Intermediate Code Generation:


Once the syntax and semantics of the source code are validated, the compiler generates an intermediate
representation of the program. Intermediate code serves as an abstract representation that is independent of
the source language and the target machine. It simplifies further analysis and optimizations. Common forms
of intermediate code include Three-Address Code, Abstract Syntax Trees (ASTs), or high-level representations
like LLVM IR (Intermediate Representation).

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

KAMADJE SADJIE DJIENA ALLEN 8


LSSC COMPUTER SCIENCE
and data structures supported by the target machine. The generated code often undergoes further
transformations and optimizations specific to the target architecture.

7. Symbol Table Management:


Throughout the compilation process, the compiler builds and maintains a symbol table that stores information
about identifiers, variables, functions, and their attributes. The symbol table helps in resolving scope, type
checking, and generating correct code. It stores information such as variable types, memory locations, and
function signatures.

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.

VI. Why use System Software?


Here are some reasons why system software is necessary:

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:

KAMADJE SADJIE DJIENA ALLEN 9


LSSC COMPUTER SCIENCE
System software allows for customization of the system settings and configuration, giving users greater control
over their computing environment.

VII. Features of System Software


1. Memory Management:
System software, specifically the operating system, performs memory management. It keeps track of the
primary memory (RAM) and handles the allocation and deallocation of memory when processes request it.
This involves managing memory resources efficiently to ensure optimal usage and prevent memory conflicts.

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.

VIII. Advantages and Disadvantages of System Software


1. Advantages of System Software
i. Resource management:
System software manages and allocates resources such as memory, CPU, and input/output devices to different
programs.

KAMADJE SADJIE DJIENA ALLEN 10


LSSC COMPUTER SCIENCE
ii. Security:
System software provides security features such as firewalls, anti-virus protection, and access controls to
protect the computer from malicious attacks.

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.

iv. Ease of use:


System software provides a user-friendly interface and graphical environment, making it easier for users to
interact with and control the computer.

v. Reliability:
System software helps ensure the stability and reliability of the computer, reducing the risk of crashes and
malfunctions.

vi. Increased functionality:


System software provides a range of tools and utilities for performing various tasks, increasing the
functionality and versatility of the computer.

vii. Improved performance:


System software optimizes the performance of the computer and reduces the workload on the user.

2. Disadvantages of System Software


Complexity:
System software can be complex and difficult to understand, especially for non-technical users.

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.

KAMADJE SADJIE DJIENA ALLEN 11


LSSC COMPUTER SCIENCE
3. System Software VS Application Software
Application Software
System Software

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.

It is general-purpose software. While it’s a specific purpose software.

While Without application software


Without system software, the system stops and can’t run.
system always runs.

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.

Example: Application software is


Example: System software is an operating system, etc.
Photoshop, VLC player, etc

KAMADJE SADJIE DJIENA ALLEN 12

You might also like