Study On Device Management In Unix Information Technology Essay
In this term paper I am introducing about Unix ,how did Unix develop and also presenting the chronology of the Unix as well as device management in Unix how many types devices work in Unix ,I am presenting mainly two types devices that are used in UNIX (a)input devices .it also have many input device e.g. Disk input ,keyboard input etc.,(b)output devices e.g. Disk output ,terminal output etc.
UNIX is an operating system. The job of an operating system is to orchestrate the various parts of the computer the processor, the on-board memory, the disk drives, keyboards and video monitors, etc. — to perform useful tasks. The operating system is the master controller of the computer. The glue that holds together all the components of the operating system, including the administrators, programmers, and users.
See the UNIX System Chronology graphic below.
UNIX was formed in the late 1960s, in an attempt to provide a multiuser, multitasking system for use by programmers and users. The viewpoint behind the design of UNIX was to provide simple, yet powerful utilities that could be pieced together in a flexible manner to perform a wide variety of tasks.
The UNIX operating system comprises three parts:
The standard utility programs.
System configuration files.
There is mainly two type’s device management use in the UNIX
All input devices are handled by a single driver, the input device manager. When a DSI input primitive is invoked, it calls the appropriate host I/O routine to obtain a native I/O handle . The device manager subroutine instantiates the input stream and returns a reference to it. The input primitive may return this stream, or as well as filter it. Depending on the device
The device manager keeps a list of descriptor or stream associations on the device list . When DVISCAN wakes up it scans the device list and polls each descriptor in turn:
If there is data pending, DVISCAN will enter an input loop. Reading raw bytes from the descriptor, converting them into DSI characters and appending them onto the associated input stream.
If the descriptor indicates an end-of-file or error condition DVISCAN closes the descriptor, terminates the input stream and delete the device/stream pair from the device list.
After it has processed the entire device list DVISCAN suspends itself and awaits its next activation.
(1) Disk Input
DSI relies on the host filesystem to manage files. Disk input is handled on a per-file basis. Dski takes a host filesystem path as argument and generate a new descriptor and DVISCAN stream for each open file. It returns a stream of characters read from the files.
(2) Keyboard Input
Input device , Keyboard input is differentiated from other types of input in the UNIX operating system which it is implemented at a lower level. Rather than relying on the host buffering to deals multiple instances of keyboard input. DSI demands a single stream of input and multiplexes the stream itself. At the lowest level, a DVISCAN input procedure presents a single raw stream of typescript issuing from the keyboard input device.
SPLIT, like DVISCAN, is a many way shared suspension. The splitter splits its input stream, serving up characters on demand to whichever consumer occurs to be coercing it at the moment.
The streams formed by SPLIT are also all raw character streams. There is Raw character streams are not particularly helpful as keyboard input, however. Most operating systems will reserve certain characters for particular interpretation, such as interrupting processes and job control or editing and buffering input. This functionality is provided by KBDFLTR is fairly limited. KBDFLTR also performs a few other character interpretations, summarized in table.
Detach prompt when awakened.
end of file
Escape the next character.
(3) Garbage Collecting Devices
Occasionally an input stream may become unreferenced while the device or file is still open. The device manager operates is in conjunction with the garbage collector to close these dangling file descriptors.
DVISCAN starts by loading the header cell of DVCLST from a fixed heap location, and it is finished by clearing any references to the device list before detaching itself. The result is which unless DVISCAN is running. there is no device list references in any suspensions in the system. Thus, while descriptors, input streams, and DVISCAN suspension is marked by the garbage collector, the spine and ribs of the device list are not marked.
Output devices are constructed to many input devices. Output driver is a stream consumer of characters. every character is changed to a raw byte and written to the output channel using the
host input and output primitives which handle the proper buffering for the device type (e.g. disks are written in blocks terminals are unbuffered. etc.).
As with I/P devices, O/P devices share a common generic output driver (DVCOUT) with differences between devices contained in the host I/O handle and handled at the host interface layer. DVCOUT is a fairly simple loop. It probe its input stream for a character and converts it to a raw byte .Then it checks the status of its output descriptor:
If the descriptor is ready for writing the byte is emitted using H_put and the process iterates.
If the device is not ready for writing, DVCOUT signals the kernel with a SIG_IOBLOCK, representing that the process is blocked and a lateral context switch is in order.
If the device indicates an error, DVCOUT converges to an erron.
If DVCOUT reaches the end of its input stream it converges to NIL. Note that DVCOUT may block, but never detach .it is infinitely strict in its argument.
This part describes the differences between the various kinds of of output devices supported by DSI.
(1) Disk Output
Dsko takes a filename and a stream of characters as arguments. It generates or truncates the named file and writes the characters to it. It precedes NIL after the last character is written.
(2) Terminal Output
Terminal output is special complement to keyboard input device. Screen gives input stream and writes it to the terminal, recurring NIL after the last character has been written. Terminal output device is not implemented at the same level of detail as keyboard input, however. If there are many types output streams would be merged by process into a single O/P stream before being delivered to a single instantiation of DVCOUT. As it is, DSI lets the host handle the multiplexing of many outputs. An upgrading to DSI’s terminal output system is projected to make it corresponding to keyboard and terminal input.
(3) Bidirectional Devices
A bidirectional device is only single one that can be modeled as having both input and as well as output channels. For e.g. although the display and keyboard are actually two separate physical devices, under UNIX they are integrated into a only single device (e.g. /dev/tty) from which you can read and to which you can write.
There are two kinds of mode of interface that can be used for bidirectional devices in DSI. there is to split the device into two logical devices equivalent to its I/O components. This is only single and basic approach used for terminals. The read and write terminal I/O streams are accessed by separate input and output primitives, which create different input and output driver suspensions, as described above. and other move toward to bidirectional devices is to model the device like a stream transducer, i.e. a driver process that is both a producer and consumer of streams. DSI provides two kinds of bidirectional devices in the transducer-type interface: sockets and pipes.
DSI gives an interface to BSD-type stream sockets and high-level TCP/IP networking regular on many operating systems, including most flavors of UNIX. Sockets provide full-duplex data streams between two points over a network. Two Daisy primitives gives access to the UNIX socket interface. Both socki and socko are higher-order primitives. there are both return functions that map character streams to character streams.
3.b. Unix Pipes
Another useful bidirectional device interface provided in DSI is a UNIX pipe.
Like the socket primitives, the pipe primitive is higher-order. It takes a flat list of literal influence which are intended to be the elements of the argv argument vector voted for to a forked UNIX process, and returns a function.
This work presented here has been prepared with the help of several sources. I feel it my moral responsibility to express my sincere thanks to the concentrators .i feel extremely obligated to the content creators of these resources:
(a). Operating system concepts (sixth edition)
Silberschatz galvin gagne
(b).Unix device management 9th edition