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

  • 1. Основные задачи управления памятью

  • 2. Управление реальной памятью 2.1 Распределение памяти фиксированными разделами

  • 2.2 Распределение памяти динамическими разделами

  • 2.3 Перемещаемые разделы

  • 3. Управление виртуальной памятью

  • 3.2 Преимущества и недостатки страничной организации

  • 3.3 Сегментно-страничная организация

  • 3.4 SWAP файл

  • Список использованной литературы

  • Операционные системы. Организация памяти, виртуальная память. Основные задачи управления памятью


    Скачать 166.36 Kb.
    НазваниеОсновные задачи управления памятью
    АнкорОперационные системы. Организация памяти, виртуальная память
    Дата17.11.2022
    Размер166.36 Kb.
    Формат файлаdocx
    Имя файлаОперационные системы. Организация памяти, виртуальная память.docx
    ТипДокументы
    #793950

    Оглавление





    Введение 2

    1. Основные задачи управления памятью 4

    2. Управление реальной памятью 6

    2.1 Распределение памяти фиксированными разделами 6

    2.2 Распределение памяти динамическими разделами 8

    2.3 Перемещаемые разделы 10

    3. Управление виртуальной памятью 12

    3.1. Страничная организация виртуальной памяти 12

    3.2 Преимущества и недостатки страничной организации 19

    3.3 Сегментно-страничная организация 21

    3.4 SWAP файл 23

    Заключение 25

    Список использованной литературы 27

    Введение
    С развитием и появлением новых компьютерных технологий, машины несомненно преобразились в лучшую сторону: понятия «накопителей на магнитных лентах» или «ОЗУ на ферритовых сердечниках» исчезли из обихода. Помимо людей, чья деятельность была завязана на работе с ЭВМ, обычный пользователь также получил возможность использовать персональный компьютер для своих целей и потребностей.

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

    1. Вычислительная машина не простаивала: при одновременном выполнении нескольких программ и команд в работе процессора появлялась новая функция «анализ и распределение машинного времени», отведённого на выполнение каждой программы;

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

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

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

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

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

    Можно сделать вывод, что внедрение более рационального решения сталкивается с единственной проблемой - недостаток памяти для необходимых объемов вычислений. Вследствие чего возникает вопрос: можно ли каким-то образом решить эту проблему? Именно на этом этапе на помощь пользователю приходит виртуальная память, которая позволяет модифицировать ресурсы памяти, сделать объём оперативной памяти намного больше, для того чтобы обеспечить пользователю возможность бесперебойной работы с несколькими программами, что позволит реально сэкономить время и повысить производительность труда.

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

    управление память операционный система

    1. Основные задачи управления памятью
    Основная память (она же ОЗУ) является важнейшим ресурсом, эффективное использование которого решающим образом влияет на общую производительность системы.

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

    • выделение памяти для процесса пользователя при его запуске и освобождение этой памяти при завершении процесса;

    • обеспечение настройки запускаемой программы на выделенные адреса памяти;

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

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

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

    • предоставление процессам возможностей получения и освобождения дополнительных областей памяти в ходе работы;

    • эффективное использование ограниченного объема основной памяти для удовлетворения нужд всех работающих процессов, в том числе с использованием дисков как расширения памяти;

    • изоляция памяти процессов, исключающая случайное или намеренное несанкционированное обращение одного процесса к областям памяти, занимаемым другим процессом;

    • предоставление процессам возможности обмена данными через общие области памяти.



    Рис. 1 – Классификация методов распределения памяти
    2. Управление реальной памятью


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

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


    Рис.2 – Распределение памяти фиксированными разделами:

    с общей очередью (а), с отдельными очередями (б)
    Подсистема управления памятью в этом случае выполняет следующие задачи:

    • Сравнивает объем памяти, требуемый для вновь поступившего процесса, с размерами свободных разделов и выбирает подходящий раздел;

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

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

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


    2.2 Распределение памяти динамическими разделами
    В этом случае память машины не делится заранее на разделы. Сначала вся память, отводимая для приложений, свободна. Каждому вновь поступающему на выполнение приложению на этапе создания процесса выделяется вся необходимая ему память (если достаточный объем памяти отсутствует, то приложение не принимается на выполнение и процесс для него не создается). После завершения процесса память освобождается, и на это место может быть загружен другой процесс. Таким образом, в произвольный момент времени оперативная память представляет собой случайную последовательность занятых и свободных участков (разделов) произвольного размера. На рис. 3 показано состояние памяти в различные моменты времени при использовании динамического распределения. Так, в момент t0 в памяти находится только ОС, а к моменту t1 память разделена между 5 процессами, причем процесс П4, завершаясь, покидает память. На освободившееся от процесса П4 место загружается процесс П6, поступивший в момент t3.


    Рис. 3 – Распределение памяти динамическими разделами

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

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

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

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

    • После завершения процесса корректировка таблиц свободных и занятых областей.

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

    Распределение памяти динамическими разделами лежит в основе подсистем управления памятью многих мультипрограммных операционных системах 60-70-х годов, в частности такой популярной операционной системы, как OS/360.



    2.3 Перемещаемые разделы
    Одним из методов борьбы с фрагментацией является перемещение всех занятых участков в сторону старших или младших адресов, так, чтобы вся свободная память образовала единую свободную область (рис. 4). В дополнение к функциям, которые выполняет ОС при распределении памяти динамическими разделами в данном случае она должна еще время от времени копировать содержимое разделов из одного места памяти в другое, корректируя таблицы свободных и занятых областей. Эта процедура называется сжатием. Сжатие может выполняться либо при каждом завершении процесса, либо только тогда, когда для вновь создаваемого процесса нет свободного раздела достаточного размера. В первом случае требуется меньше вычислительной работы при корректировке таблиц свободных и занятых областей, а во втором — реже выполняется процедура сжатия.


    Рис. 4 – Распределение памяти перемещаемыми разделами
    Так как программы перемещаются по оперативной памяти в ходе своего выполнения, то в данном случае невозможно выполнить настройку адресов с помощью перемещающего загрузчика. Здесь более подходящим оказывается динамическое преобразование адресов.

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

    Концепция сжатия применяется и при использовании других методов распределения памяти, когда отдельному процессу выделяется не одна сплошная область памяти, а несколько несмежных участков памяти произвольного размера (сегментов). Такой подход был использован в ранних версиях OS/2, в которых память распределялась сегментами, а возникавшая при этом фрагментация устранялась путем периодического перемещения сегментов.
    3. Управление виртуальной памятью
    3.1. Страничная организация виртуальной памяти
    Как было сказано ранее, для более эффективного функционирования ЭВМ используется динамический метод распределения памяти. Это значит, что процесс распределения памяти осуществляется непосредственно в ходе решения задачи с учетом предыдущего состояния машины и описания массивов данных. Например, процесс компиляции с языков высокого уровня отводит определённую область памяти под каждую переменную, массив, структуру. В настоящее время процесс динамического распределения памяти осуществляется методом относительной адресации (с использованием виртуальных адресов), в виде страничной и сегментной организации памяти.

    Рассмотрим первую форму организации виртуальной памяти (далее ВП) при её страничной организации (далее СО). Нужно отметить очень важный пункт, что при СО, все ресурсы памяти, как оперативной, так и внешней представляются для пользователя единым целым. Пользователь работает с общим адресным пространством и не задумывается какая память при этом используется: оперативная или внешняя, а эта общая память носит название виртуальной (моделируемой). Виртуальная память разбивается на страницы, которые содержат определённое фиксированное количество ячеек памяти. При этом одна страница математической памяти не может быть больше или меньше других все страницы должны быть одинаковы по количеству ячеек. Типичные размеры страниц 256, 512, 1024, 2048 Байт и более (числа кратные 256).

    Так называемая физическая память, которая включает в себя ОЗУ и ВЗУ так же разбивается на страницы, объем которых должен соответствовать размерам ВП, иначе, из-за неправильности размеров, ячейки физической памяти не будут совпадать с ячейками ВП, что приведёт к путанице и “зависанию” системы. На рисунке 4 изображен способ формирования страниц ВП из физической памяти. Ячейки ОЗУ разбиваются на страницы одинакового объема (например 1024 Байт), каждая из которых может содержать какую-либо информацию. В ВЗУ, представленным накопителем типа “винчестер”, процессор резервирует определённые сектора, с которыми впоследствии будет работать ВП. Всё это складывается вместе и представляет собой единую структуру ВП.


    Рис.4. Цельное представление ОЗУ и ВЗУ как виртуальной памяти
    При работе пользователя, одна из его программ может находится в ОП, а другая в ВЗУ (на диске). При этом совершенно не заметно, что пользователь работает с математическими адресами, поэтому в процессе операций процессор может обращаться только к ОП (или СОП Сверхоперативная память) в случае выполнения первой программы, или к диску, если выполняется вторая программа. Но при работе второй программы, операционная система должна организовать перепись той страницы, где находится вторая программа, в Оперативную Память.

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

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

    Соответствие между номерами физических и математических страниц устанавливается специальной программой операционной системы, которая носит название менеджер (диспетчер) памяти. Как правило эта программа является резидентной и управляет всеми ресурсами машинной памяти. Для 286х процессоров используют менеджер himem.sys, а для 386х и 486х машин emm386.sys и qemm.sys. С помощью таких программ формируется так называемая страничная таблица, которая помещается в сверхоперативную память, обладающую наибольшим быстродействием. Эта таблица является неотъемлемой частью организации ВП с СО, так как в ней содержится вся информация о страницах, на данный момент находящихся в памяти. В страничной таблице находятся адреса программ, уровень их приоритета и т. д. Содержание страничной таблицы будет подробно описано ниже.

    Рассмотрим пример преобразования виртуальных адресов в физические. Пусть виртуальная память содержит 8 страниц по 2048 Байт в каждой странице. Для компактности примера, предположим, что физическая память имеет ёмкость 4 страницы (по 2 Кб соответственно). При обращении к физической памяти для проведения каких-либо операций (записи или выборки операндов, выполнения команды или осуществления передачи управления), программой формируется 14ти битовый адрес, соответствующий виртуальному адресу, который определяет ячейки в промежутке от 0 до 16 Кб.

    В данном примере 14ти битовый адрес как бы разбивается на 3х битовый номер виртуальной страницы и 11ти битовый внутри той страницы, номер которой определён тем самым 3х битовым номером. Пример кода адреса при страничной организации памяти показан на рисунке 4. А связь между номерами страниц и самими виртуальными адресами показана на рисунке 5. Итак, рассмотрим рисунок 4: 3х битовый номер виртуальной страницы 110 (в bin формате) соответствует номерам 6 и 6h (dec и hexформаты) необходимо помнить, что все операции в машине производятся в шестнадцатеричном формате. Таким образом, выбирается страница с номером 6 и внутренним адресом 00101001110B (14Eh). Значит по рисунку 5, этот физический адрес будет соответствовать виртуальному адресу 12288...


    Рис.5. Таблица соответствия физического адреса виртуальному
    Это значит, что шестая страница виртуальной памяти начинается с адреса 12288 и заканчивается по адресу 14335. Общий объем виртуальной страницы составляет 2048 Байт (2 Кб).

    Для определения физического адреса пользовательской программы, резидентный диспетчер памяти под управлением операционной системы должен установить местонахождение виртуальной страницы. Физическая страница памяти, которая соответствует виртуальной, может находится в оперативной памяти, но может также быть и на диске. Как было сказано ранее, для того чтобы установить соответствие между виртуальной и физической страницами, ОС обращается к страничной таблице, каждая из строк которой содержит по одной записи для каждой из восьми виртуальных страниц. Как же организованна эта страничная таблица? Запись в строке содержит три поля Первое однобитовое поле по сути является флагом в этой ячейке может находится либо включенный, либо выключенный бит (1 или 0), что указывает на конкретное местонахождение страницы: если в этом поле содержится код нуля это подсказывает процессору, что необходимую страницу нужно искать во внешней памяти, если значение бита в данном поле равно 1, то искомая страница уже находится в оперативной памяти. Таким образом, все функции единственного бита в этом поле принимать значения True или False. Второе поле содержит адрес внешней памяти. Этот адрес станет необходим если искомой страницы нет в оперативной памяти, а она находится в ВЗУ и её надо переписать в ОЗУ для работы с программой, находящейся в этой странице. По этому адресу машина обращается к виртуальной странице, хранящейся на диске и копирует её содержимое в ОЗУ. Важное замечание заключается в том, что если в первом однобитовом поле флаг находится в состоянии 1, то второе поле автоматически игнорируется, потому что искомая страница уже “сидит” в ОП и нет никакой необходимости “MOV CX, ADDRESS” (засылать в регистр CX адрес внешней ВС для его обработки). После того как машина отработает с данной страницей ВП и надобность в ней исчезнет (возможно на какое-то время), эта страница обратно переносится на диск, освобождая место для другой страницы которая нужна машине в данный момент для продолжения работы.

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


    Рис.6 Страничная организация Виртуальной Памяти.
    Итак, при распределении памяти в машине, супервизор формирует страничную таблицу. Входом в эту таблицу является номер математической страницы, в которой находится нужная ячейка памяти. Если адресная страница находится в ОП, то формирование адреса происходит следующим образом: двух битовый номер страницы заносится в два левых разряда адресного регистра оперативной памяти, а адрес внутри виртуальной страницы (11 бит исходного адреса) переписывается в 11 правых разрядов адресного регистра. Это очень хорошо показано на правой части рисунка. Pµ регистр математического адреса, Pф регистр физического адреса, p номер математической страницы, l смещение. Таким образом, смещение переписывается из регистра математического адреса в регистр физического без изменений. По номеру p из страничной таблицы извлекается номер физической страницы и, если эта страница уже находится в ОП, то её номер записывается в регистр физического адреса, если же искомая страница находится в ВЗУ, то она сначала переписывается в ОП. Для этого используется или свободная страница ОП, или какая-либо страница ОП освобождается: информация из этой страницы снова переносится во внешнюю память (но ни в коем случае не стирается!). После этого страничная таблица обновляется в неё заносятся сведения о новых страницах (той которая на данный момент находится в ОЗУ и той которая переместилась во внешнюю память). Страничная таблица является таким видом информации, которая очень часто обновляется. Она постоянно “дышит”. Каждый раз, когда у пользователя возникает потребность в новой информации (в частности, в новой странице памяти), происходит процесс свопирования, то есть перемены местами страниц ОП и ВЗУ (англ. swap менять местами). При этом в страничную таблицу заносится наиболее свежая информация о том в какую страницу виртуальной памяти была помещена страница, только что удалённая из ОП, содержится ли в этой странице нужное на следующем этапе слово и т. д. У страничной таблицы множество работы. Как было отмечено, для наиболее эффективного функционирования машины необходимы большая ёмкость ОЗУ и быстродействие. Как известно, обычная оперативная память (RAM) не является максимально быстродействующей. Это значит, что если бы страничная таблица находилась в такой памяти, то пользователь сталкивался бы с реальной потерей времени, так как процессор довольно часто обращается к СТ. Выход из этой неудобной ситуации был найден при помещении страничной таблицы в сверхоперативную память, которая обладает наибольшим быстродействием, хотя и во много раз меньше по объему чем RAM. Но этого объёма вполне хватает процессору, и он получает возможность работать с большей производительностью, так как при каждом перераспределении памяти между пользовательскими программами осуществляется изменение данных, содержащихся в страничной таблице.

    При страничной организации памяти очень важным является алгоритм своппирования страниц. Действительно, процессор должен “подумать” какую страницу стоит в первую очередь удалить из ОП, дабы на освободившееся место переписать из внешней памяти необходимую в данный момент страницу.


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

    Во-первых, одним из преимуществ ВП с СО является достаточно большой объём прямо адресуемой памяти. Действительно объем памяти может исчисляться сотнями мегабайт (и даже гигабайтами). Размер виртуальной памяти целиком зависит от объёма накопителя на жестком диске. Созданный SWAP файл размещается на диске и эмулирует оперативную память. При этом пользователь не задумывается о том куда будет помещен “кусок” его программы, с которой он только что отработал. Таким образом, ещё одним преимуществом ВП с СО является то, что программы пользователя могут размещаться в любых свободных страницах. И наконец, одним из важнейших преимуществ ВП с СО (то, ради чего, собственно и была изобретена виртуальная память) повышение уровня мультипрограммной работы. Как было сказано выше, эта цель была одной из самых главных. С организацией ВП с СО пользователь получил реальную возможность загружать в память большее количество программ для того чтобы машина обрабатывала программы сразу (в действительности процессор устанавливает приоритет для каждой программы, находящейся в памяти, и далее в соответствии с приоритетом выделяет определённое количество времени на реализацию каждой программы или команды). Сам процессор постоянно “занят” каждый машинный такт выполняет определённую программу. Метод организации виртуальной памяти со страничной организацией значительно повысил эффективность работы с машиной.

    У каждого гениального изобретения к сожалению, есть свои недостатки. Таковые есть и у ВП с СО. Попытаемся проанализировать их. Основным недостатком виртуальной памяти, пожалуй, является то количество времени, которое машина тратит на обращение к внешней памяти. Извлечь необходимую информацию из ячеек оперативной памяти не представляет особого труда и больших затрат времени. Совсем иначе обстоит дело с диском: для того чтобы найти необходимую информацию, нужно сначала “раскрутить” диск, потом найти необходимую дорожку, в дорожке найти сектор, кластер, далее считать побитовую информацию в ОП. Все это требует времени и, порой если при методе случайного удаления страниц *, процессору понадобятся сразу несколько страниц, хранящихся во внешней памяти, большого времени. К сожалению, этот недостаток принадлежит к виду “неисправимых”. И если другие недостатки, рассмотренные ниже ущё можно каким-то образом устранить (например путем расширения технических средств и т. д.), то данный недостаток не может быть устранён никоим образом, так как понятие виртуальной памяти ассоциируется с применением внешней памяти (магнитного диска).

    Следующий недостаток скорее относится к вопросу о технической характеристике компьютера: наличие сверхоперативной памяти (СОП). Как было сказано выше, СОП.

    Методы своппирования страниц имеют большую ёмкость и достаточно высокое быстродействие. СОП используется для хранения управляющей информации, служебных кодов, а также информации к которой осуществляется наиболее частое обращение в процессе выполнения программы. Этот недостаток в работе с ВП к счастью можно ликвидировать. Что касается технической характеристики есть ли в микросхемах оперативной памяти дополнительные интегральные схемы, которые являются запоминающими устройствами СОП? Если есть, то проблема с СОП решена, а если нет тогда, благодаря достижениям в области компьютерной технологии, могут использоваться драйверы, резервирующие маленькую область ОП для имитирования СОП (стандартные операционные процедуры). И, наконец третьим недостатком является внутренняя фрагментация страниц.
    3.3 Сегментно-страничная организация
    При использовании метода сегментно-страничной организации ВП, пользовательские программы разбиваются на отдельные массивы. Эти массивы независимые участки называются сегментами. Сегмент представляет собой единый логический объект, содержащий какую-либо процедуру, массив или набор данных. Как правило информация, содержащаяся в сегменте, однородная, то есть в одном сегменте могут находится только служебные коды программы, другой может являться сегментом стека, третий содержать коды связи с объектными (.obj) файлами и т. д.

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

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

    Сегментно-страничная организация памяти требует более сложной аппаратурно-программной организации. Рассмотрим, как же осуществляется обращение к ВП посредством ССО. По самому названию “сегментно-страничный” нетрудно догадаться, что при таком методе используется как сегментная, так и страничная таблицы. Это очень похоже на сложно структурированный метод “процедуры в процедуре” во многих алгоритмических языках. На рисунке 4 подробно показан способ организации ВП с ССО. Адрес ячейки в данном случае складывается из 3х частей: первая содержит номер самого сегмента (S), по этому номеру машина обращается к сегментной таблице. Вторая часть адреса содержит номер искомой страницы (p), которая находится внутри выбранного сегмента и третья смещение (l), по которому находится требуемый адрес. Pµ, обведенное в двойную рамку показывает математический адрес, а Pф физический. Как и при СО, смещение l переписывается в ячейку физического адреса без изменений.

    Вверху рисунка, аббревиатурой N обозначен номер какой-нибудь программы пользователя. А 0 с индексом 1 обозначает конкретный начальный адрес сегментной таблицы для данной программы. Сначала берется этот адрес и номер сегмента S из регистра математического адреса. Оба этих адреса складываются в сумматоре, который изображен в виде обведенного плюса. Получившийся адрес А 1 + S является входом в сегментную таблицу (изображен в первой колонке сегментной таблицы). Далее, благодаря этому адресу, отыскивается соответствующий адрес страничной таблицы (А 0 с индексом 2), который в свою очередь суммируется с номером искомой страницы p в сумматоре. Результирующая сумма есть вход в страничную таблицу. Структура страничной таблицы нам уже знакома: благодаря получившемуся адресу, находится соответствующий адрес физической страницы, процессор определяет местонахождение этой страницы (включенный бит страница находится в ОП, выключенный во внешней памяти).



    Рис. 7. Сегментно-страничная организация ВП

    Итак, краткое описание функционирования ВП с ССО: с помощью начального адреса сегментной таблицы и номера сегмента из регистра математического адреса (S) образуется адрес вход в сегментную таблицу в которой находится начальный адрес страничной таблицы. К этому адресу в свою очередь прибавляется номер страницы из РМА. Эта сумма служит входом в страничную таблицу, в которой затем отыскивается адрес искомой физической страницы и, в соответствии с уровнем доступности, процессор либо начинает работать с этой страницей, либо вырабатывает аппаратурное прерывание и подключает супервизора, который затем организует ее перепись в ОП. Если вся ОП будет занята, то супервизор, в соответствии с принятым методом, своппирует какую-нибудь страницу.
    3.4 SWAP файл
    Подкачка страниц (paging, чаще можно увидеть термин swap или swapping) представляет собой механизм виртуальной памяти, перемещающий неиспользуемые страницы памяти (это фрагменты памяти в современных компьютерах) в другое хранилище (жесткий диск или любое другое), тем самым освобождается место в оперативной памяти для загрузки активных страниц памяти. Неким хранилищем может выступать раздел (раздел подкачки, swap - раздел) или файл (файл подкачки, swap - файл).

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

    Система не постоянно использует область swap, в основном только тогда, когда закончилось свободное место в оперативной памяти (ОЗУ) для запущенных приложений (программ). Поэтому в современных компьютерах не так критично использование swap из-за больших объемов оперативной памяти, однако для некоторых задач сейчас даже 8ГБ ОЗУ считается недостаточным объемом.

    Преимущества виртуальной памяти и файла подкачки:

    • способность обрабатывать вдвое больше адресов, чем основная память;

    • освобождает приложения от управления общей памятью;

    • избавляет пользователей от затрат на улучшение памяти;

    • выделение памяти увеличением файла подкачки упирается только в размеры накопителя (HDD/SSD);

    • повышенная безопасность за счёт изоляции памяти;

    • одновременно можно запускать несколько более крупных приложений;

    • не нуждается во внешней фрагментации;

    • эффективное использование процессора;

    • данные можно перемещать автоматически.

    Недостатки (ограничения) файла подкачки:

    • скорость значительно ниже, чем если бы программы работали непосредственно из ОЗУ;

    • увеличение виртуальной памяти замедляет работу компьютера (данные между виртуальной и физической памятью требуют дополнительной аппаратной поддержки для преобразования адресов);

    • размер файла подкачки ограничен объёмом накопителя и схемой адресации с компьютерной системой;

    • если объём оперативной памяти слишком мал (менее 4 Гб), то всё равно периодически возникают ошибки из-за нехватки ОЗУ;

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


    Заключение
    Эффективное решение задач на ЭВМ определяется не только емкостью и быстродействием запоминающих устройств, наличием мощного процессора с большой тактовой частотой, но и организацией и распределением памяти. Современные компьютеры обладают средствами и техническими характеристиками для организации виртуальной памяти. Применение виртуальной памяти получило широкое применение как среди пользователей любителей, так и среди профессионалов. Основная функция ВП расширение адресного пространства. ВП создаётся для увеличения функциональных возможностей компьютера, повышения уровней мультипрограммной работы. Объединив, ячейки реальной оперативной памяти с ячейками на быстродействующих магнитных носителях, (чаще всего для этих целей используются винчестеры. Применение НГМД не было бы столь эффективно, а применение НМД или НМБ понесло бы невосполнимые потери), пользователь имеет возможность значительно расширить память и при этом не думать о том в “какой” памяти хранится его программа. ВП была создана для облегчения работы пользователей при размещении программ.

    Благодаря ВП появилась возможность для более эффективного применения программмультитаскеров (multitasker) специальных пакетов, позволяющих повысить уровень мультипрограммной работы. (Программы, которые распределяют время процессора и память так, что например связываться по модему, печатать на принтере и обрабатывать текст можно одновременно). В настоящее время, благодаря применению ВП, усилилась тенденция к использованию DeskView менеджерамультитаскера (производства фирмы QuatterDeck).

    Сравнивая реальную оперативную память с виртуальной, можно отметить, что объем РП ограничен, то есть в каждой микросхеме фиксированное число ячеек. Что касается ВП, то она может иметь достаточно большой объем, ограниченный только местом на диске (возможностью адресации). Объем ВП может достигать нескольких десятков и сотен мегабайт. РП имеет линейную структуру (адресация в порядке возрастания). ВП использует сквозную адресацию.

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


    1. Дейтел, Х., М. Операционные системы. Основы и принципы. Т. 1 / Х. М. Дейтел, Д.Р. Чофнес. - М.: Бином, 2016. - 1024 c.

    2. Киселев, С.В. Операционные системы: Учебное пособие / С.В. Киселев. - М.: Academia, 2018. - 250 c.

    3. Назаров, С.В. Операционные системы. Практикум (для бакалавров) / С.В. Назаров, Л.П. Гудыно, А.А. Кириченко. - М.: КноРус, 2017. - 480 c

    4. Управление оперативной памятью, виртуальной памятью, pagefile и памятью в Windows. [Электронный ресурс], - https://docs.microsoft.com/ru-ru/troubleshoot/windows-server/performance/ram-virtual-memory-pagefile-management - статья в интернете.

    5. Организация виртуальной памяти. [Электронный ресурс], - https://habr.com/ru/company/embox/blog/256191- статья в интернете.

    6. Партыка, Т.Л. Операционные системы, среды и оболочки: Учебное пособие / Т.Л. Партыка, И.И. Попов. - М.: Форум, 2018. - 256 c.

    7. Попов И.И. Операционные системы, среды и оболочки/ И.И. Попов. - М.: Издательство "ФОРУМ: ИНФА-М", 2010. - 400 с. - (Серия "Профессиональное образование")

    8. Спиридонов, Э.С. Операционные системы / Э.С. Спиридонов, М.С. Клыков, М.Д. Рукин и др. - М.: КД Либроком, 2017. - 350 c.

    9. Таненбаум, Э. Современные операционные системы / Э. Таненбаум. - СПб.: Питер, 2019. - 1120 c.


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