Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BOS.doc
Скачиваний:
12
Добавлен:
21.12.2018
Размер:
1.25 Mб
Скачать

Вопрос 4. Понятие ресурса, виды ресурсов, управление ресурсами.

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

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

Вопрос 5. Виртуальная память. Методы распределения памяти.

Понятие виртуальной памяти

Уже достаточно давно пользователи столкнулись с проблемой размещения в памяти программ, размер которых пре­вышал имеющуюся в наличии свободную память. Решением было разбиение программы на части, называемые оверлеями. 0-ой оверлей начинал выполняться первым. Когда он заканчивал свое выполнение, он вызывал другой оверлей. Все оверлеи хранились на диске и перемещались между памятью и диском средствами операционной системы. Однако разбиение программы на части и планирование их загрузки в оперативную память должен был осуществлять программист. Развитие методов организации вычислительного процесса в этом направлении привело к появлению метода, извест­ного под названием виртуальная память. Виртуальным называется ресурс, который пользователю или пользовательской про­грамме представляется обладающим свойствами, которыми он в действительности не обладает. Так, пользователю может быть предоставлена виртуальная ОП, размер которой превосходит всю имеющуюся в системе реальную ОП. хранятся на одном или нескольких раз­нородных запоминающих устройствах, обычно на дисках, и при необходимости частями отображаются в реальную память. Таким образом, виртуальная память - это совокупность программно-аппаратных средств, позволяющих пользовате­лям писать программы, размер которых превосходит имеющуюся оперативную память; для этого виртуальная память решает следующие задачи: размещает данные в запоминающих устройствах разного типа, например, часть программы в оперативной памяти, а часть на диске; • перемещает по мере необходимости данные между запоминающими устройствами разного типа, например, подгружает нужную часть программы с диска в оперативную память; • преобразует виртуальные адреса в физические. Все эти действия выполняются автоматически, без участия программиста, то есть механизм виртуальной памяти является прозрачным по отношению к пользователю. Наиболее распространенными реализациями виртуальной памяти является страничное, сегментное и странично-сегментное распределение памяти, а также свопинг.

Виртуальная память – это совокупность программно-аппаратных средств, позволяющие пользователю писать программы, размер которых превосходит имеющую оперативную память. Решает следующие задачи:

  • Размещает данные в запоминающихся устройствах разного типа

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

  • Преобразование виртуальных адресов физической памяти

Страничное распределение

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

  • Признак модификации страниц (для того чтобы узнать, где находится страница – в АЗУ или на диске)

  • Признак невыгружаемости (какая страница не загружена)

  • Признак обращения к страницам

  • Время последнего обращения

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

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

Сегментное распределение

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

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

Виртуальный адрес при сегментной организации памяти может быть представлен парой (g, s), где g - номер сегмента, а s - смещение в сегменте. Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s.

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

Сегментно-страничное распределение

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

Свопинг

Разновидностью виртуальной памяти является свопинг.

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

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

Переход от виртуальных адресов к физическим осуществляется

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

2 способ: программа загружается в неизменном виде в виртуальных адресах. Во время выполнения программы при каждом обращении к оперативной памяти выполняется преобразования виртуального адреса в физический.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]