Главная страница
Навигация по странице:

  • Концепция иерархии памяти

  • Адресное пространство — это набор адресов, который может быть использован процессом для обращения к памяти.

  • Базовый и ограничительный регистры

  • Простейший алгоритм называется первое подходящее . Алгоритм следующее подходящее . Алгоритм наиболее подходящее .

  • ОС. ОС. Лекция 7. Лекция Тема Управление памятью 5 Абстракция памяти


    Скачать 3.34 Mb.
    НазваниеЛекция Тема Управление памятью 5 Абстракция памяти
    Дата27.11.2022
    Размер3.34 Mb.
    Формат файлаpptx
    Имя файлаОС. Лекция 7.pptx
    ТипЛекция
    #815215

    Лекция 7. Тема 5. Управление памятью 1.5 Абстракция памяти

    Операционные системы и среды

    Вопросы:

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

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

    Мечта программиста:

    иметь предоставленную только

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

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

    • Превратить эту иерархию в абстракцию, то есть

      в удобную модель, а затем управлять этой абстракцией — и есть задача операционной системы.

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

    Концепция иерархии памяти
    Ранние универсальные машины (до 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.

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

    Адресное пространство — это набор адресов, который может быть использован процессом для обращения к памяти.

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

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

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

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

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

    Динамическое перераспределения памяти. При этом адресное пространство каждого процесса проецируется на различные части физической памяти.

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

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

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

    При использовании этих регистров программы загружаются в последовательно расположенные свободные области памяти без модификации адресов в процессе загрузки.

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

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

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

    1. Самый простой из них, называемый свопингом, заключается в размещении в памяти всего процесса целиком, в запуске его на некоторое время, а затем

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

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

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

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

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

    перемещением процессов, которые больше не помещаются в отведенной им памяти.

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

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

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

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

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

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

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

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

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

    Простейший алгоритм называется первое подходящее.

    Алгоритм следующее подходящее.

    Алгоритм наиболее подходящее.

    Алгоритм наименее подходящее.

    Алгоритм быстро искомое подходящее.

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

    Спасибо за внимание!


    написать администратору сайта