Abstraktiokerros - Abstraction layer

In Computing , abstraktio kerros tai abstraktio tasolla on tapa piilossa työ yksityiskohtia osajärjestelmän, jolloin erottaminen koskee helpottamaan yhteentoimivuutta ja alustan riippumattomuus . Esimerkkejä ohjelmisto malleja, jotka käyttävät kerroksia abstraktion kuuluvat OSI varten verkkoprotokollia , OpenGL ja muut grafiikkaa kirjastojen .

In Computer Science , abstraktio kerros on yleistys on käsitteellinen malli tai algoritmi , pois mitään erityistä toteutusta. Nämä yleistykset johtuvat laajasta yhtäläisyydestä, joka on parhaiten koteloitu malleilla, jotka ilmaisevat erilaisissa erityisissä toteutuksissa esiintyviä yhtäläisyyksiä. Hyvän abstraktiokerroksen tarjoama yksinkertaistaminen mahdollistaa helpon uudelleenkäytön tislaamalla hyödyllisen konseptin tai suunnittelukuvion, jotta tilanteet, joissa sitä voidaan soveltaa tarkasti, voidaan tunnistaa nopeasti.

Kerroksen katsotaan olevan toisen päällä, jos se riippuu siitä. Jokainen kerros voi olla olemassa ilman sen yläpuolella olevia kerroksia, ja vaatii sen alapuolella olevien kerrosten toiminnan. Usein abstraktiokerrokset voidaan muodostaa abstraktiotasojen hierarkiaksi. OSI-malli koostuu seitsemästä abstraktiokerroksesta. Kukin mallikerros kapseloi ja vastaa eri osaan digitaalisen viestinnän tarpeita, mikä vähentää siihen liittyvien teknisten ratkaisujen monimutkaisuutta.

Kuuluisa aforismi on David Wheeler on "Kaikki ongelmat tietotekniikassa voidaan ratkaista toisella tasolla välillisen". Tätä lainataan usein tarkoituksella väärin "epäsuoralla" korvatulla "abstraktilla". Se on myös joskus väärin osoitettu Butler Lampsonille . Kevlin Henneyn seuraus tästä on: "... lukuun ottamatta liian monien epäsuorien kerrosten ongelmaa".

Tietokonearkkitehtuuri

Kun tietokone arkkitehtuuri , tietokonejärjestelmää esitetään yleensä useina abstraktion tasolla, kuten:

Ohjelmoitavaa logiikkaa pidetään usein osana laitteistoa, kun taas loogisia määritelmiä pidetään joskus osana laitteen ohjelmistoa tai laiteohjelmistoa. Laiteohjelmisto voi sisältää vain matalan tason ohjelmistoja, mutta se voi sisältää myös kaikki ohjelmistot, mukaan lukien käyttöjärjestelmä ja sovellukset. Ohjelmistokerrokset voidaan edelleen jakaa laitteiston abstraktiokerroksiin, fyysisiin ja loogisiin laiteajureihin, arkistoihin, kuten tiedostojärjestelmiin, käyttöjärjestelmän ytimiin, väliohjelmistoihin, sovelluksiin ja muihin. Ero voidaan tehdä myös matalan tason ohjelmointikielet kuten VHDL , konekieli , konekielellä on käännetty kieli , tulkki , ja ohjelmointikieliä .

Tulo ja lähtö

Unix-käyttöjärjestelmässä useimpien syöttö- ja tulostustoimintatyyppien katsotaan olevan tavuista, jotka on luettu laitteesta tai kirjoitettu laitteeseen. Tätä tavuvirtamallia käytetään tiedoston I / O: lle, Socket I / O: lle ja päätelaitteen I / O: lle laitteen itsenäisyyden tarjoamiseksi. Lukemaan ja kirjoittamaan laitteelle sovellustasolla ohjelma kutsuu laitteen avaamiseen toiminnon, joka voi olla todellinen laite, kuten päätelaite, tai virtuaalinen laite, kuten verkkoportti tai tiedosto tiedostojärjestelmässä. . Laitteen fyysisiä ominaisuuksia välittää käyttöjärjestelmä, joka puolestaan ​​esittää abstraktin käyttöliittymän, jonka avulla ohjelmoija voi lukea ja kirjoittaa tavuja laitteesta / laitteeseen. Käyttöjärjestelmä suorittaa sitten todellisen muunnoksen, joka tarvitaan tavuvirran lukemiseen ja kirjoittamiseen laitteeseen.

Grafiikka

Useimmat graafiset kirjastot, kuten OpenGL, tarjoavat abstraktin graafisen laitemallin käyttöliittymänä. Kirjasto on vastuussa ohjelmoijan toimittamien komentojen kääntämisestä graafisten elementtien ja objektien piirtämiseen tarvittaviin laitekomennoihin. Piirturin erityiset laitekomennot poikkeavat CRT- näytön laitekomennoista , mutta grafiikkakirjasto piilottaa toteutuksen ja laitekohtaiset yksityiskohdat tarjoamalla abstraktin käyttöliittymän, joka tarjoaa joukon primitiivejä, jotka ovat yleensä hyödyllisiä graafisten objektien piirtämisessä.

Katso myös

Viitteet