موضوع مقاله: ملزومات مجازی‌سازی پوپک و گلدبرگ | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # ملزومات مجازی‌سازی پوپک و گلدبرگ | مقدمه: ملزومات مجازی سازی پوپک و گلدبرگ مجموعه‌ای از شرایط کافی برای یک معماری کامپیوتر در جهت پشتیبانی مؤثر از مجازی‌سازی کارآمد هستند. | ## بخش 1: ملزومات مجازی‌سازی پوپک و گلدبرگ | گلدبرگ در مقاله سال ۱۹۷۴ آنها یعنی «ملزومات رسمی برای معماری‌های نسل سوم با پشتیبانی مجازی‌سازی» معرفی شدند. با وجود اینکه این الزامات تحت فرضیات ساده شده‌ای به دست می‌آیند، اما همچنان راهی مناسب برای تعیین اینکه آیا یک معماری کامپیوتر از مجازی‌سازی کارآمدی پشتیبانی می‌کند یا اینکه آیا دستورالعمل‌هایی را برای طراحی معماری‌های رایانه مجازی ارائه می‌دهد می‌باشند. مانیتور ماشین مجازی (VMM، که هایپروایزر نیز نامیده می‌شود) قطعه نرم‌افزاری است که تجرید یک ماشین مجازی را فراهم می‌کند. 19 هم‌ارزی / وفاداری برنامه‌ای که تحت VMM اجرا می‌شود باید رفتاری اساساً مشابه با زمانی که مستقیماً روی یک ماشین معادل اجرا می‌شود، داشته باشد. کارایی / عملکرد بخش آماری غالب دستورالعمل‌های ماشین باید بدون دخالت VMM اجرا شود. 387 پوپک و گلدبرگ ویژگی‌هایی را که مجموعه دستورالعمل (ISA) ماشین فیزیکی باید داشته باشد تا VMMهایی را که دارای ویژگی‌های فوق هستند اجرا کند، توصیف می‌کنند. این مدل شامل یک پردازنده است که یا در حالت سیستمی یا در حالت کاربری عمل می‌کند و به حافظه خطی و آدرس‌پذیر یکنواخت دسترسی دارد. فرض بر این است که یک زیرمجموعه از مجموعه دستورالعمل‌ها تنها در حالت سیستمی در دسترس است و آن حافظه نسبت به یک ثبت جابجایی آدرس‌دهی می‌شود. قضایای مجازی‌سازی پوپک و گلدبرگ برای استخراج قضایای مجازی‌سازی خود، که شرایط کافی (اما نه لازم) را برای مجازی‌سازی ارائه می‌دهند، برخی دستورالعمل‌های یک ISA را در سه گروه مختلف معرفی می‌کنند؛ ۳ گروه مذکور به شرح ذیل می باشند. دستورالعمل‌های ممتاز(انحصاری) دستورالعمل‌هایی که باعث تله می‌شوند اگر پردازنده در حالت کاربری باشد و باعث تله نمی‌شوند اگر پردازنده در حالت سیستمی(حالت سوپروایزر) باشد. پس نتیجه اصلی تحلیل و بررسی پوپک و گلدبرگ را می‌توان به صورت زیر بیان کرد: قضیه ۱. | ## بخش 2: ملزومات مجازی‌سازی پوپک و گلدبرگ | برای هر کامپیوتر نسل سوم معمولی، اگر مجموعه دستورالعمل‌های حساس برای آن کامپیوتر زیرمجموعه‌ای از مجموعه دستورالعمل‌های ممتاز باشد، می‌توان یک VMM مؤثر طراحی کرد. به‌طور شهودی، این قضیه بیانگر این است که: برای ساخت یک VMM کافی است تمام دستورالعمل‌هایی که می‌توانند بر عملکرد صحیح VMM تأثیر بگذارند(دستورالعمل‌های حساس)، همیشه باعث تله می‌شوند و نظارت را به VMM منتقل کنند. 391 یک مشکل مرتبط به استخراج شرایط کافی برای مجازی‌سازی بازگشتی بازمی‌گردد، یعنی شرایطی که تحت آن بتوان یک VMM که می‌تواند روی یک کپی از خودش اجرا شود، ساخت. یک کامپیوتر نسل سوم معمولی به صورت بازگشتی مجازی‌سازی می‌شود اگر: بتواند مجازی‌سازی شود و یک VMM بدون هیچ گونه وابستگی زمانی بتوان برای آن طراحی کرد. برخی از معماری‌ها، مانند x86 نامبتنی بر سخت‌افزار، این شرایط را ندارند، بنابراین نمی‌توان آنها را به روش کلاسیک مجازی‌سازی کرد. یک سیستم ترجمه باینری ذخیره‌سازی خوب تنظیم شده ممکن است عملکرد قابل مقایسه‌ای داشته باشد، و در ترجمه باینری x86 نسبت به کمک سخت‌افزاری نسل اول x86 که صرفاً به دستورالعمل‌های حساس قابلیت تله نیز داده است، چنین است.Adams and Agesen, p. می‌توان یک VMM ترکیبی برای هر ماشین نسل سومی طراحی کرد به طوری که در آن مجموعه دستورالعمل‌های حساس به کاربر، زیرمجموعه‌ای از مجموعه دستورالعمل‌های ممتاز هستند: رسیدگی به دستورالعمل‌های بحرانی شرایط ذکر شده برای مجازی‌سازی ISA در قضیه ۱ ممکن است با قربانی خاصیت کارایی برآورده شود. مجازی‌سازی این چنین معماری‌هایی مستلزم مدیریت صحیح دستورالعمل‌های بحرانی، یعنی دستورالعمل‌های حساس اما غیرممتاز است. یک رویکرد، که به عنوان وصله(patching) نیز شناخته می‌شود، از روش‌هایی استفاده می‌کند که معمولاً در کامپایل مجدد پویا استفاده می‌شوند: دستورالعمل‌های حیاتی در زمان اجرا کشف و با یک تله در VMM جایگزین می‌شوند. مکانیسم‌های مختلفی مانند ذخیره کردن کد شبیه‌سازی یا کمک‌های سخت‌افزاری در حافظه نهان برای کارآمدتر کردن فرایند وصله پیشنهاد شده‌اند. یکی از رویکردهای متفاوت، شبیه‌سازی فرامجازی‌سازی است که نیاز به اصلاح(پورت شدن) سیستم عامل مهمان قبل از اجرا در محیط مجازی دارد. | ## بخش 3: ملزومات مجازی‌سازی پوپک و گلدبرگ | مجموعه دستورالعمل‌های معماری‌های رایج این بخش برخی از معماری‌های مرتبط و نحوه ارتباط آنها با الزامات مجازی‌سازی را ارائه می‌دهد. PDP-10 معماری PDP-10 تنها چند دستورالعمل دارد که حساس هستند (حالت پردازنده را تغییر داده یا پرس و جو می‌کنند) اما ممتاز نیستند. IA-32 (x86) مجموعه دستورالعمل IA-32 پردازنده پنتیوم شامل ۱۸ دستورالعمل حساس و غیرممتاز است. کارایی در عمل الزامات کارایی در تعریف پوپک و گلدبرگ از VMM فقط به اجرای دستورالعمل‌های غیرممتاز مربوط می‌شود که باید به صورت بومی اجرا شوند. این همان چیزی است که یک VMM را از کلاس عمومی‌تر نرم‌افزارهای شبیه‌سازی سخت‌افزاری متمایز می‌کند. متأسفانه، حتی در یک معماری که الزامات پوپک و گلدبرگ را برآورده می‌کند، عملکرد یک ماشین مجازی می‌تواند به‌طور قابل توجهی با سخت‌افزار واقعی متفاوت باشد. آزمایش‌های اولیه روی System/370 (که ملزومات رسمی قضیه ۱ را برآورده می‌کرد) نشان داد که عملکرد یک ماشین مجازی می‌تواند در برخی از معیارها به حد بسیار کمی مانند ۲۱ درصد از ماشین بومی برسد. هزینه به دام انداختن و شبیه‌سازی دستورالعمل‌های ممتاز در VMM می‌تواند قابل توجه باشد. 535 یکی از عوامل محرک اصلی برای توسعه کمک‌های سخت‌افزاری System/370 خود حافظه مجازی بود. | ## جمع‌بندی | وقتی مهمان سیستم عاملی بود که خودش حافظه مجازی را پیاده‌سازی می‌کرد، حتی دستورالعمل‌های غیرممتاز می‌توانستند زمان اجرای طولانی‌تری داشته باشند - هزینه‌ای که با الزام دسترسی به جداول ترجمه که در اجرای اصلی استفاده نمی‌شدند پرداخت می‌شد (به جداول صفحه سایه مراجعه کنید).Gum, p.