Python Fundamentals – Software Concepts

Python Fundamentals – Software Concepts

INTRODUCTION

A sequence of instructions given to a com¬puter to perform a particular task is called a program. The set of computer programs, procedures and associated documentation related to the effective operation of a computer system are termed as software. The software required to execute user’s programs is known as system software. The term software includes both system software and user’s programs. The system soft¬ware includes operating system, assembler, compiler, interpreter, debugging programs, text editors, etc.

TYPES OF SOFTWARE

Software are classified into the following categories:
(a) System software
(b) Utility software
(c) Application software
The classification of softwares is shown in Figure 2.1.

System Software
System software, or system packages are sets of one or more programs that are basi-cally designed to control the operation of a computer system. System software thus makes the operation of the computer sys¬tem more effective and efficient. Windows, and Linux are some popular system software packages used in PCs.
python-fundamentals-software-concepts-fig2.1
They are general programs written to assist users in performing tasks, such as control¬ling hardware, moving data into and out of a computer and all the other steps in executing the application program. In general, system packages control the following:
(a) Running of other application programs.
(b) Communicating with peripheral devices, such as printers, hard disk and tape devices, etc.
(c) Development of other types of software packages.
(d) Monitoring the use of various hardware resources, such as memory, peripherals, CPU, etc.

Utility Software
The utility program is a program designed to perform maintenance work on the system or on system components. For example, a storage backup program, a disk and file recovery program, or a resource editor are utility software packages.
Utility programs, also known as service programs are routines or programs that perform services, such as editing text or debugging programs to correct logical mistakes, sorting records into a particular sequence for processing, or transferring data from one Input/Output (I/O) device to another I/O device.
POINTS TO PONDER
Network utilities analyze the computer’s network connectivity, configure network settings, check data transfer or log events.

Application Software
Application software is a computer program designed to help users to perform a specific type of work. Hence, an application program differs from an operating system (which runs a computer), an utility (which performs maintenance or general-purpose chores) and a language (with which computer programs are created). Depending on the work
for which it was designed, an application program can manipulate text, numbers, graphics, or a combination of these elements. Some application packages offer consider-able computing power by focussing on each tasks. Others, called integrated software packages offer somewhat less power but include several types of applications, such as a word processor (Word 2007, Word 2010), a spreadsheet (Excel 2007, Excel 2010) and a database program (Access 2007, Access 2010). An application program, such as a payroll package produces the pay slips every month for the workers of a company. Similarly, an inventory package may be used to produce the list of different parts/equipment avail¬able in an organization.
Application packages are sets of one or more programs designed to carry out operations for a specified purpose or application. They are not limited to the general purpose func-tions of production schedule, general ledger and general accounting packages. Special purpose software packages have also been developed for areas such as banking, inventory, payroll, hotel, hospital administration, insurance, desktop publishing, man-ufacturing, etc.
Differences between System and Application Software Packages
System software offers several advantages and conveniences to programmers and com-puter users. Good system software allows application software packages to be run on the computer with less effort. Without system software, application packages cannot be run on the computer system easily. However, the production of system software is a complex task which requires extensive knowledge of hardware and considerable specialized training in computer science. Systems programmers, who prepare system soft¬ware, are highly trained computer specialists and important members of the computer architecture team.
Because of its technical complexity, system software is rarely developed in-house. System software is normally developed and distributed by the computer manufacturers. The customer who buys or leases a computer system would also receive, in addition to the hardware, some software needed for the effective operation of his computer system. A computer without some kind of system software would be ineffective and impossible to operate. The system software is an indispensable part of a total computer system. Its function is to compensate for the differences that exist between the user needs and the capabilities of the hardware.

CLASSIFICATION OF SYSTEM SOFTWARE

System software packages are classified as follows:
(a) Operating System
(b) Developer Tools

  • Assemblers
  • Compilers
  • Interpreters
  • Integrated Development Environment (IDE)

OPERATING SYSTEMS

An operating system is a master control program that runs the computer and acts as a scheduler. It controls the flow of signals from CPU to various parts of the computer. It is the first program loaded (copied) into the computer’s memory after the computer is switched on. Some popular operating systems are Windows XP, Windows 7, Windows 8, OS/2, UNIX, Linux etc. IBM (International Business Machines) Mainframe computers use MVS (Multiple Virtual Storage), VM (Virtual Memory) or VSE (Virtual Storage Extended) operating systems. The operating system is an important component of the computer system, because it sets the standards for the application programs that run on it. All programs must be written to “talk to” the operating system (See Figure 2.2).
python-fundamentals-software-concepts-fig2.2
POINTS TO PONDER
Ouya, a video game console which runs Android operating system, was one of the most successful campaigns on the Website Kickstarter.

Need of Operating System
User interacts with the application programs but the application programs do not access the hardware resources directly. Hardware resources include input/output devices, Primary Memory, Secondary Memory (like Hard Disk drives, etc.) and the micropro-cessor. Therefore, an operating system is required to access and use these resources. The application programs are so created that they talk with the operating system to get access to the resources (See Figure 2.2). An Operating System (OS) is the first program that is loaded (copied) into the computer’s main memory, when a computer is switched on. The efficiency of any operating system is measured in terms of its throughput, turn around time and the response time.
The two primary objectives of an operating system are as follows:
(a) To enable running of application programs.
(b) To manage the different computer hardware resources.

Functions of an Operating System
The operating system (OS) is an important component of the computer system, as it sets the standards for all application programs that run on it. All such application programs must be written to “talk to” the operating system. An operating system performs the functions given in the following paragraphs:
Processor Management
The OS assigns processor (if a computer has more than one processor) to different tasks that must be performed by the computer system. Whenever the OS finds any processor -idle, one of the processes waiting to be executed is assigned to this idle processor. The objective of the Processor Management module of the OS is to ensure that a process is rim on each processor at all times. These can be multitasking or multiprogramming.
Multitasking
The concept of multitasking allows the user to perform more than one job at the same time on a computer. Most of today’s operating systems, such as Windows XP, Windows 7, Windows 8, OS/2, UNIX, Linux etc. support multitasking. For example, when you open two or more than two software packages at the same time, it is doing multitasking. The operating system is able to keep track of where you are in each of these applications and switch from one application to another without losing track. All this is done with the help of CPU processor and the OS.
Multiprogramming
To increase resource utilization, multiprogramming technique of processing was devel-oped. In multiprogramming, the CPU runs several programs at the ‘same time’. Multi-programming is implemented in such a way that it appears as if many programs are being executed concurrently.
Multiprogramming keeps CPU busy, switching its attention from one program to another. For example, while one program is waiting for some input or output operation, another program can use the processor because of the high speed of processor. This is shown in Figure 2.3.
In Figure 2.3, the CPU’s idle time is utilized by the slow input and output devices. Moreover, each program takes necessary share of CPU’s time, thus making the system very efficient.
python-fundamentals-software-concepts-fig2.3
Memory Management
Memory Management module of an Operating System takes care of allocation and de-allocation of main memory to various processes. It allocates the main memory and sec-ondary memory to the system-programs, user-programs and data. For executing a program, its copy must be loaded into the main memory. Also, a program would require main memory to hold data from disk files, the contents of which it is reading or manipulating at the execution time. An operating system manages the memory of a computer so that it can be used efficiently. The tasks of OS are as follows:
(a) Protecting programs including itself (operating system) from accidental erasure from main memory.
(b) Handling programs that exceed the physical limitations of the main memory, i.e., using the virtual memory (virtual memory is the hard disk space used as a part of main memory by the OS).
(c) Protecting users and programs from one other, i.e., sharing of the single main memory among multiple programs and different users.
(d) Providing memory protection, i.e., preventing programs from interfering with one other. Also users would be prevented from interfering with the work of other users.
Other tasks under memory management are detailed in the following paragraphs:

