Computer software
Computer software refers to a set of programs, data, and instructions that enable a computer to perform specific tasks or functions. Software can be broadly categorized into two main types: system software and application software.
System Software:
System software is a type of software that is designed to run a computer’s hardware and application software.
Features of system software
- System software is difficult to design.
- The software is basically written in a low-level programming language.
- The system software is close to the system as it is directly connected to different hardware and provides a platform to run application software.
- The execution speed of system software is fast.
Operating Systems (OS):
An operating system is a fundamental type of system software that manages hardware resources and provides essential services to other software applications. Examples include Microsoft Windows, macOS, Linux, and Unix.
Utility software:
Utility software refers to a category of software programs that provide specific tools or functionalities to help manage, optimize, maintain, or enhance the performance of a computer system. These utilities typically focus on tasks related to system management, data management, security, and performance optimization.
Language processor:
A language processor is a software tool or program that processes human-readable programming or scripting language code into machine-readable instructions that a computer’s CPU can execute. It’s an umbrella term that encompasses various types of language processing tools, including compilers, interpreters, and assemblers. Here’s a brief overview of each:
Compiler:
A compiler is a language processor that translates the entire source code of a program written in a high-level programming language into machine code or intermediate code. It performs translation in multiple phases, including lexical analysis, syntax analysis, semantic analysis, optimization, and code generation. The output of a compiler is typically an executable file or an intermediate representation (e.g., byte code) that can be executed directly by the computer’s CPU or by a virtual machine.
Interpreter:
An interpreter is a language processor that translates and executes source code line by line, without generating an intermediate file. It reads the source code, analyzes it, and executes each statement or expression immediately. Interpreters are often used in scripting languages like Python, JavaScript, and Ruby, where rapid development and ease of debugging are prioritized over execution speed.
Assembler:
An assembler is a language processor that translates assembly language code into machine code. Assembly language is a low-level programming language that uses mnemonic instructions representing machine-level operations and memory addresses. Assemblers convert these mnemonic instructions into their corresponding binary representations directly understandable by the CPU.
Application software
Application software refers to a category of computer programs designed to perform specific tasks or provide specific functionalities for end-users.
Feature of application software
- Application software is difficult to design.
- The software basically developed using a high-level programming language.
- It is designed to perform a specific task or to solve a particular problem.
- It occupies more space in a memory.
Application software is categorized into two types
Package software:
Package software, also known as software packages or software suites, refers to a collection of software applications bundled together and sold as a single product. These packages typically include multiple related programs that serve different purposes but are designed to work together seamlessly.
Tailored software:
Tailored software, also known as custom software or bespoke software, refers to software applications or solutions that are specifically designed, developed, and customized to meet the unique needs, requirements, and preferences of a particular user, organization, or business.
Operating system
An operating system (OS) is a software program that manages computer hardware and provides common services for computer programs. It acts as an intermediary between applications and the computer hardware, enabling users to interact with the computer and run various software applications.
The main functions of OS are listed below:
- Operating system manages and operates CPU of the computer.
- It controls input/output devices.
- It manages the storage and retrieval of information from storage disk.
- Handles the working of application programs with the hardware and other software.
Functions and characteristics of operating system are listed below:
Memory management:
It refers to the process managing the memory resources in a computer system. There are variety of memory available such as primary memory, secondary memory, OS take care of allocation and de-allocation of memory to program in need of this resource.
Device management:
A computer system consists of several I/O devices connected to it. An OS manages device communication via their respective device drivers. It keeps tracks of I/O requests from processes, decides which process gets access to certain device.
File management:
The files in computer system are organized into directories which can contain other directories and files also. The operating system carries out the file management task such as organizing files and directories, storage, retrieval, naming and protection of files.
Process management:
Process refers to a program that is currently in execution. During execution it requires certain resources such as CPU time, memory, and I/O devices.
Security:
Some of the data stored in computer system can be highly sensitive and valuable to the user. The OS ensure the security of the data from destruction and unauthorized access by the password protection mechanism. Some of security mechanism provided by OS are:
- Users accounts:
Individual account of each user.
- Access rights:
Defining rights for different users to access information.
- User authentication:
With password user can be authenticated.
- Data encryption:
Store data in encrypted form. - Deadlock prevention
In a multiprogramming environment, multiple process may try to access a resource. A deadlock is a condition which occurs when a process is waiting for a resource which is being used by another process and this process is also waiting for some other resource. - Interrupt handling
An interrupt is a signal to the processor emitted by hardware or software indicating an event needs immediate attention.
Types of operating system
- Single-user/single-tasking OS:
It allows a single user to perform only one task at a time. Process such as printing document, downloading images can be performed only one at a time. - single-user/multi-tasking OS:
It allows a single user to perform multiple applications and programs at a time. OS such as windows OS and Macintosh OS are the examples of single-user/multi-tasking OS.
Multi-user operating system
The multi-user OS enable multiple use the resources of a computer system at the same time. It is an OS which allows multiple users to connect and operate a single OS. The central computer system consist a fast processor and a large storage capacity. Some of the examples of multi-user OS are Linux, UNIX,MVS, etc.
Advantage
- Efficient utilization of computer resources.
- It improves productivity as it performing multiple task at a time.
Disadvantage
- Multiuser environment is complex and difficult to maintain.
- If a central device is not working or the connection is broken, then the users cannot perform any task.
Different between single user OS and multi-user OS
Single user OS | Multi-user OS |
It provides resources and services to only one user at a time. | It provides resources and services to multiple users at a time. |
Single user OS is simple. | Multiuser OS is complex. |
Single user can interact with several programs simultaneously. | More than one user can access the computer system resources at a time. |
Sometimes CPU is not utilized to its maximum. | The OS simulates real time performance by task switching. |
Example: Windows, Apple Mac OS. | Example: Unix, Linux, Mainframe computers. |
Real time operating system:
RTOS is an operating system specially designed for handling real time applications or embedded applications. The real time applications are required to be executed within a specific period of time. Examples of real time OS are MTOS, RTX, Lynx, etc.
The real time OS are of two types
Hard real time OS:
In hard real time OS, the task must start and complete on specified scheduled time.
Soft real time OS:
In soft real time OS, the deadlines are handled softly, i.e. a task can performed even after its allocated time has elapsed.
Advantage
- Maximum utilization of resources. There is little or no down time in these systems.
- Due to its small size of programs, RTOS can be used in embedded systems like in transport and others.
- The OS focuses on application which are in execution and always give exact result on current execution work.
Disadvantage
- Because the focus is on application being executed there is no time limit of how much the waiting task have to wait.
- RTOS uses lot of system resources which is not so good and expensive as well.
Multitasking Operating System
Multitasking term is used in a modern computer system. Multitasking allows execution of multiple jobs by the CPU simultaneously by switching between them. In multitasking more than one task are executed at the same time.
Multitasking operating system can be of two types
- Preemptive multitasking OS:
In this OS slices of CPU time are allocated to various processes on some priority basis.
- Non-preemptive multitasking OS:
Each program can control the CPU as long as it needs. If a program is not using CPU then it can allow another program to use it. It is also called cooperative multitasking.
Advantage
- It helps in increasing the overall performance of the computer system.
- Multiple program like MS-Word, MS-Excel, media player can run at the same time.
Disadvantage
- Computer requires large amount of memory in order to execute several at a time.
- CPU becomes busy all the time because of multitasking. Hence, the CPU heats up.
User interface
The user interface is the environment provided by operating system for interacting with the computer.
Following are the types of user interfaces:
CUI (command user interface):
CUI also referred as command line interface/ text-based interface is a type of user interface where the user provides input by typing a specific command. It does not contain any graphical components as GUI and are difficult for user to operate.
GUI (graphical user interface):
GUI is the type of user interface that contains icon and graphical components representing various objects such as file, directory and device. It allows users to interact with OS with the means of point-and-click operations.