UNIT 1
INTRODUCTION TO SYSTEM SOFTWARE
Introduction–System Software and machine architecture. Loader
and Linkers: Basic Loader Functions - Machine dependent loader
features –Machine independent loader features – Loader design options-
Assemblers- Macros and Macro Processors.
Software:
• Software is the set of programs and related data that tell a computer’s hardware
what to do and how to do it.
• A common example of software that tells computer hardware what to do and
how to do it is the operating system, such as Windows, macOS, or Linux.
• The operating system manages resources like the CPU, memory, storage, and
peripheral devices, allowing the hardware and other software (like applications)
to work together.
• It is intangible (cannot be touched) and is the opposite of hardware, which is the
physical part of the computer.
• For instance, when you use a printer, the operating system and its specific device
driver send the proper instructions to the printer hardware so it prints your
documents correctly. Without this software, the hardware would not know how to
perform its intended function.
Device driver:
• A device driver is a type of software.
• More specifically, it is system software that allows the operating system to
communicate with and control a specific hardware device (like a printer,
keyboard, or graphics card).
• It acts like a “translator” between the OS and the hardware, converting general
OS requests into device-specific commands and sending back the device’s
• Software is a collection of instructions, written in programming
languages, that a computer executes to perform tasks such as
managing the system, editing documents, browsing the web, or
playing games.
• A single program (like a word processor) is one piece of software; all
programs together on a system form the computer’s software.
System Software:
• System software is the software that helps your computer run smoothly.
• It manages the computer's hardware and provides the foundation for other programs
to work.
• Examples include operating systems, antivirus software, and disk formatting tools.
• It's often created by computer manufacturers and written in low-level languages to
interact directly with hardware.
• This includes things like the operating system (Windows, macOS, Linux), drivers
that connect devices to the computer, and helpful tools that keep everything working
properly.
• System software acts as a bridge between hardware and users.
Types of System Software:
Operating System:
• An operating system (OS) is a type of system software that manages a
computer's hardware and software resources.
• It provides common services for computer programs.
• An OS acts as a link between the software and the hardware.
• It controls and keeps a record of the execution of all other programs
that are present in the computer, including application programs and
other system software.
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.
Functions of Operating System:
1. Process Management
Process management in operating system is about managing processes. A Process is a
running program. The life cycle of process is from the moment program start until it finishes.
Core Functions in Process Management:
• Scheduling: Decides which process uses the CPU next (using algorithms like Round
Robin or Priority Scheduling).
• Synchronization: Ensures orderly execution using locks, semaphores, or monitors to
prevent race conditions.
• Deadlock Handling: Detects and prevents situations where processes wait forever for
resources.
• Inter-Process Communication (IPC): Allows processes to exchange data via shared
2. Memory Management
Memory management in an operating system controls how data is stored and organized in main
(primary) memory and secondary storage, ensuring programs get the memory they need and freeing it when
no longer used.
Key Activities in Memory Management:
• Allocation & Deallocation: Assigns and frees memory as needed.
• Protection: Prevents processes from interfering with each other’s memory..
• Virtual Memory: Uses disk space as extra memory to run large programs.
• Fragmentation Handling: Reduces wasted space through compaction.
• Disk Management: Handles file storage, free space, disk scheduling, and backups.
3. File System Management
File management in an operating system organizes and controls how data is
stored, named, and accessed on storage devices, making it easy for users to find and
use their files.
File System Management includes managing of:
• File Attributes: Name, type, size, and permissions.
• File Types: Text, binary, and executable files.
• Operations: Create, read, write, and delete files.
• Access Methods: Sequential, direct, and indexed access for faster retrieval.
4. Device Management (I/O System)
Device management in an operating system controls how the computer
communicates with hardware devices like printers or disks, using drivers and techniques to
ensure smooth and efficient operation.
Major components in Device Management:
• Device Drivers: Interface between hardware and OS.
• Buffering & Caching: Temporarily store data to match device speeds and improve
performance.
• Spooling: Spooling manages data waiting to be processed, particularly in devices like
printers. The OS places print jobs in a spool (a temporary storage area), allowing the
CPU to continue other tasks while the printer works through the queue.
5. Protection and Security
Protection and security mechanisms in an OS are designed to safeguard system
resources from unauthorized access or misuse. These mechanisms control which processes
or users can access specific resources (such as memory, files, and CPU time). It also
ensures that only authorized users can perform specific actions.
The OS protects system resources and user data from unauthorized access and
attacks.
• Access Control: Limits user and process permissions.
• Authentication: Verifies users through credentials (UIDs/SIDs).
• Resource Protection: Prevents misuse of files, memory, or devices.
• Security: Guards against malware, denial-of-service attacks, and data theft.
2. Programming Language Translator
Programming language translators are programs that translate
code written in one programming language into another programming
language. below are examples of programming language translator.
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.
• 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.
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
3. Device Drivers
• Device drivers are a class of system software that minimizes the need for system
troubleshooting.
• Internally, the operating system communicates with hardware elements.
• Device drivers make it simple to manage and regulate this communication.
• To operate the hardware components, the operating system comes with a variety
of device drivers.
• The majority of device drivers, including those for a mouse, keyboard, etc., are
pre-installed in the computer system by the businesses that make computers.
4. Firmware
• Firmware is specialized software embedded directly into hardware devices (like
routers, TVs, phones, printers) that provides essential, low-level instructions for
the device to start up, function, and communicate, acting as a crucial link between
hardware and higher-level operating systems or apps.
• Stored in non-volatile memory (ROM, Flash), it's more permanent than typical
software but can be updated to fix bugs, add features, or improve compatibility,
often delivered via Over-The-Air (OTA) updates.
There are mainly two main types of firmware chips:
• BIOS (Basic Input/Output System) chip.
• UEFI (Unified Extended Firmware Interface) chips.
5. Utility Software
Utility software helps manage, maintain, analyze, and optimize a
computer system, performing essential background tasks like antivirus scans, file
compression, backups, and disk cleanup to ensure smooth, efficient, and safe
operation, working alongside the Operating System (OS) rather than directly for
end-user tasks like word processing
System Software and application software interact through utility
software. A third-party product called utility software is created to lessen
maintenance problems and find computer system defects. It is included with
your computer's operating system.