Реферат: Основные компоненты ВС
.
Программа операционной системы, которая загружает задачи в память, может посмотреть, какие из задач ожидают обработки, и если есть задача, которая помещается в один из свободных фрагментов, она может ее загрузить. Но возникает второй вопрос: а как быть, если нет такой задачи, которая поместится в освободившийся фрагмент. При этом проблема заключается в том, что даже если найдется задача (№6), которая поместится в указанном фрагменте, то останется еще меньший фрагмент памяти, в который уже нельзя практически ничего записать. Количество таких, никому не нужных, фрагментов постепенно увеличивается. Это процесс фрагментации памяти.
Фрагментация может происходить и в оперативной памяти, и на внешнем запоминающем устройстве. В результате через некоторое время возникает достаточно интересная и грустная ситуация: свободного адресного пространства много, но при этом мы не можем загрузить ни одной новой задачи. Это означает, что система в целом начинает деградировать. Например, если Вы пошлете заказ на выполнение какого-то действия, то Вам придется неоправданно долго ждать.
Для борьбы с фрагментацией памяти, а также для решения проблемы перемещения программы по адресному пространству, используется, так называемая, виртуальная память. Суть ее работы заключается в следующем. Пусть имеется некоторое адресное пространство программы, то есть то адресное пространство, в терминах которого оперирует программа. И имеется адресное пространство физическое, которое зависит от времени. Оно характеризует реальное состояние физической оперативной памяти.
В машинах, поддерживающих виртуальную память, существует механизм преобразования адресов из адресного пространства программы в физическое адресное пространство, то есть при загрузке задачи в память машины операционная система размещает реальную задачу в той оперативной памяти, которая является свободной, вне зависимости от того, является ли этот фрагмент непрерывным, либо он фрагментирован. Это первое действие выполняет операционная система. Она знает о состоянии своих физических ресурсов: какие свободны, какие заняты.
Второе: операционная система заполняет некоторые аппаратные таблицы, которые обеспечивают соответствие размещения программы в реальной оперативной памяти с адресным пространством, используемым программой. То есть можно определить, где в физической памяти какая часть программы размещена, и какая часть адресного пространства программы поставлена ей в соответствие.
После этого запускается программа, и начинает действовать аппарат (или механизм) виртуальной памяти. Устройство управления выбирает очередную команду. Из этой команды оно выбирает операнды, то есть адреса и те индексные регистры, которые участвуют в формировании адреса. Устройство управления (автоматически) вычисляет исполнительный адрес того значения, с которым надо работать в памяти. После этого автоматически (аппаратно) происходит преобразование адреса исполнительного программного (или виртуального) в адрес исполнительный физический с помощью тех самых таблиц, которые были сформированы операционной системой при загрузке данной программы в память. И продолжается выполнение команды. Аналогично выполняется и, например, команда безусловного перехода на какой-то адрес. Точно так же устройство управления вычисляет сначала адрес исполнительный, после чего он преобразуется в адрес физический, а потом значение этого физического адреса помещается в счетчик команд. Это и есть механизм виртуальной памяти.
Рассмотрим простейший пример организации виртуальной памяти: вычислительную систему с, так называемой, страничной организацией памяти. Суть страничности памяти заключается в том, что аппаратно все адресное пространство оперативной памяти разделено на блоки фиксированного объема. Обычно размер таких блоков равен степени двойки. При этом сохраняется сквозная нумерация ячеек памяти. Структура адреса в данной вычислительной машине такова: адрес любой ячейки памяти представлен в виде двух полей; старшие его разряды являются номером страницы, а младшие разряды являются смещением относительно страницы (здесь используется тот факт, что размер страницы равен степени двойки).
Исполнительный адрес
№ Страницы | Смещение относительно страницы |
Итак, мы имеем машину со страничной организацией памяти. Для управления этой страничной памятью, процессор содержит, так называемую, таблицу приписки (ТП). Это аппаратное средство машины, реализованное с помощью регистровой памяти. Структура этой таблицы:
Таблица приписки
№ Виртуальной страницы |
№ Физической страницы |
0 | 25 |
1 | 1 |
2 | 30 |
. | . |
. | . |
. | . |
L-1 | -1 |
ТП имеет L строк, где L- максимальное число страниц, адресуемых в данной машине (то есть адресное пространство программы может состоять не более чем из L страниц). Каждая строка этой таблицы соответствует виртуальной странице программы с номером, совпадающим с номером строки. Строка содержит номер физической страницы, соответствующей данной виртуальной странице.
При загрузке и запуске программы операционная система размещает виртуальные страницы в некоторых физических страницах оперативной памяти, а их соответствие устанавливается в ТП. Например, операционная система взяла 0-ую виртуальную страницу памяти и поместила ее в 25-ую страницу физической памяти, 1-ую страницу разместила в 1-ой странице, а 2-ую - в 30-ой (и так далее распределила все страницы).После этого передается управления на начало программы, а за тем работает тот механизм, который был описан выше: по номеру виртуальной страницы из таблицы аппаратно выбирается соответствующая строка, и содержащийся в ней номер физической страницы аппаратно подставляется в исполнительный адрес вместо номера виртуальной страницы, то есть происходит просто замена старших битов исполнительного адреса.
На самом деле, когда операционная система обращается к какой-то строчке таблицы, то сначала она производит контроль. В действительности, строка ТП содержит некоторый код, который является либо адресом физической страницы, либо некоторым специальным кодом, на который схемы управления процессора реагируют определенным образом. Например, если этот код больше либо равен нулю, это значит, что можно продолжать работу. Если же в этой строке содержится код меньше нуля, например -1, то обращение к ней устройств преобразования виртуального адреса в физический, вызовет прерывание. Это прерывание обычно называется прерыванием по защите памяти. Дело в том, что операционная система, заполняя ТП, указывает, какие из виртуальных страниц адресного пространства не принадлежат данной программе, и если происходит выход за пределы дозволенной памяти, генерируется прерывание по защите памяти.
Для каждой программы нужна своя таблица приписки. При переходе от одной программы к другой содержимое ТП сохраняется операционной системой в некоторой своей программной таблице (массиве) и затем изменяются значения в ТП.
Продолжение в теме “Операционные системы”
(Подкачка, или SWAPPING)
Внешние устройства
Внешние устройства можно определить как все те устройства, которые отличаются от процессора и памяти. Управление внешними устройствами осуществляется через систему прерываний. Внешние устройства можно подразделить на Внешние Запоминающие Устройства (ВЗУ) и Устройства Ввода/Вывода (УВВ) информации. ВЗУ - это устройства, способные хранить информацию некоторое время, связанное с физическими свойствами конкретного устройства, и обеспечивать чтение и/или запись этой информации в оперативную память. Если рассматривать ВЗУ с точки зрения использования различными компонентами программного обеспечения, то можно выделить следующие типы устройств:
1. Магнитный барабан. Магнитный барабан - это устройство, которое характерно для больших вычислительных комплексов. Обычно оно используется операционной системой для хранения системной информации. Суть работы этого устройства состоит в следующем.
Имеется металлический цилиндр большого веса (вес здесь имеет значение для поддержания стабильной скорости вращения), который вращается вокруг своей оси. Поверхность этого цилиндра покрыта слоем материала, способного хранить информацию (с него можно читать и на него можно записывать информацию). Над поверхностью барабана размещается p считывающих головок. Их положение зафиксировано над поверхностями, которые называются треками (track). Каждый трек разделен на равные части, которые называются секторами. В каждый момент времени в устройстве может работать только одна головка. Запись информации происходит по трекам магнитного барабана, начиная с определенных секторов. Координатами информации служат следующие параметры (№Трека, №Сектора и Объем информации).
Для чтения информации с магнитного барабана производятся следующие действия: включается головка, соответствующая номеру трека, и прокручивается барабан до появления под головкой начала сектора с заданным номером. После этого начинается обмен. Практически во всех ВЗУ, основанных на вращении носителя, существует понятие сектора, и в каждый момент времени устройство знает, над каким сектором оно находится. Магнитные барабаны - это устройства, имеющие одну из самых больших скоростей доступа, так как электронные и механические действия в его работе минимальны (вращение барабана).
Магнитные диски.
Имеется несколько дисков, размещенных на одной оси, которые вращаются с некоторой постоянной скоростью. Каждый такой диск может иметь две информационно-несущие поверхности (верхнюю и нижнюю), покрытые слоем, способным фиксировать информацию. Диски имеют номера; поверхности каждого диска также пронумерованы (0,1). Концентрическим окружностям одного радиуса на каждом диске соответствует условный цилиндр. Диск также разбит на сектора. Координаты информации на диске (№Диска, №Поверхности, №Цилиндра, №Сектора).