Protecting Programs from Accidental Erasure
If the operating system is not loaded in a Read Only Memory (ROM) chip, one of its jobs is to protect itself. OS does this by knowing how much memory it would occupy and disabling any writing in this area of main memory. A similar approach enables the operating system to protect other computer programs. When a computer program is first stored in the main memory of the CPU, the operating system assigns it a fixed size of memory space and protects these memory locations from encroachments by any other programs.
Figure 2.3 Concept of Multiprogramming

Virtual Memory
Application programs can be of a size that needs main memory of a size larger than the main memory available on the computer. In such cases, application programs access hard disks as an extension of the main memory, known as virtual memory. Users, thus can generate programs that need larger memory-size even though computer has a smaller main memory. This is achieved by treating the memory-addresses of the hard disks as a consecutive extension of the memory-addresses of the main memory. This technique is called virtual memory and is managed by the operating system, in associ¬ation with the application program. Virtual memory is the auxiliary or secondary memory of the computer system, seen as if it is the main memory by the application program.
Virtual memory scheme gives users an illusion of working with a large block of contigu-ous memory space (perhaps even larger than real main memory), but most of their work is done in a small primary memory. In a computer that implements virtual memory system, the user has the option to use part of or more of auxiliary memory. Users can then freely employ much greater memory space than is available in the main memory. The addresses used by the user-generated program refers to a virtual memory which is outside the address of main memory. The virtual memory system’s job is to map this vir¬tual address into the real main memory address. This mapping is done dynamically at run time of .the program. The address used by a programmer is called virtual address and a set of such addresses is called the address space. An address in main memory is called a location or physical address and a set of such addresses is called the memory space.
POINTS TO PONDER
In the 1980s, the Apple Lisa is an example of a personal computer that features virtual memory.

Swapping
Swapping is the process of transferring a block of data from secondary storage (such as hard disk) to main memory and vice versa. The former is known as swapping in of data and the latter is known as swapping out of data. This is done to accommodate larger size of the program, to be executed, in a small sized main memory of the computer.

File Management
Data is stored in a computer system as files. The File Management module of the operat­ing system would manage files held on various storage devices as well as transfer of files from one storage device to another. Thus, file management takes care of organization, storage, retrieval, naming, sharing and protection of different files. It also allows files to be read and modified by using text editors or some other file manipula­tion software packages.

I/O Device Management
The Input/Output (I/O) Device Management module of the operating system (OS) coordinates and assigns different input and output devices, namely terminals, printers, disk drives, tape drives, etc. It controls all Input/Output (I/O) devices, keeps track of I/O requests, issues commands to these devices and takes measures which would ensure that data is transmitted efficiently and correctly to and from 1/O devices. There are three ways by which data can be sent from the I/O device to the memory by the CPU. These are discussed what follows.

Programmed I/O
In Programmed I/O mode, when an input output instruction is encountered in a pro­gram, the CPU checks the input output flag. It keeps on checking the flag till the flag is set to 1. When the flag is set to 1, the CPU transfers data from the I/O device to the memory. This method is also known as polling.

Interrupt-initiated I/O
Another method is to let CPU concentrate on some other program and use an interrupt signal to inform the CPU that the input output flag is set to 1.

Direct Memory Access (DMA)
Direct Memory Access (DMA) is a technique for moving data directly between main memory and peripheral equipment without needing CPU’s intervention. In other mode of data transfer, CPU was required to work as an intermediate between the 1/O devices and the main memory, where data is ultimately stored or read from. But in the DMA method, the input output devices directly writes or reads information from the main memory without the interference of CPU.

Scheduling
Scheduling refers to a set of policies and mechanisms built into the Operating System that govern the order in which all pending works are completed by the computer. A Scheduler is a part of OS that selects the next job to be admitted into the system and the next pro­cess to be run. Different OSs use different kinds of scheduling methods. Some such methods are described in what follows:

Round Robin Scheduling
In this type of scheduling, each process is given the CPU’s attention for only a fraction of a second. The processes are run in a sequential order. In other words, each active process is given ‘time slice’ in rotation (See Figure 2.4). None of the processes can run for more than one time slice when there are others waiting in the ready queue. If the process needs more time to complete after exhausting its time slice, it is placed at the end of queue to await for the next allocation. Implementation of round robin scheduling requires support of an interval timer. The timer is set to interrupt the OS whenever a time slice expires and thus forces the scheduler to be invoked. In case of suicidal termination (a process terminating before completing its execution), resetting of the timer is required.
python-fundamentals-software-concepts-fig2.4
Preemptive Scheduling
In this type of scheduling, each process is allocated a priority level. Depending on the priority level, the OS can run a process of high priority. The OS may remove a low priority process in Running state, in order to allow a higher priority process to run. Fig­ure 2.5 shows the different states of a process in preemptive scheduling.
python-fundamentals-software-concepts-fig2.5
With preemptive scheduling, a running process may be replaced by a higher-priority process at any time. This is accomplished by invoking the scheduler. Scheduler is invoked whenever an event that changes the state of a process is detected. If a higher priority process has changed state from being dormant or suspended to ready state, the scheduler will choose this process to be the next process to run.

Non-preemptive Scheduling
In this type of scheduling, each process continues to ran till it terminates or requires an Input/Output (I/O) or some synchronization signal. Figure 2.6 shows the different states of a process in a non-preemptive scheduling.
python-fundamentals-software-concepts-fig2.6
In non-preemptive scheduling, once scheduled, a selected job runs till it is completed. The running process retains ownership of allocated resources, including the processor, until it voluntarily surrenders control to OS. In other words, the running process is not forced to relinquish ownership of the processor when a higher priority process becomes ready for execution. However, when the running process becomes suspended as a result of its own action, say by waiting for an I/O completion, another ready process may be scheduled.

Co-operative Scheduling
In this type of scheduling, the responsibility for releasing control is placed in the hands of the application program and not managed by the operating system. That is, each pro­cess is expected to relinquish control to other processes periodically. Note that this scheduling is different from the Non-preemptive scheduling, because in the latter type of scheduling the control is transferred to OS when the process waits for some I/O operation.
First Come, First Served (FCFS) Scheduling: In this method, the workload is processed in the order of arrival, with no preemption. As a consequence of no preemption, compo­nent utilization and the system throughput rate may be low. Here, short jobs may suffer delay, specially when one or more long jobs are being executed in the system.
Shortest Remaining Time Next (SRTN) Scheduling: In this scheduling policy, when­ever an event, that makes a new process ready, occurs, the scheduler is invoked. The scheduler then compares the remaining processor execution time of all the running and ready-to-run processes, including that of the newcomers. The process requiring least time to complete execution is selected as the next process to run. Preferred treatment of short jobs in SRTN scheduling tends to result in an increased waiting time of long jobs as compared with FCFS basis scheduling.

Buffering
It is a process of storing data in memory area called buffers while data is being trans­ferred between two devices or between a device and an application.
POINTS TO PONDER
A stencil buffer represents an extra buffer to the color buffer (pixel buffer) and depth buffer (z-buffering) found on. modern graphics hardware.

