You are on page 1of 15

UNIT-II

Course: MBA FM

Semester: Ist

Lecturer: Dr. Heena Farooq


Computer Software

The computer software is the collection of data or instruction that tells the
computer how to work. It is a set of programs that enables the computer to
perform a specific task. It has to be “loaded” into the computer’s storage such as
hard drive, memory, Ram, etc. Anything which stores electronically is known as
software.

There are two types of software that exist in the computer system:

1. System Software
2. Application Software
The term software is the opposite of hardware. The hardware describes the
physical part of the computer system, but the software refers to applications,
scripts, and programs that can run on the device.

1. System Software

System Software is the collection of programs which can provide a platform for
other software. There are different types of system software which includes an
operating system such as macOS, Ubuntu, and Microsoft Windows, etc. There
are various types of system software, which are given below:

A. Operating system
The operating system is a system software that manages computer hardware,
software resources, and provides common services for the computer program. It
works as an interface between the user and computer hardware.

Types of Operating system

The operating system performs all the basic jobs like managing file, process, and
memory. It acts as a manager of all resources, so, it is known as a resource
manager. There are various types of the operating system which are given below:

a. Batch operating system


The batch operating system does not interact with the computer directly. There is
an operator which takes similar tasks having the same requirement and group
them into batches. The operator is responsible for sorting the tasks with similar
needs.

Figure: The batch operating system.

b. Time-sharing operating system


In time-sharing operating system, every task is given some time to execute, so
that the entire job works smoothly. These systems are also known as the
multitasking systems. The time that every task gets to execute is known as
quantum. The time-sharing system uses CPU scheduling and multiprogramming
to provide every user with a small portion of the time-shared computer. This
system allows every user with a small portion of the time-shared computer.
Figure: Time-sharing operating system.

c. Distributed operating system


The distributed operating system is a recent advancement in the world of
computer technology. These distributed systems referred as loosely coupled. The
processor of this system differs in size and function.

Figure: The Distributed Operating System.


d. Real-time operating system
This type of operating system serves Real-time systems. The time interval needs
to process and respond to inputs is very small. This time interval is called
response time. There are two kinds of Real-time operating system which are given
below:

i. Hard Real-time system


The time constraints are very strict in the hard-Real-time operating system. Even
the shortest possible delay is not acceptable in these systems.

ii. Soft Real-time system


The time constraints are less strict in these types of operating systems.

e. Network operating system


The Network operating systems run on the server and provide the capability to
manage the data, users, groups, security, applications, and other networking
functions. All the users are well aware of the underlying configuration in Network
Operating System. These systems allow shared access of files, printers, security
applications and other networking functions over a small private network. The
Network Operating system is also known as a tightly coupled system.

Figure: The Network Operating System


Functions of Operating system:

The operating system has three main functions which are given below:
1. Manage computer resources, such as the central processing unit, disk drives,
and printers.
2. Establish the User interface.
3. The Operating system executes and provides services for application software.

Device Driver
The Device driver is the computer program that operates or controls a particular
type of device which is attached to the computer. The device drivers are
hardware-dependent and operating-system-specific.

2. Application software

The Application software is designed to perform a group of coordinated


functions, tasks, or activities for the benefit of the user. There are various types
of application software such as a word processor, a spreadsheet, an accounting
application, a web browser, an email client, a media player, a file viewer, etc. The
application software is a program or group of programs which is designed for the
end-users. Some application softwares are given below:

A. Word processing software


The word processing system is used to manipulate the task or jobs and apply the
basic designs to our pages. It is a computer program or device that provides input,
editing, formatting, and output of text with an additional feature.

This software enables our write text, store it electronically, display it on the
screen, modify it by entering commands and characters from the keyboard, and
print it.

B. Spreadsheet software
The spreadsheet software is defined as a type of computer program which helps
the user to perform numerical functions and analyse numbers through a
computerized version of accounting worksheet.

C. Desktop publishing software


