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

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

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

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

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

Читать полностью

 

Свопинг

Если у компьютера достаточный объем памяти для размещения всех процессов, то нее рассмотренные до сих пор схемы будут в той или иной степени работоспо­собны. Но на практике суммарный объем оперативной памяти, необходимый для размещения всех процессов, зачастую значительно превышает имеющийся объем ОЗУ. На обычных Windows- или Linux-системах при запуске компьютера могут быть запущены около 40-60 или более процессов. Например, при установке при­ложения Windows зачастую выдаются команды, чтобы при последующих запусках системы запускался процесс, единственной задачей которого была бы проверка наличия обновлений для этого приложения. Такой процесс запросто может занять 5-10 Мб памяти. Остальные фоновые процессы проверяют наличие входящей почты, входящих сетевых подключений и многое другое. И все это еще до того, как будет запущена первая пользовательская программа. Современные солидные пользовательские прикладные программы могут запросто занимать при своей ра­боте от 50 до 200 и более Мбайт памяти. Следовательно, постоянное содержание всех процессов в памяти требует огромных объемов и не может быть осуществлено при дефиците памяти.

Читать полностью

 

Понятие адресного пространства

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

Более подходящее решение — придумать для памяти новую абстракцию: адрес­ное пространство.

Читать полностью

 

Память без использования абстракций

Простейшей абстракцией памяти можно считать полное отсутствие какой-либо абстракции. Ранние универсальные машины (до 1960 года), ранние мини-компьютеры (до 1970 года) и ранние персональные компьютеры (до 1980 года) не использовали абстракции памяти. Каждая программа просто видела физическую память. Когда программа выполняла следующую команду

MOV REGISTER1.1000

компьютер просто перемещал содержимое физической ячейки памяти 1000 в REG­ISTERS Таким образом, модель памяти, предоставляемая программисту, была простой физической памятью, набором адресов от 0 до некоторого максимального значения, где каждый адрес соответствовал ячейке, содержащей какое-нибудь количество бит, которое обычно равнялось восьми.

Читать полностью

 

Запуск нескольких программ без абстракций памяти

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

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

Читать полностью

 
Другие статьи...
Поиск

Хотя люди и привыкли пользоваться другими однократно записываемыми но­сителями информации вроде бумаги или фотопленки, но им все же понадоби­лись перезаписываемые компакт-диски. В настоящее время одной из доступных технологий является использование перезаписываемого компакт-диска типа CD-RW (CD Rewritable), для которого используются носители той же емкости, что и для записываемого компакт-диска типа CD-R.

Реклама