ацію, але в реальності все трохи складніше, тим не менш, основна ідея залишається незмінною: використання багатоядерних процесорів вимагає внесення кардинальних змін в програмне забезпечення. Досі, обговорюючи приріст продуктивності, який можна отримати при переході від одноядерної до многоядерной архітектурі, ми розглядали тільки один додаток. Тим не менш, багатоядерні процесори дозволяють відчути істотний приріст продуктивності при одночасній роботі декількох програм. В ідеальному випадку кожен додаток може виконуватися на окремому ядрі процесора незалежно від інших програм. Наприклад, можна паралельно конвертувати відеофайли, грати в ігри і т.п. Багатоядерна архітектура процесорів дозволяє одночасно вирішувати дві глобальні завдання: збільшувати продуктивність процесорів і одночасно створювати енергоефективні процесори. Звичайно, многоядерная архітектура - це лише один з рецептів створення високопродуктивних енергоефективних процесорів. Для створення дійсно енергоефективного многоядерного процесора необхідно, щоб кожне його ядро ​​було оптимізовано для многоядерной архітектури та до того ж було енергоефективним. Наприклад, двоядерні процесори Intel, засновані на архітектурі NetBurst (сімейство Intel Pentium D), дозволяють лише частково вирішити проблему підвищення енергоефективності. Справа в тому, що мікроархітектура кожного ядра процесора сімейства Intel Pentium D оптимізована під масштабування тактової частоти і не є енергоефективною. Іншим підходом до підвищення продуктивності в рамках заданого енергоспоживання є перехід на принципово іншу мікроархітектуру ядра. Відзначимо, що даний підхід не суперечить ідеї багатоядерності, а скоріше доповнює її.
4. Віртуалізація
Віртуалізація в обчисленнях - процес подання набору обчислювальних ресурсів, або їх логічного об'єднання, який дає які-небудь переваги перед оригінальною конфігурацією. Це новий віртуальний погляд на ресурси, необмежених реалізацією, географічним положенням або фізичної конфігурацією складових частин. Зазвичай віртуалізовані ресурси включають в себе обчислювальні потужності і сховище даних. Прикладом віртуалізації є симетричні мультипроцесорні комп'ютерні архітектури, які використовують більше одного процесора. Операційні системи зазвичай конфігуруються таким чином, щоб кілька процесорів представлялися як єдиний процесорний модуль. Ось чому програмні додатки можуть бути написані для одного логічного (віртуального) обчислювального модуля, що значно простіше, ніж працювати з великою кількістю різних процесорних конфігурацій.
Програмна віртуалізація:
Динамічна трансляція - При динамічної трансляції (бінарної трансляції) проблемні команди гостьовий OC перехоплюються гіпервізор. Після того як ці команди замінюються на безпечні, відбувається повернення управління гостьовий ОС. Паравіртуалізації - техніка віртуалізації, при якій гостьові операційні системи підготовляються для виконання в віртуалізованому середовищі, для чого їх ядро ​​незначно модифікується. Операційна система взаємодіє з програмою гіпервізора, який надає їй гостьовий API, замість використання безпосередньо таких ресурсів, як таблиця сторінок пам'яті. Метод паравіртуалізації дозволяє домогтися більш високої продуктивності, ніж метод динамічної трансляції. Метод паравіртуалізації можна застосовувати лише в тому випадку, якщо гостьові ОС мають відкриті вихідні коди, які можна модифікувати згідно ліцензії.
Апаратна віртуалізація:
а) Спрощення розробки програмних платформ віртуалізації за рахунок надання апаратних інтерфейсів управління і підтримки віртуальних гостьових систем. Це зменшує трудомісткість і час на розробку систем віртуалізації.
б) Можливість збільшення швидкодії платформ віртуалізації. Управління віртуальними гостьовими системами здійснює безпосередньо слабкий проміжний шар програмного забезпечення, гіпервізор, що дає збільшення швидкодії.
в) Поліпшується захищеність, з'являється можливість перемикання між декількома запущеними незалежними платформами віртуалізації на апаратному рівні. Кожна з віртуальних машин може працювати незалежно, в своєму просторі апаратних ресурсів, повністю ізольовано один від одного. Це дозволяє усунути втрати швидкодії на підтримку хостової платформи і збільшити захищеність.
г) Гостьова система стає не прив'язана до архітектури хостової платформи і до реалізації платформи віртуалізації. Технологія апаратної віртуалізації робить можливим запуск 64-бітних гостьових систем на 32-бітних хостових системах (з 32-бітними середовищами віртуалізації на хостах).
Реалізації:
IBM System 370, VM/ 370 - 60-ті роки. На віртуальних системах IBM VM були відпрацьовані ідеї і технології, під чому визначили архітектури сучасних рішень з віртуалізації; VMware; Xen; KVM.
Технології:
V86 mode - стара; Intel VT (VT-x) - Intel Virtualization Technology for x86; AMD Pacific.