Spooling
Spooling (Simultaneous Peripheral Operations On Lines) is a technique used to reduce the speed mismatch between the CPU and input/output devices such as printers. In this process, data which needs to be sent to an input device or output device, is first placed on either a magnetic tape or disk. Spooling mechanism increases system performance considerably. This is because, the spooling operations are run when the CPU is idle. Also the I/O operations are incurred by a much faster disk system.

Security Management
Security Management module of the OS ensures data security and integrity. That is, it protects data and programs stored in the computer system from destruction and unau­thorized access. It keeps the different programs and data, which are executed concur­rently in the memory, in such a manner that they do not interfere with each other. Moreover, it protects files from being accessed or modified by unauthorized users. The operating system must be capable of distinguishing between requests which should be allowed to be processed, and others which should not be allowed. While some sys­tems may simply distinguish between “privileged” and “non-privileged”, some have a form of requester identity, such as a username. The process of establishing identity is known as authentication. Authentication involves quoting of a username and password. Other methods of authentication include magnetic cards, biometric data, etc.
Once a user is authenticated he may be allowed/disallowed to certain resources of the system using authorization.
In addition to the allow/disallow model of security, a system with a high level of secu­rity will also offer auditing options. This would allow tracking of requests,/such as, “who has been reading this file?”). Security management can be further classified what follows:

External Security
External requests from outside the computer, such as a login at a connected console or some kind of network connection involves the need for external security. External requests are often passed through device drivers to the operating system’s kernel, where they can be passed onto applications, or carried out directly. At the front line of external network security are hardware devices known as firewalls or intrusion detection/pre­vention systems. At the operating system level, we have internal security.

Internal Security
Internal security, or security from an already running program in the same system is only possible if all possibly harmful requests must be carried out through interrupts to the operating system kernel. If programs can directly access hardware and resources, they cannot be secured. Internal security is especially relevant for multi-user systems wherein each user of the system have private files that the other users should not tamper with or read. Internal security is also vital if auditing is to be of any use, since a program can potentially bypass the operating system, inclusive of bypassing auditing.
There are a number of software firewalls available, as well as intrusion detection/pre­vention systems. Most modem operating systems include a software firewall, which is enabled by default. A software firewall can be configured to allow or deny network traffic to or from a service or application running on the operating system.

Types of Operating Systems
Operating Systems may be classified into the following types:

  • Single-user Operating System
  • Multiuser Operating System
  • Single-tasking Operating System
  • Multitasking Operating System
  • Time Sharing Operating System
  • Real-time Operating System
  • Network Operating System
  • Distributed Operating System
  • Interactive (GUI Based) Operating System

Single-user Operating System
Operating system which allows only one user to work on a computer at a time is known as single user operating system. Examples include Windows XP, Windows 7, Windows 8, etc.       ”

Multiuser Operating System
A multiuser operating system allows a number of users to work together on a single computer. UNIX is a multiuser operating system. It is not that all users will give instructions to a computer at the same time. Each user will be provided with a terminal and all such terminals will be connected to the single computer system

Single-tasking Operating System
Operating system which can execute a single job at a time is known as Single-tasking operating system. For example, MS-DOS (Microsoft Disk Operating System) is a single tasking operating system because you can open and run only one application in DOS, at one time.

Multitasking Operating System
In multitasking process, only one CPU is involved, but it switches from one program to another so quickly that it gives the appearance of executing all of the programs at the _ same time. Basic types of multitasking include preemptive and cooperative. In preemp­tive multitasking, the operating system parcels out CPU time slices to each program. In cooperative multitasking, each program can control the CPU for as long as it needs it. If a program does not use the CPU, however, it can allow another program to use it tem­porarily. OS/2, Windows 95, Windows NT, Amiga operating system and UNIX use preemptive multitasking, whereas Microsoft Windows 3.x and the MultiFinder (for Macintosh computers) use cooperative multitasking.

Time Sharing Operating System
In time sharing operating system, many terminals link to the same computer at the same time. Users enter data at very slow rate, and computer processes data at very fast rate. Making use of this fact a computer serves several users simultaneously by attending them in turn. In this system, the CPU time is divided among all the users on a scheduled basis.

Advantages of Time Sharing Operating System

  • Time sharing significantly increases CPU’s utilization by switching from one pro­gram to another in rapid succession.
  • The response time is negligible in case of a time sharing system. Thus, time shar­ing allows managers to react more quickly. Time sharing also reduces waste in the use of business resources and it can permit quick follow-up on creative ideas. In short, it helps in improving the users’ efficiency to a great extent.
  • In a time sharing system, users merely pay a fee for resources used and arerelieved of the hardware, software, and personnel problems associated with acquiring and maintaining their own installations.
  • In a time sharing system, those programs which are frequently used by many users, are stored in the system library. A user need not write his own program instructions when performing such processing tasks. He needs only call up the needed program stored on-line at the computer site and supply the data.

Real time Operating System
Real time Operating Systems work towards providing immediate processing and also responding to user’s commands in a very short time. Such an operating system is more commonly used in chemical industry for process control and scientific processing like airplane control and space vehicle control operations. Success of a real time system does not depend only on the correctness of the result, but also on the timeliness of the result. A correct answer obtained after the expiration of time limit is as bad as a wrong answer. Some examples of real time operating systems are HP-RT and VTWorks.

Network Operating System (NOS)
Network Operating System (NOS) is an operating system specifically designed to sup­port interconnection of several computers. NOS provides support for multiuser opera­tions as well as administrative, security and network management functions. Some examples of NOSs are Novell’s NetWare, Windows 2003, Artisoft’s LANtastic, etc.

Distributed Operating System
A Distributed Operating System hides the existence of multiple computers (interco­nnected by a network) from the user. That is, the user remains unaware of the fact that many computers are being used to process data. These computers may be located at many places around the globe. Distributed operating system provides single-system image to its users. Each computer in a distributed computing system processes a part of the global distributed operating system. All these computers work in close coordination with each other. Processes and system resources are managed globally, and controlled from specific locations. .

Interactive (GUI Based) Operating System
Interactive (GUI based) operating system is a graphical user interface for ease of working. These operating systems have come into existence because they are graphical oriented and more user friendly. Windows operating systems are graphical user interface system. These systems establish interface between user and application program with the help of mouse rather than keyboard. Interactive operating systems contain window, pull down menus, buttons, scroll bars and many more. With increasing use of multimedia, sound, video, etc, such as GUI OS are likely to become defacto OS for PCs and palmtop computers.

Commonly Used Operating Systems
Some commonly used/popular operating systems are:

  • UNIX, Linux
  • Windows XP, Windows 7
  • Solaris
  • BOSS (Bharat Operating System Solutions)
  • Mobile Operating System

UNIX Operating System
UNIX is an operating system that can be used on different types of computers. It was developed in 1970s by Ken Thomson and Dennis Ritchie at the AT & T (American Tele­phone and Telegraph Company) Bell laboratories.
Functioning of UNIX operating system is handled in three levels as shown in Figure 2.7. At the heart of UNIX is the kernel, which interacts with the actual hardware. Kernel is the fundamental part (core) of the operating system, that resides in main memory at all times. On the outer crust are the application packages and user programs. The middle layer is the shell which acts as a mediator that translates the commands given by the application programs in the outer layer and conveys them to the kernel layer. The kernel then executes these commands using the inner hardware.
python-fundamentals-software-concepts-fig2.7

