0% found this document useful (0 votes)
7 views

Chapter 4 Software

Uploaded by

hgg961174
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Chapter 4 Software

Uploaded by

hgg961174
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

CHAP 4 SOFTWARE

Software:
Software refers to a collection of instructions, data, and programs that enable computers to
perform specific tasks or functions.
Types of software and interrupts:
Software can be broadly categorized into two main types:
 system software
 application software

Every computer starts out as a collection of interconnected hardware components. The


hardware components would be meaningless without the software. The relationship between
software and hardware is examined in this section. The hardware and software hierarchy are
summarized in Figure.

Figure will show you that there are two categories of software: application software and system
software.

System software:
System software includes operating systems, device drivers, utility programs, and other
software that provides essential functions for the computer to operate.
Application software:
Application software, on the other hand, refers to programs designed to perform specific tasks
or cater to particular user needs.

NAVID SAQIB : 03334259883 1


CHAP 4 SOFTWARE

Features of system software:

 a collection of applications to regulate and oversee computer hardware operation


 need to enable trouble-free hardware and software operation
 offers a platform for the operation of other software.
 offers an interface for computers (HCI)
 regulates the distribution and application of hardware resources

Features of application software:

 permits the user to use the computer's resources to carry out particular tasks
 could be a single application (like Notepad) or a group of apps (like Microsoft Office)
 utilized to carry out different computer programs, or apps
 The software can be used whenever and however the user sees fit.

Examples of typical application software:


Word processor: Text documents like essays and reports can be altered using word processing
software. The following are a few of the features of word processing software:

 drafting, revising, storing, and working with text


 spell checkers and thesaurus
 copy and paste functions
 import photos/images into a structured page format
DATABASE: Database software is used to organize, manipulate and analyses data. Among the
roles are a few of the following:

 the capacity to run database queries and generate reports


 add, delete and modify data in a table etc.

Examples of typical system software:


COMPILERS: A compiler is a computer software that converts a high-level language (HLL)
program into machine code, or code that the computer can understand, so that the computer
NAVID SAQIB : 03334259883 2
CHAP 4 SOFTWARE

may utilize it immediately to carry out a task. High-level languages include Fortran, C++, Java,
Python, Visual Basic, and Algol.
OPERATING SYSTEMS (O/S): In essence, the operating system (OS) is software that runs on a
computer system in the background. In essence, the operating system (OS) is software that runs
on a computer system in the background:

 management of errors to occur


 users to interact with the computer (Windows, for example)
 handling security (such as user accounts and passwords for log-in).
 the program loading and execution to take place
 input/output operations etc.

Utility software (utilities):


Numerous utility programs, which are a component of the system software, are available to
computer users. They are sometimes referred to as utilities.

Utility programs offered by most computer system software include:


 virus checkers
 defragmentation software
 back-up software
 screensavers.
 security
 file compression and file management
 disk contents analysis and repair

Virus checkers (anti-virus software):


A virus checker, also known as antivirus software or anti-malware software, is a type of utility
program designed to detect, prevent, and remove malicious software (malware) from a
computer system.
Despite the fact that different kinds of antivirus software operate in different ways, they all
share the same characteristics:
 When software gets infected with a virus that is not yet on the database, they can utilize
heuristic checking, which involves examining the program for behaviors that would
point to a potential infection.
 they inspect files or software before loading them onto a computer or executing them.
 Antivirus software contrasts a potential infection with a list of viruses that are known to
exist.
 For example, once week comprehensive system checks are necessary because some
infections are dormant and can only be detected by this kind of scan.

Defragmentation software:

NAVID SAQIB : 03334259883 3


CHAP 4 SOFTWARE

Defragmentation software is a type of utility program designed to optimize the performance of


a computer's storage drives, typically hard disk drives (HDDs) or solid-state drives (SSDs).
Using a disk with 12 (numbered 0 to 11) sectors per surface, consider the following scenario:

In this example we have three files (1, 2 and 3) stored on track 8 of a disk surface covering all 12
sectors:
Sure, let's consider the scenario where three files, labeled as 1, 2, and 3, are stored on track 8 of
a disk surface, covering all 12 sectors. Let's represent the sectors as S1, S2, S3,..., S12.