The desktop publishing software is the creation of documents using page layout
software on a personal computer. There are several types of desktop publishing
software such as Adobe In design, Microsoft Publisher, etc. This software assists
in the creation of different forms of online content.
Generations of Computer Languages
Computer languages have been developed over the year in a phased manner. Each
phase has made the computer language more user-friendly, easier to use and more
powerful. Each phase in the development of computer languages can be referred
to as a generation. The computer languages in terms of their performance,
reliability and robustness can be grouped into five different generations,

1. First generation languages (1GL)


2. Second generation languages (2GL)
3. Third generation languages (3GL)
4. Fourth generation languages (4GL)
5. Fifth generation languages (5GL)

1. First Generation Language (Machine language)

The first-generation computer language is also called low-level computer


language because these were used to program the computer system at a very low
level of abstraction. i.e. at the machine level. The machine language also referred
to as the native language of the computer system is the first-generation computer
language. In the machine language, a programmer only deals with a binary
number.

Advantages of first-generation language

• They are translation free and can be directly executed by the computers.
• The programs written in these languages are executed very speedily and
efficiently by the CPU of the computer system.
• The programs written in these languages utilize the memory in an efficient
manner because it is possible to keep track of each bit of data.

2. Second Generation language (Assembly Language)

The second-generation computer language also belongs to the category of low-


level-computer language. The second-generation language comprises assembly
languages that use the concept of Mnemonics for writing the program. In the
assembly language, symbolic names are used to represent the opcode and the
operand part of the instruction.
Advantages of second-generation language

• It is easy to develop, understand and modify the program in these languages


as compared to those developed in the first-generation computer language.
• The programs written in these languages are less prone to errors and
therefore can be maintained with a great case.

3. Third Generation languages (High-Level Languages)

The third-generation computer languages were designed to overcome the various


limitations of the first- and second-generation computer languages. The
languages of the third and later generation are considered as a high-level language
because they enable the programmer to concentrate only on the logic of the
programs without considering the internal architecture of the computer system.

Advantages of third generation computer language

• It is easy to develop, learn and understand the program.


• As the program written in these languages are less prone to errors, they are
easy to maintain.
• The program written in these languages can be developed in very less time
as compared to the first- and second-generation language.

Examples: FORTRAN, ALGOL, COBOL, C++, C

4. Fourth generation language (Very High-level Languages)

The languages of this generation were considered as very high-level computer


languages required a lot of time and effort that affected the productivity of a
programmer. The fourth-generation computer languages were designed and
developed to reduce the time, cost and effort needed to develop different types of
software applications.

Advantages of fourth generation languages

• These computer languages allow the efficient use of data by implementing


the various database.
• They require less time, cost and effort to develop different types of
software applications.
• The program developed in these languages are highly portable as compared
to the programs developed in the languages of other generation.
Examples: SOL, CSS, coldfusion

5. Fifth generation language (Artificial Intelligence Language)

The computer languages of this generation mainly focus on constraint computer.


The major fields in which the fifth-generation computer language are employed
are Artificial Intelligence and Artificial Neural Networks

Advantages of fifth generation languages

• These languages can be used to query the database in a fast and efficient
manner.
• In this generation of language, the user can communicate with the
computer system in a simple and easy manner.

Examples: Mercury, Prolog, OPS5

Functions of Operating System:


An operating system is a program that acts as an interface between the user and
the computer hardware and controls the execution of all kinds of programs.
Following are some of the important functions of an operating System.
•Memory Management
•Processor Management
•Device Management
•File Management
•Security
•Control over system performance
•Job accounting
•Error detecting aids
•Coordination between other software and users

Memory Management
Memory management refers to management of Primary Memory or Main
Memory. Main memory is a large array of words or bytes where each word or
byte has its own address. Main memory provides a fast storage that can be
accessed directly by the CPU. For a program to be executed, it must be in the
main memory. An Operating System does the following activities for memory
management:
•Keeps tracks of primary memory, i.e., what part of it are in use by whom, what
part are not in use.
•In multiprogramming, the OS decides which process will get memory when
and how much.
•Allocates the memory when a process requests it to do so.
•De-allocates the memory when a process no longer needs it or has been
terminated.