Advantages of UNIX

  • UNIX allows only authorized users to modify files and directories and only the system administrator is allowed to make changes in system configuration files. Thus, UNIX is more secure than other OSs.
  • Destructive application programs (called viruses) will not be able to delete or modify system-critical files, since it will receive an “access denied” message, just like when a user with improper authority tries to delete or modify files.
  • UNIX is very stable. It can stay up for even a year or so without any problems.
  • UNIX is a multiuser operating system. That is, it supports many users at a time. Each user has his own directory and files and can deny access to other users.
  • UNIX can be loaded on any type of computer hardware.
  • UNIX is a multitasking operating system. That is, you can simultaneously work on more than one programs.

Disadvantages of UNIX

  • UNIX is difficult to learn. It is not as simple as Windows for PC. UNIX is an operating system created for programmers and does not make life easier for PC users.
  • It is difficult to install and configure UNIX.
  • Software packages on PCs that most Windows users are familiar with (such as MS-Office, Internet Explorer etc.) are not available for UNIX. However, replace­ments are available such as Netscape Navigator for Internet Explorer and Word­Perfect for MS-Word. Thus, there are not many types of application packages for UNIX.

POINTS TO PONDER
UNIX is a multitasking, multi-user computer operating system which was developed by Ken Thompson, Dennis Ritchie, and others at AT&T’s Bell Labs research center.

Linux Operating System
Linux is an operating system kernel that behaves and performs similarly to the famous UNIX operating system from AT&T Bell Labs. It has all of the features of a modem operating system such as true multitasking, threads, virtual memory, shared libraries, demand loading, shared, copy-on-write executables, proper memory management, loadable device driver modules, video frame buffering, and TCP/IP (Transmission Control Protocol /Internet Protocol) networking.
Most people, however, refer to the operating system kernel, system software, and appli­cation software, collectively, as “Linux”.
Linus Torvalds and a loosely knit team of volunteer hackers from across the Internet wrote (and still are writing) Linux from scratch. The Linux kernel is distributed under the GNU General Public License.

Windows XP Operating System
Windows XP is one of the version of Windows desktop operating system for the PC (Personal Computer). It brings a new and more personalized look to the desktop, that will also make it easier for users to scan or import images. It is meant to acquire music files on the Web and transfer them to portable devices. Windows XP will allow different family members to use their own desktop and personal set of files. The Start menu has been redesigned to make the most-used programs easiest to find. Windows XP comes in a Professional version and a Home Edition version.

Windows 7 Operating System
Windows 7 is the version of Windows desktop operating system for the PC. It is more advanced and robust operating system than any other operating system of Microsoft Corporation. It is built on the same foundation as on Windows Vista. When you start MS Windows 7 operating system, you have to log on to Windows in Welcome screen using the account and password you specified during setup. After log on the system, the operating system displays the desktop i.e., the main screen area. The different parts of the MS Windows 7 opening screen are as marked in Figure 2.8.
python-fundamentals-software-concepts-fig2.8
Solaris
Solaris is a UNIX operating system developed by Sun Microsystems (See Figure 2.9). But now it is known as Oracle Solaris as it has been owned by Oracle Corporation in January 2010.
Solaris is known for its scalability, especially on SPARC (Scalable Processor Architec­ture) systems, and for originating many innovative features such as DTrace, ZFS (Zetta­byte File System) and Time Slider.
Solaris supports SPARC-based and x86-based workstations and servers and it is regis­tered as compliant with the Single UNIX Specification.
python-fundamentals-software-concepts-fig2.9
BOSS (Bharat Operating System Solutions)
Bharat Operating System Solutions (BOSS) is a free and open source computer operating system developed by the National Resource Centre for Free/Open Source Software (NRCFOSS) of India. This software is also known by the acronym BOSS GNU/Linux or simply BOSS Linux (See Figure 2.10).
python-fundamentals-software-concepts-fig2.10
BOSS (Bharat Operating System Solutions) GNU /Linux distribution supports Intel and AMD (Advanced Micro Devices) x86/x86-64 architecture. BOSS GNU/Linux advanced server has unique features such as Web server, proxy server, Database server, Mail server, Network server, File and Print server, SMS (Systems Management Server), LDAP (Lightweight Directory Access Protocol) server.
The Beta Release of BOSS GNU/Linux Version 4.0 is coupled with GNOME Desktop Environment with wide Indian language support & packages, relevant for use in the Government domain. Currently BOSS GNU/Linux Desktop is available in all the Offi­cial Indian languages, such as Assamese, Bengali, Gujarati, Hindi, Kannada, Malayalam, Marathi, Oriya, Punjabi, Sanskrit, Tamil, Telugu, Bodo, Urdu, Kashmiri, Maithili, Konkani, Manipuri which will enable the mainly non-English literate users in the coun­try to be exposed to ICT (Information and Communication Technology) and to use the computer more effectively.

Mobile Operating Systems
It is an operating system that operates on digital mobile devices lie smart phones and tablets. Some most popular mobile operating are discussed below:
Android : Android OS is a Linux-based platform for mobile phones released on 5th November 2007. It is Google’s open and free software that includes an operating system, middleware and some key applications for use on mobile devices. It very user friendly and easy to customize.
Symbian : Symbian OS is an operating system for mobile phones primarily used on Nokia advanced or data enabled smart phones. Symbian applications are easy to shut down compared to Android applications. The latest Symbian can support 48 languages.

POINTS TO PONDER
Nokia S60 phones work with Symbian mobile operating system which run Python scripts using Python interpreter and an API allowing Bluetooth service.
Apple iOS : iOS is Apple’s mobile operating system. It is used in Apple’s smart devices like iPhone, iPad, and iPod touch.

DEVELOPER TOOLS
Developer tools are the software packages that assists in the creation of new software packages. For example, assembler, compilers, interpreter, debuggers, visual program­ming tools, GUI (Graphical User Interface) builders, application generators and Inte­grated Development Environment (IDE) come under this category.

Assembler
It is a program which translates an assembly language program into a machine language program. An assembler which runs on a computer for which it produces object codes (machine codes) is called a self assembler (or resident assembler). A cross assembler is an assembler that runs on a computer other than that for which it produces the machine codes.

Compiler
Compiler is a program which translates a high-level language program into a machine language program. A compiler is more intelligent than an assembler. It checks all types of data limits, range, etc. However, computer’s program execution time is more and it occupies a larger part of the main memory. It has low speed and low efficiency of memory utilization. If a compiler runs on a computer for which it produces the object code, then it is known as a self or resident compiler. If a compiler runs on a computer other than that for which it produces object code, then it is called a cross-compiler.

Interpreter
An interpreter is a program which translates one statement of a high-level language pro­gram into machine codes and executes it and then translates and executes the next statement of the program. In this way, it proceeds further till all the statements of the program are translated and executed one after the other. On the other hand, a compiler goes through the entire high-level language program once or twice and then translates the entire program into machine codes. An interpreter occupies less memory space. It can be used in a small PC or home computer system which has limited memory space. The object program produced by the compiler is permanently saved for future reference. On the other hand, the object code for the statement produced by an interpreter is not saved. If an instruction is used next time, it must be interpreted again and translated into machine code. For example, during the repetitive processing of the steps in a loop, each instruction in the loop must be reinterpreted every time the loop is executed.

