DVD+R-PN-8.5x8BULK.jpg
article.cd_.dvd_.jpg


Управление памятью

Память представляет собой очень важный ресурс, требующий четкого управления. Несмотря на то что в наши дни объем памяти среднего домашнего компьютера в десятки тысяч раз превышает ресурсы IBM 7094, бывшего в начале 60-х годов самым большим компьютером в мире, размер компьютерных программ растет бы­стрее, чем объем памяти. Закон Паркинсона можно перефразировать следующим образом: «Программы увеличиваются в размерах, стремясь заполнить всю память, доступную для их размещения». В этой главе мы рассмотрим, как операционные системы создают из памяти абстракции и как они этими абстракциями управляют.

В идеале каждому программисту хотелось бы иметь предоставленную только ему неограниченную по объему и скорости работы память, которая к тому же не теряет своего содержимого при отключении питания. Раз уж мы так размечтались, то почему бы не сделать память еще и совсем дешевой? К сожалению, существую­щие технологии пока не могут дать нам желаемое. Может быть, способ создания такой памяти удастся изобрести именно вам.

Тогда чем же нам придется довольствоваться? Со временем была разработана концепция иерархии памяти, согласно которой компьютеры обладают несколькими мегабайтами очень быстродействующей, дорогой и энергозанисимой кэш-памяти, несколькими гигабайтами памяти, средней как по скорости, так и по цене, а также несколькими терабайтами памяти на довольно медленных, сравнительно дешевых дисковых накопителях, не говоря уже о сменных накопителях, таких как DVD-диски и флеш-устройства USB. Превратить эту иерархию в абстракцию, то есть в удобную модель, а затем управлять этой абстракцией — и есть задача операци­онной системы.

Та часть операционной системы, которая управляет иерархией памяти (или ее частью), называется менеджером, или диспетчером, памяти. Он предназначен для действенного управления памятью и должен следить за тем, какие части памяти ис­пользуются, выделять память процессам, которые в ней нуждаются, и освобождать память, когда процессы завершат свою работу.

В этой главе будут рассмотрены несколько разных схем управления памятью, начиная с очень простых и заканчивая весьма изощренными. Поскольку управле­ние кэш-памятью самого нижнего уровня обычно осуществляется на аппаратном уровне, основное внимание будет уделено программистской модели оперативной памяти и способам эффективного управления ее использованием. Все, что касается абстракций, создаваемых для энергонезависимого запоминающего устройства — диска, и управления этими абстракциями, будет темой следующей главы. Начнем с истоков, и в первую очередь рассмотрим самую простую из возможных схем, а за­тем постепенно будем переходить к изучению все более сложных.

 
Поиск

Существует множество различных типов дисков. Наиболее распространенными из них являются магнитные диски (жесткие и гибкие). Их характеризует сравни­тельно высокая скорость чтения-записи данных, что позволяет им быть идеальной второй памятью (для реализации страничной организации памяти, файловой си­стемы и т. д.).

Реклама