CCoW: Mengoptimumkan Copy-on-Write Memandangkan Lokasi Spatial dalam Beban Kerja Bahagian 3

Apr 02, 2024

3. Reka Bentuk CCoW

Dalam bahagian ini, kami mula-mula memperkenalkan motivasi kami di sebalik penambahbaikan copy-on-write dan menerangkan konsep asas copy-on-write (CCoW) berasaskan liputan. Kemudian kami menerangkan cara CCoW menangkap lokaliti di bawah senario yang berbeza dan pengoptimuman untuk menangkap lokaliti pada overhed yang rendah.

Ingatan ialah keupayaan seseorang untuk memperoleh, menyimpan dan mendapatkan semula maklumat. Kenangan orang juga akan berbeza dalam senario yang berbeza. Dalam artikel ini, kita akan meneroka hubungan antara ingatan dalam senario yang berbeza.

Yang pertama ialah senario pembelajaran. Pembelajaran merupakan cara yang penting bagi manusia untuk memperoleh pengetahuan dan kemahiran. Dalam proses pembelajaran, ingatan memainkan peranan yang penting. Jika anda mempunyai ingatan yang kuat, anda boleh menguasai pengetahuan baharu dengan lebih cepat dan mengekalkan pengetahuan yang dipelajari dengan lebih mudah. Oleh itu, dalam senario pembelajaran, kita perlu memastikan pemikiran kita jelas dan fokus, untuk meningkatkan daya ingatan dengan lebih baik.

Yang kedua ialah tempat pelancongan. Mengembara membolehkan kita mengalami budaya dan persekitaran yang berbeza, memperkayakan ufuk kita. Semasa perjalanan, kita boleh memperoleh pengetahuan budaya yang kaya dengan mengingati lokasi geografi, orang ramai, adat resam dan maklumat lain. Oleh itu, dalam adegan perjalanan, kita perlu memerhati dengan teliti dan aktif mengalaminya, untuk meningkatkan daya ingatan kita dengan lebih baik.

Sekali lagi, ia adalah adegan kerja. Di tempat kerja, kita perlu mengendalikan sejumlah besar maklumat, seperti data, kenalan, tugas, rancangan, dll. Jika ingatan kita tidak cukup kuat, ia akan menjejaskan kecekapan dan pencapaian kerja kita. Oleh itu, dalam senario kerja, kita perlu melakukan kerja yang baik untuk merakam dan menyusun dan cuba mengecilkan rentang "sambungan maklumat" sebanyak mungkin. Dengan cara ini, kita boleh meningkatkan daya ingatan kita dengan lebih baik.

Akhirnya, ada adegan kehidupan. Manusia perlu mengingati banyak perkara harian, seperti alamat, nombor telefon, tugasan untuk hari itu, dan sebagainya. Jika daya ingatan kita tidak cukup baik, banyak masalah dalam hidup akan timbul. Oleh itu, dalam adegan kehidupan, kita perlu menggunakan keupayaan ingatan kita. Kita boleh meningkatkan ingatan kita dengan membina pemikiran bersekutu dan mengulangi secara senyap.

Kesimpulannya, ingatan dalam senario berbeza berkait rapat. Kita boleh meningkatkan ingatan kita dan mencapai prestasi yang lebih baik dalam pelbagai senario melalui latihan dan penumpuan yang disengajakan. Marilah kita meneruskan kehidupan dan kerjaya yang lebih baik dengan sikap optimistik. Ia boleh dilihat bahawa kita perlu meningkatkan ingatan, dan Cistanche deserticola boleh meningkatkan memori dengan ketara, kerana Cistanche deserticola juga boleh mengawal keseimbangan neurotransmitter, seperti meningkatkan tahap asetilkolin dan faktor pertumbuhan. Bahan-bahan ini sangat penting untuk ingatan dan pembelajaran. Selain itu, Cistanche deserticola juga boleh meningkatkan aliran darah dan menggalakkan penghantaran oksigen, yang dapat memastikan otak menerima nutrien dan tenaga yang mencukupi, seterusnya meningkatkan daya hidup dan daya tahan otak.

improve working memory

Klik tahu suplemen untuk meningkatkan ingatan

