загрузка...
загрузка...
На головну

Віртуальна пам'ять

У перших ЕОМ програмування велося з використанням фізичних адрес оперативної пам'яті. Кожне завдання програмувались з використанням одних і тих же адрес, тобто на машині в кожен період часу могла виконуватися лише одне завдання (фактично перші ЕОМ були машинами "на одну персону", маючи на увазі програміста або оператора, який працював на машині). Розмір завдання (обсяг її програм і даних) в багатьох випадках практично відразу став значно перевищувати розмір оперативної пам'яті машини. Довелося програмувати окремі частини (блоки, модулі) завдання на одні і ті ж адреси пам'яті і викликати їх в програмі на ці адреси оперативної пам'яті з зовнішньої пам'яті (на магнітних барабанах, магнітних стрічках).

Такі дії, звані "перекриттям програмних модулів" (і модулів даних) в пам'яті або "попеременной завантаженням" модулів (overlay) викликали великі труднощі при програмуванні.

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

На жаль, така організація пам'яті (задачі надавався обмежений "лінійний" ділянку оперативної пам'яті) не рятує програміста від турботи про організацію згадуваного перекриття програмних модулів в його таким чином організованої "віртуальної" пам'яті. Розглянутий спосіб організації використання оперативної пам'яті (з досить простий апаратної "підтримкою") має узагальнююча назва - пам'ять "односегментної відображення".

Звільнити програміста від організації перекриття програмних модулів в пам'яті і забезпечити при програмуванні розуміння можливості використання віртуальної пам'яті завдання практично будь-якого обсягу дозволило введення підтриманої апаратно структурованої віртуальної пам'яті завдання.

Видами такої організації пам'яті стали: "сегментна", "сторінкова" і "сегментно-сторінкова" організації.

Кеш-пам'ять «-- попередня | наступна --» Сегментна організація пам'яті.
загрузка...
© om.net.ua