CCoW: Ish yuklarining fazoviy joylashuvini hisobga olgan holda nusxa ko'chirishni optimallashtirish 1-qism

Apr 02, 2024

Annotatsiya:

Copy-on-write (CoW) xotirani boshqarishning muhim usuli bo'lib, jarayonlar o'rtasida sahifalarni samarali almashish imkonini beradi. Xususan, CoW-ni vilkalar tizimi chaqiruvi bilan birlashganda, ilovalar, hatto katta xotira maydoniga ega bo'lsa ham, past yuk bilan joriy xotiradagi ma'lumotlarning suratini olishi mumkin.

Xotira ma'lumotlari kompyuter xotirasida saqlangan ma'lumotlarni anglatadi. Garchi u inson xotirasidan farq qilsa-da, bu ikkisi o'rtasida ma'lum bir bog'liqlik mavjud.

Birinchidan, xotira ma'lumotlari inson xotirasining rivojlanishiga yordam berishi mumkin. Masalan, bilimlarni o'rganish, eslab qolish va tushunishimizga yordam berish uchun kompyuterlarning yozib olish, saqlash va qidirish funksiyalaridan foydalanishimiz mumkin. Zamonaviy texnologiyalar bizga eslab qolish va o'rganishning yanada samarali usullarini taqdim etadi, bu esa bilim va ko'nikmalarni yaxshiroq egallashimizni ta'minlaydi.

Ikkinchidan, xotira ma'lumotlari ham odamlarga xotiralarini yaxshiroq boshqarishga yordam beradi. Ma'lumotlarni aniq tartibga solish va tasniflash orqali biz hayotimiz, ishimiz va o'qishimiz uchun juda muhim bo'lgan kerakli ma'lumotlarni tezroq topib, eslay olamiz.

Eng muhimi, xotiradagi ma'lumotlar inson xotirasini yo'qotishining oldini oladi. Inson xotirasi vaqt o'tishi bilan asta-sekin zaiflashadi, bu jarayon "unutish" deb ataladi. Biroq, ma'lumotlarni kompyuterning qattiq diskida saqlash orqali biz kerakli ma'lumotlar va xotiralarni istalgan vaqtda saqlab qolish va olish mumkinligini ta'minlashimiz mumkin.

Shuning uchun xotira ma'lumotlari va inson xotirasi o'rtasidagi munosabatni ijobiy deb aytish mumkin. Biz texnologiyaga haddan tashqari tayanmasligimiz kerak bo'lsa-da, xotira ma'lumotlaridan oqilona foydalanish ish samaradorligimiz va o'rganish natijalarimizni yaxshilaydi, xotirani yaxshiroq boshqarishga yordam beradi va unutishni oldini oladi. Ko'rinib turibdiki, biz xotirani yaxshilashimiz kerak va Cistanche deserticola xotirani sezilarli darajada yaxshilashi mumkin, chunki Cistanche deserticola an'anaviy xitoylik dorivor material bo'lib, u juda ko'p noyob ta'sirga ega, ulardan biri xotirani yaxshilashdir. Cistanche deserticolaning samaradorligi uning tarkibidagi ko'plab faol moddalar, jumladan, tanin kislotasi, polisakkaridlar, flavonoid glikozidlar va boshqalardan kelib chiqadi. Ushbu ingredientlar turli yo'llar orqali miya sog'lig'ini mustahkamlashi mumkin.

improve memory

Xotirani yaxshilashning 10 ta usulini bilish tugmasini bosing

Biroq, CoW sahifa xatosi ishlov beruvchisida har bir sahifada sodir bo'lganligi sababli, har safar sahifa xatosi yuzaga kelganda, operatsion tizim ishtirok etishi kerak. Bu yozishni talab qiladigan ish yuklari uchun unumdorlikning sezilarli darajada pasayishiga olib keladi.

Ushbu maqola sigir muammosini yumshatish uchun xotiraga kirish joylarini hisobga olgan holda optimallashtirilgan CoW sxemasi bo'lgan qamrovga asoslangan nusxa ko'chirish-yozishni (CCoW) taklif qiladi. CCOW qamrov tushunchasi bilan jarayonning manzil fazolarida fazoviy joylashuvni o'lchaydi.

CoW-ni qayta ishlash jarayonida CCoW yuqori joylashuvli xotira hududlari uchun bir nechta sahifalarni oldindan nusxa ko'chiradi va shu bilan yozishni talab qiladigan ish yuklari uchun operatsion tizimning ishtirokini minimallashtiradi. Biz hududni o'lchashdagi muammolarni tushuntiramiz va kontseptsiyani amalga oshirish uchun optimallashtirishni ta'minlaymiz.

Prototip bilan baholash shuni ko'rsatadiki, bu yondashuv kichik hajmdagi xotira yuki bilan ilovalarning umumiy ish faoliyatini 10% gacha oshirishi mumkin.

