Q5. Explain the information management function of an operating system.
Ans. A computer system works with ‘Information’. It stores information, processes information, provides information etc. Thus managing this information is also an important and necessary task performed by OS. To support this function, OS’s have one component called ‘Information Management Component’. This information management component of OS is structured as follows:
- Physical IOCS (Input-Output Control System) is responsible for device management and for ensuring device independence. It provides a basic capability for the programs to perform their own IO, without involving themselves with the intricacies of device handling.
- Logical IOCS is responsible for efficient organization and access of data on IO devices. It provides basic capabilities for file definition, choice of data organization and access methods.
- File System is responsible for protection and controlled sharing of files.
- The Physical IOCS and IO Organization
We have already become acquainted with I/O Channel which makes CPU free for the duration of an I/O channel. One or more input or output devices are connected to an I/O channel. An I/O channel provides a data path between the main storage and an I/O device, and monitors the entire execution of I/O operation.
Each I/O channel, its control units and devices on them in the system are given unique codes recognized by the hardware. Thus a device is uniquely identified by a device address which consists of three component addresses: for I/O channel, control unit and device, (Ch, CU, Dev). Steps in the execution of an I/O operation are as follows:
- I/O Initiation
I/O initiation starts with issuing of a CPU instruction called ‘Start IO’. This “Start IO’ instruction provides the device address (ch, cu, dev) for the required device.
The CPU identifies the concerned channel, control unit of the device and the device through the component addresses: ch, cu, dev.
- Device Selection
The concerned channel then checks the device to see whether it is available or not. This process is called device selection. If device selection is successful, ‘success‘ condition code is set in PSR (register that stores CPU state) and IO instruction’s execution starts.
If device selection fails (because of device’s non availability if it is busy doing some other operation, or hardware malfunction), ‘Start IO’ is terminated and ‘failure’ condition code is set in PSR. CPU now determines which action should be taken viz. retry the operation, cancel the program which wants I/O, or switch to execution of another program.
- I/O Instruction Execution
If the required device is available, I/O channel reads the I/O instruction from the program in the main storage and then sets up the execution of I/O operations on the designated device.
- I/O termination
At the end of the I/O operation(s), the designated device raises an interrupt for both type of ends: Successful and unsuccessful. IO termination interrupt provides following information to CPU:
- Device address of the device raising the interrupt condition,
- Status flags indicating
- IO termination type
- Error message if any.
The interrupt handling routine then takes action by analyzing status flags and by invoking error-recovery procedure (if required).
Role of the Physical IOCS
Physical IOCS integrates all the OS responsibilities regarding IO operations like making IO sequence easier for a problem by taking device management functions. (Device management functions, (covered in IO orgranisation) handle the device for an I/O operation and for error recovery). Physical IOCS provides device-level error recovery routines which can be easily invoked when a recoverable error occurs. Thus, the problem program has only to issue an I/Os request and rest would be handled by Physical IOCS.
When an I/O operation is requested by a program (process), physical IOCS initiates IO in the above explained manner, marks the process state as blocked and frees the CPU for other computations, thus makes multiprogramming feasible. Physical IOCS also ensures protection to the programs from undue interference during I/O operation is being carried out.
Thus Physical IOCS makes the entire I/O sequence operations ‘transparent’ to the problem program. Transparency means that the only thing to be issued by the program is the request/order/command for it and rest all internal operations are doe by the control program (physical IOCS in this case) without making it visible to the problem program.
Physical IOCS also makes device independence possible as it provides a name to the device (device naming). Thus the device becomes a logical device for the user/programmer. Now the programmer uses only the device name rather than a device address. Internally the device name is bound to a physical device address which can be changed if necessary (only by physical IOCS) without affecting the program performance.
2. Logical IOCS
The creation and access of files are facilitated by the logical IOCS through file level commands. Open a file, read a record, delete a record, etc. Three-wayed help is provided for the programmer:
- The programmer need not know the intricate details of I/O device. Channel, Control unit of the device.
- The programmer need not know physical IOCS interface, its details and handling.
- The programmer need not know how an I/O is to be performed.
The logical IOCS also facilitates file processing by providing generalized access methods for various file organizations. The programmer can decide access method suited to his requirements. Access methods refers to the mechanism used to retrieve records from a file. Details regarding location of file, device address, etc are made available to the access methods by the logical IOCS.
3. File System
‘File System’s function is to facilitate easy creations, storage and access of files in order to enable easy sharing of files between programs and their protection against illegal access. Here it differs from logical IOCS. The logical IOCS permits any program if it provides the file name and processes the file in any manner the program desires whereas the file system ensures protection by allowing only that program which has proper access privileges. The major functions of a file system are given below:
- It provides file naming freedom to the users and permits controlled sharing of file (protection).
- provides long and short term storage of files.
- provides security against loss of information due to system failure (security).
File systems also facilitates grouping of files in form of directories for the purpose of the access and protection. The File System also involves the File Recovery Module if required (in case of system failure or any other error).