Ero sivun ”Tietokoneohjelma” versioiden välillä

[arvioimaton versio][arvioimaton versio]
Poistettu sisältö Lisätty sisältö
Rivi 29:
==Ulkoiset rajapinnat==
 
Tietokoneohjelmalla ei olisi paljoakaan merkitystä, mikäli se ei pystyisi kommunikoimaan millään tavalla ympäristönsä kanssa. Tämän vuoksi jokaiseen tietokoneohjelmaan liittyy yksi tai useampi ulkoinen rajapinta, jonka avulla ohjelmalle voidaan antaa syötteita ja jonka avulla ohjelma voi kommunikoida ympäristönsä kanssa tai antaa muille ohjelmille tai oheilaitteille mahdollisuuden kommunikoida itsensä kanssa. Esimerkikiksi lämpömittariin liitetty anturi voi lähettää väyläsignaalin, jonka muodostama sähköinen lämpötilan arvo välitetään ohjelman muistiavaruuteen tai porttiin, josta ohjelma voi sen esimerkiksi tietyllä mikroprosessorin käskyllä tai sovitulla rajapintakutsulla lukea. Ohjelma voi edelleen ohjata halutessaan erilaisia oheislaitteita ulkoisten rajapintojen avulla.
 
Tietokoneohjelman ohjaama tai tietokoneohjelmaa ohjaava ympäristö voi olla fyysinen tai virtuaalinen ympäristö - se voi siis koostua fyysisistä laitteistoista tai mahdollisesti toisista tietokoneohjelmista. Koska erilaisia ympäristöjä, joissa ohjelma voi toimia voi olla teoriassa rajaton määrä, ulkoisia rajapintoja on pyritty standardoimaan. Mitä vakiintuneempi ulkoinen rajapinta on, sitä useampi tietokoneohjelma sitä pystyy käyttämään ja sitä kestämäpi hyöty rajapinnasta saavutetaan. Tietotekniikan suurimmat kehitysaskeleet ovatkin usein olleet ulkoisten rajapintojen onnistuneita vakiintumisia, esimerkiksi mikroprosessorien käskykannan vakiintuminen tai käyttöjärjestelmien toimintaperiaatteiden yhtenäistyminen.
 
Tietokoneohjelman kommunikointi ympäristön kanssa voi tapahtua [[Synkroninen_kommunikaati|synkronisesti]] tai [[Asynkroninen_kommunikaatio|asynkronisesti]]. Lisäksi ohjelma voi sallia itsensä [[Keskeytyssignaali|keskeytettävän]] tietyn ulkoisen tapahtuman toimesta. Vaihtoehtoisesti ohjelma voi aika-ajoin tarkkailla ulkoista maailmaa lukemalla ulkoisen rajapinnan kautta tilatietoa.
 
Fyysisten laitteiden ohjaamista varten tietokoneiden prosessoreissa on määriteltynä yksi tai useampia ulkoisia rajapintojamekanismeja, joiden avulla ohjelma voi kirjoittaa tai lukea tietoa mikroprosessorin suorittimen ulkopuolelta. Konekielen tasolla nämä ovat [[prosessori]]in liitettyjä portteja tai I/O -muistialueita, joiden kautta tietokoneohjelmat pystyvät oikein toimiessaan ohjaamaan fyysisiä tai virtuaalisia kokonaisuuksia sekä lukemaan näiden kokonaisuuksien syöttämää tietoa. Useimmissa tapauksissa tietokoneohjelma ei ohjaa ulkoisia laitteita suoraan, vaan käyttää käyttöjärjestelmän tai jonkun toisen tietokoneohjelman tarjoamia palveluita. Tietokoneohjelmien rakentamista helpotetaan siten, että nämä palvelut abstraktoidaan käyttöjärjestelmän, laiteajureiden tai sovelluskirjastojen (API) avulla siten että ohjelman kirjoittajan ei tarvitse ymmärtää ulkoisten palveluiden tai laitteistojen sisäistä toimintaa.
 
Tietokoneohjelmille ulkoisia rajapintoja tarjoavat mm.