Рекомендуємо, 2022

Вибір Редакції

Різниця між віртуальною і кеш-пам'яттю в ОС

Пам'ять - це апаратний пристрій, який використовується для тимчасового або постійного зберігання інформації. У цій статті я обговорював відмінності між віртуальною та кеш-пам'яттю. Кеш-пам'ять - це швидкісна пам'ять, яка використовується для скорочення часу доступу до даних. З іншого боку, віртуальна пам'ять не зовсім фізична пам'ять, це техніка, яка розширює ємність основної пам'яті за її межами.

Основна відмінність між віртуальною пам'яттю і кеш-пам'яттю полягає в тому, що віртуальна пам'ять дозволяє користувачеві виконувати програми, більші, ніж основна пам'ять, тоді як кеш-пам'ять дозволяє швидше отримати доступ до даних, які нещодавно використовувалися. Ми розглянемо деякі додаткові відмінності за допомогою діаграми порівняння, наведеної нижче.

Діаграма порівняння

Основа для порівнянняВіртуальна пам'ятьКешована пам'ять
ОсновнийВіртуальна пам'ять розширює ємність основної пам'яті для користувача.Кеш-пам'ять зміцнює швидкість доступу до ЦП.
ПриродаВіртуальна пам'ять - це техніка.Кеш-пам'ять є одиницею зберігання.
ФункціяВіртуальна пам'ять дозволяє виконувати програму, більшу, ніж основна пам'ять.Кеш-пам'ять зберігає копії оригінальних даних, які нещодавно використовувалися.
Управління пам'яттюВіртуальна пам'ять управляється операційною системою.Кеш-пам'ять повністю управляється апаратним забезпеченням.
РозмірВіртуальна пам'ять набагато більша, ніж кеш-пам'ять.Кеш-пам'ять має обмежений розмір.
МапВіртуальна пам'ять вимагає структури відображення для відображення віртуального адреси на фізичну адресу.Структури відображення не потрібні як такі в кеш-пам'яті.

Визначення віртуальної пам'яті

Віртуальна пам'ять зовсім не є фізичною пам'яттю комп'ютера, це техніка, яка дозволяє виконувати велику програму, яка не може бути повністю поміщена в основну пам'ять . Вона дозволяє програмісту виконувати програми більші, ніж основна пам'ять.

Тепер давайте зрозуміємо, як працює віртуальна пам'ять? Програма має свою віртуальну адресу пам'яті, яка розділена на декілька сторінок . Основна пам'ять також розділена на декілька сторінок . Тепер, як ми бачимо, віртуальна адреса програми більша, ніж наявна основна пам'ять. Тому карта пам'яті використовується для відображення віртуальної адреси в основну пам'ять.

Сторінки 0, 1, 2 відображаються в основній пам'яті, а основна пам'ять заповнюється. Тепер, коли сторінка 3 віртуальної пам'яті запитує простір в основній пам'яті, найстаріша розміщена сторінка, тобто сторінка 0, переноситься на жорсткий диск і евакуює місце для сторінки 3, в основній пам'яті, і процес продовжується. Якщо знову потрібна сторінка 0, то знову найстаріша розміщена сторінка в той час переноситься на жорсткий диск, створюючи місце для сторінки 0.

Якщо обидві програми потребують однакових даних, розміщених в основній пам'яті, то блок відображення пам'яті дозволяє обом програмам спільно використовувати одне і те ж адресний простір в основній пам'яті, де зберігаються спільні дані . Це полегшує спільне використання файлів.

Переваги віртуальної пам'яті:

  • Програми більше не обмежені обмеженням основної пам'яті.
  • Віртуальна пам'ять збільшує ступінь мультипрограмування.
  • Підвищує завантаження процесора.
  • Для завантаження або заміни програм в пам'яті потрібно менше пристрою вводу-виводу.

Але існує недолік віртуальної пам'яті, розміщення більшої кількості сторінок програми на жорсткому диску буде сповільнювати роботу, оскільки доступ до даних з жорсткого диска вимагає більше часу порівняно з доступом до даних з основної пам'яті.

Визначення кеш-пам'яті

На відміну від віртуальної пам'яті, Cache - це запам'ятовуючий пристрій, реалізований на самому процесорі . Він містить копії оригінальних даних, які були доступні останнім часом. Вихідні дані можуть бути поміщені в основну пам'ять або вторинну пам'ять. Кеш-пам'ять зміцнює швидкість доступу до даних, але як? Давайте зрозуміємо.

Можна сказати, що швидкість доступу процесора обмежена швидкістю доступу до основної пам'яті . Всякий раз, коли програма повинна виконуватися процесором, вона отримує її з основної пам'яті. Якщо копія програми вже присутня в кеші, реалізованому на процесорі. Процес зможе швидше отримати доступ до цих даних, що призведе до більш швидкого виконання.

Ключові відмінності між віртуальною та кеш-пам'яттю

  1. Віртуальна пам'ять розширює ємність основної пам'яті практично для користувача. Однак, кеш-пам'ять робить доступ до даних швидшим для ЦП.
  2. Кеш є пам'яттю, а віртуальна пам'ять є технікою .
  3. Віртуальна пам'ять дозволяє виконувати програми, що перевищують основну пам'ять. З іншого боку, кеш-пам'ять зберігає копії оригінальних даних, які використовувалися останнім часом.
  4. Управління віртуальною пам'яттю здійснюється операційною системою . З іншого боку, керування кеш-пам'яттю здійснюється апаратним забезпеченням .
  5. Віртуальна пам'ять набагато більша за розмір кешованої пам'яті.
  6. Метод віртуальної пам'яті вимагає, щоб структури відображення відображали віртуальну адресу на фізичну адресу, тоді як кеш-пам'ять не вимагає жодних структур відображення.

Висновок:

Віртуальна пам'ять - це техніка для розширення можливостей основної пам'яті практично для користувачів. Кеш-пам'ять - це запам'ятовуючий пристрій, який зберігає недавно отримані дані, що дозволяє ЦП швидше отримувати доступ до нього.

Top