Processor Management
In multiprogramming environment, the OS decides which process gets the
processor when and for how much time. This function is called process
scheduling. An Operating System does the following activities for processor
management:
•Keeps tracks of processor and status of process. The program responsible for
this task is known as traffic controller.
•Allocates the processor(CPU) to a process.
•De-allocates processor when a process is no longer required.

Device Management
An Operating System manages device communication via their respective
drivers. It does the following activities for device management:
•Keeps tracks of all devices. The program responsible for this task is known as
the I/O controller.
•Decides which process gets the device when and for how much time.
•Allocates the device in the most efficient way.
•De-allocates devices.

File Management
A file system is normally organized into directories for easy navigation and usage.
These directories may contain files and other directions.
An Operating System does the following activities for file management:
•Keeps track of information, location, uses, status etc. The collective facilities are
often known as file system.
•Decides who gets the resources.
•Allocates the resources.
•De-allocates the resources.

Other Important Activities


Following are some of the important activities that an Operating System
performs:
•Security--By means of password and similar other techniques, it prevents
unauthorized access to programs and data.
•Control over system performance--Recording delays between request for
a service and response from the system.
•Job accounting--Keeping track of time and resources used by various jobs and
users.
•Error detecting aids--Production of dumps, traces, error messages, and other
debugging and error detecting aids.
•Coordination between other software and users--Coordination and
assignment of compilers, interpreters, assemblers and other software to the
various users of the computer systems.

Types of Operating System


Operating systems are there from the very first computer generation and
they keep evolving with time. In this chapter, we will discuss some of the
important types of operating systems which are most commonly used.

Batch operating system

The users of a batch operating system do not interact with the computer
directly. Each user prepares his job on an off-line device like punch cards and
submits it to the computer operator. To speed up processing, jobs with similar
needs are batched together and run as a group. The programmers leave their
programs with the operator and the operator then sorts the programs with
similar requirements into batches.
The problems with Batch Systems are as follows –
Lack of interaction between the user and the job.
CPU is often idle, because the speed of the mechanical I/O devices is
slower than the CPU. Difficult to provide the desired priority.

Time-sharing operating systems

Time-sharing is a technique which enables many people, located at various


terminals, to use a particular computer system at the same time. Time-sharing or
multitasking is a logical extension of multiprogramming. Processor's time which
is shared among multiple users simultaneously is termed as time-sharing.

The main difference between Multiprogrammed Batch Systems and Time-


sharing Systems is that in case of Multiprogrammed batch systems, the objective
is to maximize processor use, whereas in Time-sharing Systems, the objective is
to minimize response time.
Multiple jobs are executed by the CPU by switching between them, but the
switches occur so frequently. Thus, the user can receive an immediate
response. For example, in a transaction processing, the processor executes each
user program in a short burst or quantum of computation. That is, if n users are
present, then each user can get a time quantum. When the user submits the
command, the response time is in few seconds at most.

The operating system uses CPU scheduling and multiprogramming to provide


each user with a small portion of a time. Computer systems that were designed
primarily as batch systems have been modified to time- sharing systems.
Advantages of Timesharing operating systems are as follows –
Provides the advantage of quick response.
Avoids duplication of software.
Reduces CPU idle time.

Disadvantages of Time-sharing operating systems are as follows –


Problem of reliability.
Question of security and integrity of user programs and data.
Problem of data communication.

Distributed operating System

Distributed systems use multiple central processors to serve multiple


real-time applications and multiple users. Data processing jobs are
distributed among the processors accordingly.

The processors communicate with one another through various


communication lines (such as high-speed buses or telephone lines). These are
referred as loosely coupled systems or distributed systems. Processors in a
distributed system may vary in size and function. These processors are
referred as sites, nodes, computers, and so on.

The advantages of distributed systems are as follows −

With resource sharing facility, a user at one site may be able to use the resources
available at another.