File 1 starts at sector S1 and ends at sector S4.


File 2 starts at sector S5 and ends at sector S8.
File 3 starts at sector S9 and ends at sector S12.

Here's how the sectors are allocated for each file:

 File 1: S1, S2, S3, S4


 File 2: S5, S6, S7, S8
 File 3: S9, S10, S11, S12

Each file occupies four consecutive sectors on the disk track, resulting in a total of 12 sectors
being used for the three files.

Since the HDD will now need to make fewer read-write head movements in order to access and
retrieve directories 1 and 3, this clearly enables significantly faster data access and retrieval.
Following the process of defragmentation, track 11 would be vacant.

Back-up software:
Although utilizing a memory stick or portable HDD for manual backups makes sense, it's also a
good idea to use the operating system backup tool. This tool will:
 Permit the creation of a backup schedule for files.
 Perform a backup procedure solely in the event that a file has undergone modifications.

NAVID SAQIB : 03334259883 4


CHAP 4 SOFTWARE

There should be three versions of a file for complete security:


1. the most recent (operational) version kept on the internal SSD or HDD
2. a locally saved backup of the file (that could be kept on a portable SSD, for instance)
3. a distant backup copy kept far away from the machine (cloud storage, for instance).

Security software:
Security software is a general-purpose tool that:
 ensures that any data intercepted is useless without a decryption key by using
encryption and decryption.
 links to further useful programs, such spyware and virus detectors
 shields network interfaces (for instance, by using firewalls)
 supervises software updates (e.g., does the update request originate from a reliable
source).
 oversees user accounts and access control (using user IDs and passwords)

Screensavers:
Programs known as screensavers display both moving and motionless images on the monitor
screen when the computer is idle for a while. They were first created to shield more ancient
CRT (cathode ray tube) displays from "phosphor burn," which occurred when the same image
on the screen stayed on for an extended period of time. For example:
Certain screensavers are frequently used to start helpful background processes that are limited
to operating while the computer is in the "idle" state. As an illustration:
 virus scans
 Applications for distributed computing such as online gaming apps let programs use the
computer's resources only while it's not in use.

Device drivers:
Device drivers are programs that interface with the operating system and convert data into a
form that is comprehensible to peripheral hardware.
A set of data about devices known as descriptors is contained in all USB device drivers; this
enables the USB bus to inquire about the nature of a freshly connected device. Vendor id (VID),
product id (PID), and unique serial numbers are examples of descriptors.

Operating systems:
Operating systems (OS) are software programs that manage computer hardware resources and
provide a platform for running other software applications. They serve as an intermediary
between the hardware and software layers of a computer system, facilitating communication
and coordination between various components. Due to the fact that operating systems are
typically quite large programs, most computers store them on a hard disk drive (HDD) or solid-

NAVID SAQIB : 03334259883 5


CHAP 4 SOFTWARE

state drive (SSD). Because they are too small to fit an HDD, mobile phones and tablets store the
operating system on a solid-state device.
Operating systems perform several essential functions, including:

Human computer interface (HCI):


HCI stands for Human-Computer Interaction. It's a multidisciplinary field concerned with the
design, evaluation, and implementation of interactive computing systems for human use and
with the study of major phenomena surrounding them. It incorporates elements of computer
science, psychology, design, sociology, and other fields to create interfaces that are efficient,
effective, and satisfying for users.
The user interface of GUIs is provided via a variety of devices and technologies. WIMP, or
Windows Icons Menu and Pointing Device, is one of the most widely used and was created
specifically for use with PCs.

NAVID SAQIB : 03334259883 6


CHAP 4 SOFTWARE

Differences between GUI and CLI interfaces:

Interface Advantages Disadvantages


Direct communication exists A variety of commands must
between the user and the be learned by the user in
computer. order to perform basic tasks.

The user is not limited to a Every command must be


