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

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

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

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

И поскольку основным утилитам, необходимым дляобслуживания персонального компьютера, спецификации EMS и XMS, как правило,не нужны, мы не будем здесь их рассматривать.Остальные программные модули MS DOS (в принципе, большинство из нихявляется утилитами) оформлены как обычные исполняемые файлы. Например,утилита форматирования диска представляет собой и двоичный исполняемыйфайл, и команду операционной системы. В основном такого рода утилиты являютсятранзитными модулями, то есть загружаются в память только на время своейработы, хотя среди них имеются и TSR-программы.Для того чтобы предоставить больше памяти программам пользователя, в MS DOSприменено то же решение, что и во многих других простейших операционных82Глава 3, Управление памятью в операционных системахсистемах, — командный процессор C0MMAND.COM состоит Из двух частей. Перваячасть является резидентной и размещается в области ядра, вторая часть транзитнаяи размещается в области старших адресов раздела памяти, выделяемой дляпрограмм пользователя.

И если программа пользователя перекрывает собойобласть, в которой была расположена транзитная часть командного процессора, топоследний при необходимости восстанавливает в памяти свою транзитную часть,поскольку после выполнения программы она возвращает управление резидентнойчасти C0MMAND.COM.Поскольку размер основной памяти относительно небольшой, то очень частосистемы программирования реализуют оверлейные структуры. Для этого в MS DOSподдерживаются специальные вызовы.Распределение памяти статическимии динамическими разделамиДля организации мультипрограммного и/или мультизадачного режима необхо­димо обеспечить одновременное расположение в оперативной памяти несколькихзадач (целиком или частями).

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

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

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

Использовалась эта схема и много лет спустя присоздании недорогих вычислительных систем, поскольку является несложной и обес­печивает возможность параллельного выполнения программ. Иногда в некоторомразделе размещалось по нескольку небольших программ, которые постоянно в неми находились. Такие программы назывались ОЗУ-резидентными (или просто рези­дентными). Та же схема используется и в современных встроенных системах; прав­да, для них характерно, что все программы являются резидентными, и внешняя па­мять во время работы вычислительного оборудования не используется.Ядро операционной системы)>Раздел № О>Раздел № 1>Раздел № 2>Раздел № 3Транзитная область ОСЗадача АНеиспользуемая областьЗадача БНеиспользуемая областьЗадача ВНеиспользуемая областьРис.

3.3. Распределение памяти разделами с фиксированными границамиПод коэффициентом мультипрограммирования ( т ) понимают количество параллельно выполняе­мых программ. Обычно на практике для загрузки центрального процессора до уровня 90 % необхо­димо, чтобы коэффициент мультипрограммирования был не менее 4-5. А для того чтобы наиболееполно использовать и остальные ресурсы системы, желательно иметь m на уровне 10-15.84Глава 3, Управление памятью в операционных системахПри небольшом объеме памяти и, следовательно, небольшом количестве разделовувеличить число параллельно выполняемых приложений (особенно когда эти при­ложения интерактивны и во время своей работы фактически не используют про­цессорное время, а в основном ожидают операций ввода-вывода) можно за счетзамены их в памяти, или свопинга (swapping). При свопинге задача может бытьцеликом выгружена на магнитный диск (перемещена во внешнюю память), а на ееместо загружается либо более привилегированная, либо просто готовая к выпол­нению другая задача, находившаяся на диске в приостановленном состоянии.

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

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

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

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

Желание разработчи­ков сократить столь значительные потери привело их к следующим двум решениям:••выделять раздел ровно такого объема, который нужен под текущую задачу;размещать задачу не в одной непрерывной области памяти, а в нескольких об­ластях.Второе решение было реализовано в нескольких способах организации виртуаль­ной памяти. Мы их обсудим в следующем разделе, а сейчас кратко рассмотримпервое решение.ределение памяти статическими и динамическими разделами85разделы с подвижными границамиЧтобы избавиться от фрагментации, можно попробовать размещать в оператив­ной памяти задачи плотно, одну за другой, выделяя ровно столько памяти, сколь­ко задача требует.

Одной из первых операционных систем, в которой был реализо­1ван такой способ распределения памяти, была OS MVT (Multiprogramming witha Variable number of Tasks — мультипрограммирование с переменным числом за­дач). В этой операционной системе специальный планировщик (диспетчер памя­ти) ведет список адресов свободной оперативной памяти. При появлении новойзадачи диспетчер памяти просматривает этот список и выделяет для задачи раз­дел, объем которой либо равен необходимому, либо чуть больше, если память вы­деляется не ячейками, а некими дискретными единицами.

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

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

В этом случае при просмотре спискаДля нового раздела будет использован фрагмент свободной памяти, объем которойнаиболее точно соответствует требуемому. Требуемый раздел будет определятьсяпо-прежнему в результате просмотра в среднем половины списка. Однако остав­шийся фрагмент оказывается настолько малым, что в нем уже вряд ли удастся раз­местить еще какой-либо раздел. При этом получается, что вновь образованныйФрагмент попадет в начало списка, и в последующем его придется каждый раз про­верять на пригодность, тогда как его малый размер вряд ли окажется подходящим.Поэтому в целом такую дисциплину нельзя назвать эффективной.Как ни странно, самым эффективным способом, как правило, является последний,по которому для нового раздела выделяется «самый неподходящий» фрагмент своЭта операционная система была одной из самых распространенных в больших ЭВМ класса IBM360 (370).86Глава 3.

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

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

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

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