CCoW: بهینه سازی کپی روی نوشتن با در نظر گرفتن موقعیت مکانی در بارهای کاری قسمت 4
Apr 03, 2024
3.3. ردیابی دسترسی به صفحات از پیش کپی شده
CCoW قرار است سربار را برای سربار رسیدگی به خطاهای مکرر صفحه مستهلک کند. با این حال، کپی کردن صفحات از قبل منجر به مشکل دیگری می شود: ردیابی دسترسی به صفحه پس از کپی.
ارتباط قوی بین پردازش خطا و حافظه وجود دارد. برای اکثر مردم، اشتباهات اغلب به عنوان یک چیز بد تلقی می شوند، اما می توانند فرصت هایی برای یادگیری و رشد ما باشند. با مدیریت صحیح خطاها، میتوانیم حافظه خود را تقویت کنیم و به ما کمک کنیم تا موقعیتهای مشابه را بهتر درک کنیم و به آنها پاسخ دهیم.
یکی از راه های مقابله با اشتباهات، تأمل و تحلیل است. وقتی اشتباهی مرتکب میشویم، باید زمانی را برای تأمل در مورد چگونگی وقوع اشتباه و آنچه میتوانیم برای جلوگیری از تکرار اشتباه مشابه انجام دهیم، اختصاص دهیم. از طریق تأمل، میتوانیم علل ریشهای مشکلات را شناسایی کرده و برای حل آنها اقدامات متقابل ایجاد کنیم. این نوع تجزیه و تحلیل فقط مربوط به اشتباهات نیست، بلکه می تواند به ما در تصمیم گیری بهتر در موقعیت های دیگر زندگی کمک کند و به بهبود مهارت ها و توانایی هایمان کمک کند.
راه دیگری برای مقابله با اشتباهات این است که به خود اجازه دهید آنها را بپذیرید و ادامه دهید. ما نباید اجازه دهیم که اشتباهات ما را کاهش دهند یا ما را ناامید کنند. در عوض، ما باید آنها را به عنوان فرصت هایی برای رشد در نظر بگیریم و به خود اجازه دهیم از اشتباهات خود درس بگیریم و به پیشرفت خود ادامه دهیم. اگر بتوانیم اشتباهات را بپذیریم و با نگرش مثبت با آنها برخورد کنیم، می توانیم ذهنیت و خودباوری قوی در خود ایجاد کنیم که برای حفظ حافظه خوب بسیار مهم است.
در نهایت، می توانیم با به اشتراک گذاشتن اشتباهات خود حافظه خود را تقویت کنیم. وقتی اشتباهاتی را که مرتکب شدهایم به دیگران میگوییم، آن وقایع را عمیقتر به خاطر میآوریم. این به این دلیل است که وقتی به دیگران می گوییم، باید همه چیز را واضح تر بیان کنیم و تمام جزئیات اشتباه را به خاطر بیاوریم. به این ترتیب می توانیم این خطاها را بهتر درک کنیم و از تکرار آنها جلوگیری کنیم.
به طور خلاصه، یک رابطه قوی بین پردازش خطا و حافظه وجود دارد. با برخورد صحیح با اشتباهات، می توانیم حافظه خود را تقویت کنیم، مهارت ها و توانایی های خود را بهبود بخشیم و به افراد بهتری تبدیل شویم. ما باید اشتباهات را یک فرصت بدانیم، فعالانه با مشکلات روبرو شویم و از آنها یاد بگیریم و رشد کنیم. مشاهده می شود که ما نیاز به بهبود حافظه داریم و سیستانچ دسرتیکولا می تواند حافظه را به میزان قابل توجهی بهبود بخشد زیرا سیستانچ دسرتیکولا یک ماده دارویی سنتی چینی است که اثرات منحصر به فرد زیادی دارد که یکی از آنها بهبود حافظه است. اثربخشی سیستانش دسرتیکولا از ترکیبات فعال متعددی که شامل تانیک اسید، پلی ساکاریدها، گلیکوزیدهای فلاونوئید و غیره است، ناشی می شود. این مواد می توانند سلامت مغز را از طریق مسیرهای مختلف ارتقا دهند.