Integrated Development Environment (IDE)
An integrated development environment (IDE) is a software application package that provides comprehensive facilities to computer programmers for software development. It consists of the following:

  • Source code editor
  • Build automation tools
  • Compiler and/or an interpreter
  • Debugger

Many modern IDEs have a class browser, an object inspector, and a class hierarchy diagram, for use with object-oriented software development.
An IDE is dedicated to a specific programming language. It allows a feature set that most closely matches with the programming paradigms of the language. However, there are some multiple-language IDEs, such as recent versions of NetBeans, Microsoft Visual Studio, WinDev and Xcode.
IDEs present a single program in which all development is done. This application pro­gram provides many features for authoring, modifying, compiling, deploying and debugging software. The aim is to abstract the configuration necessary to piece together command line utilities in a cohesive unit, which theoretically reduces the time to learn a language, and increases developer productivity.
Some IDEs support multiple languages, such as NetBeans, based On Java, or MonoDe- velop, based on C# (pronounced C hash).
Support for alternative languages is also provided by plugins, allowing them to be installed on the same IDE at the same time. For example, Netbeans has plugins for C/C++ and PHP.

OFFICE TOOLS

Word Processor

Word Processor is a software package that helps you to enter text and manipulate words and phrases. You can type letter, document and report easily and store them for further
use. You can print these documents on a printer as and when desired. Thus, documents created on a word processor can be made accurate, giving better look and printed in very short time.
You can also check the spelling in the documents. You can get help to select appropriate words in a sentence. Moreover, you can add page numbers or change margins. You can emphasize the selected words by printing them in boldface, italics or in bold italics.
In case you have to make some changes in a letter, you can do so without retyping the whole letter. In addition, a word processor can be used to send the same letter to several different addressees using the Mail-Merge facility or using electronic mail facility on the Internet. Thus, you do not have to type each individual letters for every person. You can even instruct a word processor to send the letters or pictures using Internet and E-mail facilities.
Word 2007 is a Word Processor that operates under Windows Operating System namely Windows XP, Windows Vista and Windows 7. Word 2007 is one of the most sophis­ticated word processing programs available today (See Figure 2.11). With Word 2007, it is easier than ever to efficiently create a wide range of business and personal documents, from a simples letter to the most complex project report. Word 2007 includes many desktop features that you can use it to enhance the appearance of documents so that they are easy to read.
python-fundamentals-software-concepts-fig2.11
Presentation Tool
A presentation tool involves graphics and animation packages. PowerPoint 2007 is one of the largest selling presentation graphics software package that is designed by Micro­soft Corporation of USA. PowerPoint 2007 is a very popular presentation graphics soft­ware package (See Figure 2.12). It has set new standards for the working of presentation graphics. PowerPoint 2007 helps you bringing ideas and information that you want to convey to your audience with no difficulty.
python-fundamentals-software-concepts-fig2.12
Spreadsheet Package
Spreadsheet package accepts data values and relationships between the data items in a tabular format consisting of rows and columns. It allows user to perform calculation on these items. It also manipulates data in a desired format. The first spreadsheet available for the PC was VisiCalc which was a best seller. VisiCalc was followed by Lotus 1-2-3. Finally, the largest selling spreadsheet program is Excel 2007 (See Figure 2.13).
python-fundamentals-software-concepts-fig2.13
Database Management System
A database is an organized collection of facts. It is a collection of information arranged and presented to serve an assigned purpose. An example of a database is a dictionary, where words are arranged alphabetically. Another example is a telephone directory, where subscriber names are listed in an alphabetic order. Similarly, when you think of a box of cards with names and addresses written as a mailing list, then the box and its contents form a mailing database. Figure 2.14 contains cards with mailing addresses. All these cards are placed in alphabetic order of names and the collection of these cards would be called a database.
python-fundamentals-software-concepts-fig2.14
In order to keep database updated, we may need to perform operations like adding information, removing information, editing existing information, etc. Take the case of a telephone diary, in which you note down the names, addresses and phone numbers of your friends. This is also a type of database. If you make a new friend you note the information about him/her in the diary which is equivalent to adding data to a database. If address of your friend changes then you note the new address in your diary which means editing a database. If you want to send a letter to your friend then you look into the diary to locate the address. This is called searching a database.
Access 2007 is a software package for database management. It comes as a component of Office 2007. Access 2007 is an easy to use with full featured database development application (See Figure 2.15). It can be used to develop a simple mailing list as well as a complex accounting package.
Access 2007 allows you to manage all your information from a single database file. Within the file, you can divide your data into separate storage containers called tables. You can add, view and update table data by using on-line forms. Using queries you can retrieve required data and then analyze or print data in a specific layout by using reports.
python-fundamentals-software-concepts-fig2.15
POINTS TO PONDER
Oracle 9i is a version of the Oracle Database. In Oracle 9i, an alphabet i stands for Internet which indicates that 9i is Internet ready.

DOMAIN SPECIFIC TOOLS
A domain-specific language is designed to be useful for a specific task in a fixed prob­lem domain. Domain-Specific tools are useful to build customized modeling tools.
You can use Domain-Specific Language tools to generate visual designers that are cus­tomized for your problem domain. For example, you can create a tool to describe con­cepts that are specific to how your organization models business processes. Let us discuss some domain specific tools.

School Management System
School Management System is a large database system which can be used for managing school’s day-to-day activities. It is used for better interaction between students, teachers, parents and management. This management software can handle all the requirements for easy school management such as Admission Management System deals with man­agement of admission of students. It starts with the selling of application forms, pro­spectus. Thereafter, it will carry out the scrutiny of accepted forms, merit list generation with different merit list criteria, and finally admissions of selected students.

Inventory Management System
Inventory refers to all materials within an organization that do not constitute a part of the capital goods, equipment or buildings. An inventory control system is crucial for any organization. The organization is required to maintain an optimum level of inven­tory to keep the work carry out efficiently.
Inadequate inventory level leads to disruption in production. This disruption implies loss of opportunities in sales. With excess inventory, money is blocked. Excess inventory has the risk of damage and entails avoidable maintenance costs. It can also cause wast­age of the goods stored.

Payroll System
It calculates the salary of employees and make pay slips and salary details based on the attendance of the employee, overtime, loans and other deductions like PF (Provident Fund), TDS (Tax Deduction at Source i.e., Income Tax), etc.
python-fundamentals-software-concepts-fig2.16
Financial Accounting
The Financial Accounting System maintains the vouchers, books of accounts and led­gers and assures the integrity of the company’s business transactions. In most organiza­tions, financial accounting is totally computerized. This helps in accurate book keeping.

Hotel Management
Traditional manual method of record storing always creates some problems. It is more time consuming, inaccurate and need more attention towards delicate data but comput­erized Hotel management system will not only keep records but also give protection to valuable data.
Computerized Hotel management system uses computerized facilities to implement Hotel related records (See Figure 2.17). It maintains records of customer that include their name, address, phone number, room number, room type, arrival date etc. It also maintains the records of those customers who use the facilities of Banquet hall that include the name of the customer, address, booking date, shift (1st or Ilnd) and the advance amount and it also handles the records of those customers who checked out from the hotel.
In hotel management, there is also another facility of restaurant-billing. Restaurant is used by the customers who are staying in the hotel as well as the outer customers (who are not staying in Hotel).
python-fundamentals-software-concepts-fig2.17
Enquiry of customers is another facility of this system. Enquiry can be done by name, address, phone and arrival date.