Kalit so'zlar: ko'chirib yozish; virtual xotira tizimi; sanchqi; Redis; sahifa xatosi.

1.Kirish

Operatsion tizimning (OT) asosiy roli qimmatli tizim resurslarini boshqarishdan iborat bo'lib, yozishga nusxa ko'chirish (CoW) ko'pgina zamonaviy operatsion tizimlar tomonidan qabul qilingan xotirani boshqarishning eng asosiy usullaridan biridir.

Ikki yoki undan ortiq jarayonlar bir xil ma'lumotlarga ega bo'lishi kerak bo'lganda, CoW sxemasi jarayonlarga sahifalarni darhol takrorlashdan ko'ra bir xil sahifalarni almashish imkonini beradi. Umumiy sahifalar takrorlanadi, faqat jarayonlardan biri umumiy sahifalarga yozganda.

Virtual xotira tizimlari jarayonlar oʻrtasida maʼlumot almashishni samarali taʼminlashi mumkin va turli virtual xotira funksiyalari, masalan, jarayon vilkalari paytida manzil maydonini koʻpaytirish, bir xil sahifalarni ikki nusxadan chiqarish va sahifani nol almashish kabilar yozishga nusxa koʻchirish [1–3] asosida amalga oshiriladi. Ushbu xususiyatlar tufayli ilovalar kam bo'sh joy bilan o'z nusxalarini yaratishi va klondan to'g'ri foydalanishi mumkin.

Masalan, mashhur xotira kalitlari qiymatini saqlash tizimlaridan biri bo'lgan Redis [4], xotiradagi doimiy ma'lumotlarni saqlashga chaqirish uchun vilkalar tizimi bilan birgalikda nusxa ko'chirishdan foydalanadi. Kiruvchi so'rovlarga xizmat ko'rsatayotganda, Redis asosiy jarayoni vaqti-vaqti bilan vilkalar yordamida bola jarayonini ishlab chiqaradi. Bola jarayoni xotiradagi ma'lumotlarni saqlashda saqlash uchun asosiy jarayonga o'xshash xotira snapshotidan boshlanadi.

short term memory how to improve

Snapshot asosiy jarayonning manzil maydonidan ajratilgan bo'lsa-da, lekin yozishda nusxa ko'chirish orqali boshqariladi, asosiy va yordamchi jarayonlar joriy ma'lumotlar va surat o'rtasidagi muvofiqlikni saqlash uchun hech qanday murakkab mexanizmni talab qilmaydi.

Shunday qilib, biz virtual xotira tizimida yozishda nusxa ko'chirish muhim ahamiyatga ega deb hisoblashimiz mumkin. Biroq, yozishni ko'p ish yukiga ega bo'lgan xotirani ko'p talab qiladigan ilovalarda joriy nusxa ko'chirish muammoli. Xususan, ma'lumotlarning takrorlanishi odatda OSdagi sahifa xatosi ishlov beruvchisida sodir bo'ladi. Ma'lumotlarning takrorlanishi har bir sahifada bir nechta yozish bilan qayta ishlanganligi sababli, jarayon juda ko'p sahifa xatolariga olib kelishi mumkin.

Operatsion tizim har bir sahifa xatosida ishtirok etadi, bu esa foydalanuvchi yadrosi rejimini tez-tez almashtirishga olib keladi. Xotirani ko'p talab qiladigan ilovalarning katta xotira izini hisobga oladigan bo'lsak, rejimni o'zgartirishlar soni juda ko'p.

Bundan tashqari, sahifalar jadvali dublikatsiya paytida o'zgartiriladi, bu tizimdagi barcha yadrolarning tarjimaga qarashli bufer (TLB) o'chirilishiga olib keladi. Bularning barchasi e'tiborga olinmaydigan qo'shimcha xarajatlarga olib keladi va ilovalarning ishlashini yomonlashtiradi.

Ushbu maqola qamrovga asoslangan nusxa ko'chirish (CCoW), yozishni ko'chirishni optimallashtirishning yangi sxemasini taklif qiladi. Agar sahifaga yozish uchun kirgan bo'lsa, xotiraga kirishning fazoviy joylashuvi tufayli uning yaqin sahifalariga ham tez orada yozish uchun kirish mumkin bo'ladi. CCoW fazoviy joylashuvdan foydalanib, nusxa ko'chirish-yozish uchun sahifa xatoliklari sonini kamaytiradi. Xususan, CCoW yozuvga nusxa ko'chirishni katta granularlikda (mintaqa deb ataladi) qayta ishlaydi.

Sahifa xatosini qayta ishlovchida bir nechta sahifalarni nusxalash orqali CCoW yozishda nusxa ko'chirish va qo'shimcha xarajatlar uchun juda ko'p sahifa xatolarini kamaytirishi mumkin. Shu bilan birga, fazoviy joylashuv darajasi jarayonning manzil maydonidagi joylashuviga qarab juda katta farq qiladi va xotiraning past joylashuvli qismlarini takrorlash vaqt va makon bo'yicha faqat qo'shimcha xarajatlarni talab qiladi.

