Ingång Utgång

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 14 februari 2022; kontroller kräver 2 redigeringar .

Input-output (från engelska  input / output , I / O ) inom datavetenskap - interaktionen mellan en informationsprocessor (till exempel en dator ) och omvärlden, som kan vara antingen en person (ämne) eller vilken annan information som helst bearbetningssystem. Ingång är den eller de data som tas emot av systemet, och utsignalen är den eller de data som skickas av (eller från) det. Termen kan också användas som en beteckning (eller tillägg till beteckning) för en specifik åtgärd: "utför I/O" betyder att utföra inmatnings- eller utmatningsoperationer . I/O-enheter används av en person (eller annat system) för att interagera med en dator. Till exempel är tangentbord och möss  specialdesignade datorinmatningsenheter, medan bildskärmar och skrivare  är datorutgångsenheter. Enheter för kommunikation mellan datorer, som modem och nätverkskort , fungerar vanligtvis som in- och utgångsenheter samtidigt.

Klassificering

Att tilldela en enhet som en in- eller utenhet beror på perspektivet. Möss och tangentbord tar fysiska interaktioner som utförs av en mänsklig användare (i förhållande till användaren, dessa kommer att vara utdataåtgärder) och omvandlar dem till signaler som datorn kan förstå. Utmatningen av information från dessa enheter är dess input till datorn. På liknande sätt tar skrivare och bildskärmar emot insignaler som en dator matar ut. Sedan omvandlar de dessa signaler till en form som en person kan se eller läsa. (För användare är processen att läsa eller visa sådana representationer av information inmatning eller mottagande av information.)

I datorarkitektur utgör kombinationen av en processor och huvudminne (det vill säga minne från vilket processorn kan läsa och skriva direkt till det med hjälp av speciella instruktioner ) datorns "hjärna", och ur denna synvinkel, varje utbyte av information med denna kombination, till exempel med diskenhet , innebär input-output. Processorn och dess medföljande elektroniska kretsar implementerar minnesmappad I/O , som används i lågnivåprogrammering vid implementering av enhetsdrivrutiner .

Operativsystemet och programvaran på hög nivå använder andra, mer abstrakta I/O-koncept och primitiver. Till exempel implementerar de flesta operativsystem applikationsprogram genom konceptet . Programmeringsspråken C och C++ , såväl som Unix- familjen av operativsystem , abstraherar traditionellt filer och enheter som dataströmmar som kan läsas från, skrivas till eller båda. C-standardbiblioteket implementerar funktioner för att arbeta med strömmar för input och output.

I samband med programmeringsspråket Algol-68 kallades in- och utmatningsmekanismerna gemensamt utbyte . Algol-68 Exchange-biblioteket kände igen följande standardfiler (enheter): , , och . stand instand outstand errorstand back

Ett alternativ till speciella primitiva funktioner är I/O -monaden , som tillåter program att enkelt beskriva I/O, och åtgärderna tas utanför programmets räckvidd. Detta är ganska anmärkningsvärt, eftersom I/O-funktioner har biverkningar i vilket programmeringsspråk som helst, men rent funktionell programmering har vunnit popularitet nu för tiden.

I/O-gränssnitt

I/O-gränssnittet kräver processorkontroll av varje enhet. Gränssnittet måste ha lämplig logik för att tolka enhetsadressen som genereras av processorn.

Kontaktetablering måste implementeras av gränssnittet med hjälp av lämpliga kommandon av typen (UPPTÄTT, KLAR, VÄNTAR) så att processorn kan kommunicera med I/O-enheten via gränssnittet.

Om det finns ett behov av att överföra olika dataformat måste gränssnittet kunna konvertera seriell (beställd) data till parallell form och vice versa.

Det måste vara möjligt att generera avbrott och motsvarande typer av nummer för vidare bearbetning av processorn (vid behov).

En dator som använder minnesmappad I/O får åtkomst till hårdvara genom att läsa och skriva till specifika minnesplatser med samma instruktioner för assemblerspråk som en dator normalt skulle använda när den kommer åt minnet.

Adresseringslägen

Det finns flera sätt på vilka data kan läsas från eller placeras i minnet. Varje metod är ett adresseringsläge och har sina egna fördelar och begränsningar.

Adresseringslägen är indelade i många typer, såsom direkt adressering, indirekt (indirekt) adressering, omedelbar adressering, indexadressering, basadressering, basindexadressering, implicit adressering, etc.

Direktadressering

I denna typ är själva dataadressen en del av instruktionen. När processorn avkodar en instruktion tar den emot adressen till en minnesplats från vilken den erforderliga informationen kan läsas (där den kan skrivas).

Mov Reg. [Addr]

I det här fallet pekar Addr- operanden på ett minnesområde som innehåller data och kopierar det till det specificerade Reg-registret.

Indirekt adressering

I detta fall kan adressen lagras i ett register. Instruktionerna kommer att komma åt registret som innehåller adressen. Det vill säga, för att ta emot data måste instruktionen avkoda datan i motsvarande register. Innehållet i registret kommer att behandlas som en adress, med hjälp av vilken information kommer att läsas / skrivas från / till motsvarande minnesområde.

I / O med distribution (indata) av portar (minne)

I/O med allokering (ingångsinformation) till portar (minne) kräver vanligtvis användning av instruktioner specifikt utformade för att utföra I/O-operationer.

Se även

Anteckningar

Länkar