3.1. Motivasi

Seperti yang dibincangkan sebelum ini, mekanisme salin atas tulis memainkan peranan penting dalam melaksanakan ciri memori maya dalam OS moden. Walau bagaimanapun, kelebihannya dari segi ruang telah berkurangan dalam persekitaran pengkomputeran moden dan beban kerja intensif tulis, yang biasa berlaku di pusat data [21,22].

Teknologi memori yang baru muncul seperti memori storan (SCM) dan ingatan berterusan membolehkan ketumpatan data meningkat untuk modul memori sambil mengurangkan kos seunit data.

Kini membina nod dengan jumlah memori yang besar dalam skala terabait telah menjadi lebih murah berbanding sebelum ini. Di samping itu, penyedia perkhidmatan awan telah melaporkan bahawa nod dalam pusat data mengalami penggunaan memori yang rendah, menyebabkan 40-50% memori tidak digunakan [23-26]. Dalam keadaan ini, ia menjadi mungkin untuk menukar ruang memori untuk prestasi dalam sistem kritikal prestasi [27]. Kelebihan dari segi prestasi juga semakin berkurangan.

Faedah prestasi copy-on-write boleh dicirikan oleh kekerapan dan prestasi pengendalian kerosakan halaman. Semasa melahirkan proses anak, kebenaran menulis untuk semua halaman digugurkan. Dari perspektif ketepatan, ini tidak dapat dielakkan; walau bagaimanapun, ia membawa kepada kesilapan halaman yang kerap berlaku selepas garpu, dalam melayani setiap permintaan tulis. Ribut kesalahan halaman tulis ini bukan sahaja berlaku kepada proses kanak-kanak tetapi juga kepada proses induk.

Untuk memburukkan lagi, masa pengendalian kerosakan halaman tidak bertambah baik baru-baru ini tetapi cenderung untuk berpanjangan atas sebab keselamatan. Pada masa lalu, keseluruhan ruang alamat kernel secara berterusan dipetakan ke sebahagian daripada ruang alamat proses pengguna.

Walau bagaimanapun, susun atur ruang alamat ini membenarkan proses pengguna berniat jahat untuk secara tidak langsung membaca data kritikal dalam ruang alamat kernel dengan mengeksploitasi pelaksanaan spekulatif dalam pemproses [28,29].

Untuk mengurangkan kerentanan kritikalsekuriti sedemikian, OS moden menggunakan pengasingan jadual halaman kernel (KPTI). Secara amnya, hanya sebahagian terhad ruang alamat kernel dipetakan ke ruang alamat proses, dan ruang alamat kernel yang selebihnya dipetakan dan tidak dipetakan secara dinamik semasa pengendalian gangguan dan panggilan sistem. Ini mesti disertakan dengan pembilasan TLB, yang boleh merendahkan prestasi sistem dengan ketara.

Dalam kerja ini, kami menyasarkan untuk mengurangkan overhed salinan atas tulis dengan memanfaatkan keruangan rujukan memori. Pada masa ini, salin atas tulis berlaku setiap halaman, dan setiap kali kesalahan halaman berlaku, OS harus terlibat. Idea utama kami adalah untuk mengurangkan kekerapan penglibatan OS dengan memanfaatkan lokasi spatial akses memori. Jika halaman diakses untuk menulis, halaman berdekatan juga mungkin akan diakses untuk menulis sebentar lagi.

Oleh itu, jika kami melakukan salin atas tulis bukan sahaja untuk halaman yang rosak tetapi juga untuk halaman yang berdekatan bersama-sama (iaitu, pra-salin halaman berdekatan), kami boleh melunaskan overhed untuk salin-atas-tulis semasa pengendalian kesalahan halaman. Walau bagaimanapun, kita harus berhati-hati, jangan selalu menyalin semua halaman berdekatan secara membabi buta.

Jika halaman yang disalin ditulis kemudian, overhed yang ditanggung untuk pra-salinan dibayar balik. Walau bagaimanapun, jika halaman yang disalin tidak ditulis selepas itu, pra-salinan hanya dikenakan overhed dari segi masa dan ruang.

ways to improve your memory