Ushbu kamchilikni bartaraf etish uchun biz jarayonning manzil maydonidagi fazoviy joylashuvni baholash uchun aniq past xarajatlar mexanizmini taklif qilamiz. CCoW har bir mintaqada nusxa ko'chirish va yozishlar sonini hisoblaydi.

Joylashuv ma'lumotlarini vilkalar orqali olib o'tish orqali biz fazoviy joylashuv darajasini taxmin qilishimiz mumkin va CCoW faqat yuqori joylashuvli hududlar uchun prekopionni samarali bajaradi. Biz taklif qilingan CCoW sxemasini Linux yadrosida amalga oshirdik.

Operatsion tizimning virtual xotira tizimiga integratsiyalashgan holda, ilovalar o'zgartirishlarsiz CCoW-dan foydalanishlari mumkin. Biz mikrobenchmark yordamida ishlash xususiyatlarini tahlil qildik va real ish yuklari bilan benchmarkdan foydalangan holda baholash shuni ko'rsatadiki, CCoW mos keladigan xotira miqdori bilan dastur ish faoliyatini 10% gacha yaxshilashi mumkin.

ways to improve memory

Ushbu maqolaning qolgan qismi quyidagicha tashkil etilgan. 2-bo'limda biz qog'ozning fonini va tegishli ishini, shu jumladan virtual xotira va vilkani ko'rib chiqamiz. Biz 3-bo'limda CCoW dizayni va uni amalga oshirish tafsilotlarini tushuntiramiz. 4-bo'limda CCWni baholash natijalari keltirilgan. Va nihoyat, biz ushbu maqolani 5-bo'limda yakunlaymiz.

2. Asosiy ma'lumotlar va tegishli ish

2.1. Peyjing va virtual xotira

Deyarli barcha zamonaviy kompyuterlar va operatsion tizimlar xotirani boshqarishning asosiy sxemasi sifatida peyjing va virtual xotirani qabul qiladi [5]. Asosiy xotira bir xil o'lchamdagi sahifalarga bo'linadi va OTlar sahifa birligidagi foydalanuvchi jarayonlaridan xotirani ajratadi yoki ajratadi.

OTlar, shuningdek, jarayonlarning manzil bo'shliqlarini tizimdagi jismoniy joylashuvga moslashtirishni ham saqlaydi. Jarayonning manzil maydonidagi har bir mantiqiy sahifa uning fizik joylashuvi bilan taqqoslanadi va bu xaritalash sahifalar jadvali shaklida saqlanadi.

Jarayon uchun xotira ma'lumotnomasini boshqarish uchun protsessorning apparat komponenti bo'lgan xotira boshqaruv bloki (MMU) sahifa jadvaliga murojaat qilib, so'ralgan manzilni jismoniy manziliga tarjima qiladi. Sahifa jadvali sahifa jadvali yozuvlarini (PTE) o'z ichiga oladi. Har bir PTE xaritalash ma'lumotlarini o'z ichiga oladi va tegishli sahifa va xaritalash holatini tavsiflash uchun qo'shimcha maydonlarga ega bo'lishi mumkin.

Sahifa hajmi, garchi arxitekturaga xos bo'lsa ham, ko'pchilik arxitekturalarda odatda 4 KB ni tashkil qiladi. Bu jarayon manzil maydonidagi har 4 KB bitta PTEga ega bo'lishi kerakligini anglatadi. Jarayonning manzil maydonining katta hajmini hisobga olsak, sahifa jadvalining o'lchami, hatto bitta jarayon uchun ham juda katta bo'lishi mumkin.

Misol uchun, 64-bit arxitekturasidagi 4 KB sahifali va 8-bayt PTE boʻlgan jarayon uchun sahifalar jadvali hajmi 32 PB (264/212 × 8=255 bayt) boʻladi. Biroq, manzil maydoni odatda kam yashaydi va manzil maydonining ko'p qismi talab qilinmaydi.

Bu sahifa jadvalining ierarxik tashkil etilishini yoritadi. Butun sahifa jadvali sahifaga mos keladigan sahifa jadvali qismlariga bo'lingan. Sahifa jadvali qismlari ajratilmagan manzil hududlariga ajratilmagan.

memory enhancement

To'ldirilgan sahifa jadvali bo'laklari yuqori darajadagi sahifa jadvali qismlarini umumlashtirish mumkin. Ushbu bilvosita bitta sahifada faqat qismlar mavjud bo'lguncha takrorlanadi va shu bilan sahifa jadvallarining ixcham shakliga imkon beradi.


For more information:1950477648nn@gmail.com

Sizga ham yoqishi mumkin