روی روش های بهبود حافظه کوتاه مدت بدانید
در طرح اصلی کپی در نوشتن، اولین نوشتن در هر صفحه توسط کنترل کننده خطای صفحه ثبت می شود.
فقط صفحه معیوب کپی می شود و سیستم می تواند به طور دقیق دسترسی هر صفحه را از طریق کنترل کننده خطای صفحه ردیابی کند. از سوی دیگر، هنگامی که سیستم از کل منطقه کپی می کند، تمام صفحات در منطقه با مجوز کتبی به فرآیند نگاشت می شوند.
بنابراین، نوشتن های بعدی در آن صفحات کپی شده می تواند بدون ایجاد مکانیسم مدیریت خطای صفحه انجام شود، بنابراین سیستم نمی تواند دسترسی به صفحات کپی شده را ردیابی کند. زمانی که فرآیند فورک ها را به طور مکرر انجام می دهد، می تواند مشکل ساز باشد. فرض کنید منطقه دارای موقعیت مکانی بالایی است و یک دوره به عنوان دوره بین دو انشعاب تعریف می شود.
محل بالا را می توان با شمارش خطاهای صفحه ای که در منطقه رخ داده است، بدست آورد. سپس فرض کنید که این فرآیند با یک چنگال یک فرآیند جدید ایجاد می کند. هنگامی که یک دوره جدید با فورک شروع می شود، اولین دسترسی نوشتن به یکی از صفحات در منطقه، CCoW را آغاز می کند و تمام صفحات منطقه را کپی می کند. اکنون این فرآیند همه صفحات دارای مجوز نوشتن است و هیچ خطای صفحه دیگری تا پایان دوره از منطقه ایجاد نمی شود.
هنگامی که یک دوره جدید دوباره شروع می شود، با توجه به اینکه منطقه فقط یک صفحه کپی در نوشتن دارد، منطقه دارای پوشش کم در دوره در نظر گرفته می شود. بنابراین، هر نوشته در منطقه از طریق مکانیسم اصلی کپی در نوشتن در هر صفحه پردازش میشود، در نتیجه فرصت بهینهسازی عملکرد را به خطر میاندازد، حتی اگر منطقه دارای موقعیت بالایی باشد.
توجه داشته باشید که منطقه در نظر گرفته میشود که در دوره بعدی دوباره دارای موقعیت بالایی است، و این فرآیند برای تغییر وضعیت تکرار میشود. برای حل این مشکل، ما به مکانیزمی نیاز داریم که دسترسی به صفحه پس از کپی را ردیابی کند.
این مطالعه استفاده از بیت کثیف در ورودی جدول صفحه (PTE) را پیشنهاد می کند. به طور کلی، معماری های مدرن اطلاعات مختلفی را در PTE برای هر صفحه نگهداری می کنند و بیت کثیف یکی از زمینه هایی است که توسط اکثر معماری ها پشتیبانی می شود.
هنگامی که MMU یک دسترسی به حافظه نوشتن را پردازش می کند، به طور خودکار بیت کثیف صفحه مربوطه را تنظیم می کند. این برعکس به این معنی است که وقتی بیت کثیف برای یک صفحه تنظیم می شود، صفحه با دسترسی های نوشتن به روز شده است.
بر اساس این ایده، مکانیزم محاسبه پوشش را اصلاح کردیم. در ابتدا، همه مناطق به عنوان مناطق عادی در نظر گرفته می شوند. در طول فورک، پوشش برای مناطق عادی با استفاده از رابطه (1) با تعداد کپی روی نوشتن محاسبه می شود.

