System software manages computer resources. System software does file handling, input/output management, and memory management, and storage management.
The system software has three categories:
- System control programs: these programs control program execution, manage retrieval of required information in and out of the memory, manage resources of computers used in data processing, and perform other monitoring functions. The most critical system control program in this category is Operating System. Other software belonging to this category are Database Management Systems (DBMS) and Communication Monitors.
- System support programs: The function of system support programs include Utilities, Operating System Libraries, Operating system performance monitors, and Job scheduling. These system support programs perform routine service functions. In addition, programs in this category include application software used to develop application programs, such as a BASIC interpreter.
- Application Software: Application Software is developed to accomplish a specific task. Users directly interact with the application software. Microsoft Word and Excel are examples of application software. Mobile apps are also examples of application software.
System software is responsible for managing and controlling application software. In addition, system software such as translator and Operating System works in coordination with application software.
Programs that provide libraries to interact with the user programs are called system programs. When these system programs are combined, they are called System Software.
System software includes libraries and programs that are combined to form an operating system. The programs that form system software include assemblers, compilers, file handling tools, utilities that form systems and debuggers.
A compiler is also a system software used to convert source code to target code and generate associated messages. The compiler consists of lexical analysis, syntax analysis, semantic analysis, intermediate code generation, code optimization, and code generation.
The compiler handles runtime errors and conducts exception handling. The assembler works with a compiler. A compiler which is system software performs lexical analysis, syntax analysis, and semantic analysis. The assembler converts low-level assembly language. On the other hand, the compiler converts high-level language.
The assembler converts assembly language into binary instructions. Assembler increases programming clarity. An assembler translates the source file into an object file. Assembler is a system program that manages different data structures.
The application program consists of modules. Each module is independent of the other module. A module often refers to other modules. To associate two modules, a linker is used. Linker links two or more required modules. The nodule can not be executed successfully until and unless all the referenced modules and libraries are resolved. The linker resolves all the references used in a module.
Before linking, a program has to be loaded into memory at an appropriate memory area. To load the program in the main memory, a system program called loader is used. A loader accepts output from a translator and converts it into executable code.
A loader, system software, has four functions: memory allocation to programs, linking all the references in the program, address resolution, and putting machine instructions and data at allocated memory space.
Operating System is system software used to manage and communicate with computer hardware. The operating function performs the allocation of resources and carries out functions related to the user interface.
Usually, the operating system manages computer resources such as CPU, Memory, and IO devices. Thus, operating systems are responsible for efficiently utilizing resources, handling computer architecture, and processing user requirements.
How these functions are accomplished depends on the operating system version. As a result, different operating systems exist, such as batch processing systems, multiprogramming systems, time-sharing systems, real-time operating systems, and distributed systems.
Device drivers are also system software. Device drivers perform specific programs and develop an environment in which application programs and operating systems work. Device drivers interact with computer hardware.
The next system software program includes root-user processes. Root user processes are system programs that are executed with root authority. Processes that root users can perform include reading and writing any type of object, having the power to call any system functions, and executing subsystem operations.
Computer Software development will be one of the most demanding tasks in the coming years. Computer application software development deals with the development of software that satisfies user needs. Computer system software development deals with the development of software that manages computer resources.
System software engineers work on system software that configures computer systems.
Database Management System (DBMS) is also a system software. This software maintains and manages records on computer systems. DBMS stores user information that can be manipulated as required. The DBMS interacts with computer hardware to store data, retrieve data and manipulate data. Since it has to interact with the computer hardware, it has programs that interact with the operating system. The operating system, in turn, manages the storage and retrieval of user data. In addition, Database Management System interacts with secondary storage devices, processors, and memory.
A text editor is another system software. Finally, a text editor is critical system software. A text editor is used to compose, arrange and manage user information. Examples of interactive text editors include Notepad, Wordpad, and MS Word in Windows operating systems, and in UNIX operating system, it is vi, emacs, Jed, and pico. An interactive text editor is system software that enables users to work with texts, characters, and strings.
There are two types of text editors: manuscript-oriented editors, manuscript-oriented and program-oriented editors. Manuscript-oriented work on characters, text editor words, text editor lines, text editor sentences, and text editor paragraphs. Program-oriented editors work with text editor identifiers, text editor keywords, and text editor statements.
The debugger is another system software. A debugger is used to test source code generated using application software. Debugger runs code generated using the application program under controlled conditions. Debugger interacts with CPU registers, computer memory and can modify registers. When a debugger catches a trap, it projects the location in the source code from where the trap is generated. A debugger is mainly used to catch errors in the source code.