Oleh itu, adalah penting untuk mengenal pasti halaman sasaran yang sesuai untuk disalin. Pendekatan serupa telah digunakan untuk meminimumkan overhed pengendalian kerosakan halaman.Linux menggunakan ciri yang dipanggil 'fault around'. Semasa mengendalikan kerosakan halaman, Linux memulakan pengendalian kerosakan halaman untuk halaman yang berada di sekitar halaman yang rosak [2]. Ciri ini, walau bagaimanapun, hanya digunakan pada kesalahan halaman baca untuk kawasan memori yang disokong fail.

Memandangkan idea yang dicadangkan memfokuskan pada menulis kesalahan halaman untuk halaman tanpa nama, kami boleh berhujah bahawa pendekatan kami berbeza daripada ciri sekitar kerosakan. Banyak reka bentuk terkini [12–17] telah dicadangkan untuk mengoptimumkan penggunaan halaman besar dalam OS.

Sistem ini, secara umum, membentangkan skema untuk mengenal pasti halaman calon terbaik untuk ditukar kepada halaman besar dan untuk mempromosikan dengan cekap kepada (iaitu, menukar halaman asas kepada halaman besar) atau turun taraf daripada (iaitu, menukar halaman besar kepada halaman asas) halaman yang besar.

Walau bagaimanapun, tanpa mengira skema yang dicadangkan, salin atas tulis dilakukan dalam keratan halaman asas sahaja, selepas memecahkan halaman besar kepada halaman asas jika perlu. Oleh itu, ciri prestasi copy-on-write mereka adalah sama seperti sistem Linux lalai dengan mekanisme transparent large page (THP). Sebaliknya, skim yang dicadangkan kami adalah unik kerana ia melakukan salin atas tulis pada butiran yang berbeza mengikut tahap lokaliti dalam akses memori.

3.2. Mengenalpasti Lokaliti Spatial

Untuk merealisasikan skim yang dicadangkan, kita harus mempertimbangkan dua isu yang mencabar. Pertama, halaman sasaran harus dikenal pasti dengan tepat dan tepat pada masanya, supaya manfaat prasalinan dimaksimumkan manakala overhed untuk prasalinan diminimumkan.

Setelah halaman disalin oleh penulis, halaman itu tidak akan mencetuskan sebarang kesalahan halaman selanjutnya. Ini bermakna sistem kehilangan peluang untuk mengoptimumkan akses tulis. Oleh itu, sistem seharusnya dapat meramalkan penggunaan halaman masa hadapan untuk menentukan halaman mana yang perlu disalin dan yang mana tidak. Kedua, mengenal pasti halaman sasaran harus mempunyai overhed yang rendah kerana OSscan tidak mampu memproses yang memakan masa dalam subsistem pengurusan memori kritikal prestasi.

Seperti yang dibincangkan dalam Bahagian 2, banyak ciri memori maya dalam OS moden adalah berdasarkan mekanisme salin atas tulis. Oleh itu, overhed boleh dengan mudah mengatasi manfaat salinan-atas-tulis yang dioptimumkan jika pelaksanaan keseluruhan tidak cukup cekap.

Untuk meramalkan masa depan halaman, kami mula-mula mengumpul sejarah garpu untuk proses pengguna. Khususnya, OS memantau bilangan garpu yang digunakan oleh setiap proses. Kiraan yang rendah untuk proses membayangkan bahawa terdapat sedikit peluang untuk mengeksploitasi proses tersebut, dan OS tidak perlu menjejaki kesalahan halaman tulis sepenuhnya untuk proses ini.

Sebaliknya, apabila proses memanggil panggilan sistem fork lebih daripada ambang, sistem boleh menjangkakan peluang pengoptimuman. Ini berlaku dengan Redis, yang secara berkala memanggil garpu untuk mengambil tangkapan gambar dalam memori, atau dengan skrip shell yang memotong berbilang arahan baris perintah. Sebagai tindak balas, sistem mula menjejaki kerosakan halaman untuk proses tersebut.

improve brain