Reservation System
A computerized reservations system or central reservation system (CRS) is used to store and retrieve information and conduct transactions related to air travel. It is designed and operated by airlines. CRSes were later extended for the use of travel agencies. Major CRS operations book and sell tickets for multiple airlines are known as global distribu­tion systems (GDS). Airlines have divested most of their direct holdings to dedicated GDS companies, who make their systems accessible to consumers through Internet gateways. Modern GDSes allow users to book hotel rooms and rental cars as well as air­line tickets. They also provide access to railway reservations.

Weather Forecasting System
Weather forecasting system means making predictions about general and specific weather phenomena for a given area based on the observations of weather related fac­tors. In a typical weather-forecasting system, recently collected data are fed into a com­puter model in a process called assimilation. This ensures that the computer model holds the current weather conditions as accurately as possible before using it to predict how the weather may change over the next few days.
With the advent of computer models and satellite imagery, weather forecasting has improved greatly. Since live and livelihoods depends on accurate weather forecasting these improvements have helped not only the understanding of weather, but how it affects living and non-living things on Earth.

UTILITY SOFTWARE
Utility software is a program designed to carry out specific service/maintenance work on a computer system.
Examples of Utility Software are as under:

  • Anti Virus scanners and Virus Removers
  • Compression Tools
  • File Management Tools
  • Disk Management tools

Antivirus
Antivirus programs are designed to identify viruses within files, boot sectors, master boot sectors, memory and other hiding places in computer. These types of utility soft­ware will name them and eventually remove these viruses. The capability to detect and identify a virus is the most important feature of a scanner. An antivirus software is critical for providing a precise identification of a virus in computer system. Without a precise identification, you cannot know the best course of action for removing it and you cannot be sure that you have removed it completely.
Antivirus program can spot a virus before the program runs. Thus, if you use a antivirus scanner to check new software before running it, you can prevent even one of your files from getting infected. Scanners are always out-of-date. Most scanners are usually some­what incomplete when they are released. No virus researcher has access to every virus on earth. So even if your scanner was absolutely current a month ago, there may be some viruses that it cannot detect today. Windows 7 operating system comes with a virus protection software.

Virus Detection using Antivirus Programs
Antivirus software (See Figure 2.18) can identify and block many viruses before they can infect your computer. However, it is important to keep it up-to-date after installing it. Antivirus software scans files and your computer’s memory for certain patterns that
may indicate an infection. The patterns it looks for are based on the signatures, or defi­nitions, of known viruses. Virus authors are continually releasing new and updated viruses, so it is important that you have the latest definitions installed on your computer. Many antivirus packages include an option to automatically receive updated virus definitions. In this way, new information is added frequently to the program. It is a good idea to take advantage of this option.
Once you have installed an anti-virus package, you should scan your entire computer periodically. You can configure your antivirus software to perform an automatic scan. In automatic scans, it automatically scans specific files or directories and prompts you at set intervals to perform complete scans.
It is a good idea to manually scan files you receive from an outside source before open­ing them. This includes the following:

    • Saving and scanning e-mail attachments or web downloads rather than selecting the option to open them directly from the source.
    • Scanning media, including CDs (Compact Disks) and DVDs (Digital Video/Ver­satile Disks), for viruses before opening any of their files.

python-fundamentals-software-concepts-fig2.18

Common Types of Viruses
A virus is a program created by programmers to infect the operation of a computer sys­tem. After the virus code is written, it is buried within an existing program, and, once that program is loaded into the computer, the virus replicates by attaching copies of itself to other programs in the system. Viruses are mostly found in the network envi­ronment. A computer virus is a small block of coded instruction that obtains control of a PC’s CPU and directs it to perform unusual and often destructive actions.
Some common types of viruses are as follows:

  • Boot Sector Virus : Boot sector virus infect the system areas of hard disk. Boot sector virus copies itself to boot sector where the program to start the computer is stored thus, virus is loaded on to the main memory and then the operating sys­tem.
  • Program Virus : A program virus generally attacks executable files such as, .com, .exe, sys. Most of the program viruses are memory resident and wait in the memory until the user runs another program where it replicates itself.
  • Macro Virus : This virus infects data files. For example, Microsoft Word docu­ments and template files. They spread rapidly as infected documents are shared on networks or downloaded from Internet sites.
  • Trojan Horse : A Trojan Horse is a program that invades a computer system by secretly attaching itself to a valid program downloaded into the computer. It may be used to locate password information, or it may alter an existing program to make it easier to gain access to it.-
  • Worm: A worm is a destructive program that is capable of replicating itself on a computer network. After the worm code is written, it is buried within an existing program, and once that program is loaded into the computer, the worm repli­cates by attaching copies of itself to other programs in the system.

POINTS TO PONDER
The virus Exploit.CVE-2013-5065.A was detected on 28 November 2013. The symp­tom of this virus is that if you try to open a PDF document, Adobe Reader crashes.

Compression Tools

The process of reducing data by applying a compression technique is called compression, and the resulting data is called compressed data. The reverse process of reproducing the original data from compressed data is called decompression, and the resulting data is called decompressed data.
Disk compression methods works by compressing the data that is stored on the disk drive at the time of writing of the data and when this data is retrieved the data is again expanded to its original form. This is shown in the Figure 2.19.
python-fundamentals-software-concepts-fig2.19
Compression tools help to compress data storage in a computer. Compressed data saves the storage space and read/write as well as transmission time. Compressed data is stored in computer in an unusual manner.

WinZip
WinZip is the world’s most popular zip utility for file compression, encryption, packag­ing, and data backup. WinZip is a compression utility for windows, and a powerful and easy to use tool that zips and unzips files quickly to conserve disk space and greatly reduce e-mail transmission time. With WinZip you can compress JPEG (Joint Photo­graphies Expert Group) files by 20-25% without losing photo quality, and manage and share digital photos more easily (See Figure 2.20).
python-fundamentals-software-concepts-fig2.20
By compressing, you “zip” the file so that it is smaller and requires less disk space. Zip­ping a file is especially helpful if you are planning to send the file as an e-mail attach­ment or transfer it to another computer.

PKZip
PKZip is the original PC file compression program introduced in the late 1980s. It is the source of the jargon “zip” or “unzip” a file. PKZip compresses any computer file from 5% to 95%, depending on the file content, for easy transport through e-mail or on floppy diskette. PKZip greatly reduce transmission times and required storage space. PKZip also improves processing efficiencies. PKZip is available free for personal use on Win­dows, DOS, OS/2 and UNIX operating systems.
POINTS TO PONDER
In 1989, PKZip was first introduced for MS-DOS. PKZip was originally written by Phil Katz.

File Management Tools
A file management tool is a program which permits programmers to create, copy, update or delete files on the storage devices. A file is a collection of information supplied by the programmer which is stored on the disk as a single entity and is accessible by a name. A directory of files stored on the disk is also maintained by the file manager. The directory itself is also stored on the disk. The directory includes file name, size of the file, date and time and unused memory capacity of the disk, etc.

Disk Management Tools
Disk management tool mainly consists of disk defragmentation. File fragmentation increases disk access time and decrease the chances of salvaging a file when there is a problem.
Some commonly used disk management tools are discussed below:

