Кіріспе

Компьютерлік архитектураның мүмкіндіктері. Попек пен Голдбергтің виртуализация талаптары – компьютерлік архитектураның жүйелік виртуализацияны тиімді қолдауы үшін жеткілікті шарттар жиынтығы. Бұл талаптарды Джеральд Дж. Попек пен Роберт П. Голдберг 1974 жылы жариялаған «Виртуализацияға қабілетті үшінші буын архитектураларының ресми талаптары» атты мақаласында ұсынды. Талаптар оңайлату шарттарында туындағанмен, компьютерлік архитектура тиімді виртуализацияны қолдайтынын анықтаудың ыңғайлы жолын ұсынады және виртуализацияланған компьютерлік архитектураны жобалау бойынша нұсқаулар береді.

VMM анықтамасы

Жүйелік виртуалды машиналар процессорды (немесе процессорларды), жад және сақтау ресурстарын, сондай-ақ шеткі құрылғыларды қоса алғанда, аппараттық ресурстардың толық жиынтығын виртуалдауға қабілетті. Виртуалды машина мониторы (ВММ, сонымен қатар гипервизор деп аталады) – виртуалды машинаның абстракциясын қамтамасыз ететін бағдарламалық құрал. ВММ құрған ортаны талдағанда үш қасиетке назар аудару қажет:

Теңдестік / Дәлдік: ВММ-де іске қосылған бағдарлама тікелей эквивалентті машинада іске қосылғандағыдай мінез-құлықты көрсетуі керек. Ресурстарды басқару / Қауіпсіздік: ВММ виртуалданған ресурстарды толық бақылауда ұстауы тиіс. Тиімділік / Өнімділік: Машина нұсқауларының статистикалық түрде басым бөлігі ВММ-нің араласуынсыз орындалуы керек. Попек пен Голдберг терминологиясында ВММ осы үш қасиеттің барлығын көрсетуі тиіс. Смит пен Нейрдің (2005) анықтамалық кітабында қолданылатын терминологияда ВММ әдетте теңдестік және ресурстарды басқару қасиеттерін қанағаттандырады деп есептеледі, ал өнімділік қасиетін қосымша орындаушылар тиімді ВММ деп аталады. Попек пен Голдберг физикалық машинаның нұсқаулар жиынтығы архитектурасының (ISA) жоғарыда аталған қасиеттерге ие ВММ-ді іске қосу үшін қандай сипаттамаларға ие болуы керек екенін сипаттайды. Олардың талдауы мұндай сипаттамаларды «үшінші буын архитектураларының» (мысалы, IBM 360, Honeywell 6000, DEC PDP 10) моделін пайдаланып шығарады, бірақ бұл модель заманауи машиналарға дейін кеңейтілуі мүмкін. Бұл модель жүйелік немесе пайдаланушы режимінде жұмыс істейтін және сызықтық, біркелкі адрестелетін жадқа қол жеткізе алатын процессорды қамтиды. Нұсқаулар жиынтығының бір бөлігі тек жүйелік режимде қол жетімді және жад қайта орналастыру тіркегішіне қатысты адрестеледі деп есептеледі. I/O және үзілістер модельденбеген.

Маңызды тапсырмаларды басқару

ISA виртуализациясының 1-теоремада көрсетілген шарттары тиімділік есебінен жеңілдетілуі мүмкін. Попек пен Голдбергтің анықтамасына сәйкес виртуализацияланбайтын ISA үшін VMM жүйелі түрде құрылып келеді. Мұндай архитектураларды виртуализациялау үшін, сезімтал, бірақ құқықтары шектеулі нұсқауларды, яғни маңызды нұсқауларды дұрыс өңдеу қажет. "Жапсыру" деп аталатын бір тәсіл, динамикалық қайта компиляцияда қолданылатын әдістерді пайдаланады: маңызды нұсқаулар орындалу барысында анықталып, VMM-ге жіберуге (trap) ауыстырылады. "Жапсыру" процесін тиімді ету үшін эмуляциялық кодты кэштеу немесе аппараттық қолдау сияқты түрлі механизмдер ұсынылған. Тағы бір тәсіл – паравиртуализация, ол виртуалды ортада іске қосылмас бұрын, қонақ опералық жүйелерді өзгертуді (порттауды) талап етеді.

Жалпы архитектуралардың нұсқаулық жиынтығы

Бұл бөлімде тиісті архитектуралар мен олардың виртуализация талаптарымен байланысы қарастырылады.

Жүйе/370

Жүйе/370-тегі барлық құпиялы нұсқаулар артықшылықты: ол виртуализация талаптарын орындайды.

IA-64

IA 64 архитектурасында виртуализацияны қолдауға қажетті күш-жігер 2000 жылы Магенхаймер мен Кристиан жазған мақалада сипатталған.

SPARC

UltraSPARC архитектурасы үшін "жоғары басымдық" режимі UltraSPARC Architecture 2005 спецификациясында сипатталған. Ол sun4v платформасын анықтайды, ол sun4u платформасынан кеңейтілген, бірақ SPARC v9 1-деңгейлі талаптарына сәйкес келеді.

PowerPC-нің

PowerPC нұсқаулар жиынтығындағы барлық құпиялы нұсқаулар артықшылықты.

Іс жүзіндегі нәтижелер

Попек пен Голдбергтің VMM анықтамасындағы тиімділік талабы тек артық құқықтары жоқ нұсқауларды орындауға қатысты, олар тікелей орындалуы тиіс. Бұл VMM-ді аппараттық эмуляция бағдарламалық жасақтамасының жалпы класынан ерекшелендіреді. Өкінішке орай, Попек пен Голдбергтің талаптарына сай келетін архитектурада да виртуалды машинаның өнімділігі нақты аппараттық құралдардан айтарлықтай өзгеше болуы мүмкін. System/370 жүйесінде (теорема 1-нің формалды талаптарына сай) жүргізілген алғашқы тәжірибелер виртуалды машинаның өнімділігі кейбір сынақтарда түпнұсқалық машинаның 21%-ына дейін төмендеуі мүмкін екенін көрсетті. VMM-де артық құқықты нұсқауларды ұстап тұру және эмуляциялау құны маңызды болуы мүмкін. Бұл IBM инженерлерін бірқатар аппараттық көмектерді енгізуге итермеледі, олар System/370 виртуалды машиналарынның өнімділігін шамамен екі есеге арттырды. Көмектер бірнеше кезеңде қосылды. Нәтижесінде, System/370 соңғы үлгілерінде 100-ден астам көмек болды. System/370 үшін аппараттық көмектерді дамытудың басты себептерінің бірі – виртуалды жадтың өзі болды. Егер қонақ жүйе операциялық жүйе болса, тіпті артық құқықтары жоқ нұсқаулар да орындалу уақытының ұзаруын сезінуі мүмкін – бұл түпнұсқалық орындауда қолданылмаған аударма кестелеріне қол жеткізу қажеттілігінен туындаған салдар (көлеңкелік беттік кестелерді қараңыз).