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

CH - 10 - Computer Software

The document discusses different types of operating systems used in various computers. It describes system software including the BIOS, operating systems and utility software. It explains operating systems are used to control hardware resources and manage files and applications. The summary provides an overview of operating system types based on the device, architecture, and proprietorship including examples for embedded systems, desktops, servers, mainframes, and differences between proprietary, open source and machine dependent/independent operating systems.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
70 views

CH - 10 - Computer Software

The document discusses different types of operating systems used in various computers. It describes system software including the BIOS, operating systems and utility software. It explains operating systems are used to control hardware resources and manage files and applications. The summary provides an overview of operating system types based on the device, architecture, and proprietorship including examples for embedded systems, desktops, servers, mainframes, and differences between proprietary, open source and machine dependent/independent operating systems.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 48

Computer Software

Components of a Computer
• Hardware
• Refers to the physical components

• Software
• Refers to the code or program that makes the computer functional

• System Software
• Software that controls the functioning of the system
• Ex. Operating System, device drivers, utility software

• Application Software
• Software that is used to solve real world problems
Software

System Software
Application
[OS, Device Drivers, Software
Utility Software]
System Software
Operating Systems
Operating Systems
• Operating System
• A software that controls the operation of a computer and makes
it functional.
• Set of system programs that control and coordinate the
operation of a computer system.
• Consists of two parts
• BIOS (Basic Input Output System) – Stored in ROM
• The part that provides other services – Stored in hard disk
Major Functionalities
• Starting the operation of a computer

• Storing users’ programs in memory and scheduling them for execution in an orderly
fashion.

• Invoking programming language translator programs when necessary

• Controlling input and output operations.

• Managing the use of main memory

• Managing and manipulating (i.e., editing) of users’ files.

• Easy interaction between users and computers.

• Providing security to users’ jobs and files.

• Keeping accounts of resource usage.


BIOS
• Basic Input Output System
• A small program to start and control a computer.
• Stored in ROM

• When a computer is switched on, BIOS instructions are retrieved and


start executing.
• It first tests the memory and displays on the screen the available
memory.
• Now it prepares the computer to start interpreting and executing
users’ programs.
• This process is called booting of the system.
Major Functions of BIOS
• Interpreting your keystrokes on the keyboard

• Storing data typed by you in the main memory.

• Controlling the display and the printer.

• Enabling input and output of data via other ports.

• Enabling to run new devices by adding new programs called device drivers

• BIOS is a firmware
• Software, which is permanently stored in a ROM and cannot be modified by a user
Functions of an OS
• An OS is a program which is permanently stored in a part of the main memory
and is protected from accidental or intentional intrusion by users’ programs.

• The core of OS is called kernel

• The main function of an OS is to control and optimally use the resources of a


computer system.

• It allocates memory to various programs being executed in a computer,


monitors their progress and schedules the use of CPU to these programs.
• Resource Management

• Command processing
• interpreting users’ commands and executing these commands.

• Detection of errors in software or hardware

• Managing power consumption.


• Sleep down – Most functions are shut down
• Managing Files
• Various storage devices connected to the PC are given single letter codes to indicate to the
OS where the file is stored (Drive).
• Files are organized in folders.
• The type of file is identified by the extension.
• The OS manages directories of files and retrieves specified files when the path is specified.
• Ghost Copy: Maintaining a copy of deleted files in recycle bin so that users can recover it, if
required.

• Utilities
• OS supports utilities that helps to maintain the computer and simplify the jobs of the
processor
System Software
Utility Software
Utility Programs
• Disk Formatting
• The process of making a disk ready for storage.
• Formatting allocates addresses to sectors which can be used to reserve space for files.
• Formatting creates a directory of the locations of each file stored in the disk. This is
called a File Allocation Table (FAT).
• When a file is saved on a disk, the OS stores it in a group of sectors called clusters
which is the smallest storage unit which is addressable by a computer.
• Before saving a file, the OS examines the FAT to find empty clusters.
• After storing, FAT updates the beginning and end addresses of the stored file.
• When a file is searched, OS identifies it using FAT.
• Defragging
• As new files are added to the disk, clusters are progressively occupied.
• If adjacent clusters are available to store the file, storing as well as retrieval is fast.
• If neighboring clusters are occupied, a file will be stored in clusters scattered all over
the disk.
• Defragging tries to rearrange fragments to reduce scattering.
• Disk Scanner
• When a disk is manufactured, there may be defects in some parts, thereby making
some sectors unusable.
• The manufacturer will scan the disk and mark the defective sectors electronically as
bad.
• When a file is stored, the sectors marked defective are left vacant.
• Sectors may become bad with continuous use of a disk.
• A disk scanner utility is run to detect such sectors and if a part of a file is stored in
such a sector, it is retrieved and stored in a good sector.
Types of Operating Systems
Operating Systems