set number of selections that entered in, which can be
command line interface (CLI) have been predetermined. time-consuming and error-
prone.
Changes to the computer's
configuration are feasible. Every command needs to be
entered with the appropriate
utilizes a little quantity of format, spelling, and so forth.
computer memory
No commands need to be Compared to a CLI interface,
learned by the user. this kind of interface requires
a lot more RAM on the
It is more intuitive to use; computer.
apps are represented by
icons. The user can only use the
icons that are displayed on
graphical user interface (GUI) Using a pointing device, like a the screen.
mouse, to click on an icon to
start an application is easier need an operating system to
than inputting commands. function, like Windows,

NAVID SAQIB : 03334259883 7


CHAP 4 SOFTWARE

Alternatively, a touch screen which consumes a lot of


can be used, in which case RAMS.
selecting an application
requires only touching the
icon on the screen.

Memory management:
Memory management is a crucial aspect of computer systems, particularly operating systems,
that involves the management of a computer's memory resources.
The tasks performed by memory management include the following:
 This function involves allocating memory to processes or programs when they request it.
Depending on the allocation strategy
 after a process has finished using a portion of memory, the memory manager
deallocates or frees that memory so it can be reused by other processes.
 Memory protection mechanisms prevent unauthorized access to memory locations.
 In systems with virtual memory, address translation is a critical function. It involves
mapping virtual addresses used by processes to physical addresses in RAM or secondary
storage (e.g., disk).
 When a process attempts to access a memory page that is not currently in RAM (e.g.,
due to paging or demand paging), a page fault occurs.
Security management:
Security management involves the systematic approach to managing an organization's security
needs, including the establishment of policies, procedures, and protocols to protect assets,
personnel, and information from various threats.
Effective security management typically involves several key components:

 Risk Assessment: Identifying potential threats and vulnerabilities to the organization's


assets, including physical facilities, personnel, and information systems.
 Security Policies and Procedures: Developing and implementing policies and procedures
to address identified risks and ensure compliance with applicable laws and regulations.
 Access Control: Managing access to physical and digital assets through mechanisms such
as authentication, authorization, and encryption.
 Security Awareness Training: Educating employees and stakeholders about security best
practices and their roles and responsibilities in maintaining security.
 Incident Response: Establishing protocols for responding to security incidents, including
reporting procedures, investigation, and mitigation measures.

NAVID SAQIB : 03334259883 8


CHAP 4 SOFTWARE

 Security Monitoring: Implementing tools and processes to continuously monitor for


security threats and anomalies, such as intrusion detection systems and security
information and event management (SIEM) solutions.
 Compliance Management: Ensuring that security measures align with relevant
regulatory requirements and industry standards.
Hardware peripheral management:
Hardware peripheral management involves the oversight and control of devices connected to a
computer system or network that provide input, output, or storage capabilities. This includes
various peripherals such as keyboards, mice, printers, scanners, external drives, and more. Here
are some key aspects of hardware peripheral management:

 Keeping track of all hardware peripherals deployed within the organization, including
details such as make, model, serial number, and location. Inventory management helps
in asset tracking, maintenance scheduling, and budgeting for replacements or upgrades.
 Ensuring that hardware peripherals are compatible with the computer system's
operating system and have the necessary device drivers installed. Regular updates to
device drivers help resolve compatibility issues, improve performance, and enhance
security.
 Configuring hardware peripherals to suit the specific needs of users or applications. This
may involve adjusting settings for resolution, print quality, scanning parameters, and
other features to optimize performance and usability.
 Implementing regular maintenance schedules to keep hardware peripherals in good
working condition. This includes tasks such as cleaning, calibration, and firmware
updates. Additionally, having procedures in place for troubleshooting common issues
and providing technical support to users ensures minimal disruption to productivity.
 Implementing security measures to protect hardware peripherals from unauthorized
access, tampering, or data breaches. This may involve features such as biometric
authentication for printers or encryption for external storage devices to safeguard
sensitive information.

File management:
File management involves the organization, storage, retrieval, and manipulation of digital files in
a systematic and efficient manner. Here are some key aspects of file management:

 Structuring files and folders in a logical hierarchy to facilitate easy navigation and