Disk Clean up
Deleting temporary Internet files also a part of disk clean up. But there are other tempo­rary files, which are taking unnecessary disk space. This process is essential if you have a small hard disk drive and are constantly on the verge of running out of space. Computer clean up tools are available in Windows. Click Start button then go to Pro­grams and click the Accessories button and then click the System Tools and select Disk Cleanup (See Figure 2.21). This will search and display set of temporary files which can be deleted from your computer. Tick on each box and run the tool.
python-fundamentals-software-concepts-fig2.21
Disk Defragmenter
The disk defragmenter utility read and rewrite the files on the disk to reorder them so that each file is once again stored contiguously on the disk surface and can be read much more efficiently by the hard disk drive. Disk defragmenter moves the pieces, of each file or folder to one location on the volume, so that each occupies a single, contiguous space on the disk drive.
Disk defragmenter consolidates fragmented files and folders on your computer’s hard disk, so that each file occupies a single, contiguous space on the volume. As a result, your system can gain access to your files and folders and save new ones more efficiently. By consolidating your files and folders, disk defragmenter also consolidates the volume’s free space, making it less likely for new files to be fragmented. (See Figure 2.22)
First part of the Figure 2.23 shows a file fragmented across the disk surface and second part shows the same file after it has been defragmented.
Depending on the frequency of creating/editing/ deleting of the files on the hard disk drive one can defragment the drive once a week or once a month to keep the files in one place.
python-fundamentals-software-concepts-fig2.22
python-fundamentals-software-concepts-fig2.23
Backup

Backup is the activity of copying data, files, database systems so they will be preserved in the event of equipment failure or another catastrophic failure, such as corruption of the original disk or a natural disaster. Backups are useful primarily for two purposes:

  • To restore a computer to an operational state following a disaster called disaster recovery.
  • To restore small numbers of files after they have been accidentally deleted or corrupted.

POINTS TO PONDER
Idrive, an online backup, cloud storage and data backup, is frequently used for unlimited PCs, Macs, iPhones, iPads, and Android devices to store photos, music, movies and documents.

Types of Backups
Backups are of two types:

  • Immediate Backup
  • Archival Backup

Immediate Backups are kept in a floppy disk, zip disk, hard disk or pen drive. These comes handy when a technical fault occurs in the primary database, such as system fail­ure, disk crashes, network failure or accidental erasure of data. Damage due to virus attacks are also repaired using the immediate backup.
Archival Backups are kept in mass storage devices such as magnetic tapes, Internet Serv­ers etc. They are useful for recovering data after a disaster, such as fire, earthquake, flood, terrorist attack, etc. Archival backups should be kept at a different site other than where the system is functioning. Archival backup at a separate place remains safe from thefts and intentional destruction by user staff.

OPEN SOURCE SOFTWARE

Open Source Software (OSS) are softwares, whose source code is available to customer and it can be modified and redistributed. The concept of open source and free sharing of technological information are similar. Open source can pertain to businesses and to computers, software and technology. Open source software can make a major impact on our entire organization. There are several advantages of using open source software. The list of the advantages of open source software are the following:

  • Lesser hardware costs-Linux and open source solutions are easily portable and compressed. It takes lesser hardware power to carry out the same tasks when compared to the hardware power it takes on servers, such as, Solaris, Windows or workstations. With this less hardware power advantage, we can use cheaper or older hardware and still get the desired results.
  • High-quality software-Open source software may be high-quality software. When we use the open source software, the source code is available. Most open source software are well-designed. Open source software can also be efficiently used in coding. These reasons make open source software an ideal choice for organizations.
  • No vendor /oc/c-m-Managers in organizations face constant frustration when dealing with vendor lock-ins’. Lack of portability, expensive license fees and inability to customize software are some of the other disadvantages. Using open source software gives us more freedom and we can effectively overcome all these disadvantages.
  • Integrated management-By using open source software, we can benefit from inte­grated management. Open source software uses technologies, such as, common information model (CIM) and web based enterprise management (WBEM). These high-end technologies enable us to integrate and combine server, application, ser­vice and workstation management. Thus integration would result in efficient administration.
  • Simple license management-When you use open source software, we would not need the licenses. Open source software enables you to install it several times and also use it from any location.
  • Lower software costs-Using open source software, we can minimize our expenses. We can save on licensing fees and maintenance fees. The only expenses that we would encounter would be expenditure for documentation, media and support.
  • Abundant support-We will get ample support when we use open source software. Open source support is mostly freely available and can be easily accessed through online communities. There are also many software companies that provide free online help and also varied levels of paid support. Most organization who create open source software solutions also provide maintenance and support.
  • Scaling and consolidating-Linux and open source software can be easily scaled. With varied options for clustering, load balancing and open source applications, such as e-mail and database, we will enable your organization to either scale up and achieve higher growth or consolidate and achieve more profit.

Freeware
Freeware is computer software that is available for use at no cost or for an optional fee. Freeware is distributed in binary form which are ready to run without any licensing fee. Freeware is often used in marketing situations in order to sell additional products and to gain market advantages. Microsoft Internet Explorer is an example of freeware.

Software classified as freeware is licensed at no cost and is either fully functional for an unlimited time; or has only basic functions enabled with a fully functional version available commercially or as shareware. In contrast to free software, the author usually restricts one or more rights of the user, including the rights to copy, distribute, modify and make derivative works of the software or extract the source code. The software license may impose additional restrictions on the type of use including personal use, private use, individual use, non-profit use, non-commercial use, academic use, educa­tional use, use in charity or humanitarian organisations, non-military use, use by public authorities or various other combinations of these type of restrictions. For instance, the license may be “free for private, non-commercial use”. The software license may also impose various other restrictions, such as restricted use over a network, restricted use on a server, restricted use in a combination with some types of other software or with some hardware devices, etc

Shareware
Shareware is the software that is distributed for free (sometimes in a limited or list for­mat) on a trial basis. If you like the software and want to continue to use it beyond its trial period, it is your responsibility to register and pay for it.
Software distributed absolutely free is called freeware. Programmers who make free­ware either derive personal satisfaction from the adoption and use of their handiwork or benefit financially from the reputation that accrues to the developer of a popular program.
Software that reminds you to register all the time is often called nagware.

Proprietary software
Proprietary software is computer software on which the products has set restrictions on use, private modification, copying, or republishing. Proprietors may enforce restrictions by technical means, such as by restricting source code access, or by legal means, such as through copyright and patents. Examples of proprietary software includes Microsoft Windows, Adobe Photoshop etc.
POINTS TO PONDER
Proprietary software is computer software on which the products has set restrictions on use, private modification, copying, or republishing.

FLOSS
FLOSS (Free Libre Open Source Software) is an alternative term for free software. It permits end users to examine its source code, modify it and redistribute any modifica­tions.

GNU
The GNU Project was launched in 1984 to develop the GNU operating system, a com­plete Unix-like operating system which is free software. The GNU project was initiated by Richard M. Stallman with an objective to create a system compatible to Unix but not identical with it. With time, GNU project expanded and now it is not limited to only an operating system but also offers a wide range software, including application packages for wordprocessing etc.

FSF
The FSF (Free Software Foundation), established in 1985, is deducted to promoting computer users right to use, study, copy, modify and redistribute computer programs. FSF is a non-profit organization created for the purpose of supporting free software movement.

OSI
OSI(Open Source Initiative) is non-profit corporation formed to educate and advocate for the benefits of open source and to build bridges among different constituencies in the open-source community. OSI specifies the criteria for open source software and pro­perly defines the terms and specifications of open source software.

