Software refers to the programs written using a programming
language, which are required to operate the computer. It is the logical entity, which enables the physical hardware to function properly. Software refers to the set of computer programs, procedures that describe the programs and how they are to be used. i.e. it is a collection of programs, which increase the capabilities of the hardware. Software guides the computer at every step where to start and stop during a particular job. The process of software development is called programming.
Prepared by PETER WAIRIGU
Software can be categorized basically in two categories. These are: System Software Application Software
Prepared by PETER WAIRIGU
Prepared by PETER WAIRIGU SYSTEM SOFTWARE This is a collection of programs written to service other programs. They control the computer hardware and application programs. Software that is required to control the working of hardware and aid in effective execution of a general user’s applications. They interface the application software to the computer hardware in order to allow a computer user to perform specific tasks.
Prepared by PETER WAIRIGU
Examples of system software include: operating system Translators Utilities and service programs Database management programs Etc
Prepared by PETER WAIRIGU
PROGRAMMING LANGUAGE A language used to write a set of instructions which directs the computer on how to performs.
There are two major types of programming languages.
Low Level Languages and High Level Languages.
Prepared by PETER WAIRIGU
Low Level languages Low level languages are machine oriented and require extensive knowledge of computer hardware and its configuration.
Prepared by PETER WAIRIGU
High Level Languages Higher level languages are simple languages that use English and mathematical symbols like +, -, %, / etc. for its program construction. High level language have to be converted to machine language for the computer to understand. Higher level languages are problem-oriented languages because the instructions are suitable for solving a particular problem. For example COBOL (Common Business Oriented Language) , FORTRAN (Formula Translation) and BASIC (Beginners All-purpose Symbolic Instruction Code) Prepared by PETER WAIRIGU Translators These are software that convert the source code/programs to their object code/program equivalent. Types of translators Assemblers Compilers interpreters
Prepared by PETER WAIRIGU
Assemblers: A program that translates assembly language programs into their object code/program equivalent Compilers A program that translates a high level language program into machine code equivalent. The high level language program is first compiled into machine language, then execution takes place later Interpreters A program that translates a high level language program into machine code equivalent. They translates and executes each source statement in logical sequence as the program executes. It looks at the program on a line to line basis. With the interpreter, the high level language program is executed without compiling the program into machine language first. Prepared by PETER WAIRIGU APPLICATION SOFTWARE Application Software is a set of programs to carry out operations for a specific application. Software that is required for general and special purpose applications like database management; word processing, accounting etc. are called Application Software. Application software is developed using system software by Application Programmers.
Prepared by PETER WAIRIGU
Application software can be further classified into following two types:
General Purpose Application Software
Special Purpose Application Software
Prepared by PETER WAIRIGU
General Purpose Software: software designed to serve the needs of many users. Also referred to as proprietary software. They are available off the shelf. Examples: Database Management Packages, Word Processors, Spreadsheets etc.
Special Purpose Application Software: software designed to
serve the specific needs of a client. Their development is commissioned by a specific client. Examples: Accounting, Inventory, Production Management etc.
Prepared by PETER WAIRIGU
General purpose application software/ proprietary software Word processors-Ms word, Word perfect Spreadsheets-Ms Excel, Lotus Data Management systems-Ms Access, My SQL, Oracle 9i Graphics-Ms Power point, Paint brush Desktop publishing-PageMaker, Corel Draw Electronic mail
Prepared by PETER WAIRIGU
Advantages of proprietary S/W They are highly reliable owing to the rigorous testing undertaken before release into the market.
They are relatively cheap. For instance software suites end
up being cheaper than purchasing separate packages
They are highly user interfaced e.g. most packages have
similar menu driven commands, graphical user interface icons, tool and status bars, which give them the same look, and makes them easier to learn Prepared by PETER WAIRIGU 4. They result in savings in form of time and resources that would be required for program development.
5. They are portable and most of them are
interoperable with other systems.
6.File importation is possible over different
packages Prepared by PETER WAIRIGU Disadvantages of proprietary S/W Integration Difficulties The effects of upgrades Lack of available source code Supplier Problems
Prepared by PETER WAIRIGU
OPERATING SOFTWARE An operating system can be defined as the set of instructions or programs, which make the computer work. It is a program that enables the computer hardware to communicate and operate with the computer software. It controls the computer and its peripherals and makes the computer ready to use by a process called booting. When the computer is switched on, the instructions stored in ROM are automatically executed. These instructions help the computer to load the operating system from external storage device (disk) to internal storage (RAM). This process of loading of operating system from disk to RAM is called booting. Prepared by PETER WAIRIGU Functions of Operating System Process Management. A process is a program in execution. During execution, a process need certain resources such as CPU time, memory space, files, and I/O devices. At a particular instance of time, a computer system normally consists of a collection of processes. The process management module of an operating system takes care of the creation and deletion of processes, scheduling of various system resources to the different processes requesting them, and providing mechanism for synchronization among processes. Prepared by PETER WAIRIGU Functions of Operating System Memory Management. To execute a program, it must be loaded, together with the data it accesses, in the main memory . To improve CPU utilization and to provide better response time to its user, a compute system normally keeps several programs in main memory. The memory management module of an operating system takes care of the allocation of memory space to the various programs and where relevant to each user. If there is insufficient memory, the OS can create a memory zone on the hard drive, known as virtual memory.
Prepared by PETER WAIRIGU
Functions of Operating System File Management. All computer systems are used for storage, retrieval and sharing of information. A computer normally stores such information in units called files. Processes can read information from files and can create new files for storing newly generated information. Information stored in files is made persistent by storing them on a secondary storage media such as a magnetic disk. Files provide a natural and easy means of information sharing. The file management module of an operating system takes care of file-related activities such as organization, storing, retrieval, naming, sharing and protection of files.
Prepared by PETER WAIRIGU
Functions of Operating System Device Management. A computer system normally consists of several I/O devices such as terminal, printer, disk, and tape. The device management module of an operating system takes care of controlling all the computer’s I/O devices. It keeps track of I/O request from process, issues commands to the I/O devices, and ensures correct data transmission to/from the I/O devices. It also provide an interface between the devices and the rest of the system that is simple and easy to use. Prepared by PETER WAIRIGU Functions of Operating System Security. Computer systems often store large amount of information, some of which is highly sensitive and valuable to their users. Users can trust the system and rely on it only if the various resources and information of a computer system are protected against destruction and unauthorized access. The security module of an operating system ensures this. This module also ensures that when several disjoint processes are being executed simultaneously, one process does not interfere with the others, or with the operating system itself.
Prepared by PETER WAIRIGU
Functions of Operating System Command Interpretation. A user communicates with the operating system, to use the various systems resources, via a set of command provided by the operating system. The operating system also provides a simple language, known as command language (CL) or job control language (JCL), which a user can put several commands together from the command set to describe the resource requirements of the job. With this mode of interaction with system, the user is usually not too concerned with the hardware details of the system, or with how the operating system will direct the hardware to handle certain request.
Prepared by PETER WAIRIGU
Structure of the OS Kernel The kernel of an operating system is its central controlling part that implements the most primitive of the system’s functions. It represents the basic functions such as management of memory, processes, I/O devices. It is the only part of an operating system that a user cannot replace or modify.
Prepared by PETER WAIRIGU
Structure of OS The shell The shell allows communication with the operating system via control language, letting users control the peripherals without knowing the characteristics of the hardware used.
The File System
The file system allows files to be recorded in a tree structure.
Prepared by PETER WAIRIGU
Categories of operating systems OS can be categorized into to two broad categories:
1. Single-user operating systems:
These are used mainly for computers having only one terminal (stand-alone PCs). Examples: MS DOS (Microsoft Disk Operating System) PC DOS (Personal Computer Disk Operating System) Both systems are almost identical and are simply called DOS. OS/2 and Windows NT are other popular single-user multi-tasking operating systems for microcomputers. Prepared by PETER WAIRIGU 2. Multi-user operating systems: Multiuser operating systems are used on networks of computers and allow many different users to access the same data and application programs on the same network. It also allows users to communicate with each other. Examples: UNIX, NETWARE, MVS, OS/400, VMS and Linux. Prepared by PETER WAIRIGU Modern computer operating systems may also be classified into three other groups, which are distinguished by the nature of interaction that takes place between the computer user and his or her program during its processing. The three groups are batch processing OS time-shared OS real time OS
Prepared by PETER WAIRIGU
Batch processing operating system In a batch processing operating system environment users submit jobs to a central place where these jobs are collected into a batch, and subsequently placed on an input queue at the computer where they will be run. In this case, the user has no interaction with the job during its processing, and the computer’s response time is the turnaround time-the time from submission of the job until execution is complete, and the results are ready for return to the person who submitted the job
Prepared by PETER WAIRIGU
Time-shared OS In this environment a computer provides computing services to several or many users concurrently on-line. The various users are sharing the central processor, the memory, and other resources of the computer system in a manner facilitated, controlled, and monitored by the operating system. The user, in this environment, has nearly full interaction with the program during its execution, and the computer’s response time may be expected to be no more than a few second.
Prepared by PETER WAIRIGU
Real time OS Real Time Operating Systems are designed to service those applications where response time is of the essence in order to prevent error, misrepresentation or even disaster. Examples of real time operating systems are those, which handle airlines reservations, machine tool control, and monitoring of a nuclear power station. The systems, in this case, are designed to be interrupted by external signal that require the immediate attention of the computer system.