در حین رسیدگی به خطای صفحه برای یک منطقه با موقعیت بالا، همه صفحات در منطقه با پاک شدن بیت کثیف کپی می شوند. علاوه بر این، منطقه به عنوان یک منطقه از پیش کپی شده مشخص شده است. در طول فورک، پوشش منطقه کپی شده با تعداد صفحات کثیف در منطقه به صورت زیر محاسبه می شود:
![]()
پوشش محاسبه شده برای هر منطقه از طریق دوشاخه انجام می شود و به عنوان معیار برای موقعیت مکانی منطقه استفاده می شود. هنگامی که یک خطای صفحه نوشتن در یک منطقه رخ می دهد، سیستم پوشش منطقه را بررسی می کند و ممکن است صفحات را برای مناطق با موقعیت بالا از قبل کپی کند.
شکل 2 وضعیتی را نشان می دهد که در آن پوشش پس از نسخه های اولیه محاسبه می شود. فرض کنید هر دو منطقه کپی شده اند (با رنگ قرمز سایه دار شده اند) و صفحات 0، 2، 3، 4 و 11 همه دارای مجموعه dirtybit هستند.
برای محاسبه پوشش در حین پردازش فورک، سیستم از بیتهای کثیف به جای تعداد کپی در نوشتن استفاده میکند، زیرا مناطق در دوره فعلی کپی میشوند. بنابراین، منطقه 0 دارای پوشش 66 درصدی است.
در حالی که پوشش منطقه 1 15 درصد است. برای رسیدگی به خطای صفحه برای صفحه 3، منطقه 0 دوباره کپی میشود، در حالی که خطای صفحه برای صفحه 9 با مکانیزم اصلی رفع میشود. به این ترتیب، میتوانیم مناطق با موقعیت بالا را از تمرکز دور نگه داریم.

3.4. تسخیر محل
از آنجایی که کنترل کننده خطای صفحه در مسیر حیاتی عملکرد در سیستم عامل قرار دارد، باید هزینه های سربار را برای اجرای طرح پیشنهادی به حداقل برسانیم.
اساساً، CCoW به مکانیزمی برای محاسبه پوشش نیاز دارد و سادهترین راه برای پیادهسازی این ویژگی، ردیابی صفحاتی است که خطاهای صفحه را ایجاد میکنند، همانطور که در بخش 3.2 توضیح دادیم.
هنگام رسیدگی به خطای صفحه، سیستم بیت مربوط به صفحه معیوب را تنظیم می کند. در طول فورک، سیستم بیت مپ را اسکن می کند تا تعداد اشکالات هر منطقه را بشمارد و پوشش را محاسبه کند. بیت مپ پس از محاسبه بازنشانی می شود.
این رویکرد ساده است اما محدودیت های مکانی و زمانی زیادی را تحمیل می کند. سیستم باید یک ورودی بیت مپ یک بیتی برای هر صفحه 4 کیلوبایتی داشته باشد و کل بیت مپ را در طول فورک بررسی کند. با در نظر گرفتن ردپای حافظه عظیم برنامه های کاربردی حافظه فشرده، این عملیات ها در طول فورک هزینه بالایی را متحمل خواهند شد و مزیت عملکرد CCoW را جبران می کند. ما این پیاده سازی را با بهره برداری از ویژگی های خطای صفحه بهینه می کنیم.
اگر خطای صفحه از یک صفحه اتفاق بیفتد، صفحه دچار خطاهای صفحه اضافی نمی شود تا زمانی که فرآیند یک فرآیند جدید ایجاد کند. بنابراین، هر صفحه حداکثر می تواند یک خطای یک صفحه ای ایجاد کند، و برای منطقه ای با n صفحه، خطاهای صفحه فقط می تواند تا n بار اتفاق بیفتد. این بدان معناست که شمارش تعداد خطاهای صفحه در هر منطقه برای محاسبه پوشش کافی است، به جای حفظ بیت مپ برای صفحات جداگانه.
بنابراین، بیت مپ را با شمارنده های خطا جایگزین می کنیم. هر منطقه با یک جفت شمارنده به شرح زیر مرتبط است: یکی برای شمارش خطاهای صفحه در آخرین دوره و دیگری برای شمارش خطاهای صفحه در دوره فعلی.
اولی برای تعیین موقعیت مکانی مناطق استفاده می شود، در حالی که دومی برای نظارت بر موقعیت مکانی دوران فعلی استفاده می شود. در طول فورک، شمارشگر خطای فعلی روی شمارنده خطا قبلی کپی می شود.
اگر منطقه ای در این دوره کپی شود، تعداد صفحات کثیف در منطقه به جای آن در شمارنده خطای قبلی نوشته می شود. شمارنده ها در حین ایجاد یک ناحیه حافظه مجازی جدید (VMA) پر می شوند و زمانی که VMA متناظر آنها کوچک شده یا از نقشه خارج می شود، بازیابی می شوند. این بهینه سازی سربار فضای CCoW را از یک بیت در هر صفحه به چند بایت در هر منطقه کاهش می دهد.

For more information:1950477648nn@gmail.com






