Використання віртуальної пам’яті в ос Windows та ос unix 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Використання віртуальної пам’яті в ос Windows та ос unix



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

Для свопінґу Unix може використовувати або звичайний файл в файловій системі, або окремий розділ, виділений спеціально для цього на диску. Віртуальна пам'ять з використанням підрозділу на диску працює швидше, ніж свопінґ у файл. Але змінити розмір файлу для свопінґу набагато легше і швидше, і це не потребує переформатування диску (і, можливо, встановлення всього з самого початку). Якщо Ви знаєте, скільки простору під свопінґ Вам потрібно, Ви можете відразу форматувати весь диск з виділенням підрозділу під свопінґ, але якщо Ви ще непевні, то Вам краще попробувати спочатку попрацювати з файлом, покористуватися системою деякий час і потім вирішити, який розмір розділу для свопінґу Вам потрібен.

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

Дещо про термінолоґію: комп'ютерні спеціалісти відрізняють два різних режими користування віртувальною пам'яттю - свопінґ (перенесення області пам'яті цілого процесу на диск) та пейджінґ (запис на диск окремих сторінок пам'яті, непотрібних в даний момент). Пейджінґ є більш ефективним, і це є саме те, що робить Unix. Але за традицією всі називають це свопінґом.

Пам'ять є основним ресурсом при програмуванні в багатозадачному середовищі. Множина вільних фрагментів пам'яті називається хіп (від англійського слова HEAP). Програміст може виділити для своєї програми блок пам'яті будь-якої довжини, що не перевищує загальний об'єм вільної пам'яті.

В Windows пам'ять виділяється в 2 етапи:

спочатку система виділяє фрагмент віртуальної пам'яті, який отримує свій хендл, але не отримує реальної адреси;

потім система розміщує (блокує) цей фрагмент у реальній пам'яті і фрагмент отримує початкову адресу.

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

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

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

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

Література

1. Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. - М.: Мир, 1981.

2. Ахо А., Хлопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. - М.: Мир. 1974.

3. Кнут Д. Искусство программирования для ЭВМ. Т. 1. Основные алгоритмы. - М.: Мир, 1976.

4. Кнут Д. Искусство программирования для ЭВМ. Т. 2. Получисленные алгоритмы. - М.: Мир, 1977.

5. Кнут Д. Искусство программирования для ЭВМ. Т. 3. Сортировка и поиск. - М.: Мир, 1978.


Лекція №25



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 45; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.14.70.203 (0.004 с.)