• Speedup the exchange of data with one another via electronic mail.
If one site fails in a distributed system, the remaining sites can potentially
continue operating.
• Better service to the customers.
Reduction of the load on the host computer.
Reduction of delays in data processing.

Network operating System

A Network Operating System runs on a server and provides the server the
capability to manage data, users, groups, security, applications, and other
networking functions. The primary purpose of the network operating system is
to allow shared file and printer access among multiple computers in a network,
typically a local area network (LAN), a private network or to other networks.

Examples of network operating systems include Microsoft Windows Server


2003, Microsoft Windows Server 2008, UNIX, Linux, Mac OS X, Novell
NetWare, and BSD.
The advantages of network operating systems are as follows –
Centralized servers are highly stable.
Security is server managed.
Upgrades to new technologies and hardware can be easily integrated into the
system.
• Remote access to servers is possible from different locations and types of
systems.
The disadvantages of network operating systems are as follows –
High cost of buying and running a server.
Dependency on a central location for most operations.
Regular maintenance and updates are required.

Real Time operating System

A real-time system is defined as a data processing system in which the time


interval required to process and respond to inputs is so small that it controls
the environment. The time taken by the system to respond to an input and
display of required updated information is termed as the response time. So in
this method, the response time is very less as compared to online processing.

Real-time systems are used when there are rigid time requirements on the
operation of a processor or the flow of data and real-time systems can be used
as a control device in a dedicated application. A real-time operating system
must have well-defined, fixed time constraints, otherwise the system will fail.
For example, Scientific experiments, medical imaging systems, industrial
control systems, weapon systems, robots, air traffic control systems, etc.

There are two types of real-time operating systems.

Hard real-time systems

Hard real-time systems guarantee that critical tasks complete on time. In hard
real-time systems, secondary storage is limited or missing and the data is stored
in ROM. In these systems, virtual memory is almost never found.

Soft real-time systems

Soft real-time systems are less restrictive. A critical real-time task gets
priority over other tasks and retains the priority until it completes. Soft
real-time systems have limited utility than hard real-time systems. For
example, multimedia, virtual reality, Advanced Scientific Projects like
undersea exploration and planetary rovers, etc.

BOOTING

Booting is the process of loading the operating system

Why is Booting Required?


Hardware doesn’t know where the operating system resides and how to load it.
Need a special program to do this job – Bootstrap loader.
E.g. BIOS – Boot Input Output System.
Bootstrap loader locates the kernel, loads it into main memory and starts its
execution.
In some systems, a simple bootstrap loader fetches a more complex boot program
from disk, which in turn loads the kernel.

How Boot process occurs?


Reset event on CPU (power up, reboot) causes instruction register to be loaded
with a predefined memory location. It contains a jump instruction that transfers
execution to the location of Bootstrap program. This program is form of ROM,
since RAM is in unknown state at system startup. ROM is convenient as it needs
no initialization and can’t be affected by virus.

Tasks performed at boot up


✓ Run diagnostics to determine the state of machine. If diagnostics pass, booting
continues.
✓ Runs a Power-On Self-Test (POST) to check the devices that the computer will
rely on, are functioning.
✓ BIOS goes through a preconfigured list of devices until it finds one that is
bootable. If it finds no such device, an error is given and the boot process stops.
✓ Initializes CPU registers, device controllers and contents of the main memory.
After this, it loads the OS.
✓ On finding a bootable device, the BIOS loads and executes its boot sector. In case
of a hard drive, this is referred to as the master boot record (MBR) and is often not
OS specific.
✓ The MBR code checks the partition table for an active partition. If one is found,
the MBR code loads that partition's boot sector and executes it.
✓ The boot sector is often operating system specific, however in most operating
systems its main function is to load and execute a kernel, which continues startup.
✓ If there is no active partition or the active partition's boot sector is invalid, the
MBR may load a secondary boot loader and pass control to it and this secondary
boot loader will select a partition (often via user input) and load its boot sector.

✓ Examples of secondary boot loaders


➢ GRUB – GRand Unified Bootloader
➢ LILO – LInux LOader
➢ NTLDR – NT Loader

You might also like