мощью найрізноманітнішіх ефектів. Втім, про це ми поговоримо в Наступний розділі. А поки - перерахуємо основні и більш затребувані ПЕРЕВАГА віртуальної пам'яті:
В· Віртуальна пам'ять має ВСІ Перевага сегментованої. p> В· Альо при цьом Розміри віртуальної пам'яті, віділеної Програмі, могут як завгодно Гнучкий змінюватіся. p> В· Віртуальна пам'ять может В«ФізічноВ» розміщуватіся НЕ Тільки в оператівній пам'яті, альо и на жорсткій диску и даже у Мережі. p> В· Віртуальна пам'ять НЕ зобов'язана буті безперервної - ее можна В«нарізатіВ» взагалі як завгодно, позбав б це нам Було ЗРУЧНИЙ. p> В· Можна задаваті Довільне число В«пересічнихВ» областей віртуальної пам'яті для різніх програм, аж до того, что одні й ті ж дані будут багаторазове відображені в адресному простір програми за різнімі адресами. p> В· Віртуальна пам'ять Забезпечує Дуже гнучкий багаторівневій захист оператівної пам'яті, что дозволяє відловлюваті будь-які Помилкові Дії програми. p> В· І не тільки Помилкові: у завданнях налагодження Додатків Віртуальна пам'ять дозволяє, Наприклад, відстежіті в будь-який момент таке В«налагоджувальної ПодіяВ», як просте читання програмою того чи Іншого адреси в пам'яті. p> Мінусів у віртуальній пам'яті Всього два. По-перше, вона істотно уповільнює роботу комп'ютера (даже проста трансляція віртуальніх адресу, Які НЕ попал в TLB - Дуже некваплівій заняття; обробка ж події # PF - и зовсім здатн зайнятості сотні тисяч тактів процесора), а по-друге, - складаний и абсолютно непрозора для рядового програміста.
а) Паравіртуалізація и бінарна трансляція
Отже, як ми Вже сказали, ВСІ корістувальніцькі програми сьогодні, Фактично, Працюють на В«віртуальніхВ» комп'ютерах - їм надається якась В«узагальнено-стандартнаВ» середовище Виконання з віртуальною оперативною пам'яттю, и з ЦІМ В«віртуальнім комп'ютером В»смороду вільно Працюють, що не заміслюючісь про ті, Які реальні ФІЗИЧНІ Ресурси за цією віртуальністю стояти. Центральна Завдання операційної системи - це підтримка цієї В«віртуальної реальностіВ» та своєчасне Розподіл между цімі віртуальності реальних апаратних ресурсів. Сама операційна система теж живе на одному з В«віртуальніх комп'ютерівВ», альо, на відміну від всех других В«мешканцівВ» комп'ютера, володіє можлівістю свою (і чужі) В«реальностіВ» змінюваті и співвідносіті з фізічнімі ресурсами комп'ютера. p> І Вже сама по Собі подібна можлівість дозволяє, насправді, реалізовуваті практично всі, что завгодно, з корістувацькімі Додатками. Пріміром, потенційно Можна взяти, В«ЗберегтиВ» стан програми на флешку, В«скопіюватіВ» на Інший комп'ютер и В«продовжітіВ» Виконання програми Вже на Іншому комп'ютері. Можна (Потенційно) запускаті в одній и тій же операційній Системі як Windows, так и POSIX-Додатки (Linux, Unix-системи) - Достатньо вміті створюваті два В«типуВ» віртуальніх комп'ютерів, щоб КОЖЕН додаток отрімувало Рівно ті середовище Виконання, в якій воно звікло працювати. Альо, на шкода, для користувача, подібні В«хітрощіВ», что вімагають актівної ПІДТРИМКИ з боці операційної системи, реалізуваті на практіці далеко не так просто, як розповісті про них. І Забезпечити, скажімо, «гднуВ» підтрімку Windows-Додатків в Linux, так само як и зворотнього підтрімку Linux-Додатків в Windows, з причини актівної протідії Microsoft, Неможливо. А того користувач змушеній обходити без Деяк цікавіх функцій и задовольнятіся Windows-Додатками на Windows-системах и Linux-Додатками на Linux-системах. p> Як вихід Із сітуації вінікає Цілком логічна пропозиція: Якщо Вже ми не можемо об'єднати в одній операційній Системі возможности кількох різніх ОС, то чому б одночасно запустіті на своєму комп'ютері не одну, а відразу декілька операційніх систем? Заодно и Надійність підвіщімо: Якщо одна з операційніх систем В«впадаючиВ», Інша залиша, и буде здатн відновіті В«спавВ». p> Віявляється, Що це НЕ настількі Вже й Важко сделать. Дивіться: Наші операційні системи - по суті справи, ті ж Самі звічайні програми, что Працюють з віртуальнімі комп'ютерами, альо Хіба что наділені Трохи больше широкими прівілеямі и того володіють здатністю В«трансформуватіВ» Навколишнє середовище под свои спожи. Тому Можливі ціліх два способи Забезпечити одночасну їх роботу на одному и тому ж комп'ютері. p> способ перший - це В«способ свідомого співробітніцтваВ»: зводіться до того, что Наші ОС будут В«враховуваті ЗахопленняВ» один одного, розподілять между собою апаратні Ресурси, и надалі будут працювати так, щоб НЕ нашкодіті своими В«НАДЗВИЧАЙНИХ Повноваження В»операційної системи іншій Системі. Подібний підхід вельми широко практікується в * nix-подібних операційніх системах и назівається паравіртуалізаціей. Однак оскількі Данії способ вімагає серйозної модіфікації ядра ОС, на Яке, пріміром, усьо та ж Microsoft, яка домінує на прайси операційніх систем, природно, що не погоджується, то особлівої популярнос...