Память компьютера

Содержание

Слайд 2

Вопросы:
Память без использования абстракций
Абстракция памяти: адресные пространства
Абстракция памяти: свопинг
Абстракция памяти: управление свободной

Вопросы: Память без использования абстракций Абстракция памяти: адресные пространства Абстракция памяти: свопинг
памятью
Виртуальная память
Подкачка. Алгоритмы замещения страниц

Слайд 3

Размер компьютерных программ растет быстрее, чем объем памяти!

Размер компьютерных программ растет быстрее, чем объем памяти!

Слайд 4

Мечта программиста:
иметь предоставленную только
ему неограниченную по объему и скорости работы ДЕШЕВУЮ

Мечта программиста: иметь предоставленную только ему неограниченную по объему и скорости работы
память, которая к тому же не теряет своего содержимого при отключении питания.

Слайд 5

Концепция иерархии памяти, согласно которой компьютеры обладают:
несколькими мегабайтами очень быстродействующей, дорогой и

Концепция иерархии памяти, согласно которой компьютеры обладают: несколькими мегабайтами очень быстродействующей, дорогой
энергозависимой кэш-памяти,
несколькими гигабайтами памяти (ОЗУ), средней как по скорости, так и по цене,
несколькими терабайтами памяти на довольно медленных, сравнительно дешевых дисковых накопителях,
сменными накопителями, CD(DVD)-диски и флеш-устройства USB.
Превратить эту иерархию в абстракцию, то есть
в удобную модель, а затем управлять этой абстракцией — и есть задача операционной системы.

Слайд 6

Часть операционной системы, которая управляет иерархией памяти (или ее частью), называется менеджером,

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

Слайд 7

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