Device Type Architecture Proprietorship

Embe Han Mult Mai


dded Des Machine Machine
Proce d
ktop
iuse nfra
Independent
Proprietary Open Source
ssors held r me dependent

Tizen Symb Wind


Wind
, ian,
ows,
ows Windows
Auto Andr
Linu
Serve iOS Windows Linux
moti
ve 7
oid,
iOS
x
r,
Unix
, Linux
Types of Operating Systems
• Embedded Processor
• OS used by embedded computers such as in washing machines and medical
equipments.
• Small
• Limited functions
• Stored in a ROM
• Provides simple interface to the outside world.
• OS in hand-held computers and smart phones
• Built in OS
• Stored in ROM
• Similar to BIOS
• Provide a better graphical user interface
• Ex. Android, iOS
• OS in Desktop PCs
• Very little security
• Very good graphical user interface
• MS-DOS
• Earliest single user OS
• Windows Operating System
• More powerful and user friendly
• Good GUI
• Supports multitasking
• The property of allowing the user to use multiple processes or tasks
simultaneously.
• Complex scheduling algorithms
• Multiuser System OS
• Allows many users to simultaneously use a single computer.
• Server: A computer used by multiple persons
• Client: An individual user computer connected to a server
• Ex. Microsoft windows server 2016, Unix
• Major requirements of a multiuser system
• Each of the user’s programs has to be protected from the other’s
program and run independently on the computer.
• Good security should be provided.
• Unauthorized access to data should be prevented.
• OS must allow multiprogramming
• Programs are allowed to be run by multiple users simultaneously using
scheduling.
• Optimized use of CPU.
• OS used with Mainframe computers
• Most complex
• Highly secure
• Very reliable
• Efficient
• Supports multiprogramming
• Time sharing OS
• Each user is given memory space in main memory and a time slice on CPU during
which his program is executed. At the expiry of this time slice, the next user’s
program is taken up for execution.

• Mainframes are also used as batch systems.


• In a batch system, a batch of users’ programs are fed to the computer which processes
them using multiprogramming and optimally uses the computer’s resources and
completes processing the batch of programs in minimum time.
• The throughput of the computer is thus maximized.
• Machine Dependent OS
• A machine dependent OS is one which is designed to run only on
a specific manufacturer’s computers.
• Ex. Mac OS

• Machine Independent OS
• An OS that can run on a variety of computers
• Ex. Linux, Microsoft Windows OS
• Proprietary OS
• A proprietary OS is owned by a company which distributes only the binary (or object) code of the OS.
• Licensed code
• Ex. Windows

• Open Source OS
• Written in a high level language such as C
• Distributed free on the Internet.
• No license is needed.
• Portable to many systems.
• Inexpensive
• More reliable and secure
• Not guaranteed or supported by any organization
• Ex. Linux
Summary
Type of Computer OS Type Remarks/Examples

Embedded Computer ROM based, small size, limited functions More like a BIOS

Hand-held Computer Simple I/O, Use of touch screen Android, iOS

Desktop PC Good GUI, Multitasking Windows, Mac OS, Linux

Server Multiuser, Client/server, Multi-programmed, Windows Server 2016, Linux, Unix


Good Security
Mainframe Multiuser, multi programmed, time shared, z/VM of IBM
reliable, very efficient, good security

Desktop PC/Server Machine independent and open source Linux

Desktop PC Machine dependent and Proprietary Windows 10, Mac OS

Server Machine dependent and Proprietary HP UX11iv3, Windows 2016

Mainframe Machine dependent and Proprietary IBM z/VM


Programming Languages
Programming Languages

High Level
Assembly Level Machine Level
Languages
Languages Languages
[C++, C, Java]
• Programming Languages
• Objective: making it easy for a large number of persons to use computers
without the need to know in detail the internal structure of a computer.
• Algorithm : Detailed systematic step by step solution to a problem
• Program : Algorithm translated in programming language.
• High level machine independent programming languages.
• Structure of the programming language would not depend on the internal
structure of the computer.
Assembly Language
• Mnemonic codes are used to represent the operations performed by the computer.

• Strings of characters are used to represent addresses of locations in computer memory.

• Language is based on the internal structure of the machine => machine dependent language.

• Each assembly language instruction is translated to one machine language instruction.

• Minimal number of instructions.

• Reduced execution time.

• Writing programs is difficult.

• Code optimization is important.

• Used in embedded processors.


• Language Translators
• High level languages are translated using language translators.
• 2 types
• Interpreters
• Compilers
• Interpreter
• Takes each statement of the high-level language, translates it and immediately
executes it.
• Interpreters are easy to use but the translated programs’ execution is slow.

