Input/output: Difference between revisions
No edit summary |
Redconfetti (talk | contribs) m minor grammar correction |
||
Line 7: | Line 7: | ||
In computer architecture, the combination of the [[Central processing unit|CPU]] and [[main memory]] (i.e. memory that the CPU can read and write to directly, with individual [[instruction set|instructions]]) is considered the heart of a computer, and any movement of information from or to that complex, for example to or from a [[disk drive]], is considered I/O. The CPU and its supporting circuitry provide [[I/O methods]] that are used in low-level [[computer programming]] in the implementation of [[device driver]]s. |
In computer architecture, the combination of the [[Central processing unit|CPU]] and [[main memory]] (i.e. memory that the CPU can read and write to directly, with individual [[instruction set|instructions]]) is considered the heart of a computer, and any movement of information from or to that complex, for example to or from a [[disk drive]], is considered I/O. The CPU and its supporting circuitry provide [[I/O methods]] that are used in low-level [[computer programming]] in the implementation of [[device driver]]s. |
||
Higher-level [[operating system]] and programming facilities employ separate, more abstract I/O concepts and [[primitive (computer science)|primitive]]s. For example, operating system provides application programs with the concept of [[computer file|file]]s. [[C programming language]] defines functions that allow programs to perform I/O through [[stream (computer)|stream]]s, such as read data from them and write data into them. |
Higher-level [[operating system]] and programming facilities employ separate, more abstract I/O concepts and [[primitive (computer science)|primitive]]s. For example, an operating system provides application programs with the concept of [[computer file|file]]s. [[C programming language]] defines functions that allow programs to perform I/O through [[stream (computer)|stream]]s, such as read data from them and write data into them. |
||
An alternative to special primitive functions is the I/O [[monads in functional programming|monad]] that permits programs to just describe I/O, and the actions are carried out outside the program. This is notable because the I/O functions would introduce [[side-effect (computer science)|side-effect]]s to any programming language but now [[purely functional]] programming is practical. |
An alternative to special primitive functions is the I/O [[monads in functional programming|monad]] that permits programs to just describe I/O, and the actions are carried out outside the program. This is notable because the I/O functions would introduce [[side-effect (computer science)|side-effect]]s to any programming language but now [[purely functional]] programming is practical. |
Revision as of 03:51, 24 October 2006
In computing, Input/output, or I/O, is the collection of interfaces that different functional units (sub-systems) of an information processing system use to communicate with each other, or the signals (information) sent through those interfaces. Inputs are the signals received by the unit, and outputs are the signals sent from it. The term can also be used as part of an action; to "do I/O" is to perform an input or output operation. I/O devices are used by a person (or other system) to communicate with a computer. For instance, keyboards and mice are considered input devices of a computer and monitors and printers are considered output devices of a computer. Typical devices for communication between computers are for both input and output, such as modems and network cards.
It is important to notice that the previous designations of devices as either input or output change when the perspective changes. Mice and keyboards take as input physical movement that the human user outputs and convert it into signals that a computer can understand. The output from these devices is treated as input by the computer. Similarly, printers and monitors take as input signals that a computer outputs. They then convert these signals into representations that human users can see or read. (For a human user the process of reading or seeing these representations is receiving input.)
In computer architecture, the combination of the CPU and main memory (i.e. memory that the CPU can read and write to directly, with individual instructions) is considered the heart of a computer, and any movement of information from or to that complex, for example to or from a disk drive, is considered I/O. The CPU and its supporting circuitry provide I/O methods that are used in low-level computer programming in the implementation of device drivers.
Higher-level operating system and programming facilities employ separate, more abstract I/O concepts and primitives. For example, an operating system provides application programs with the concept of files. C programming language defines functions that allow programs to perform I/O through streams, such as read data from them and write data into them.
An alternative to special primitive functions is the I/O monad that permits programs to just describe I/O, and the actions are carried out outside the program. This is notable because the I/O functions would introduce side-effects to any programming language but now purely functional programming is practical.
See also
- Asynchronous I/O
- Direct memory access (DMA)
- Hardware register
- IPO Model
- Interrupt
- Programmed input/output (PIO)