I/O

I/O (engelsk forkortelse for input/output, på norsk «innputt/utputt», «inngang/utgang» eller «innmatning/utmatning») er innen datateknikk til kommunikasjon mellom et informasjonsbehandlingssystem (for eksempel en datamaskin) og utenomverdenen – muligens et menneske eller et annet informasjonsbehandlingssystem. Input er signalene eller dataene mottatt av systemet og output er mottatte signaler eller data. 
I/O-enheter brukes av en person (eller annet system) for å kommunisere med datamaskinen. F.eks. blir datamaskinens tastatur og mus ansett som input-enhetene til en datamaskin. Skjerm og skriver er ansett som output-enheter. Enheter for kommunikasjon mellom datamaskiner, som modem-er og nettverkskort er typisk både input- og output-enheter.

Betegnelsen input- eller output- for enheten avhenger av perspektivet. For eksempel tar mus og tastatur inn fysisk bevegelse som brukeren skaper (output) og oversetter dette til signaler datamaskinen kan forstå. Utmatningen av disse signalene er input for datamaskinen. På liknende måte tar en skjermer og skrivere i mot input som datamaskinen mater ut. De omformer disse signalene til noe mennesker kan tolke.

I datamaskinarkitektur er kombinasjoen av prosessoren og hovedminnet (minnet CPU-en kan lese og skrive til direkte med individuelle instruksjoner) ansett som hjertet til datamaskinen. Fra denne synsvinkelen er overføringen av informasjon fra eller til disse to enhetene, for eksempel til/fra en harddisk ansett som I/O. CPU-en og elektronikken rundt tilbyr minnekartlagt (memory-mapped I/O) som brukes i lavnivås programmering ved implementasjonen av enhetsdrivere.

Programmering på høy-nivå bruker mer abstrakte I/O konsepter. F.eks tilbyr de fleste operativsystem konseptet om en fil. C og C++ programmeringsspråkene og operativsystemer i Unix-familien abstraherer typisk filer og enheter som strømmer (streams) som kan skrives og/eller leses til. Standardbiblioteket til C tilbyr C fil input/output funksjoner for manipulering av strømmer.

Eksterne lenker
 Grunnleggende Input/Output i C++ 

Dataterminologi