Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Управление памятью

Память представляет собой важный ресурс, требующий тщательного управления. Несмотря на то, что сегодня память среднего домашнего ПК в тысячи раз превышает ресурсы IBM 7094 — машины, бывшей в начале 60-х годов самой мощной в мире, – программы все равно увеличиваются в размере быстрее, чем память.

Память в компьютерах имеет иерархическую структуру. Небольшая ее часть представляет собой очень быструю, дорогую, энергозависимую (теряющую информацию при выключении питания) кэш-память. Компьютеры обладают также десятками мегабайт среднескоростной, имеющей среднюю цену, энергозависимой оперативной памяти ОЗУ (RAM, Random Access Memory — память с произвольным доступом) и десятками или сотнями гигабайт медленного, дешевого, энергонезависимого пространства на жестком диске. Одной из задач ОС является координация использования всех этих составляющих памяти.

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

Системы управления памятью делят на два класса. К первому классу относятся системы, перемещающие процессы между оперативной памятью и диском во время их выполнение, то есть осуществляющие подкачку процессов целиком (swapping) или постранично (paging). Ко второму – те, которые этого не делают. Второй класс систем проще. При этом следует помнить, что обычный и постраничный варианты подкачки являются искусственными процессами, вызванными отсутствием достаточного количества оперативной памяти для одновременного хранения всех программ. Если когда-нибудь ОЗУ настолько увеличится в размерах, что ее будет достаточно, принцип подкачки может стать устаревшим. С другой стороны, поскольку ПО растет еще быстрее, чем память, то вполне возможно, что потребность в эффективном управлении памятью будет существовать всегда. В 80-е годы использовали системы разделения времени для работы десятков пользователей на машинах VAX с объемом памяти 4 Мбайт. Сейчас рекомендуется для индивидуальной работы в системе Windows 2000 устанавливать на компьютер не менее 64 Мбайт оперативной памяти. Дальнейшее развитие в сторону мультимедийных систем накладывает еще большие требования на размер оперативной памяти.

Самая простая схема управления памятью – однозадачная система без подкачки на диск – заключается в том, что в каждый момент времени работает только одна программа, и память разделяется между программами и операционной системой. Когда система организована таким образом, в каждый конкретный момент времени может работать только один процесс. Как только пользователь набирает команду, ОС копирует запрашиваемую программу с диска в память и выполняет ее, а после окончания процесса выводит на экран символ приглашения и ждет новой команды. Получив команду, она загружает новую программу в память, записывая ее поверх предыдущей. Так работают компьютеры с операционной системой MS-DOS.

Многозадачность с фиксированными разделами

Большинство современных систем позволяет одновременный запуск нескольких процессов. Наличие нескольких процессов, работающих в один и тот же момент времени означает, что когда один процесс приостановлен в ожидании завершения операции ввода-вывода, другой может использовать центральный процессор. Таким образом, многозадачность увеличивает загрузку процессора. На сетевых серверах всегда одновременно работают несколько процессов (для разных клиентов), но и большинство клиентских машин в наши дни также имеют эту возможность. Самый простой способ достижения многозадачности состоит в разбиении памяти на n, возможно не равных, разделов. Когда задание поступает в память, оно располагается во входной очереди к наименьшему разделу, достаточно большому для того, чтобы вместить это задание. Так как размер разделов неизменен, то все неиспользуемое работающим процессом пространство в разделе пропадает. Недостаток этого способа заключается в том, что к большому разделу очереди почти не бывает, а к маленьким разделам выстраивается довольно много задач. Небольшие задания должны ждать своей очереди, чтобы попасть в память, несмотря на то, что свободна основная часть памяти. Усовершенствованный способ заключается в организации одной общей очереди для всех разделов. Как только раздел освобождается, задачу, находящуюся ближе к началу очереди и подходящую для выполнения в этом разделе, можно загрузить в него и начать ее обработку. С другой стороны, нежелательно тратить большие разделы на маленькие задачи, поэтому существует другая стратегия. Она заключается в том, что каждый раз после освобождения раздела происходит поиск в очереди наибольшего для этого раздела задания, и именно оно выбирается для обработки. Однако этот алгоритм отстраняет от обработки мелкие задачи, хотя крайне желательно предоставить для наименьших задач лучшее обслуживание. Выходом из положения служит создание хотя бы одного маленького раздела, который позволит выполнять мелкие задания без долгого ожидания освобождения больших разделов. Другой подход предусматривает следующий алгоритм: задачу, которая имеет право быть выбранной для обработки, можно пропустить не более k раз. Когда задача пропускается, к счетчику добавляется единица. Если значение счетчика стало равным k, игнорировать задачу больше нельзя.

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

Более совершенная модель исследует эксплуатацию центрального процессора, используя закономерности теории вероятности. Допустим, что процесс проводит часть своего времени p в ожидании завершения операции ввода-вывода. Если в памяти находятся одновременно n процессов, то вероятность того, что все они ждут ввод-вывод (в таком случае центральный процессор будет бездействовать) равна pn. Тогда степень загрузки центрального процессора будет выражаться формулой .

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

Эта простая модель, тем не менее, позволяет сделать приблизительный, прогноз относительно производительности ЦП. Предположим, например, что компьютер имеет 32 Мбайт памяти, 16 Мбайт отдано операционной системе, а каждая пользовательская программа занимает по 4 Мбайт. При таких размерах разделов памяти можно одновременно загрузить в память четыре пользовательские программы. При 80 % времени на ожидание ввода-вывода в среднем мы получим загруженность ЦП равной 1-0,84, или примерно 60%. Добавление еще 16 Мбайт памяти позволит системе повысить степень многозадачности от четырех до восьми и таким образом повысить степень загруженности процессора до 83 %. Другими словами, дополнительные 16 Мбайт увеличат производительность на 38 %.

Еще 16 Мбайт могли бы повысить загрузку процессора с 83 до 93 %, увеличив производительность всего лишь на 12 %. С помощью этой модели владелец может убедиться, что первые 16 Мбайт оперативной памяти – это хорошее вложение капитала, а вторые – нет.

<== предыдущая лекция | следующая лекция ==>
Взаимоблокировка | Подкачка
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 529; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.