ОС. ОС. Лекция 7. Лекция Тема Управление памятью 5 Абстракция памяти
Скачать 3.34 Mb.
|
Лекция 7. Тема 5. Управление памятью 1.5 Абстракция памятиОперационные системы и средыВопросы:
Размер компьютерных программ растет быстрее, чем объем памяти! Мечта программиста: иметь предоставленную только ему неограниченную по объему и скорости работы ДЕШЕВУЮ память, которая к тому же не теряет своего содержимого при отключении питания. Концепция иерархии памяти, согласно которой компьютеры обладают:
Превратить эту иерархию в абстракцию, то есть в удобную модель, а затем управлять этой абстракцией — и есть задача операционной системы. Часть операционной системы, которая управляет иерархией памяти (или ее частью), называется менеджером, или диспетчером памяти. Концепция иерархии памяти Ранние универсальные машины (до 1960 года), ранние мини-компьютеры (до 1970 года) и ранние персональные компьютеры (до 1980 года) не использовали абстракции памяти. Каждая программа просто видела физическую память. Когда программа выполняла следующую команду MOV REGISTER!.1000 ,компьютер просто перемещал содержимое физической ячейки памяти 1000 в REGISTER1.Таким образом, модель памяти, предоставляемая программисту, была простой физической памятью, набором адресов от 0 до некоторого максимального значения, где каждый адрес соответствовал ячейке, содержащей какое-нибудь количество бит, которое обычно равнялось восьми.Содержание в памяти сразу двух работающих программ не представлялось возможным. Если первая программа, к примеру, записывала новое значение в ячейку 2000, то она тем самым стирала то значение, которое сохранялось там второй программой. Работа становилась невозможной, и обе программы практически сразу же давали сбой. Память без использования абстракций Три простых способа организации памяти при наличии операционной системы и одного пользовательского процесса Память без использования абстракций Запуск нескольких программ без абстракций памяти (Вариант 1) Для одновременного запуска нескольких программ операционная система должна:
Поскольку одновременно в памяти присутствует только одна программа, конфликтов не возникает. Эта концепция называется заменой данных (свопинг) Память без использования абстракций Запуск нескольких программ без абстракций памяти (Вариант 2) Наличие специального дополнительного оборудования позволяет осуществлять параллельный запуск нескольких программ без использования свопинга. IBM 360. Память делилась на блоки по 2 Кбайта, каждому из которых присваивался 4-битный защитный ключ, содержащийся в специальных регистрах за пределами центрального процессора. Машине с объемом памяти в 1 Мбайт нужно было иметь лишь 512 таких 4-битных регистров, и все хранилище ключей занимало в итоге 256 байт памяти. Слово состояния программы — PSW (Program Status Word) также содержало 4-битный ключ. Аппаратное обеспечение IBM 360 перехватывало любую попытку запущенного процесса получить доступ к памяти с ключом защиты, отличающимся от ключа PSW. Поскольку изменить ключи защиты могла только операционная система, пользовательские процессы были защищены от вмешательства в работу друг друга и в работу самой операционной системы. Память без использования абстракций Запуск нескольких программ без абстракций памяти (Вариант 2) Проблема абсолютного адреса физической памяти! Память без использования абстракций Решение: технология статического перемещения. Она работала следующим образом: когда программа загружалась с адреса 16384, в процессе загрузки к каждому адресу в программе прибавлялось постоянное значение 16384. Понятие адресного пространства создает своеобразную абстрактную память, в которой существуют программы. Адресное пространство — это набор адресов, который может быть использован процессом для обращения к памяти. У каждого процесса имеется свое собственное адресное пространство, независимое от того адресного пространства, которое принадлежит другим процессам (за исключением тех особых обстоятельств, при которых процессам требуется совместное использование их адресных пространств). Абстракция памяти: адресные пространства Примеры:
Абстракция памяти: адресные пространства Базовый и ограничительный регистры Динамическое перераспределения памяти. При этом адресное пространство каждого процесса проецируется на различные части физической памяти. Классическое решение заключается в оснащении каждого центрального процессора двумя специальными аппаратными регистрами, которые обычно называются базовым и ограничительным регистрами. Абстракция памяти: адресные пространства Базовый и ограничительный регистры При использовании этих регистров программы загружаются в последовательно расположенные свободные области памяти без модификации адресов в процессе загрузки. При запуске процесса в базовый регистр загружается физический адрес, с которого начинается размещение программы в памяти, а в ограничительный регистр загружается длина программы. Абстракция памяти: адресные пространства Для преодоления перегрузки памяти были выработаны два основных подхода. 1. Самый простой из них, называемый свопингом, заключается в размещении в памяти всего процесса целиком, в запуске его на некоторое время, а затем в сбросе его на диск. Бездействующие процессы большую часть времени хранятся на диске и в нерабочем состоянии не занимают пространство оперативной памяти. 2. Второй подход называется виртуальной памятью, он позволяет программам запускаться даже в том случае, если они находятся в оперативной памяти лишь частично. Абстракция памяти: свопинг Абстракция памяти: свопинг Если предполагается, что большинство процессов по мере выполнения будут разрастаться, то будет лучше распределять небольшой объем дополнительной памяти при каждой загрузке из области свопинга на диске в память или перемещении процесса, чтобы сократить потери, связанные со свопингом или перемещением процессов, которые больше не помещаются в отведенной им памяти. Свопингу на диск должна подвергаться только реально задействованная память, копировать при этом еще и дополнительно выделенную память будет слишком расточительно. Абстракция памяти: свопинг Абстракция памяти: свопинг Битовая матрица Битовая матрица предоставляет довольно простой способ отслеживания слов памяти в фиксированном объеме памяти, поскольку ее размер зависит только от размера памяти и размера единичного блока памяти. Связанный список Абстракция памяти: управление свободной памятью Когда процессы и пустые пространства содержатся в списке отсортированными по адресам, то для выделения памяти новому создаваемому процессу (или существующему процессу, загружаемому в результате свопинга с диска) могут быть использованы несколько алгоритмов. Связанный список (Алгоритмы) Простейший алгоритм называется первое подходящее. Алгоритм следующее подходящее. Алгоритм наиболее подходящее. Алгоритм наименее подходящее. Алгоритм быстро искомое подходящее. Абстракция памяти: управление свободной памятью Спасибо за внимание! |