The design of the UNIX Operating System 98 страница



 

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

 

• Программное прерывание происходит в результате выполнения специальной команды.

 

• Процессор при выполнении программного прерывания сохраняет свое состояние перед выполне-нием следующей команды.

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

 

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

 

Прямой доступ к памяти (Direct Memory Access – DMA)

 

Использование механизма прерываний позволяет разумно загружать процессор в то время, когда устрой-ство ввода-вывода занимается своей работой. Однако запись или чтение большого количества информа-ции из адресного пространства ввода- вывода (например, с диска) приводят к большому количеству опе-раций ввода-вывода, которые должен выполнять процессор. Для освобождения процессора от операций последовательного вывода данных из оперативной памяти или последовательного ввода в нее был пред-ложен механизм прямого доступа внешних устройств к памяти – ПДП или Direct Memory Access – DMA. Давайте кратко рассмотрим, как работает этот механизм.

 

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


Основы операционных систем 135

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


Дата добавления: 2021-01-21; просмотров: 120; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!