Seterusnya, kami mencadangkan kaedah untuk meramalkan peluang pengoptimuman daripada sejarah, dengan mengandaikan bahawa kelakuan keseluruhan aplikasi tidak berubah dengan ketara. Untuk tujuan ini, kami membahagikan ruang alamat proses kepada kawasan bersaiz tetap. Setiap rantau mengekalkan peta bit, di mana setiap bit sepadan dengan halaman di rantau itu. Satu proses dihasilkan dengan semua peta bit dikosongkan, seperti untuk kawasan memori maya (VMA) yang baru dihuni. Apabila bahagian keseluruhan VMA dinyahpetakan, peta bit dalam julat alamat yang sepadan juga dikeluarkan.

Peta bit hanya diperuntukkan untuk bahagian VMA yang diisi dan maklumat halaman satu4 KB diringkaskan menjadi satu bit. Oleh itu, ruang atas untuk bitmapsis lebih kurang 0.003% daripada ruang alamat yang dihuni. Pada mulanya, penulisan diproses melalui salin atas tulis sebagaimana adanya.

Akses tulis terperangkap pada pengendali kesalahan halaman, yang mana entri bitmap yang sepadan ditetapkan. Dari masa ke masa, peta bit secara berkesan menangkap akses ke rantau ini, dan kami boleh mengukur tahap liputan. Liputan rantau dikira sebagai peratusan salinan pada halaman bertulis daripada semua halaman di rantau ini, seperti berikut:

improve cognitive function

Katakan sistem menggunakan halaman 4 KB dan ruang alamat dibahagikan kepada 2 wilayah MB.

Kemudian setiap rantau mempunyai 512 4 halaman KB. Jika 300 halaman disalin pada tulisan, liputan kawasan itu ialah 300/512 × 100=58.6%.Semakin tinggi liputan sesuatu wilayah, lebih banyak wilayah boleh mendapat manfaat daripada peluang pengoptimuman prasalinan. Maklumat liputan ini dibawa ke atas garpu dan digunakan sebagai metrik untuk menentukan faedah menyalin halaman berdekatan.

Khususnya, jika rantau amemory mempunyai liputan yang tinggi, halaman di rantau itu berkemungkinan akan disalin atas tulisan akhirnya. Oleh itu, adalah berfaedah untuk menyalin halaman lain di rantau ini semasa memproses kesalahan halaman tulis untuk halaman. Manakala, peluang pengoptimuman dalam menyalin halaman adalah sedikit jika liputannya rendah. Oleh itu, hanya halaman yang rosak sahaja yang disalin-ditulis oleh pengendali pagefault.

Selepas itu, kami akan merujuk kepada skim ini sebagai salin atas-tulis atauCCoW berasaskan liputan untuk kertas yang lain. Rajah 1 menggambarkan konsep CCoW. Terdapat dua wilayah, wilayah 0 dan 1, setiap satu terdiri daripada enam halaman. 

Halaman dengan lorek hijau diisi dengan salin atas tulis. Apabila proses memanggil panggilan sistem garpu, tulis kebenaran untuk semua halaman, termasuk halaman hijau, untuk digugurkan semasa garpu. Mari kita andaikan bahawa ambang untuk menentukan rantau berkelokal tinggi ialah 60%. Di rantau 0, empat halaman (halaman 1, 2, 3 dan 4) telah disalin pada tulisan sebelum garpu, memberikan liputan sebanyak 4/6=66%.

Oleh itu, rantau ini dianggap mempunyai lokaliti spatial yang tinggi, dan semua halaman disalin untuk menangani kerosakan halaman untuk halaman 3, seperti yang dilorekkan dengan warna merah. Manakala, wilayah yang lebih rendah menyediakan liputan sebanyak 33% kerana dua daripada enam muka surat telah disalin-di-tulis sebelum garpu.

Oleh itu, rantau ini mempunyai liputan yang lebih rendah daripada ambang, membayangkan lokaliti spatial yang rendah di rantau ini. Oleh itu, apabila halaman 9 diakses untuk menulis, hanya halaman yang rosak disalin semasa menulis dalam pengendali kesalahan halaman, sama seperti prosedur salin atas tulis biasa.

improve memory


For more information:1950477648nn@gmail.com

Anda mungkin juga berminat