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?
Jaettu muisti ja sen standardit
5
418
Vastaukset
- 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
Nuorille miehille ei kelpaa enää paljon käytetty nainen
"En ikinä huolisi mitään kyläpyörää", Tomi täräyttää TikTokissa https://www.iltalehti.fi/kotimaa/a/27182b8f-7759-49d0-83223127Persut eivät ole kertoneet euronkaan edestä säästökohteita
Mutta änkyttävät kysellä niistä muilta jatkuvasti. Vaikuttaa ettei persuilla ole kykyä omaan ajatteluun ja päätöksenteko2052842Marinin hallituskaudella Suomen BKT sentään kasvoi
Tämä ns. kauhukabinetti ei ole saanut aikaan kuin vahinkoa. Otti ennätysvelat rikkaiden veroalennuksiin ja sai työttömyy582429Drone-epäily Uudellamaalla
Ihmisiä kehotetaan siirtymään sisätiloihin. https://www.is.fi/kotimaa/art-2000012008358.html1681499Loppuiko MTV3 näkymästä? Vinkki, miten näet mm. Salatut elämät jatkossa
MTV:n maksuttomien tv-kanavien (MTV3, MTV Sub, MTV Ava) näkyvyys Elisan palveluissa päättyi 12.5.2026. Tämä aiheutti har171252Oho! Martina Aitolehti teki radikaalin hiusmuutoksen - Uskaltaisitko itse?
Martina Aitolehti on menestyvä yrittäjä. Nyt hän on mukana Erikoisjoukot-realityssä. Erikoisjoukoissa Aitolehti nähdään521239- 58903
Muistatko? Pete Parkkonen kohahdutti intiimillä videolla - Katso se tästä!
Pete Parkkonen sai kohujulkisuutta Kohta sataa -videolla. Nyt Parkkonen voi kohahduttaa Euroviisuissa ainakin silloin, j14895- 81830
- 20814