retrieval. This may involve organizing files by project, department, date, or any other
relevant criteria. Creating a consistent naming convention for files can also aid in
organization.

NAVID SAQIB : 03334259883 9


CHAP 4 SOFTWARE

 Choosing appropriate storage systems for different types of files based on factors such as
size, access frequency, and security requirements. This could include local storage
devices (e.g., hard drives, SSDs), network-attached storage (NAS), cloud storage services,
or a combination of these.
 Implementing regular backup procedures to protect against data loss due to hardware
failure, human error, or malicious activities such as cyberattacks. Backup strategies may
involve scheduled backups to local and remote locations, as well as periodic testing of
recovery processes to ensure their effectiveness.
 Managing multiple versions of files to track changes, facilitate collaboration, and prevent
data loss. Version control systems, such as Git, Subversion, or file revision history
features in document management software, help track changes over time and enable
users to revert to previous versions if necessary.
 Implementing security measures to control access to files and ensure that only
authorized users have permission to view, edit, or delete them. This typically involves
user authentication mechanisms, access control lists (ACLs), and role-based access
control (RBAC) policies.

Multitasking:
Multitasking refers to the ability to perform multiple tasks or activities simultaneously or in
rapid succession. While the human brain can switch between tasks relatively quickly, true
simultaneous multitasking is limited, and what often appears as multitasking is actually rapid
task-switching. The operating system must continuously check the state of every process under
its control to ensure that multitasking functions well, or that the processes don't conflict with
one another:

 A process receives resources for a predetermined amount of time.


 While the procedure is underway, it may be interrupted.
 The process is assigned a priority so that resources can be allocated to it appropriately
(the risk here is that resources could be starved for a low priority process).

NAVID SAQIB : 03334259883 10


CHAP 4 SOFTWARE

Management of user accounts:


Managing user accounts involves the administration and oversight of accounts that grant
individuals access to computer systems, networks, applications, and resources. Effective
management of user accounts is crucial for maintaining security, ensuring compliance, and
facilitating user productivity. These many user accounts are left to be managed by the operating
system. This enables every user to:

 alter their screen's arrangement and other parameters


 use distinct directories and files, and be responsible for their own management.

Running of applications:
Running applications involves the execution of software programs on a computer system or
device to perform specific tasks or functions. Here are some key aspects of running
applications:

 Users typically launch applications by clicking on their respective icons, selecting them
from a menu, or executing a command in the operating system's terminal or command
prompt.
 Running applications consume system resources such as CPU (Central Processing Unit),
memory (RAM), storage, and network bandwidth.
 Each running application is managed as a separate process by the operating system, with
its own memory space and execution environment.
 Modern operating systems support multitasking, allowing multiple applications to run
concurrently or switch rapidly between tasks.
 Applications can run in either the foreground, where they have user focus and interact
directly with the user, or the background, where they perform tasks invisibly or with
minimal user interaction.

The operating system will be in charge of the application software, which will require access to
system software, including device drivers, in order to function.
As the software runs, various operating system components might need to be loaded into and
out of RAM.

Interrupts:
Interrupts are signals sent by hardware or software to the CPU (Central Processing Unit) to
temporarily suspend its current execution of instructions and handle a specific event or
NAVID SAQIB : 03334259883 11
CHAP 4 SOFTWARE

condition. Interrupts allow the CPU to respond promptly to external events, such as hardware
device requests, errors, or user inputs, without wasting processing time by continuously polling
for events. Disruptions may result from:

 a timing signals
 an input/output procedure (like a printer or disk drive that needs additional data)
 user involvement (e.g., the system is interrupted when the user pushes a key (or keys)
on a keyboard, such as \CTRL>\ALT>).
 a physical issue (like a paper jam in the printer)
 Software faults (such as an inaccessible.exe file that prevents a program from running,
two processes attempting to access the same memory region, or an attempt to divide
by zero) can result in issues.
The microprocessor either continues what it was doing after receiving the interrupt signal or
halts to service the device or program that generated the interrupt. Both the sort of interrupt
and its priority level must be determined by the computer.

