Автор: Пользователь скрыл имя, 24 Марта 2013 в 11:42, курс лекций
Первые шаги по созданию электронных вычислительных машин были предприняты в конце второй мировой войны. В середине 40-х были созданы первые ламповые вычислительные устройства, и появился принцип программы, хранимой в памяти машины (John Von Neumann, июнь 1945г). В то время одна и та же группа людей участвовала и в проектировании, и в эксплуатации, и в программировании вычислительной машины. Это была скорее научно-исследовательская работа в области вычислительной техники, а не регулярное использование компьютеров в качестве инструмента решения каких-либо практических задач из других прикладных областей. Программирование осуществлялось исключительно на машинном языке.
Регистровая адресация является частным случаем укороченной, когда в качестве фиксированных ячеек с короткими адресами используются регистры (ячейки сверхоперативной или местной памяти) процессора. Например, если таких регистров 16, то для адреса достаточно четырех двоичных разрядов. Регистровая адресация наряду с сокращением длины адресов операндов позволяет увеличить скорость выполнения операций, так как уменьшается число обрашений к оперативной памяти
Если система использует
несколько типов адресации, то в
команде обязательно
Адресация слов переменной длины. Эффективность вычислительных систем, предназначенных для обработки данных, повышается, если имеется возможность выполнять операции со словами переменной длины. В этом случае в машине может быть предусмотрена адресация слов переменной длины, которая обычно реализуется путем указания в команде местоположения в памяти начала слова и его длины.
Стековая адресация, реализующая безадресное задание операндов, особенно широко используется в микропроцессорах и мини-ЭВМ.
Стек представляет собой группу последовательно пронумерованных регистров или ячеек памяти, снабженных указателем стека, в котором автоматически при записи и считывании устанавливается номер (адрес) последней занятой ячейки стека (вершины стека). При операции записи заносимое в стек слово помещается в следующую по порядку свободную ячейку стека, а при считывании из стека извлекается последнее поступившее в него слово.
Автоинкрементная и автодекрементная адресации. Поскольку регистровая косвенная адресация требует предварительной загрузки регистра косвенным адресом из оперативной памяти, что связано с потерей времени, такой тип адресации особенно эффективен при обработке массива данных, если имеется механизм автоматического приращения или уменьшения содержимого регистра при каждом обращении к нему. Такой механизм называется соответственно автоинкрементной и автодекрементной адресацией. В этом случае достаточно один раз загрузить в регистр адрес первого обрабатываемого элемента массива, а затем при каждом обращении к регистру в нем будет формироваться адрес следующего элемента массива.
При автоинкрементной адресации сначала содержимое регистра используется как адрес операнда, а затем получает приращение, равное числу байт в элементе массива. При автодекрементной адресации сначала содержимое указанного в команде регистра уменьшается на число байт в элементе массива, а затем используется как адрес операнда.
Автоинкрементная и
Индексация. Для реализуемых на ЭВМ методов решения математических задач и обработки данных характерна цикличность вычислительных процессов, когда одни и те же процедуры выполняются над различными операндами, упорядоченно расположенными в памяти. Поскольку операнды, обрабатываемые при повторениях цикла, имеют разные адреса, без использования индексации требовалось бы для каждого повторения составлять свою последовательность команд, отличающихся адресными частями.
Программирование циклов существенно упрощается, если после каждого выполнения цикла обеспечено автоматическое изменение в соответствующих командах их адресных частей согласно расположению в памяти обрабатываемых операндов. Такой процесс называется модификацией команд, и основан на возможности выполнения над кодами команд арифметических и логических операций.
Управление вычислительным циклом должно обеспечивать повторение цикла нужное число раз, а затем выход из него.
Автоматическая модификация
Для выполнения индексации в машину вводятся так называемые индексные регистры. Исполнительный адрес при индексации формируется путем сложения адресного кода команды (смещения) с содержимым индексного регистра (индексом), а при наличии базирования - и с базовым адресом.
Для управления индексацией используются команды, задающие операции над содержимым индексных регистров - команды индексной арифметики. Можно отметить основные виды индексных операций:
- засылка в соответствующий индексный регистр начального значения индекса;
- изменение индекса;
- проверка окончания
Иногда применяется аппаратура, поддерживающая сегментную двумерную адресацию, в условиях которой программы представляют собой систему логических сегментов, связанных друг с другом в процессе выполнения с помощью ссылок. Есть машины, образующие из блоков, содержащих последовательные адресные участки, рамочные структуры. В таких машинах любой блок может динамически связываться с различными физическими адресами, не требуя изменения адресации непосредственно в программах. Каждый из перечисленных механизмов предполагает свою стратегию управления памятью со стороны ОС.
Структура прерываний. Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств вычислительной системы и реагировать на особые состояния, возникающие при работе процессора.
Прерывания – это принудительная передача управления от выполняющейся программы к операционной системе, а через неё к соответствующей программе обработки прерываний, происходящая при определенном событии. Основная цель введения прерываний – реализация асинхронного режима работы и распараллеливания работы отдельных устройств вычислительного комплекса. Механизм прерываний реализуется аппаратно-программными средствами.
Структуры систем прерываний могут быть самыми различными, но все они имеют общую особенность – прерывание непременно ведет за собой изменение порядка выполнения команд процессором. Механизм обработки прерываний включает в себя следующие элементы:
Первые 3 шага реализуются аппаратными средствами, а остальные – программно.
Главные функции механизма прерывания:
Переход от прерванной программе к обработчику и обратно должен производится как можно быстрее. Одним из быстрых методов является использование таблицы, содержащей перечень всех допустимых для компьютера прерываний и адреса соответствующих обработчиков. Для корректного возвращения к прерванной программе, перед передачей управления обработчику, содержимое регистров процессора запоминается либо в памяти с прямым доступом либо в системном стеке.
Обслуживание прерываний. Наличие сигнала прерывания не обязательно должно вызывать прерывание исполняющейся программы, процессор может обладать системой защиты от прерываний: отключение системы прерываний либо запрет или маскирование отдельных сигналов прерываний. Программное управление этими средствами позволяет ОС регулировать обработку сигналов прерывания. Процессор может обрабатывать прерывания сразу по приходу прерывания, откладывать их обработку на некоторое время, полностью игнорировать. Обычно операции прерывания выполняются только после завершения выполнения текущей команды. Поскольку сигналы прерывания возникают в произвольные моменты времени, то на момент прерывания может существовать несколько сигналов прерывания, которые могут быть обработаны только последовательно. Чтобы обработать сигналы прерывания в разумном порядке им присваиваются приоритеты. Программы, управляя специальными регистрами маски, позволяют реализовать различные дисциплины обслуживания:
с относительным приоритетом. При этом обслуживание не прерывается даже при наличии запросов с более высокими приоритетами. после окончания обслуживания данного запроса (текущего) обслуживается запрос с наивысшим приоритетом. для организации такой дисциплины необходимо в программе обслуживания данного запроса наложить маски на все остальные прерывания или просто отключить систему прерываний.
с абсолютным приоритетом. Всегда обслуживаются задачи с наивысшим приоритетом. Для реализации этой дисциплины при запросе на обработку прерываний маскируются все прерывания с низшим приоритетом. При этом возможно многоуровневое прерывание, т. е. прерывание программы обработки прерывания. Число уровней прерывания в этом режиме изменяется и зависит от приоритета запроса по принципу стека: LCFS – last come first served, т . е. запрос с более высоким приоритетом может прервать запрос с более низким приоритетом. При появлении запроса на прерывание система прерываний идентифицирует сигнал и если прерывания разрешены, то управление передается на соотв. программу обработки прерываний.
Служебные секции, в которых осуществляется сохранение контекста прерванной задачи и последняя секция, в которой осуществляется восстановление контекста, не могут быть прерваны. Поэтому на время выполнения центральной секции обработки прерываний прерывания разрешены, на время работы заключительной секции подпрограмма обработки прерываний должна быть отключена, а после восстановления контекста прерванной задачи включена вновь. Эти действия нужно выполнять в каждой обработке прерываний.
Во многих ОС 1 секция обработки прерываний выделяется в специальный программный модуль наз. супервизором прерываний.
Вектор состояния (state vector) отражает состояние программы, выполняющейся процессором. Он служит для определения той информации, которая должна быть помещена в регистр процессора и отдельные ячейки памяти в момент прерывания для обеспечения возможности возобновления приостановленной программы.
Типы прерываний :
Прерывания связаны между
Применяется так называемая система масок прерываний, разрешения (запрещения) обработки прерываний.
Система команд - влияет на структуры и функциональные характеристики механизмов ввода-вывода, на способы реализации системных функций.
Вся система команд может делиться на две группы: привилегированные команды и непривилегированные. Привилегированные команды могут выполняться в режиме управления, а непривилегированные - в режиме задачи. Переход в режим управления в некоторых системах выполняется автоматически, при прерывании, в других системах прерывание может вызвать, а может и не вызвать переход в этот режим.
Переход из режима задачи в режим управления обычно осуществляется в результате выполнения специальной команды, инициирующей прерывание, например, SVC (Supervisor Call - вызов супервизора).
Механизмы защиты. Назначение механизма защиты, встроенного в процессор - запретить какой-либо программе обращения к не принадлежащему ей участку памяти. Различают следующие механизмы защиты:
а) с использованием регистров-ограничителей, куда заносится минимальное и максимальное значение адресов.
б) с использованием ключа защиты, области памяти, доступные данной программе, помечаются тем же ключом. Ключ представляет собой несколько битов информации и помещается в регистры или ячейки, не доступные программам, работающим в режиме задачи. По завершению формирования адреса ключ выполняющейся программы сравнивается с ключом адресуемой области.
в) механизм защиты совмещен с механизмом адресации (комплексный механизм с использованием ассоциативных MAP-таблиц).
Кроме выше указанных характеристик ЦП, на общую структуру ОС оказывают влияние: система микрокоманд (если она имеется); иерархия и организация памяти (наличие основной и промежуточной (кэш) памяти), а также других видов - ROM (read only memory); структура оборудования ЭВМ в целом.