Ранние универсальные машины (до 1960 года), ранние мини-компьютеры (до

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

Слайд 8

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

Содержание в памяти сразу двух работающих программ не представлялось

Память без использования абстракций Содержание в памяти сразу двух работающих программ не
возможным.
Если первая программа, к примеру, записывала новое
значение в ячейку 2000, то она тем самым стирала то значение, которое сохранялось там второй программой. Работа становилась невозможной, и обе программы
практически сразу же давали сбой.

Слайд 9

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

Три простых способа организации памяти при наличии операционной системы

Память без использования абстракций Три простых способа организации памяти при наличии операционной
и одного пользовательского процесса

Слайд 10

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

Запуск нескольких программ без абстракций памяти (Вариант 1)
Для одновременного

Память без использования абстракций Запуск нескольких программ без абстракций памяти (Вариант 1)
запуска нескольких программ операционная система должна:
сохранить все текущее содержимое памяти в файле на диске, а затем
загрузить и запустить следующую программу.
Поскольку одновременно в памяти присутствует только
одна программа, конфликтов не возникает. Эта концепция называется заменой данных (свопинг)

Слайд 11

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

Запуск нескольких программ без абстракций памяти (Вариант 2)
Наличие специального

Память без использования абстракций Запуск нескольких программ без абстракций памяти (Вариант 2)
дополнительного оборудования позволяет осуществлять параллельный запуск нескольких программ без
использования свопинга.
IBM 360.
Память делилась на блоки по 2 Кбайта, каждому из которых присваивался 4-битный защитный ключ, содержащийся в специальных регистрах за пределами центрального процессора. Машине с объемом памяти в 1 Мбайт нужно было иметь лишь 512 таких 4-битных регистров, и все хранилище ключей занимало в итоге 256 байт памяти.
Слово состояния программы — PSW (Program Status Word) также
содержало 4-битный ключ. Аппаратное обеспечение IBM 360 перехватывало любую попытку запущенного процесса получить доступ к памяти с ключом защиты, отличающимся от ключа PSW. Поскольку изменить ключи защиты могла только операционная система, пользовательские процессы были защищены от вмешательства в работу друг друга и в работу самой операционной системы.

Слайд 12

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

Запуск нескольких программ без абстракций памяти (Вариант 2)
Проблема абсолютного

Память без использования абстракций Запуск нескольких программ без абстракций памяти (Вариант 2)
адреса физической памяти!

Слайд 13

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

Запуск нескольких программ без абстракций памяти (Вариант 2)
Проблема абсолютного

Память без использования абстракций Запуск нескольких программ без абстракций памяти (Вариант 2)
адреса физической памяти!

Решение:
технология статического перемещения.
Она работала следующим образом: когда программа
загружалась с адреса 16384, в процессе загрузки к каждому адресу в программе прибавлялось постоянное значение 16384.

Слайд 14

2. Абстракция памяти: адресные пространства

Предпосылки
если пользовательские программы могут обращаться к каждому байту

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

Слайд 15

2. Абстракция памяти: адресные пространства

Понятие адресного пространства создает своеобразную абстрактную память, в

2. Абстракция памяти: адресные пространства Понятие адресного пространства создает своеобразную абстрактную память,
которой существуют программы.
Адресное пространство — это набор адресов, который может быть использован процессом для обращения к памяти.
У каждого процесса имеется свое собственное адресное пространство, независимое от того адресного пространства, которое принадлежит другим процессам (за исключением тех особых обстоятельств, при которых процессам требуется совместное использование их адресных пространств).

Слайд 16

2. Абстракция памяти: адресные пространства

Примеры:
В США и многих других странах местный телефонный

2. Абстракция памяти: адресные пространства Примеры: В США и многих других странах
номер состоит обычно из семизначного номера. Поэтому адресное пространство телефонных номеров простирается от
0000000 до 9999999, хотя некоторые номера, к примеру, те, что начинаются с 000, не используются.
С ростом количества сотовых телефонов, модемов и факсов это пространство стало слишком тесным, а в этом случае необходимо использовать больше цифр.
Адресное пространство портов ввода-вывода процессора Pentium простирается от 0 до 16 383.
Протокол IPv4 обращается к 32-разрядным номерам, поэтому его адресное пространство простирается от 0 до 232 - 1 (опять-таки с некоторым количеством зарезервированных номеров).

Слайд 17

2. Абстракция памяти: адресные пространства

Базовый и ограничительный регистры
Динамическое перераспределения памяти. При

2. Абстракция памяти: адресные пространства Базовый и ограничительный регистры Динамическое перераспределения памяти.
этом адресное пространство каждого процесса проецируется на различные части физической памяти.
Классическое решение заключается в оснащении каждого центрального процессора двумя специальными аппаратными регистрами, которые обычно называются базовым и ограничительным регистрами.

Слайд 18

2. Абстракция памяти: адресные пространства

Базовый и ограничительный регистры
При использовании этих регистров

2. Абстракция памяти: адресные пространства Базовый и ограничительный регистры При использовании этих
программы загружаются в последовательно расположенные свободные области памяти без модификации адресов в процессе загрузки.
При запуске процесса в базовый регистр загружается физический адрес, с которого начинается размещение программы в памяти, а в ограничительный регистр загружается длина программы.

Слайд 19

2. Абстракция памяти: адресные пространства

Базовый и ограничительный регистры
Недостатком перемещений с использованием

2. Абстракция памяти: адресные пространства Базовый и ограничительный регистры Недостатком перемещений с
базовых и ограничительных регистров является необходимость применения операций сложения и сравнения к каждой ссылке на ячейку памяти. Сравнение может осуществляться довольно быстро, но сложение является слишком медленной операцией из-за затрат времени на вспомогательный сигнал переноса, если, конечно, не используются специальные сумматоры.

Слайд 20

3. Абстракция памяти: свопинг

Если у компьютера достаточный объем памяти для размещения всех

3. Абстракция памяти: свопинг Если у компьютера достаточный объем памяти для размещения
процессов, то все рассмотренные до сих пор схемы будут в той или иной степени работоспособны. Но на практике суммарный объем оперативной памяти, необходимый для размещения всех процессов, зачастую значительно превышает имеющийся объем ОЗУ.
На обычных Windows- или Linux-системах при запуске компьютера могут быть запущены около 40-60 или более процессов.
Постоянное содержание всех процессов в памяти требует огромных объемов и не может быть осуществлено при дефиците памяти.

Слайд 21

3. Абстракция памяти: свопинг

Для преодоления перегрузки памяти были выработаны два основных подхода.

3. Абстракция памяти: свопинг Для преодоления перегрузки памяти были выработаны два основных

1. Самый простой из них, называемый свопингом, заключается в размещении в памяти всего процесса целиком, в запуске его на некоторое время, а затем
в сбросе его на диск. Бездействующие процессы большую часть времени хранятся на диске и в нерабочем состоянии не занимают пространство оперативной памяти.
2. Второй подход называется виртуальной памятью, он позволяет программам запускаться даже в том случае, если они находятся в оперативной памяти лишь частично.

Слайд 22

3. Абстракция памяти: свопинг

3. Абстракция памяти: свопинг

Слайд 23

3. Абстракция памяти: свопинг

Если предполагается, что большинство процессов по мере выполнения будут

3. Абстракция памяти: свопинг Если предполагается, что большинство процессов по мере выполнения
разрастаться, то будет лучше распределять небольшой объем дополнительной памяти при каждой загрузке из области свопинга на диске в память или перемещении процесса, чтобы сократить потери, связанные со свопингом или
перемещением процессов, которые больше не помещаются в отведенной им памяти.
Свопингу на диск должна подвергаться только реально задействованная память, копировать при этом еще и дополнительно выделенную память будет слишком расточительно.

Слайд 24

3. Абстракция памяти: свопинг

3. Абстракция памяти: свопинг

Слайд 25

4. Абстракция памяти: управление свободной памятью

Битовая матрица

4. Абстракция памяти: управление свободной памятью Битовая матрица

Слайд 26

4. Абстракция памяти: управление свободной памятью

Битовая матрица
Битовая матрица предоставляет довольно простой способ

4. Абстракция памяти: управление свободной памятью Битовая матрица Битовая матрица предоставляет довольно
отслеживания слов памяти в фиксированном объеме памяти, поскольку ее размер зависит только от размера памяти и размера единичного блока памяти.

Слайд 27

4. Абстракция памяти: управление свободной памятью

Битовая матрица (Недостатки)
При решении поместить в память

4. Абстракция памяти: управление свободной памятью Битовая матрица (Недостатки) При решении поместить
процесс, занимающий k единичных блоков, диспетчер памяти должен искать в битовой матрице непрерывную последовательность нулевых битов.
Поиск в битовой матрице последовательности заданной длины — довольно медленная операция (поскольку последовательность
может пересекать границы слов в матрице), и это обстоятельство служит аргументом против применения битовых матриц.

Слайд 28

4. Абстракция памяти: управление свободной памятью

Связанный список

4. Абстракция памяти: управление свободной памятью Связанный список

Слайд 29

4. Абстракция памяти: управление свободной памятью

Связанный список
Когда процессы и пустые пространства содержатся

4. Абстракция памяти: управление свободной памятью Связанный список Когда процессы и пустые
в списке отсортированными по адресам, то для выделения памяти новому создаваемому процессу (или существующему процессу, загружаемому в результате свопинга с диска) могут быть использованы несколько алгоритмов.

Слайд 30

4. Абстракция памяти: управление свободной памятью

Связанный список (Алгоритмы)
Диспетчер памяти знает, сколько памяти

4. Абстракция памяти: управление свободной памятью Связанный список (Алгоритмы) Диспетчер памяти знает,
нужно выделить.
Простейший алгоритм называется первое подходящее.
Диспетчер памяти сканирует список сегментов до тех пор, пока не найдет пустое пространство подходящего размера. Затем пустое пространство разбивается на две части: одна для процесса и одна для неиспользуемой памяти, за исключением того статистически маловероятного случая, когда процесс в точности помещается в пустое пространство.
«Первое подходящее» — это быстрый алгоритм, поскольку поиск ведется с наименьшими затратами времени.

Слайд 31

4. Абстракция памяти: управление свободной памятью

Связанный список (Алгоритмы)
Диспетчер памяти знает, сколько памяти

4. Абстракция памяти: управление свободной памятью Связанный список (Алгоритмы) Диспетчер памяти знает,
нужно выделить.
Алгоритм следующее подходящее
работает так же, как и «первое подходящее», за исключением того, что отслеживает свое местоположение, как только находит подходящее пустое пространство. При следующем вызове для поиска пустого
пространства он начинает поиск в списке с того места, на котором остановился в прошлый раз, а не приступает к поиску с самого начала, как при работе алгоритма «первое подходящее».
Его производительность несколько хуже, чем алгоритма «первое подходящее».

Слайд 32

4. Абстракция памяти: управление свободной памятью

Связанный список (Алгоритмы)
Диспетчер памяти знает, сколько памяти

4. Абстракция памяти: управление свободной памятью Связанный список (Алгоритмы) Диспетчер памяти знает,
нужно выделить.
Алгоритм — наиболее подходящее.
При нем поиск ведется по всему списку от начала до конца и выбирается
наименьшее соответствующее пустое пространство. Вместо того чтобы разбивать большое пустое пространство, которое может пригодиться чуть позже, алгоритм «наиболее подходящее» пытается подыскать пустое пространство, близкое по размеру к необходимому, чтобы наилучшим образом соответствовать запросу и имеющимся пустым пространствам.
Алгоритм «наиболее подходящее» работает медленнее, чем «первое
подходящее», поскольку он должен при каждом вызове вести поиск по всему списку. Как ни странно, но его применение приводит к более расточительному использованию памяти, чем при использовании алгоритмов «первое подходящее» и «следующее подходящее», поскольку он стремится заполнить память, оставляя небольшие
бесполезные пустые пространства.

Слайд 33

4. Абстракция памяти: управление свободной памятью

Связанный список (Алгоритмы)
Диспетчер памяти знает, сколько памяти

4. Абстракция памяти: управление свободной памятью Связанный список (Алгоритмы) Диспетчер памяти знает,
нужно выделить.
Алгоритм — наименее подходящее.
попытка обойти проблему разбиения практически точно подходящих
пространств памяти на память, отводимую под процесс, и на небольшие пустые пространства, то есть к неизменному выбору самого большого подходящего пустого пространства, чтобы вновь образующееся пустое пространство было достаточно большим для дальнейшего
использования.
Моделирование показало, что применение алгоритма «наименее подходящее» также далеко не самая лучшая идея.

Слайд 34

5. Виртуальная память

Решения проблемы программ, превышающих по объему размер имеющейся памяти.
разбивать программы

5. Виртуальная память Решения проблемы программ, превышающих по объему размер имеющейся памяти.
на небольшие части, называемые оверлеями.
При запуске программы в память загружался только администратор оверлейной загрузки, который тут же загружал и запускал оверлей с порядковым номером 0. Когда этот оверлей завершал свою работу, он мог сообщить администратору загрузки оверлеев о необходимости загрузки
оверлея 1, либо выше оверлея 0, находящегося в памяти (если для него было достаточно пространства), либо поверх оверлея 0 (если памяти не хватало).
Некоторые оверлейные системы имели довольно сложное устройство, позволяя одновременно находиться в памяти множеству оверлеев. Оверлеи хранились на диске, и их свопинг с диска в память и обратно осуществлялся администратором загрузки оверлеев.
Разбиение больших программ на небольшие модульные части было очень трудоемкой, скучной и не застрахованной от ошибок работой.

Слайд 35

5. Виртуальная память

Решения проблемы программ, превышающих по объему размер имеющейся памяти.
2. Способ,

5. Виртуальная память Решения проблемы программ, превышающих по объему размер имеющейся памяти.
позволяющий возложить всю работу по разбиению программы на части на компьютер, (Fotheringham, 1961), стал известен как виртуальная память.

Слайд 36

5. Виртуальная память

В основе виртуальной памяти лежит идея, что у каждой программы

5. Виртуальная память В основе виртуальной памяти лежит идея, что у каждой

имеется свое собственное адресное пространство, которое разбивается на участки, называемые страницами. Каждая страница представляет собой непрерывный диапазон адресов. Эти страницы отображаются на физическую память, но для запуска программы присутствие в памяти всех страниц не обязательно.
Когда программа ссылается на часть своего адресного пространства, находящегося в физической памяти, аппаратное обеспечение осуществляет необходимое отображение на лету.
Когда программа ссылается на часть своего адресного пространства, которое не находится в физической памяти, операционная система предупреждается о том, что необходимо получить недостающую часть и повторно выполнить потерпевшую неудачу команду.

Слайд 37

5. Виртуальная память

5. Виртуальная память

Слайд 38

6. Подкачка. Алгоритмы замещения страниц

Подкачка страниц (англ. Paging; иногда используется термин swapping от

6. Подкачка. Алгоритмы замещения страниц Подкачка страниц (англ. Paging; иногда используется термин
swap, /swɔp/) — один из механизмов виртуальной памяти, при котором отдельные фрагменты памяти (обычно неактивные) перемещаются из ОЗУ на жёсткий диск (или другой внешний накопитель, такой как Флеш-память), освобождая ОЗУ для загрузки других активных фрагментов памяти. Такими фрагментами в современных ЭВМ являются страницы памяти.
Временно выгруженные из памяти страницы могут сохраняться на внешних запоминающих устройствах как в файле, так и в специальном разделе на жёстком диске (partition), называемые соответственно swap-файл и swap-раздел. В случае откачки страниц, соответствующих содержимому какого-либо файла (например, memory-mapped files), они могут удаляться. При запросе такой страницы она может быть считана из оригинального файла.
Когда приложение обратится к откачанной странице, произойдет исключительная ситуация PageFault. Обработчик этого события должен проверить, была ли ранее откачана запрошенная страница, и, если она есть в swap-файле, загрузить ее обратно в память.

Слайд 39

6. Подкачка. Алгоритмы замещения страниц

Изначально под свопингом понималась выгрузка процесса из оперативной

6. Подкачка. Алгоритмы замещения страниц Изначально под свопингом понималась выгрузка процесса из
памяти целиком, в результате чего неактивные процессы могли полностью отсутствовать в ОЗУ. При наступлении условий активизации процесса диспетчер памяти загружал образ процесса обратно.
Смысл термина изменился в 60-х годах, когда в операционных системах появилась поддержка виртуальной памяти: под свопингом стали понимать загрузку и выгрузку отдельных страниц.

Слайд 40

6. Подкачка. Алгоритмы замещения страниц

При выделении места для новой страницы бывает необходимо

6. Подкачка. Алгоритмы замещения страниц При выделении места для новой страницы бывает
удалить какую-либо страницу, в данный момент находящуюся в памяти.
Правила замещения страниц служат для принятия решения о том, какую именно страницу следует удалить из памяти.
Идеальным кандидатом является «мёртвая» страница, которая больше не потребуется кому-либо (например, относится к завершённому процессу).
Если же таких страниц нет в памяти (или их количества недостаточно), используется правило локального или глобального замещения страниц.

Слайд 41

6. Подкачка. Алгоритмы замещения страниц

Правило локального замещения выделяет каждому процессу или группе

6. Подкачка. Алгоритмы замещения страниц Правило локального замещения выделяет каждому процессу или
взаимосвязанных процессов определённое количество страниц. Если процессу нужна новая страница, он должен заменить одну из собственных.

Слайд 42

6. Подкачка. Алгоритмы замещения страниц

Правило глобального замещения страниц позволяет брать страницы любого

6. Подкачка. Алгоритмы замещения страниц Правило глобального замещения страниц позволяет брать страницы
процесса, используя глобальные критерии выбора. Для реализации данного подхода необходимо выбрать критерий, по которому будет приниматься решение о страницах, хранимых в памяти.

Слайд 43

6. Подкачка. Алгоритмы замещения страниц

Наиболее часто используемые критерии поиска:
FIFO - Удаляются те

6. Подкачка. Алгоритмы замещения страниц Наиболее часто используемые критерии поиска: FIFO -
страницы, доступ к которым производился наиболее давно. Считается, что в последующем к таким страницам будет происходить минимум обращений (FIFO – первая пришла – первая ушла).
Last Recently Used. Удаляются недавно освободившиеся страницы. Подразумеваются страницы только что завершившихся процессов.

Слайд 44

6. Подкачка. Алгоритмы замещения страниц

Оптимальный алгоритм замещения страниц
гласит, что должна быть удалена

6. Подкачка. Алгоритмы замещения страниц Оптимальный алгоритм замещения страниц гласит, что должна
страница, имеющая пометку с наибольшим значением количества команд до вызова страницы.
Если какая-то страница не будет использоваться на протяжении 8 миллионов команд, а другая какая-нибудь страница не будет использоваться на протяжении 6 миллионов команд, то удаление первой из них приведет к ошибке отсутствия страницы, в результате которой она будет снова выбрана с диска в самом отдаленном будущем.

Слайд 45

6. Подкачка. Алгоритмы замещения страниц

Алгоритм «второй шанс»
Алгоритм «часы»
Алгоритм замещения наименее

6. Подкачка. Алгоритмы замещения страниц Алгоритм «второй шанс» Алгоритм «часы» Алгоритм замещения
востребованной страницы
Алгоритм нечастого востребования — NFU (Not Frequently Used).
Алгоритм «Рабочий набор»
Алгоритм WSCIock
Имя файла: Память-компьютера.pptx
Количество просмотров: 54
Количество скачиваний: 0