Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Компьютерлік архитектураның мүмкіндіктері. Попек пен Голдбергтің виртуализация талаптары – компьютерлік архитектураның жүйелік виртуализацияны тиімді қолдауы үшін жеткілікті шарттар жиынтығы. Бұл талаптарды Джеральд Дж. Попек пен Роберт П. Голдберг 1974 жылы жариялаған «Виртуализацияға қабілетті үшінші буын архитектураларының ресми талаптары» атты мақаласында ұсынды. Талаптар оңайлату шарттарында туындағанмен, компьютерлік архитектура тиімді виртуализацияны қолдайтынын анықтаудың ыңғайлы жолын ұсынады және виртуализацияланған компьютерлік архитектураны жобалау бойынша нұсқаулар береді.
Capabilities of a computer architecture
The Popek and Goldberg virtualization requirements are a set of conditions sufficient for a computer architecture to support system virtualization efficiently. They were introduced by Gerald J. Popek and Robert P. Goldberg in their 1974 article "Formal Requirements for Virtualizable Third Generation Architectures". Even though the requirements are derived under simplifying assumptions, they still represent a convenient way of determining whether a computer architecture supports efficient virtualization and provide guidelines for the design of virtualized computer architectures.
VMM анықтамасы
Жүйелік виртуалды машиналар процессорды (немесе процессорларды), жад және сақтау ресурстарын, сондай-ақ шеткі құрылғыларды қоса алғанда, аппараттық ресурстардың толық жиынтығын виртуалдауға қабілетті. Виртуалды машина мониторы (ВММ, сонымен қатар гипервизор деп аталады) – виртуалды машинаның абстракциясын қамтамасыз ететін бағдарламалық құрал. ВММ құрған ортаны талдағанда үш қасиетке назар аудару қажет:
System virtual machines are capable of virtualizing a full set of hardware resources, including a processor (or processors), memory and storage resources and peripheral devices. A virtual machine monitor (VMM, also called hypervisor) is the piece of software that provides the abstraction of a virtual machine. There are three properties of interest when analyzing the environment created by a VMM:
Теңдестік / Дәлдік: ВММ-де іске қосылған бағдарлама тікелей эквивалентті машинада іске қосылғандағыдай мінез-құлықты көрсетуі керек. Ресурстарды басқару / Қауіпсіздік: ВММ виртуалданған ресурстарды толық бақылауда ұстауы тиіс. Тиімділік / Өнімділік: Машина нұсқауларының статистикалық түрде басым бөлігі ВММ-нің араласуынсыз орындалуы керек. Попек пен Голдберг терминологиясында ВММ осы үш қасиеттің барлығын көрсетуі тиіс. Смит пен Нейрдің (2005) анықтамалық кітабында қолданылатын терминологияда ВММ әдетте теңдестік және ресурстарды басқару қасиеттерін қанағаттандырады деп есептеледі, ал өнімділік қасиетін қосымша орындаушылар тиімді ВММ деп аталады. Попек пен Голдберг физикалық машинаның нұсқаулар жиынтығы архитектурасының (ISA) жоғарыда аталған қасиеттерге ие ВММ-ді іске қосу үшін қандай сипаттамаларға ие болуы керек екенін сипаттайды. Олардың талдауы мұндай сипаттамаларды «үшінші буын архитектураларының» (мысалы, IBM 360, Honeywell 6000, DEC PDP 10) моделін пайдаланып шығарады, бірақ бұл модель заманауи машиналарға дейін кеңейтілуі мүмкін. Бұл модель жүйелік немесе пайдаланушы режимінде жұмыс істейтін және сызықтық, біркелкі адрестелетін жадқа қол жеткізе алатын процессорды қамтиды. Нұсқаулар жиынтығының бір бөлігі тек жүйелік режимде қол жетімді және жад қайта орналастыру тіркегішіне қатысты адрестеледі деп есептеледі. I/O және үзілістер модельденбеген.
Equivalence / Fidelity A program running under the VMM should exhibit a behavior essentially identical to that demonstrated when running on an equivalent machine directly. Resource control / Safety The VMM must be in complete control of the virtualized resources. Efficiency / Performance A statistically dominant fraction of machine instructions must be executed without VMM intervention. In the terminology of Popek and Goldberg, a VMM must present all three properties. In the terminology used in the reference book of Smith and Nair (2005), VMMs are typically assumed to satisfy the equivalence and resource control properties, and those additionally meeting the performance property are called efficient VMMs. Popek and Goldberg describe the characteristics that the instruction set architecture (ISA) of the physical machine must possess in order to run VMMs which possess the above properties. Their analysis derives such characteristics using a model of "third generation architectures" (e. g., IBM 360, Honeywell 6000, DEC PDP 10) that is nevertheless general enough to be extended to modern machines. This model includes a processor that operates in either system or user mode, and has access to linear, uniformly addressable memory. It is assumed that a subset of the instruction set is available only when in system mode and that memory is addressed relative to a relocation register. I/O and interrupts are not modelled.
Маңызды тапсырмаларды басқару
ISA виртуализациясының 1-теоремада көрсетілген шарттары тиімділік есебінен жеңілдетілуі мүмкін. Попек пен Голдбергтің анықтамасына сәйкес виртуализацияланбайтын ISA үшін VMM жүйелі түрде құрылып келеді. Мұндай архитектураларды виртуализациялау үшін, сезімтал, бірақ құқықтары шектеулі нұсқауларды, яғни маңызды нұсқауларды дұрыс өңдеу қажет. "Жапсыру" деп аталатын бір тәсіл, динамикалық қайта компиляцияда қолданылатын әдістерді пайдаланады: маңызды нұсқаулар орындалу барысында анықталып, VMM-ге жіберуге (trap) ауыстырылады. "Жапсыру" процесін тиімді ету үшін эмуляциялық кодты кэштеу немесе аппараттық қолдау сияқты түрлі механизмдер ұсынылған. Тағы бір тәсіл – паравиртуализация, ол виртуалды ортада іске қосылмас бұрын, қонақ опералық жүйелерді өзгертуді (порттауды) талап етеді.
The conditions for ISA virtualization expressed in Theorem 1 may be relaxed at the expense of the efficiency property. VMMs for non virtualizable ISAs (in the Popek and Goldberg's sense) have routinely been built. The virtualization of such architectures requires correct handling of critical instructions, i. e., sensitive but unprivileged instructions. One approach, known as patching, adopts techniques commonly used in dynamic recompilation: critical instructions are discovered at run time and replaced with a trap into the VMM. Various mechanisms, such as the caching of emulation code or hardware assists, have been proposed to make the patching process more efficient. A different approach is that of paravirtualization, which requires guest operating systems to be modified (ported) before running in the virtual environment.
Жалпы архитектуралардың нұсқаулық жиынтығы
Бұл бөлімде тиісті архитектуралар мен олардың виртуализация талаптарымен байланысы қарастырылады.
This section presents some relevant architectures and how they relate to the virtualization requirements.
Жүйе/370
Жүйе/370-тегі барлық құпиялы нұсқаулар артықшылықты: ол виртуализация талаптарын орындайды.
All sensitive instructions in the System/370 are privileged: it satisfies the virtualization requirements.
IA-64
IA 64 архитектурасында виртуализацияны қолдауға қажетті күш-жігер 2000 жылы Магенхаймер мен Кристиан жазған мақалада сипатталған.
The effort needed to support virtualization on the IA 64 architecture is described in a 2000 article by Magenheimer and Christian.
SPARC
UltraSPARC архитектурасы үшін "жоғары басымдық" режимі UltraSPARC Architecture 2005 спецификациясында сипатталған. Ол sun4v платформасын анықтайды, ол sun4u платформасынан кеңейтілген, бірақ SPARC v9 1-деңгейлі талаптарына сәйкес келеді.
A "hyperprivileged" mode for the UltraSPARC architecture was specified in UltraSPARC Architecture 2005.' It defines a sun4v platform which is a super set of the sun4u platform, but is still compliant to the SPARC v9 Level 1 specification.
PowerPC-нің
PowerPC нұсқаулар жиынтығындағы барлық құпиялы нұсқаулар артықшылықты.
All sensitive instructions in the PowerPC instruction set are privileged.
Іс жүзіндегі нәтижелер
Попек пен Голдбергтің VMM анықтамасындағы тиімділік талабы тек артық құқықтары жоқ нұсқауларды орындауға қатысты, олар тікелей орындалуы тиіс. Бұл VMM-ді аппараттық эмуляция бағдарламалық жасақтамасының жалпы класынан ерекшелендіреді. Өкінішке орай, Попек пен Голдбергтің талаптарына сай келетін архитектурада да виртуалды машинаның өнімділігі нақты аппараттық құралдардан айтарлықтай өзгеше болуы мүмкін. System/370 жүйесінде (теорема 1-нің формалды талаптарына сай) жүргізілген алғашқы тәжірибелер виртуалды машинаның өнімділігі кейбір сынақтарда түпнұсқалық машинаның 21%-ына дейін төмендеуі мүмкін екенін көрсетті. VMM-де артық құқықты нұсқауларды ұстап тұру және эмуляциялау құны маңызды болуы мүмкін. Бұл IBM инженерлерін бірқатар аппараттық көмектерді енгізуге итермеледі, олар System/370 виртуалды машиналарынның өнімділігін шамамен екі есеге арттырды. Көмектер бірнеше кезеңде қосылды. Нәтижесінде, System/370 соңғы үлгілерінде 100-ден астам көмек болды. System/370 үшін аппараттық көмектерді дамытудың басты себептерінің бірі – виртуалды жадтың өзі болды. Егер қонақ жүйе операциялық жүйе болса, тіпті артық құқықтары жоқ нұсқаулар да орындалу уақытының ұзаруын сезінуі мүмкін – бұл түпнұсқалық орындауда қолданылмаған аударма кестелеріне қол жеткізу қажеттілігінен туындаған салдар (көлеңкелік беттік кестелерді қараңыз).
The efficiency requirement in Popek and Goldberg's definition of a VMM concerns only the execution of non privileged instructions, which must execute natively. This is what distinguishes a VMM from the more general class of hardware emulation software. Unfortunately, even on an architecture that meets Popek and Goldberg's requirements, the performance of a virtual machine can differ significantly from the actual hardware. Early experiments performed on the System/370 (which meets the formal requirements of Theorem 1) showed that performance of a virtual machine could be as low as 21% of the native machine in some benchmarks. The cost of trapping and emulating privileged instructions in the VMM can be significant. This led the IBM engineers to introduce a number of hardware assists, which roughly doubled the performance of the System/370 virtual machines. Assists were added in several stages. In the end, there were over 100 assists on the late models System/370. One of the main driving factors for the development of hardware assists for the System/370 was virtual memory itself. When the guest was an operating system that itself implemented virtual memory, even non privileged instructions could experience longer execution times a penalty imposed by the requirement to access translation tables not used in native execution (see shadow page tables).