Chapter – 1 Chapter – 1 Introduction Introduction
Oct 30, 2014
Chapter – 1Chapter – 1
IntroductionIntroduction
IntroductionIntroduction• What is system software?• Goals of system software• System programs and System programming• The wonderland of System Software• Views of System Software
What is system software?• To know system software the first task is known To know system software the first task is known
what is system for examplewhat is system for example• To a school or college student,the computer system To a school or college student,the computer system
is equipment that runs a browser for the internetis equipment that runs a browser for the internet• To a user of an application package such as To a user of an application package such as
accounting package the computer system is simply accounting package the computer system is simply facilate use of packagesfacilate use of packages
• To a programmer the system is tool for developing To a programmer the system is tool for developing programams.programams.
What is system software?• In short every one has their own opinion about systemIn short every one has their own opinion about system
• Basically computerized system can be divided into 2 Basically computerized system can be divided into 2 partsparts
• The electronic circuit that constitute computer The electronic circuit that constitute computer hardwarehardware
• The system software that enables a user to satisfy their The system software that enables a user to satisfy their computer needs by provide them effective computer needs by provide them effective functionality which is helpful to use computerized functionality which is helpful to use computerized systemsystem
What is system software?• As we discuss earlier for computer system As we discuss earlier for computer system
everyone has their own view so we generate everyone has their own view so we generate abstract views as under givenabstract views as under given
User interfaceUser interface
Application programsApplication programs
Operating systemOperating system
User interfaceUser interface
Language processorsLanguage processors
Operating systemsOperating systems
Computer hardware Computer hardware
Abstract views of a computer system,Abstract views of a computer system,• User interface: the user interface accepts User interface: the user interface accepts
user’s command for using services provided user’s command for using services provided by os and initiates execution of one or more by os and initiates execution of one or more programs to fulfill the command. the user programs to fulfill the command. the user interface is either command line interface, interface is either command line interface, as in dos it accepts the command on prompt as in dos it accepts the command on prompt and on windows it works as a graphical user and on windows it works as a graphical user interface.interface.
Abstract views of a computer system, Abstract views of a computer system, • Application programs or language processors:Application programs or language processors:
This programs either implement the user’s This programs either implement the user’s application or assist in development of a programapplication or assist in development of a program
• Operating system:Operating system:
it controls the operation of the computer and provide it controls the operation of the computer and provide a set of services for executing programs and using a set of services for executing programs and using resources of the computer.resources of the computer.
Features of System softwareFeatures of System software• Basically system software has two featuresBasically system software has two features
• One is it facilate execution of programs and One is it facilate execution of programs and use of resources in a computer system.use of resources in a computer system.
• Other is it is layer based approach where Other is it is layer based approach where each layer is communicate with other each layer is communicate with other according to abstract view of system.according to abstract view of system.
Goals of System softwareGoals of System software• The fundamental goals of system software are as The fundamental goals of system software are as
given beloved.given beloved.
- User convenience: provide convenient methods User convenience: provide convenient methods of using computer systemof using computer system
- Efficient use: ensure efficient use of computer Efficient use: ensure efficient use of computer resourcesresources
- Non-interference: prevent interference in the Non-interference: prevent interference in the activities of its usersactivities of its users
User convenienceUser convenience• It provide convenient methods of using It provide convenient methods of using
computer systems for examplescomputer systems for examples
Facet Examples
Fulfillment of necessity Ability to execute programs, use the file system
Good service Speedily response to computer system
User friendly interface Easy to use command like GUI
New programming model Concurrent programming
Web oriented features Meant to set up web oriented servers
Evolution Add new features, use new computer technology
Efficient UseEfficient Use• Ensure efficient use of computer resourcesEnsure efficient use of computer resources
• Concentrates on cpu,memory,disks and other Concentrates on cpu,memory,disks and other io devicesio devices
• Each programs has allotted some resources Each programs has allotted some resources without it can not executewithout it can not execute
• To achieve good efficiency the system To achieve good efficiency the system software must minimize the waste of software must minimize the waste of resources by programs and own overheadresources by programs and own overhead
Non-interferenceNon-interference
• System must prevent illegality use of System must prevent illegality use of programs it mean without permission no one programs it mean without permission no one cab able to access the programcab able to access the program
• System must focus on isolationSystem must focus on isolation
• The authentication and authorization The authentication and authorization concepts is must for computerize systemsconcepts is must for computerize systems
• This activity is possible by using This activity is possible by using sophisticated authentication techniquesophisticated authentication technique
System programmingSystem programming• System software is collection of programsSystem software is collection of programs
• Each program is called system program which Each program is called system program which plays a role in the effective servicing of usersplays a role in the effective servicing of users
• Servicing includes the all activities in the Servicing includes the all activities in the creation of programscreation of programs
• System programming is the set of techniques System programming is the set of techniques used to realizes these design goalsused to realizes these design goals
System programmingSystem programming• The program should function correctly under all The program should function correctly under all
conditionsconditions
• The program should be effective in computer The program should be effective in computer environmentenvironment
• It also have 2 goalsIt also have 2 goals
- First is it is portableFirst is it is portable
- Second is it should be able to envolve to provide Second is it should be able to envolve to provide new functionalities and adopt new technologiesnew functionalities and adopt new technologies
The wonderland of System SoftwareThe wonderland of System Software• Programs are executed on based of resources like Programs are executed on based of resources like
cpu,memory,io devices but in some case program cpu,memory,io devices but in some case program A be preferred over program BA be preferred over program B
• The purpose of studying system software is The purpose of studying system software is which of two should be preferred in a specific which of two should be preferred in a specific situationsituation
• The following aspects effect on system software The following aspects effect on system software which provide solution about referencing which which provide solution about referencing which program from 2 at same time.program from 2 at same time.
The program development and The program development and production environmentsproduction environments
• In program development first user run program on In program development first user run program on trial base to rectify the bugstrial base to rectify the bugs
• In production environments the user executes on In production environments the user executes on one or more sets of data each to produce useful one or more sets of data each to produce useful results.results.
• A Compiler and interpreter are 2 system programs A Compiler and interpreter are 2 system programs that can use to execute program in these that can use to execute program in these environments.environments.
Making Software PortableMaking Software Portable• Portable mean program must be able to run Portable mean program must be able to run
on any environmenton any environment
• The notion of a virtual machine provides a The notion of a virtual machine provides a convenient method of implementing convenient method of implementing portabilityportability
• For exampleFor example
Software SSoftware S
Virtual machine Virtual machine layer for clayer for c
Software SSoftware S
S run on computer c S is ported to c
Realizing Benefit of internetRealizing Benefit of internet• A program should be able to invoke program located A program should be able to invoke program located
in remote computers and integrate their result in its in remote computers and integrate their result in its own computationown computation
• A user should be able to download an unknown A user should be able to download an unknown program to her/his computer and execute it without program to her/his computer and execute it without dangerdanger
• A web server should be able to provide time varying A web server should be able to provide time varying data also called dynamic content to a large number data also called dynamic content to a large number of clientof client
The Quick and Dirty programmingThe Quick and Dirty programming• When users wishes to perform computational When users wishes to perform computational
task it becomes time consuming for systemtask it becomes time consuming for system
• So in that case a user may desire a quick and So in that case a user may desire a quick and dirty solution is needed for system which dirty solution is needed for system which provide flexibility to solve errorsprovide flexibility to solve errors
• The solution should fulfill users computational The solution should fulfill users computational need.need.
The Embedded system environmentThe Embedded system environment• Embedded system applications deviated from Embedded system applications deviated from
trend towards more intelligence in computer trend towards more intelligence in computer hardware and software.hardware and software.
• In this system a computer system controls the In this system a computer system controls the operation of an equipment such as audio,cell operation of an equipment such as audio,cell phone etcphone etc
• But embedded system has limitations their size But embedded system has limitations their size is fixed so they have lack of resources so it is is fixed so they have lack of resources so it is difficult to compiledifficult to compile
• To solve this problem special compiler are To solve this problem special compiler are needed.needed.
Dynamic specification, flexibility Dynamic specification, flexibility and adaptive softwareand adaptive software
• The term dynamic mean there are special The term dynamic mean there are special features are implemented during execution time features are implemented during execution time of programof program
• It creates program execution time overhead for It creates program execution time overhead for example define runtime array with size of 100example define runtime array with size of 100
• Flexibility is the capability to broaden the Flexibility is the capability to broaden the choice in specification or decision according to choice in specification or decision according to need of user. for example user define data typesneed of user. for example user define data types
Adaptive SoftwareAdaptive Software• Adaptive software is one that adjusts its own Adaptive software is one that adjusts its own
features and behavior according to environmentsfeatures and behavior according to environments• It is combination of dynamic and flexibility of It is combination of dynamic and flexibility of
system.system.• For example language processors which generally For example language processors which generally
convert user language into system languageconvert user language into system language• Other is dynamic compiler which invoke the size of Other is dynamic compiler which invoke the size of
variable at run time with some user define data variable at run time with some user define data types.types.
Views Of System SoftwareViews Of System Software• User centric view: this view includes system User centric view: this view includes system
programs that provide user continence by programs that provide user continence by permitting a user to specify her computational permitting a user to specify her computational need in a manner of his own choiceneed in a manner of his own choice
• System centric View: it includes system System centric View: it includes system programs that provide effectiveness in the programs that provide effectiveness in the simultaneous servicing among many users and simultaneous servicing among many users and also provide facilities for interleaving of users also provide facilities for interleaving of users request in a multi user software.request in a multi user software.
Views Of System SoftwareViews Of System Software
• Computer hardwareComputer hardware
User interfaceUser interface
Language Language processorsprocessors
User interfaceUser interface User interfaceUser interface
Multi user softwareMulti user software
Operating SystemOperating System
User Centric ViewUser Centric View• It assists one user in fulfilling his computational It assists one user in fulfilling his computational
needsneeds
• System program perform the role of mediator System program perform the role of mediator between system and userbetween system and user
• Language processors translate the user need into Language processors translate the user need into system oriented needsystem oriented need
• Assembler which work as a compiler which is Assembler which work as a compiler which is translate the system assembly language into translate the system assembly language into machine oriented programmachine oriented program
• Linker and loader helps the execution of machine Linker and loader helps the execution of machine programprogram
User Centric ViewUser Centric View• Debugger helps checking bugs in the programsDebugger helps checking bugs in the programs
• If there are small number of tasks are there then If there are small number of tasks are there then language processor work as a interpreterlanguage processor work as a interpreter
• Application program is developed using language Application program is developed using language processors where translation is necessaryprocessors where translation is necessary
• Generally user centric view contain the scripts Generally user centric view contain the scripts that control the application programthat control the application program
System Centric ViewSystem Centric View• It is system programs has system software that It is system programs has system software that
achieves effective utilizationsachieves effective utilizations
• Operating system has allotted resources for all Operating system has allotted resources for all programs at a time of execution and this process programs at a time of execution and this process take place with sharing resources by applicationstake place with sharing resources by applications
• Sharing resources may needed non-interference Sharing resources may needed non-interference between programsbetween programs
• Resource sharing is focused on 2 techniquesResource sharing is focused on 2 techniques
- Resource partitioning: in which resource is Resource partitioning: in which resource is divided into programsdivided into programs
System Centric ViewSystem Centric View- Resource scheduling: in which resource selected Resource scheduling: in which resource selected
from list of programs and allotted resource for a from list of programs and allotted resource for a particular time periodparticular time period
- Scheduling of CPU results in interleaved Scheduling of CPU results in interleaved execution of programsexecution of programs
- For example os provide multithreading purpose For example os provide multithreading purpose for schedulling.for schedulling.