• Compiler
• Scans the whole program and translate it into an equivalent machine language
program.
• A compiler is a complex program.
• But the compiled machine code takes lesser time to execute as compared to an
interpreted program
Classification of Programming (HLL) Languages
• Categories
• Procedural Languages
• Non-procedural Languages
• Problem oriented Languages
• Object Oriented Languages
• Platform Independent Languages
• Scripting Languages
Classification of High Level Languages
High Level Languages

Non- Problem Object Platform


Procedural Scripting
Procedural Oriented Oriented Independent
Languages Languages
Languages Languages Languages Languages

Matlab, C++, Java,


FORTRAN SQL, Shell, Java
Mathemat Python, Java
, COBOL, C PROLOG Script
ica C#
Procedural Languages
• They have as their starting point an algorithm to solve the problem.

• They provide a methodology to break up a large job into a number of tasks and
programming the tasks independently as functions or subroutines.

• Provide easier debugging

• Provide reusability of code through subroutines

• Also known as imperative languages.

• Ex. FORTRAN, COBOL, C


• Procedural Languages have
• Facilities to specify data elements such as real number, integers, bits,
characters
• Facilities to use data structures such as arrays, matrices, stacks, records, sets,
strings of characters, lists, and trees.
• Control structures to sequence operations to be performed. Eg. if … else
• Repetition structures that carry out a group of statements again and again
while a condition is true.
• Statements to input and output data.
• Syntax and semantic rules.
• Drawbacks of Procedural Languages
• Insufficient reusability of code
• Subroutines and functions are too rigid in requiring a specific
data type to be used and data to be passed to them in a rigid
order.
• Led to the emergence of object oriented programming
languages
Non-Procedural Languages
• They solve a problem by applying a set of functions to the initial variables in specific ways to get the
answer.

• Express specifications of a program to be solved

• Instructions on how to solve the problem is not required.

• Ex. LISP, Haskell

• Rule based or Logic Programming Languages

• A logic program is expressed as a set of atomic sentences (known as facts) and Horn clauses (if then
rules).

• A query is then posed.

• Execution of the program solves the query.

• Ex. PROLOG, Query languages such as SQL


Object Oriented Languages
• Building programs using a library of reusable components.

• The concept of subroutine/functions is extended to that of an object.

• An object models a complex real world or abstract object.

• An object is modeled by a collection of data structures and a set of procedures that use these
data structures.

• A program consists of a collection of objects, each object providing a service when it is


invoked and all the objects cooperating to get the job done.

• Objects are invoked by sending messages to them and they return messages when the job is
done.

• Ex. SmallTalk, C++, Java, C#

• Advantages
• enables a programmer to remain close to the conceptual, higher level model of the real-world
problem.
Problem Oriented Languages
• Designed to solve a narrow class of problems.

• Ready-made procedures are pre-programmed.

• The user merely presents the data in a flexible “language”.

• Ex. Matlab, Mathematica


Platform Independent Languages
• Languages that can run on any OS and on variety of machines.

• Platform independence is achieved using virtual machines.


• Ex. Java Virtual Machines

• Compilers generate object code from source code.

• Virtual machines generate machine code from the object code.


• Applets
• Small application programs (agents or objects to perform some
services) which run on a browser.
• Applets are developed using Java
Scripting Languages
• Scripting languages have facilities to combine components written in other programming languages
to perform a complex task.

• They can be thought of as gluing languages that glue together components.

• They are not type specific i.e variables need not be declared with data types.

• Ex. Unix Shell, Java Script, VB Script

• Shell script
select | grep language | wc

• The program select reads the given text that is currently on the display and prints the text on its
output.

• grep - prints as its output the lines containing the word “language”.

• wc - counts the number of lines on its input.


Classification of PL based on Applications
Programming Languages

Business Data Scientific System Scripting AI


Publishing
Processing Applications Programs Programs Applications

Latex, MS
SQL, Java, FORTRAN C, C++, LIST,
Shell, Perl Word,
Python ,C Ada Prolog Coral Draw
• Business Data Processing
• Large files should be processed
• Spread sheet based languages for answering what-if type
questions.
• Query languages to access data from databases and manipulate
them.
• Fourth generation languages (4GL)
• Ex. SQL, Java, Python
• Scientific Applications
• Require numeric intensive computing.
• Ex. FORTRAN, C

• System Programs
• Languages to develop compilers and operating systems.
• Ex. C, C++, Ada
• Scripting Programs
• Combining program components to build large programs.
• Languages have been developed to specify such tasks and sequence them to
execute automatically.
• Ex.
• Commands to backup files at specified times.
• Sending replies automatically to email messages.
• Invoking certain processes automatically when some conditions are satisfied.
• Ex.
• Shell, PERL (Practical Extraction and Report Language)
• Artificial Intelligence (AI) Applications
• characterized by algorithms which search large databases for specific
patterns.
• Ex. Chess playing programs
• LIST, Prolog

• Publishing
• Ex. Latex, Microsoft Word

You might also like