SOLVED EXERCISE

Question 1.
What are the five major activities of an operating system in regard to process
management?

Answer:
Activities of an operating system in regard to process management are as follows:

  • The creation and deletion of both user and system processes.
  • The suspension and resumption of processes.
  • The provision of mechanisms for process synchronization.
  • The provision of mechanisms for process communication.
  • The provision of mechanisms for deadlock handling.

Question 2.
What are the three major activities of an operating system in regard to memory management?

Answer:
Activities of an operating system in regard to memory management are as follows:

  • Keep track of which parts of memory are currently being used and by whom.
  • Decide which processes are to be loaded into memory when memory space becomes available.
  • Allocate and deallocate memory space as needed.

Question 3.
What are the three major activities of an operating system in regard to secondary- storage management?

Answer:
Activities of an operating system in regard to secondary-storage management are Free-space management, Storage allocation, Disk scheduling.

Question 4.
What is the worst damage a macro virus can do?

Answer:
Like all computer viruses, macro viruses can destroy data. For most users, the worst thing a macro virus might do is reformat their computer hard drive.

Question 5.
What is shareware ?

Answer:
Shareware referred to public domain software, that are available for free. The basic idea behind this is to popularize their software. These types of software can be downloaded freely and shared with other user.

Question 6.
What is difference between Time Sharing and Real time Systems.

Answer:
Timesharing is a mechanism to provide simultaneous interactive use of a computer system by many users in such a way that each user is given the impression that he or she has his/her own computer. It uses multiprogramming with a special CPU sche-duling algorithm to achieve this.
Advantages of time sharing systems are

  •  It reduces CPU idle time thus increasing the system throughput.
  • It provides quick response time to all users.
  • It offers good computing facility to small users as they can gain direct access to much more sophisticated hardware and software than they could other¬wise justify or afford.

Real time is a system that must satisfy the requirement of producing the desired result before certain deadline. For example a request for booking a ticket in a computerized railway reservation system must be processed within the passenger’s per¬ception of a reasonable time.

Question 7.
Differentiate between multiprogramming and multitasking.

Answer:
Multiprogramming: Multiprogramming is the name given to the interleaved execution of two or more different and independent programs by the same computer.
Multitasking: Multitasking is the system’s capability to concurrently work on more than one task(job or process) This means that whenever a task needs to be performed I/O operations, the CPU can be used for executing some other task that is also residing in the system and is ready to use the CPU.
Thus the difference between multiprogramming and multitasking is that the multi-programming is the concurrent execution of multiple jobs(of same or different users) in a multi-user system, while multitasking is the concurrent execution of multiple jobs(often referred to as tasks of same user) in a single user system.

Question 8.
What is difference between memory management and device management?

Answer:
Memory management refers to the process of managing computer memory which dynamically allocates memory to programs, and includes virtual memory systems to separate the memory addresses used by a process from actual physical addresses, and increases the available amount of RAM using paging or swapping to secondary storage.
Device management refers to the process of managing all applications and system features which are responsible to maintaining the various events, such as process device events and also responsible for preventing the loss of data and information.

Question 9.
Explain the following :
(i) Disk Cleanup
(ii) Disk Defragmenter

Answer:
(i) Disk Cleanup
You can use Disk Cleanup to free up space on your hard disk by removing tempo¬rary Internet files, removing installed components and programs that you no longer use, and emptying the Recycle Bin.
(ii) Disk Defragmenter
Disk Defragmenter consolidates fragmented files and folders on your computer’s hard disk, so that each file occupies a single, contiguous space on the volume. As a result, your system can gain access to your files and folders and save new ones more efficiently. By consolidating your files and folders, Disk Defragmenter also consoli-dates the volume’s free space, making it less likely that new files will be fragmented.

Question 10.
When is a disk said to be fragmented? Write one disadvantage of a fragmented disk.

Answer:
Disk Defragmenter consolidates fragmented files and folders on computer’s hard disk, so that each file occupies a single, contiguous space on the volume. As a result, computer system can gain access to files and folders and save new ones more effi-ciently. By consolidating the files and folders, Disk Defragmenter also consolidates the volume’s free space, making it less likely that new files will be fragmented.
Because the defragmentation software moves the information stored on the disk surface, it is always better to take backup of the information on the disk surface before using these software packages. These software packages are fplly tested and the chance of data corruption is very remote, but power loss during defragmentation or some other unexpected event may corrupt the data. So it is always better to have a current backup of all important information on the drive before using these programs.

Question 11.
Explain the functions of an Operating System in a computer.

Answer:
An operating system performs the following functions:

  • Processor Management: The operating system assigns processors (if a com-puter has more than one processor) to the different tasks that must be per-formed by the computer system.
  • Memory Management: It (OS) allocates the main memory and secondary memory to the system programs, user programs and data.
  • Input/Output Management: It carries out the input/output management and co ordinates and assigns different input and output devices.
  • File Management: It manages files on various storage devices and the transfer of these files from one storage device to another. It also allows all files to be easily changed and modified through the use of text editors or some other file manipulation software packages.
  • Scheduling: It establishes and enforces the job priority. That is, it determines and maintains the order in which jobs are to be executed in the computer sys-tem.
  • Timesharing: It co-ordinates and assigns compilers, assemblers, utility pro¬grams, and other software packages to various users working on the com¬puter system.
  • Security Management: It establishes data security and integrity. That is, it keeps different programs and data in such a manner that they do not interfere with each other. Moreover, it also protects data from being destroyed by any other user.

Question 12.
Give three advantages of Linux OS.

Answer:
Advantages of Linux operating system are

  • Easy to install applications. Installing new programs in Linux is! easier than in Windows.
  • The majority of Linux variants are available for free or at a much lower price than Microsoft Windows. It is rarely attacked by viruses.
  • The Linux community on the Internet is very active and helpful. It is easy to find solutions to problems.

Question 13.
Compare Proprietary Software and Free Software.

Answer:
Proprietary software is the computer software on which the products has set restric-tions on use, private modification, copying, or republishing. Proprietors may enforce restrictions by technical means, such as by restricting source code access, or by legal means, such as through copyright and patents. Examples of proprietary software includes Microsoft Windows, Adobe Photoshop, etc.
Free software is a software that can be used, studied, and modified without restric-tion and can be copyed and redistributed in modified or unmodified form.

14.Multiple choice questions
Question 1.
Which of the following is not UNIX based?

  • MAC OS
  • Fedora
  • MS-DOS
  • Android

Answer:
MS-DOS

Question 2.
Every time when Computer starts, Operating System loads:

  • Device Manager
  • Windows Updates
  • Driver Updates
  • Device Drivers

Answer:
Device Drivers

Question 3.
Multiprocessing means

  • Simultaneous processing with two or more processes.
  • Simultaneous running of two or more programs.
  • Running of two or more processes.
  • None of the above.

Answer:
Simultaneous processing with two or more processes.

Question 4.
Virtual memory is:

  • Part of main memory only used for swapping.
  • A technique to allow a program, of size more than the size of main memory, to run.
  • Part of secondary storage used in program execution.
  • None of the above

Answer:
A technique to allow a program, of size more than the size of main memory, to run.

Question 5.
Software used by the computer hardware to interact with the user is:

  • System software
  • Compiler
  • Interpreter
  • Application software

Answer:
System software

About the author

James Palmer

Leave a Comment