Software Concepts

This page contains the CBSE class 11 Computer Science with Python chapter 2, Software Concepts . You can find the questions/answers/solutions for the chapter 2 of Unit 1 of CBSE class 11 Computer Science with Python in this page.

Software Concepts
a) ‘Hardware is of no use without software and software cannot be used without hardware.’ Explain.
The saying Hardware is of no use without software and software cannot be used without hardware is indeed true because every computer systems have both hardware and software existing together and each depend on the other. Hardware refers to the tangible part of the computer that is used to interact with the computer. Software refers to set of programs which are used to perform various on the computer and there by controlling the operations of the computer. The hardware needs software to perform its operations. Software requires hardware on which it can reside and run. Hence, only with the two co-operating can the actual working of the computer take place.

b) How can the software be classified? Name at least one software in each of the categories.
At a broad level, the software can be classified as follows.
1) System software. Examples include Windows, Machintosh, Linux, Android iOS, C++ compiler, Java interpreter etc.
2) Utility software. Examples include Norton Antivirus, WinZip compressor, Windows Explorer etc.
3) Application software. Examples include Office 365 suite (which includes Microsoft Word, Microsoft Excel etc), Oracle, MS SQL Server etc.
The following diagram gives more detailed classification of the software.
Software
System
Softwre
Utility
Software
Application
Software
Operating
System
Language
Translators
General
Purpose
Customized
Software
Compiler
Assembler
Interpreter

c) What is an operating system? Write names of any two popular operating systems.
An operating system is a crucial part for the operation of the computer. It is the first program that is loaded into the memory as soon as the computer is switched on. It is a set of instructions and programs that monitor and regulate the working of a computer. It is also responsible to provide various services which the application software, programmers and users use. Few of the various responsibilities of the operating system are as follows:
a. Managing the hardware
b. Managing the software
c. Input processing
d. Output Processing
e. Information flow into and out of the processor
f. Prioritization of various tasks to be handled etc
Operating system also acts as a interface which the user can interact with to communicate with the computer hardware.
Few of the most popular Operating systems are Windows, Macintosh, Linux, Unix, Solaris etc

d) What is the role of a Page Map Table in Virtual Memory Management?
d) Using the virtual memory technique, it is possible to run programs that require memory more than the main memory of the computer. While using this technique, the program is partially loaded onto the memory and starts executing. To achieve this, the operating system divides the main memory into multiple fixed-length continuous blocks called pages. A part of the large program is then loaded onto the main memory. This is known as active set. The remaining part of the program is then stored in the secondary storage device in the form of blocks or sectors or tracks. Page Map Table (PMT) helps the operating system to keep track of the mapping of in which page of main memory is storing which block of secondary memory. It uses the virtual addresses to map either the main memory or the secondary memory.

e) Explain the major functions of an operating system.
Few of the salient functions of the operating system are as follows:
1. Processor Management: In this, it manages the CPU through scheduling in which it allots the CPU time to different processes. Scheduling either priority scheduling in which the tasks are run based on the priority or it can be round robin/time sharing in which each task is run for a fixed amount of time.
2. Divice Management: In this, the operating system communicates with the hardware and the attached devices and maintains a balance between them and the CPU. This can be done either through buffering or overlapped processing in which the input or output data is temporarily stored in input buffers or output burffers and then sent to / from the program. Or it can be done through Spooling (Simultaneous Peripheral Operation On Line) where in the processing of different tasks on the same input/output device is managed through temporarily storing the data on the hard disk of the device and processing the tasks one by one.
3. Memory Management: The program that need to be executed is loaded into memory and then once it the program is completed executing, the memory is cleared. This can be achieved through partitioning in which the memory is divided into multiple partitions of fixed or varying lengths into which the programs are loaded and executed. Or it could be achieved through virtual memory in which the main memory is divided into equal sizes called pages and even programs which require more memory then main memory can be loaded partially into memory and executed by maintaining Page Map Tables.
4. File Management: The Operating system manages file/folders/directories by maintaining File Allocation Table (FAT) which is used for storing general information about files. The file manager helps in creating, editing, copying and allocating the memory to the files and updating the FAT tables. It also handles the read/write/edit permissions of the files.

f) What is the purpose of a language processor?
Machine code is the only language that the computers can understand. This machine language is primitive and comprises of only zeros(0) and ones(0). However, it is very complex and tedious task for humans to write the programs in the machine language. So, we write programs in assembly language or high level languages (which are human readable) like BASIC, C++, Python, Java etc. These programs are commonly known as source program or source code. However, these programs as these programs can not be directly executed by the computers, they are translated to the machine code before running them. The special translators used for this purpose are known as language processors.

g) Differentiate between:

(i) An interpreter and a compiler.
(ii) Priority Scheduling and Round Robin Scheduling
(iii) Buffering and SPOOLING
(iv) Time Sharing and Real Time Operating System

