Jaettu muisti ja sen standardit

Harrastaja591

Miten kaksi ohjelmaa saadaan käyttämään samaa vectoria tai c-taulukkoa ja miten data saadaan pysymään muistissa ohjelman lopetusten, ehkä uudelleen kääntämisten ja käynnistysten välillä, jotta samaa tiedostoa ei tarvitse lukea sisään montaa kertaa?

Ja miten se tehdään standardilla tavalla, jotta eri tekijöiden ohjelmat voivat lukea toistensa muisteja (tai toistensa luomia, jaettavaksi tarkoitettuja muistialueita) helposti, eli siis tavallaan voivat kommunikoida standardin mukaisella tavalla? Onko tälle olemassa standardia, ehkä jopa ISO-standardia?

Ja miten yhteiset muistialueet saadaan L1 tai L2 cacheen eli nopeampiin muisteihin?

5

397

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • 23

      > Miten kaksi ohjelmaa saadaan käyttämään samaa vectoria tai c-taulukkoa ja miten data saadaan pysymään muistissa ohjelman lopetusten, ehkä uudelleen kääntämisten ja käynnistysten välillä, jotta samaa tiedostoa ei tarvitse lukea sisään montaa kertaa?

      Tee kolmas ohjelma, joka luo jaetun muistin, käynnistyy bootissa eikä kuole pois.

      > Onko tälle olemassa standardia, ehkä jopa ISO-standardia?

      Parempaa. POSIX standardi. man shmget; man shmat.

      > Ja miten yhteiset muistialueet saadaan L1 tai L2 cacheen eli nopeampiin muisteihin?

      Ne varmaan menevät sinne, kun käytät muistialuetta. Ja varmaan pysyvät siellä, jos et aja mitään muita prosesseja ja käytät muistialuetta jatkuvasti (eli: unohda se). Voit sentään estää niiden sivutuksen levylle. man mlock.

    • "Ja miten yhteiset muistialueet saadaan L1 tai L2 cacheen eli nopeampiin muisteihin?"

      Tuohon toiseen saitkin vastausta mutta tätä voisin tarkentaa, että ohjelmoijalla ei ole mahdollisuutta vaikuttaa muuten kuin suunnittelemalla algoritmit niin, että huomioidaan cachen toiminta. Cache toimii niin, että se mikä menee ensimmäiseksi sisään, lähtee ensimmäiseksi ulos. Koodi sitten kannattaa suunnitella niin, että jos vaikka L1 cache olisi 16kt niin käsittelee dataa esimerkiksi 8kt paloissa ettei vahingossa tyhjennä sitä pois sieltä tarpeettomasti. Tekniikka on nimeltään strip mining. Valgrind on sitten kätevä ohjelmisto analysoimaan cachen käyttöä mutta se toimii vain x86 arkkitehturilla.

      Tietysti prosessien vaihdot yms. tyhjentää cachen, mutta se tapahtuu suhteellisen harvoin ottaen huomion, että prossu jauhaa miljardeja kelloja sekunnissa.

      • Ei oo vaikeeta

        Ulkopuolinen koodi ruiskutetaan sovelluksen varaamaan muistialueeseen siten, että ei ruiskuteta yhteenkään niistä muistialueen kohdista joita sovellus, jota vaklataan, jo käytää.


      • Aika helppoo se on
        Ei oo vaikeeta kirjoitti:

        Ulkopuolinen koodi ruiskutetaan sovelluksen varaamaan muistialueeseen siten, että ei ruiskuteta yhteenkään niistä muistialueen kohdista joita sovellus, jota vaklataan, jo käytää.

        Koodin ruiskutuksen jälkeen vaklattava sovellus eikä rosessien eikä palveluittenkaan hallinta tiedä mitään siitä, että siellä pyörii itse asiassa ulkopuoleinen rosessi järjestelmässä, mutta se rosessi tietää kaikki, mitä sillä sovelluksella tehdään ja muillakin, koska se rosessi voi komentoluupista lukea senkin, mitä muutkin rosessit ja palvelut tekevät.


    • Harrastaja591

      Voisiko esimerkiksi tehdä tekstieditorin kanssa toimivan erillisen ikkunan, joka piirtää vaikka kaaviota tekstin perusteella ( varsinkin jos "teksti" on jotain formaalia koneen tulkittavaksi tarkoitettua, kuten c :aa tai html:ää ), ja siitä huolimatta, että tekstieditorin tekijä ei ole huomioinut mitään laajennusmahdollisuuksia ja plug-inien sovittamista, niinkö? Entä jos kirjoittaa editorilla raakaa html:ää ja se pitäisi saada näkymään samaan aikaan reaaliajassa firefoxin ikkunassa oikein tulkittuna?

      Joissain nettitaistelupeleissä on ongelmana se, että jotkut pelaajat fuskaavat käyttämällä ns. aimbotteja, eli automatisoitua tähtäystä ja laukaisua. Tätä ongelmaa torjumaan on kehitetty punk-buster ohjelma. Perustuvatko aimbotit pelin muistialueen sivusta lukemiseen vaiko "vain" pelin nettiviestinnän kopiointiin ja analysointiin? Aimbotit ja punk buster voivat olla valaiseva esimerkki.

      Miten saa lueteltua koko käyttöjärjestelmän laajuisesti mitkä ohjelmat lukevat minkäkin toisen ohjelman muistia ja jaettua muistia? Ehkä hyvinkin lyhyt c ohjelma voi sen tehdä, en tiedä...

      Entä jos on fyysisesti viallisia muistipaikkoja (vaikkapa gammasäde tai kosminen säde on vaurioittanut transistoria), niin miten edes oma ohjelma saadaan jättämään sellaisen muistipaikan käyttö väliin? Voiko jossain linux-versiossa tai windowsissa laittaa koko käyttöjärjestelmän välttämään tiettyä muistipaikkaa?

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Hallitus pyrkii rajoittamaan kaupan omien halpamerkkien myyntiä

      Helsingin Sanomien mukaan hallitus valmistelee lakihanketta, joka suitsii kaupan valtaa ja rajoittaa omien halpamerkkien
      Yhteiskunta
      145
      2821
    2. Kysy jotain kaivatultasi

      Tämä ketju on sitä varten.
      Ikävä
      231
      2137
    3. Tapettu

      On joku kangaskadulla perjantaina
      Sotkamo
      48
      1990
    4. Huomenna sähkö maksaa jo yli 60 snt/kWh. Milloin ALV putoaa?

      Kysynkin persuilta, että milloin aiotte pudottaa sähkön arvonlisäveron kuten Marinin hallitus teki sähkön hinnan noustes
      Maailman menoa
      203
      1923
    5. Vain persut vastustivat hiilivoimaloiden alasajoa

      Persut vastusti jyrkästi hiilen kieltolakia ja on myöhemmin vaatinut hiilivoimaloiden pitämistä käytössä. He perusteliva
      Maailman menoa
      26
      1700
    6. Persut päättivät hiilivoimaloiden alasajosta

      Persut ovat Suomen kansan vastainen putinistiporukka, josta nyt maksamme kovaa hintaa.
      Maailman menoa
      143
      1531
    7. Muistattekos kuinka kokoomus ja persut vinkuivat sähkön hinnasta?

      Oppositiossa vuonna 2022, kun sähkön hinta uhkasi nousta 20 senttiin kilowattitunnilta? Nyt ovat hiiren hiljaa, kun pitä
      Maailman menoa
      81
      1443
    8. Mitä ajattelet hänestä

      Millaisena pidät kaivattuasi?
      Ikävä
      122
      1168
    9. Onko jollekin vielä epäselvää Raamatun kanta homoseksuaaliseen käytökseen?

      😺 On oma mielipiteesi mikä tahansa on hyvä muistaa, mikä on Jumalan mielipide. Edelliset ketjut ovat tulleet täyteen jo
      Luterilaisuus
      312
      1030
    10. Työvoimatoimisto

      Nyt kysyisin miksi pitää käydä työvoimatoimistossa paikanpäällä, kun he eivät muuta tee kuin laittavat koneelle uudet ve
      Työttömyys
      27
      1028
    Aihe