As an illustration, consider downloading a file from the internet and simultaneously enjoying
some music from a library. These two functions can coexist thanks to interruptions, giving the
user the impression that both are being done at the same time. In actuality, both roles can be
served because data is moved in and out of memory relatively quickly. All of this can be
accomplished by utilizing a buffer, which is a section of memory. A buffer is a section of
memory used to hold data momentarily.

NAVID SAQIB : 03334259883 12


CHAP 4 SOFTWARE

Types of programming language, translators and integrated development environments


(IDEs):
Programming languages, translators, and integrated development environments (IDEs) are
essential components of software development. Here's an overview of each category:
Programmers interact with computers by using a wide variety of programming languages.
Computers can only "understand" machine code, which is their own language. A program
cannot be "understood" by a computer unless it is translated into machine code.

NAVID SAQIB : 03334259883 13


CHAP 4 SOFTWARE

Programming Languages:
High level language: Designed to be easily understandable by humans and often resemble
natural language syntax. Examples include Python, Java, C++, and JavaScript.
Low level language: Closer to machine code and provide more direct control over hardware
resources. Examples include Assembly language and Machine code.
Scripting language: Interpreted languages used for automating tasks, web development, and
system administration. Examples include JavaScript, Python, Ruby, and PHP etc.

Assembly languages:
Assembly language is a low-level programming language that provides a symbolic
representation of machine code instructions, making it easier for humans to understand and
write code for specific hardware architectures. Those programmers who do, do so for the
following reasons:

NAVID SAQIB : 03334259883 14


CHAP 4 SOFTWARE

 to make use of special hardware


 to write code that doesn’t take up much space in primary memory
 to write code that performs a task very quickly
 to make use of special machine-dependent instructions
Three statements make up the following sample program, which adds two numbers together
and is written in a standard assembly language:

To comprehend this program, the programmer must be aware of the following:


 LDA refers to loading the variable's (First in this case) value into the accumulator.
 STO substitutes the value kept in the accumulator for the value of the variable (in this
example, Sum).
 ADD stands for add value of variable (second, in this case) to value stored in
accumulator.

Translators:
Translators are software tools that convert source code written in a programming language into
machine code or an intermediate representation that can be executed by a computer. There are
several types of translators, each serving a specific purpose in the software development
process. Here are the main types of translators:

A program must be translated into binary before a computer can use it; this is done by a utility
program called a translator.
Compilers:
A compiler translates the entire source code of a program written in a high-level programming
language into machine code or an intermediate representation called object code. The resulting
executable file can be run independently of the compiler. Compilers perform lexical analysis,

NAVID SAQIB : 03334259883 15


CHAP 4 SOFTWARE

syntax analysis, semantic analysis, optimization, and code generation. Examples include GCC
(GNU Compiler Collection), Clang, and Microsoft Visual C++ Compiler.
The high-level program statement:

becomes, upon translation, the following machine code instructions:

Interpreters:
Interpreters are software programs that execute source code directly, translating it into machine
code or intermediate code and executing it line by line or statement by statement. Unlike
compilers, which translate entire source code files into machine code or intermediate
representations before execution, interpreters process code in real-time, translating and
executing each line of code as it is encountered.

Assemblers:
Assemblers are software tools used to translate assembly language code into machine code,
which is directly executable by a computer's CPU (Central Processing Unit). Assembly language
is a low-level programming language that provides a symbolic representation of machine code
instructions, making it easier for programmers to write code for specific hardware architectures.
The program statements written in assembly language are:

becomes, upon translation, the following machine code instructions:

Comparing translators:

NAVID SAQIB : 03334259883 16


CHAP 4 SOFTWARE

Interpreter Compiler
Interpreted languages offer rapid prototyping Compiled programs tend to have better
and development cycles due to the performance since the translation process
immediate feedback loop. optimizes the code.
Code can be executed directly without the Errors are detected before execution,
need for compilation, making it easier to reducing runtime errors.
write and debug.
Interpreted languages are typically more The generated executable is portable and can
portable since the interpreter abstracts away be distributed without requiring the source
hardware differences. code.

NAVID SAQIB : 03334259883 17

You might also like