The following are the differences between an interpreter and a compiler.
Interpreter
Compiler
It translates the source program into machine code proceeding one statement at a time.
It translates the whole source program into machine code all at once. The program thus translated is known as Object Code. The source program can be translated to object code only if there are no errors.
The translated line is immediately executed.
The program is executed only after the entire translation.
If an error is encountered in a line it immediately terminates the translation.
All errors are shown after compilation. The program need to be recompiled after resolving all the errors.
Execution of the next line starts after resolving the reported error is resolved.
The program will start executing only after all the errors are resolved.
Examples are PHY, Python and Ruby interpreters.
Examples are C and C++ compilers
The following are the differences between priority scheduling and round robin scheduling.
Priority Scheduling
Round Robin Scheduling
The tasks are scheduled according to priority and gets the CPU time accordingly.
Each task is scheduled a fixed amount of time to execute.
Higher priority tasks need to be completed first before the CPU time is allocated to the low priority tasks.
Every task is guaranted to be started in a given amount of time but the completion is not as per the priority.
Execution of the task continues until the task is completed or the operating system interrupts this tasks due to other priorities.
If the task is not completed within the given the time then it is placed at the end of the queue. It gets time to execute during the next cycle of execution.
It’s main limitation is that some small tasks may have huge wait time if the high priority tasks are executing..
Each task is given a reasonable amount of time to shared resources.
The following are the differences between buffering and SPOOLING.
Buffering
SPOOLING
This is a technique where in the input and output data is stored temporarily in the input buffer and output buffer respectively.
This is basically the technique used to process various tasks on the same I/O device.
The program that needs the input, sends the request to the Operating System and continues to execute. The operating system then signals the device controller. Once the input buffer is full, the operating system signals the program to read the data. It deals in similar fashion with the output data through output buffers.
The operating system queues the user requests on the hard disk and processes them one by one.
This is called overlapped processing because while the operating system is handling one buffer, the program is using another buffer simultaneously. This kind of buffering is volatile in nature.
The processing is sequential (happens one after the other in queue) and is comparatively less volatile in nature.
The following are the differences between Time Sharing and Real Time Operating Systems.
Time Sharing Operating System
Real Time Operating System
It permits the execution of multiple tasks or programs concurrently.
It permits multitasking for real time applications..
The tasks are allotted specific amount of processor time in a round robin fashion. However, the end user perceives that all the processes are running simultaneously.
The tasks have to be completed within a given deadline.
There is rapid round robin switching between users and the users feel that their task is being performed dedicatedly.
The tasks need to be completed with minimum deadline overrun.
Uses virtual memory techniques.
Depends both on the logical results of the computation and the time required to provide the results.
Examples are various versions of Windows starting with Windows 95.
Examples are real time applications like robotics.

h) Explain any two utilities.
A utility is a software that is responsible for completing tasks for better maintenance of the computer. Some of the utilities are as follows –

1) Backup Utility: To copy complete or partial data from a disk or CD, this utility is used. The advantage of this utility is that the backup is available in case the hard disk or any other system failure occurs. The files can be restored from the already taken backup.
2) Compression Utility: To save memory this utility compresses large files. Compression utility is very helpful as more resources can be stored in a given memory (as memory occupied by the compressed resource is much less than the memory occupied by the original resource). When it is required that the files need to be transferred over the network, the compressed files due to their reduced sizes can be transferred fast.

i) What is word processing? Discuss the purpose of word processing software.
Word processing is a technique which allows us to create, edit and format word documents. It has many features to format the text like changing the font size, color, style etc. It also allows usage of graphics in the document. Following are the purpose of a word processing software –
1) Writing simple documents
2) Designing special graphics and other multi-media (sound files, videos etc)
3) Insertion of various images and shapes
4) Creation of posters
5) Allowing Mail Merge etc.
6) Allow us to include macros.
The most popular among the word processing softwares available in the market are Microsoft Word, Open Office’s Writer etc.

j) What is the difference between an Open source Software and a Freeware. Write 2 examples of each.
The following are the differences between an Open Source Software and a Freeware.
Open Source Software
Freeware
The user is free to use/run the software for any purpose or in any manner.
The author will be the sole owner of the software. The user is free to use/run the software only for a specific purpose. In otherwords, the users can not use it for any pupose other than the specified purpose.
The customer can freely access the source code.
The source code is not available.
The user can use it directly, make changes to it, or even re-distribute the original/modified software subject to the license requirement.
It can only be used but can not be modified as the soruce code is not freely available.
Examples are Python and Tux Paint
Examples are Microsoft Internet explorer and Microsoft Paint programs that comes bundled with Microsoft Windows Operating System.

k) How are Freeware and Free Software different?
The following are the differences between Freeware and Free Software.
Freeware
Free Software
The author will be the sole owner of the software. The user is free to use/run the software only for a specific purpose. In otherwords, the users can not use it for any pupose other than the specified purpose.
The user is free to use/run the software for any purpose or in any manner.
The source code is not available.
The customer can freely access the source code.
It can only be used but can not be modified as the soruce code is not freely available.
The user can use it directly, make changes to it, or even re-distribute the original/modified software subject to the license requirement.