Главная » Просмотр файлов » Гордеев А.В. Операционные системы (2-е изд., 2004)

Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 22

Файл №1186250 Гордеев А.В. Операционные системы (2-е изд., 2004) (Гордеев А.В. Операционные системы (2-е изд., 2004)) 22 страницаГордеев А.В. Операционные системы (2-е изд., 2004) (1186250) страница 222020-08-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 22)

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

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

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

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

, 1 i in „•. 1 ,..гш.т 1 ...~-« MiiriHHirriiii •"•'•"-' —Сегментная, страничная и сегментно-страничная организация памяти87Сегментный способ организациивиртуальной памятиПервым среди разрывных методов распределения памяти был сегментный. Дляэтого метода программу необходимо разбивать на части и уже каждой такой частивыделять физическую память. Естественным способом разбиения программы начасти является разбиение ее на логические элементы — так называемые сегменты.В принципе, каждый программный модуль (или их совокупность, если мы тогопожелаем) может быть воспринят как отдельный сегмент, и вся программа тогдабудет представлять собой множество сегментов.

Каждый сегмент размещается в па­мяти как до определенной степени самостоятельная единица. Логически обраще­ние к элементам программы в этом случае будет состоять из имени сегмента и сме­щения относительно начала этого сегмента. Физически имя (или порядковыйномер) сегмента будет соответствовать некоторому адресу, с которого этот сегментначинается при его размещении в памяти, и смещение должно прибавляться к это­му базовому адресу.Преобразование имени сегмента в его порядковый номер осуществит система про­граммирования. Для каждого сегмента система программирования указывает егообъем. Он должен быть известен операционной системе, чтобы она могла выде­лять ему необходимый объем памяти. Операционная система будет размещать сег­менты в памяти и для каждого сегмента она должна вести учет о местонахожденииэтого сегмента.

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

3.4 для случая обращения к ячейке, виртуаль­ный адрес которой равен сегменту с номером 11 со смещением от начала этогосегмента, равным 612. Как мы видим, операционная система разместила данныйсегмент в памяти, начиная с ячейки с номером 19700.Итак, каждый сегмент, размещаемый в памяти, имеет соответствующую информа­ционную структуру, часто называемую дескриптором сегмента. Именно операци­онная система строит для каждого исполняемого процесса соответствующую табли­цу дескрипторов сегментов, и при размещении каждого из сегментов в оперативнойили внешней памяти отмечает в дескрипторе текущее местоположение сегмента.Если сегмент задачи в данный момент находится в оперативной памяти, то об этомДелается пометка в дескрипторе. Как правило, для этого используется бит при­сутствия Р (от слова «present»). В этом случае в поле адреса диспетчер памятизаписывает адрес физической памяти, с которого сегмент начинается, а в поле дли­ны сегмента (limit) указывается количество адресуемых ячеек памяти.

Это полеиспользуется не только для того, чтобы размещать сегменты без наложения другна друга, но и для того, чтобы контролировать, не обращается ли код исполняю­щейся задачи за пределы текущего сегмента. В случае превышения длины сегмен-88Глава 3, Управление памятью в операционных системахта вследствие ошибок программирования мы можем говорить о нарушении адре­сации и с помощью введения специальных аппаратных средств генерировать сиг­налы прерывания, которые позволят фиксировать (обнаруживать) такого родаошибки.Регистр таблицы сегментов(таблицы дескрипторовсегментов)Виртуальный адрес11612S (Segment)D (Destination)31500+ иТаблица дескрипторов текущей заде31511РАдрес началасегмента119700/TZ/Длина,сегмента1300 --.ПравадоступаR-X"•\Рис.

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

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

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

Пока происходит поиск сегмента во внешней памяти и загрузка его в оператив­ную, диспетчер памяти определяет подходящее для сегмента место. Возможно, чтосвободного места нет, и тогда принимается решение о выгрузке какого-нибудь сег­мента и выполняется его перемещение во внешнюю память. Если при этом ещеостается время, то процессор передается другой готовой к выполнению задаче.После загрузки необходимого сегмента процессор вновь передается задаче, вы­звавшей прерывание из-за отсутствия сегмента. Всякий раз при считывании сег­мента в оперативную память в таблице дескрипторов сегментов необходимо уста­новить адрес начала сегмента и признак присутствия сегмента.Припоиске свободного места используется одна из вышеперечисленных дисцип­лин работы диспетчера памяти (применяются правила «первого подходящего»90Глава 3. Управление памятью в операционных с и сте м ахи «самого неподходящего» фрагментов).

Если свободного фрагмента памяти дос­таточного объема нет, но, тем не менее, сумма этих свободных фрагментов превы­шает требования по памяти для нового сегмента, то в принципе может быть при­менено «уплотнение памяти», о котором мы уже говорили в подразделе «Разделыс фиксированными границами» раздела «Распределение памяти статическимии динамическими разделами».В идеальном случае размер сегмента должен быть достаточно малым, чтобы егоможно было разместить в случайно освобождающихся фрагментах оперативнойпамяти, но достаточно большим, чтобы содержать логически законченную частьпрограммы с тем, чтобы минимизировать межсегментные обращения.Для решения проблемы замещения (определения того сегмента, который долженбыть либо перемещен во внешнюю память, либо просто замещен новым) исполь­1зуются следующие дисциплины :•правило FIFO (First In First Out — первый пришедший первым и выбывает);•правило LRU (Least Recently Used — дольше других неиспользуемый);Q правило LFU (Least Frequently Used — реже других используемый);•случайный (random) выбор сегмента.Первая и последняя дисциплины являются самыми простыми в реализации, ноони не учитывают, насколько часто используется тот или иной сегмент, и, следова­тельно, диспетчер памяти может выгрузить или расформировать тот сегмент, к ко­торому в самом ближайшем будущем будет обращение.

Безусловно, достовернойинформация о том, какой из сегментов потребуется в ближайшем будущем, в об­щем случае быть не может, но вероятность ошибки для этих дисциплин много­кратно выше, чем у второй и третьей, в которых учитывается информация об ис­пользовании сегментов.В алгоритме FIFO с каждым сегментом связывается очередность его размещенияв памяти. Для замещения выбирается сегмент, первым попавший в память.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6549
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее