# Eingabe und Ausgabe

Mit Ein-/Ausgabe (abgekürzt E/A; englisch input/output, kurz I/O) bezeichnet man – als Begriff aus der EDV bzw. der Informatik – die Kommunikation / Interaktion eines Informationssystems mit seiner 'Außenwelt', z. B. seinen Benutzern oder anderen Informationssystemen, und Aktionen zum Lesen und Schreiben von Daten. Eingaben sind Signale (z. B. Kommandozeilen) oder Daten, die das System empfängt, Ausgaben werden vom System gesendet.
Was die ‚Außenwelt‘ ist, hängt von der jeweiligen Betrachtung ab: Aus Sicht des Computers als ausführender Prozessor sind z. B. auch die Programme ‚Eingaben‘. In einem Programm (dies ist im Allgemeinen der Betrachtungsgegenstand) sind Anwendungsdaten von/für Benutzer(n) oder andere(n) Systeme(n) die wichtigsten Ein- oder Ausgaben; für Unterprogramme sind es u. a. auch die Aufruf- und Rückgabewerte (Parameter) korrespondierender Programme/-Teile, für einen Drucker sind es die zu druckenden Texte/Grafiken etc. inkl. dazugehörender Steuerkommandos.

## Grundlagen

Eingaben und Ausgaben sind für die auf einem Computer laufenden Programme die Schnittstellen zu ihrer ‚Außenwelt‘. Durch sie wird die Anwendung von Programmen oder auch Programmteilen (wie Unterprogrammen) für individuelle und unterschiedliche Zwecke/Situationen möglich.
Zur Interaktion zwischen Benutzer und Programm stehen externe Peripheriegeräte zur Verfügung, die über das Betriebssystem (z. B. den Systembus oder / und Gerätetreiber) und mechanische bzw. andere elektronische Kommunikationsverbindungen betrieben und angesteuert werden. Dies ist nötig, da es viele unterschiedliche Protokolle gibt und sich die Geräte bezüglich Wortlänge und Verarbeitungsgeschwindigkeit unterscheiden können.
In der Methodik zur Softwareentwicklung wird im Zusammenhang mit Ein- und Ausgaben danach unterschieden, ob Daten von außen (z. B. von Benutzern) an das System (oder umgekehrt) fließen oder ob sie Daten sind, die im System gespeichert bzw. gelesen, geändert oder gelöscht werden (create, read, update, delete = CRUD).

## Hardware

Der Prozessor spricht die externen Geräte über I/O-Controller (leistungsschwächer aber günstiger) oder I/O-Prozessoren (sehr leistungsstark aber teurer) an. Diese dienen als Abstraktionsschicht und werden von der CPU mit einfachen LESEN- (READ) und SCHREIBEN- (WRITE) Befehlen gesteuert. Die Geräte selbst sind direkt über Daten-, Steuer- und Adressbusse angeschlossen. Sie enthalten Puffer um Anfragen und Antworten zwischenzuspeichern.
Um diese Kommunikation durchzuführen, stehen Programmed Input/Output, Interrupt-Driven I/O sowie DMA zur Verfügung.
Für Benutzer sind die Eingabegeräte in der Regel Tastatur, Maus und Joystick, Ausgabegeräte sind meist Bildschirm, Drucker oder portable Speichermedien wie CDs usw.
Auf die Umgebung bezogen kann die Eingabe auch Sensoren (für Temperatur, Drehzahl, Druck …) bedeuten. Die Ausgabe wären dann z. B. Leistungsregler, Ventilsteuerungen usw. Im Bereich der Regel- und Messtechnik wird so etwas verwendet.

## Software

Im Softwarebereich kann man die Eingabe in Kommandozeile, Eingabe innerhalb des Programms aus Tastatur-, Maus- oder Joystick-Abfrage, lesenden Zugriff auf ein Speichermedium oder direkten lesenden Zugriff auf einen A/D-Wandler oder Ähnliches unterscheiden.
Die softwareseitige Ausgabe läuft generell nicht über die Kommandozeile, sondern ausschließlich im Programm als schreibender Zugriff auf Bildschirm, Drucker, Speicher oder einen A/D-Wandler oder Ähnliches.