Software Concepts
What is a software?
Software is a collection of instructions, data, or computer programs that are used to run machines and carry out particular activities.
Types of software
1) System software: A software designed for system control device purpose, then it is called system software.
Example: Loaders, Linker’s, operating system.
2) Application software: A software program which is designed to fulfil the needs of the user is called application software.
Example: MS Office, tally, games etc,
Computer Languages
Machine language- A machine language is basic low-level programming designed to be recognized by a computer. The machine language is written in binary code, such as 0’s (zero’s) and 1’s(One’s).
Example: 000100110010 (Load Data), 010010100101 (Add data)
Assembly language- It uses mnemonics for programming. Mnemonics is set of codes to represent some tasks. It is a machine dependent language.
Example: “MOV” for data movement, “ADD” for addition
High level language- A high-level programming language that enables development of a program in much more user-friendly and is generally independent of the computer’s hardware architecture.
Example: C, C++, Java, Python etc,
Advantages of high-level language-
1. High languages are user-friendly. They are easy to write, debug and maintain.
2. It provides a higher level of abstraction from machine language.
3. It’s a machine independent language.
4. Easy to learn and program.
5. Less error-prone, easy to find and debug errors.
Disadvantages of high-level language-
1. It takes additional time to translate from source code into object code.
2. High level programs are comparatively slower than low level programs.
3. Compared to low level programs, they are generally less memory efficient.
4. Cannot communicate directly with hardware.
Types of system software
Language Translator (L.T): A system software which is designed to translate high level or assembly language into machine language is called language translator. Types of translators are assembler, compiler and interpreter.
Assembler: It translates assembly language(mnemonics) into machine language (0 and 1). It translates the entire program at one time. A mnemonic is named set of sequential bits.
Compiler: A compiler translates high level language into machine language. i.e. source code into object code. This process is called compilation.
Interpreter: It translates high level language into machine language. It translates a program line by line, hence require more time.
Linker: A linker is a program in a system which helps to link modules of a program into a single object file. It performs the process of linking. In computing, a linker or link editor is a computer utility program that takes one or more object files generated by a compiler and combines them into a single executable file or another object file.
Loader: Once an executable program is generated by linking the modules, it is to be loaded to a main memory (RAM) of a computer system for execution. This process is performed by a software called a loader.
Operating System
An operating system is a system software designed to operate the computer system. It acts as an interface between user and the computer system.
What is Booting?
A process of loading system files(operating system) from secondary memory to main memory to main memory (RAM) of a system is called booting.
Important Functions of operating system: –
1. Booting
2. File and directory management- An operating system supports all file services namely saving, copying, deleting, retrieving etc., It also allows to create, change remove directories.
3. Memory management- An operating system manages allocation and deallocation of memory as per requirements.
4. Process management- Assigning the CPU time to the program segment being executed. It is used in multiprogramming environment.
5. Device management- The functions of devices such as input, output, peripheral et., are controlled by an operating system.
6. Security- It provides the security to data and applications.
7. Interfacing with users- An user can communicate with the computer system through an operating system.
8. Installation and uninstallation of software.
9. Provides the statistics of system resources and performance.
Types of operating system
Single User- Only one user can use a system at one time.
Multi user- Multiple users can use a system at one time.
Multi-tasking- System performs multiple jobs at a time.
Multi-programming- A processor attends multiple programs concurrently.
Batch processing- Inputs are collected and submitted in batches and processes the jobs in First-In-First-Out Order.
Online- Jobs are processed one after the other. As waiting time is less, turnaround time also decreases.
Real time- It processes the data with high speed. Thus, a large volume of data can be processed. It is costlier.
Distributed- Data and applications are distributed among the multiple stations. Load balancing is easy.
Multi-threaded- A thread is a flow of execution of codes with its own program counter, system registers and stack. A thread is also called lightweight process.