Computer Software
Computer software refers to a collection of programs, data, and instructions that enable a computer to perform specific tasks or functions.
Software can broadly be classified into two main types:
- System Software
- Application Software
1. System Software
System software is software designed to manage and control computer hardware and provide a platform for running application software.
It helps the computer system operate properly and coordinates different hardware and software components.
Features of System Software
Some important features of system software are:
- System software can be complex to design and develop.
- It works closely with computer hardware.
- It provides a platform for running application software.
- It is designed for efficient and fast execution.
- It manages and controls important computer resources.
Types of System Software
Important types of system software include:
- Operating System
- Utility Software
- Language Processor
Operating System
An Operating System (OS) is system software that manages computer hardware and provides services for other software programs.
It acts as an intermediary between:
User / Application Software ↔ Operating System ↔ Computer Hardware
Examples
- Microsoft Windows
- macOS
- Linux
- Unix
Utility Software
Utility software is system software designed to help maintain, manage, protect, optimize, and improve a computer system.
Utility software commonly performs tasks related to:
- System maintenance
- Data management
- Security
- Backup
- File management
- Performance optimization
Language Processor
A language processor is software used to translate programming instructions into a form that a computer can understand and execute.
The major types of language processors are:
- Compiler
- Interpreter
- Assembler
Compiler
A compiler is a language processor that translates an entire program written in a high-level programming language into machine code or another executable/intermediate form.
A compiler generally translates the complete source program before its execution.
Interpreter
An interpreter is a language processor that translates and executes source code one statement at a time.
It reads the source code, analyzes it, and executes the instructions during program execution.
Assembler
An assembler is a language processor that translates a program written in assembly language into machine language.
Assembly language uses mnemonic instructions that represent machine-level operations.
Difference Between Compiler, Interpreter and Assembler
| Compiler | Interpreter | Assembler |
|---|---|---|
| Translates high-level language. | Translates and executes high-level source code statement by statement. | Translates assembly language. |
| Usually processes the complete program before execution. | Processes instructions during execution. | Converts mnemonic instructions into machine instructions. |
| Used with compiled programming languages. | Used with interpreted programming environments. | Used with assembly language. |
| Produces machine/object/intermediate code depending on the implementation. | Commonly executes instructions directly through the interpreter environment. | Produces machine/object code. |
2. Application Software
Application software is software designed to perform specific tasks for the user.
It helps users perform activities such as:
- Writing documents
- Calculations
- Designing
- Communication
- Data management
- Business operations
Features of Application Software
Some important features of application software are:
- It is developed to perform specific user-oriented tasks.
- It is generally developed using high-level programming languages.
- It is designed to solve particular problems or requirements.
- Some application software can require significant storage space depending on its features.
Types of Application Software
Application software can be classified into:
- Package Software
- Tailored Software
Package Software
Package software is software developed for use by many users with similar requirements.
It is generally available as a ready-made software product.
A software package may contain one or more related programs designed to work together.
Tailored Software
Tailored software, also known as custom software or bespoke software, is specially designed and developed according to the requirements of a particular:
- User
- Organization
- Company
- Business
It is created to solve specific problems that may not be fully addressed by general-purpose packaged software.
Difference Between Package Software and Tailored Software
| Package Software | Tailored Software |
|---|---|
| Developed for many users. | Developed for a particular user or organization. |
| Usually ready-made. | Developed according to specific requirements. |
| General features are provided. | Features are customized. |
| Can be distributed to many customers. | Usually designed for a specific client or purpose. |
Operating System
An Operating System (OS) is system software that manages computer hardware and provides common services for computer programs.
It acts as an interface between users, application programs, and computer hardware.
Main Functions of an Operating System
The major functions of an operating system include:
- Managing the CPU
- Controlling input and output devices
- Managing storage and retrieval of information
- Coordinating application programs with hardware
- Managing memory
- Managing files
- Managing processes
- Providing security
- Handling interrupts
- Managing system resources
Memory Management
Memory management refers to managing the memory resources of a computer system.
An operating system manages the allocation and deallocation of memory to programs according to their requirements.
It helps ensure that different programs receive the memory they need while they are running.
Device Management
A computer system may contain many input and output devices.
The operating system manages communication with these devices, often through device drivers.
Device management includes:
- Managing I/O requests
- Coordinating device access
- Controlling communication between hardware and software
File Management
The operating system manages files and directories stored on a computer.
File management includes:
- Creating files
- Organizing files
- Creating directories
- Storing files
- Retrieving files
- Naming files
- Protecting files
Files may be arranged into directories and subdirectories for better organization.
Process Management
A process is a program that is currently being executed.
During execution, a process may require:
- CPU time
- Memory
- Input/Output devices
- Other system resources
The operating system manages these processes and allocates the required resources.
Security
An operating system helps protect data and system resources from unauthorized access.
Some security mechanisms mentioned in the chapter include:
User Accounts
Different users can be provided with individual accounts.
Access Rights
Access rights define what information or resources different users are allowed to use.
User Authentication
Users may be required to verify their identity using passwords or other authentication methods.
Data Encryption
Sensitive information can be stored in encrypted form to improve security.
Deadlock
In a multiprogramming environment, multiple processes may require the same system resources.
A deadlock is a condition in which processes are unable to continue because each is waiting for a resource held by another process.
Operating systems use resource-management techniques to handle or reduce such situations.
Interrupt Handling
An interrupt is a signal sent to the processor indicating that an event requires attention.
Interrupts may be generated by:
- Hardware
- Software
The operating system helps manage these interrupts so that the processor can respond appropriately.
Types of Operating System
The types of operating systems discussed in this chapter include:
- Single-User / Single-Tasking OS
- Single-User / Multitasking OS
- Multi-User OS
- Real-Time Operating System
- Multitasking Operating System
1. Single-User / Single-Tasking Operating System
A single-user, single-tasking operating system allows one user to perform one main task at a time.
It is designed for relatively simple computing environments.
2. Single-User / Multitasking Operating System
A single-user, multitasking operating system allows one user to run multiple programs or applications.
For example, a user may work with different applications during the same computer session.
The source gives systems such as:
- Windows
- Macintosh operating systems
as examples.
3. Multi-User Operating System
A multi-user operating system allows multiple users to access the resources of a computer system.
The central computer system may contain:
- Powerful processor resources
- Large storage capacity
- Shared system resources
Examples given in the source include:
- Linux
- UNIX
- MVS
Advantages of Multi-User Operating System
- It allows efficient utilization of computer resources.
- Multiple users can access shared resources.
- It can improve productivity by supporting multiple tasks and users.
Disadvantages of Multi-User Operating System
- A multi-user environment can be complex to manage and maintain.
- Problems with important central resources or network connections may affect multiple users.
Difference Between Single-User and Multi-User Operating System
| Single-User OS | Multi-User OS |
|---|---|
| Provides resources mainly to one user at a time. | Allows multiple users to access system resources. |
| Generally simpler to manage. | Generally more complex to manage. |
| A single user may interact with several programs in a multitasking system. | Multiple users may access shared resources. |
| Designed mainly for individual use. | Designed for environments with multiple users. |
| Examples given in the notes: Windows, Apple macOS. | Examples given in the notes: Unix, Linux. |
4. Real-Time Operating System (RTOS)
A Real-Time Operating System (RTOS) is an operating system designed for applications where operations must respond within specific timing requirements.
Real-time operating systems are commonly associated with embedded and time-sensitive systems.
The chapter gives examples such as:
- MTOS
- RTX
- Lynx
Types of Real-Time Operating System
Real-time operating systems can be divided into:
- Hard Real-Time OS
- Soft Real-Time OS
Hard Real-Time Operating System
In a hard real-time operating system, tasks must complete within strict specified deadlines.
Missing a required deadline may cause the system to fail to meet its intended requirement.
Soft Real-Time Operating System
In a soft real-time operating system, timing deadlines are important, but a task may sometimes complete slightly after the desired time.
Such delays may reduce performance but do not necessarily cause total system failure.
Advantages of Real-Time Operating System
- System resources can be used efficiently for time-sensitive applications.
- RTOS can be suitable for embedded systems.
- It gives high priority to tasks that require timely execution.
- It is useful where predictable response time is important.
Limitations of Real-Time Operating System
- RTOS design and resource management can be complex.
- Some real-time systems require specialized hardware and software resources.
- Task scheduling must be carefully managed.
5. Multitasking Operating System
A multitasking operating system allows multiple programs or tasks to make progress during the same period by rapidly switching CPU time among them.
For example, a user may work with:
- MS Word
- MS Excel
- Media Player
during the same computer session.
Types of Multitasking Operating System
Multitasking can be classified into:
- Preemptive Multitasking
- Non-Preemptive Multitasking
Preemptive Multitasking OS
In preemptive multitasking, the operating system controls CPU scheduling.
CPU time is divided among different processes according to scheduling rules or priorities.
A process can be interrupted so that another process can receive CPU time.
Non-Preemptive Multitasking OS
In non-preemptive multitasking, a running program retains control of the CPU until it voluntarily gives up control or completes its operation.
It is also called cooperative multitasking.
Advantages of Multitasking Operating System
- Multiple applications can be used during the same computer session.
- It improves utilization of CPU and system resources.
- It can improve overall productivity.
Disadvantages of Multitasking Operating System
- Running several programs may require a large amount of memory.
- Heavy multitasking can increase CPU and system-resource usage.
- System performance may decrease if too many programs are running simultaneously.
User Interface
A user interface is the environment provided by an operating system through which a user interacts with a computer.
The two types discussed in this chapter are:
- CUI
- GUI
CUI – Command User Interface
CUI stands for Command User Interface.
It is also commonly referred to as a:
- Command-Line Interface
- Text-Based Interface
In a CUI, users interact with the computer by typing commands.
Characteristics of CUI
- Mainly text-based
- Commands are entered using the keyboard
- Requires knowledge of commands
- Contains fewer graphical elements
- Can be more difficult for beginners to use
GUI – Graphical User Interface
GUI stands for Graphical User Interface.
A GUI allows users to interact with a computer using graphical elements such as:
- Icons
- Windows
- Menus
- Buttons
- Pointers
Users can perform tasks using point-and-click operations instead of relying only on typed commands.
Difference Between CUI and GUI
| CUI | GUI |
|---|---|
| Stands for Command User Interface. | Stands for Graphical User Interface. |
| Mainly text-based. | Mainly graphics-based. |
| User enters commands. | User interacts with icons, windows, menus, and buttons. |
| Requires knowledge of specific commands. | Generally easier for beginners to operate. |
| Mostly operated using a keyboard. | Commonly operated using mouse, keyboard, touchscreen, etc. |
| Has fewer graphical elements. | Contains graphical components. |
Quick Revision
Computer Software
Software is a collection of programs, data, and instructions that enables a computer to perform tasks.
Main Types
- System Software
- Application Software
System Software
System software manages computer hardware and provides a platform for application software.
Types
- Operating System
- Utility Software
- Language Processor
Language Processors
Compiler
Translates an entire high-level source program.
Interpreter
Translates and executes instructions statement by statement.
Assembler
Converts assembly language into machine language.
Application Software
Application software is designed to perform specific tasks for users.
Types
- Package Software
- Tailored Software
Operating System
An operating system manages computer hardware, software, and system resources.
Major Functions
- Memory Management
- Device Management
- File Management
- Process Management
- Security
- Interrupt Handling
- Resource Management
Types of Operating Systems
- Single-User / Single-Tasking OS
- Single-User / Multitasking OS
- Multi-User OS
- Real-Time OS
- Multitasking OS
Real-Time OS
Types
- Hard Real-Time OS
- Soft Real-Time OS
Multitasking OS
Types
- Preemptive Multitasking
- Non-Preemptive Multitasking
User Interface
CUI
Uses commands and a text-based interface.
GUI
Uses graphical components such as icons, windows, buttons, and menus.
Important Exam Points
- Computer software consists of programs and instructions.
- Software is mainly divided into system software and application software.
- System software manages hardware and supports applications.
- Operating systems, utility software, and language processors are types of system software.
- Compiler, interpreter, and assembler are language processors.
- Application software is designed for user-oriented tasks.
- Package software is developed for general users.
- Tailored software is developed for specific requirements.
- An operating system acts as an intermediary between applications and hardware.
- Memory management allocates and deallocates memory.
- Device management manages input and output devices.
- File management manages files and directories.
- Process management manages programs currently being executed.
- Operating systems provide security mechanisms.
- A multi-user OS allows multiple users to share computer resources.
- An RTOS is designed for time-sensitive applications.
- Hard real-time systems have strict deadlines.
- Soft real-time systems allow more flexible deadlines.
- Multitasking allows multiple programs to make progress during the same period.
- Preemptive multitasking is controlled by the operating system scheduler.
- Non-preemptive multitasking is also called cooperative multitasking.
- CUI is command-based.
- GUI uses graphical elements.
Discussion
Share a helpful question, idea, or explanation with other students.