Основы вычислительных систем
Появление системы прерывания в компьютерах конца 50-х годов позволило существенно продвинуться в разработках ЭВМ, по-новому переосмыслив их возможности и среды применения. Действительно, уже на первых ЭВМ, обладающих этим свойством, появилась возможность автономной работы периферийных устройств после их запуска центральным устройством управления. По окончании работы или в связи с другой причиной периферийное устройство смогло через прерывание заставить центральный процессор обратить на себя внимание. Это открыло путь к широкому совмещению операций, что повлекло за собой естественное усложнение математического обеспечения. Современные операционные системы полностью разрабатываются и базируются на развитой системе прерывания.
Основные определения и характеристики
Работу вычислительной системы можно представить как последовательность программно-определяемых (порождаемых программой и возможные моменты появления которых известны) и программно-независимых (вызванных посторонними от программы источниками или моменты возникновения которых неизвестны) событий.
События, происходящие вне процессора, как правило, программно-независимые (выход параметров объекта за дозволенные пределы, запросы оператора и т. д.) и происходят асинхронно. То же относится и к периферийным устройствам, работающим одновременно с выполнением программы в процессоре, хотя начало их работы и задает процессор, однако окончание ее и последовательность операций неизвестны.
События, происходящие внутри процессора, могут быть двух типов. Последовательность арифметических операций определяется программой, в то время как особые ситуации (переполнение, попытка деления на нуль и т. д.) зависят от сочетания операндов и предусмотреть их во время программирования практически невозможно. ВС, вообще говоря, должна реагировать на любые события, которые могут повлиять на процесс вычислений. В случае программно-определяемых событий для этого достаточно иметь специальный набор команд (переход по нулю, по знаку и т. д.). Если же события программно-независимые, то, как правило, неэффективно использовать обычные программные методы для их опознания.
Предположим, что мы ввели команду перехода по какому-нибудь программно-независимому событию, тогда
· неясно, когда это событие произойдет;
· неясно, как часто следует вставлять в программу команду перехода по данному событию.
Повторение периодической проверки выполнения требуемого условия называют "сканированием входов". Если сканирование производится, например, через 25 команд, то объем памяти для программы увеличивается на 4 %, а реакция на событие может произойти с большой задержкой (максимум через 25 команд). При большом количестве проверяемых условий это сильно затрудняет работу программиста.
Чтобы ВС могла реагировать на программно-независимые события при минимальных усилиях программиста и максимально возможном быстродействии, ее надо снабдить дополнительными аппаратно-логическими средствами, совокупность которых называют системой прерывания программ (СПП).
Адресное кодирование. Вцелях повышения быстродействия компьютера используется модификация команд. Она состоит в изменении адресной части базовой команды. Ветви решений, полученные после формирования параллельной программы, или исходный набор задач для обработки на компьютере в случае многопроцессорных систем или компьютерных сетей должны быть распределены по процессорам (или компьютерам) для выполнения.