В. Столлингс - Операционные системы (1114679), страница 7
Текст из файла (страница 7)
При поступлении запроса контроллер передает да по информационной шине и переходит в состояние готовности для н операций ввода-вывода. С точки зрения процессора передача входных данных выглядит след образом. Процессор генерирует команду ВЯЛА, з затем сохраняет содер программного счетчика и других регистров, соответствующих выполняемой ' грамме, и переходит к выполнению других операций (например, он в однц' же время может выполнять несколько различных программ). В конце к цикла команды процессор проверяет наличие прерываний (см. рис.
1.7). Ц ". ° * Р'---' ступленни прерывания от контроллера ввода-вывода процессор сохран формацию о выполняющейся в данный момент задаче и выполняет про .' ' обрабатывающую прерывания. При этом он считывает слова из контролл' да-вывода и заносит их в память. Затем он восстанавливает контекст мы, от которой поступила команда ввода-вывода и продолжает работу, Использование для чтения блока данных ввода-вывода, управляем рываниями, показано на рис. 1.19,6.
Ввод-вывод с прерываниями нам Фектнвнее, чем программируемый ввод-вывод, так как при нем исключа'" нужное ожидание. Однако этот процесс все еще потребляет много проце времени, потому что каждое слово, которое передается из памяти в моду да-вывода или в обратном направлении, должно пройти через процессор. Почти в каждой компьютерной системе есть несколько контроллеров' " вывода, поэтому нужны механизмы, позволяющие процессору определить, из устройств вызвало прерывание, а если прерывание одно, то решить, как них будет обрабатываться в первую очередь. В некоторых системах нмее сколько шин прерываний, так что каждый контроллер ввода-вывода пос сигнал по своей шине, причем у каждой шины — свой приоритет.
Есть и др ' вариант, когда прерывающая шина всего одна, но тогда используются допал, тельные шины, по которым передаются адреса устройств. В этом случае к му устройству также присваиваются разные приоритеты. .Ф:." Прямой доступ к памяти Хотя ввод-вывод, управляемый прерываниями, более эффективен, чем стой программируемый ввод-вывод, он все еще занимает много процессорн времени для передачи данных между памятью и контроллером ввода-вы (при этом через процессор должны пройти все пересылаемые данные). Таким раз~м, обе описанные формы ввода-вывода обладают двумя недостатками. 1. С .
Скорость передачи данных при вводе-выводе ограничена скоростью, с ко . рой процессор может проверять и обслуживать устройство. 2. П . Процессор занят организацией передачи данных; при вводе-выводе для ждой передачи данных должна быть выполнена определенная последо тельность команд. Для перемещения больших объемов данных может использоваться более э~рктивны метод — прямо д й — прямой доступ к памяти (а1гесФ гаешогу асеева — ВМА). ~лунки мо быть 4~ ни ШЙ2ъ выполня няются отдельным контроллером системной шины или могут ыть д -выво . им оба троены в контроллер ввода-выво д -вывода. В любом случае метод работает следующим зом. Когда процессору нужно прочита очитать или записать блок данных, он генерирует команду аиду для модуля ЭМА, посылая ему следующую информацию: е указание, тре ребуется ли выполнить чтение или запись; е адрес устройства ввода-вывода; е начальный адрес лока б - памяти использующегося для чтения или записи; 1 е количество слов, кото в которые должны быть прочитаны или записаны.
Передав полномочия по выполнению этих операций контроллеру ПМА, процессор продолжает ра ту. н або . Контроллер ВМА слово за словом передает весь блок данных в память или из нее, не з н задействуя при этом процессор. После окончания передачи контроллер 0МА посылает процессору сигнал прерывания. Таким образом, процессор участвует только в начале и в конце передачи (рис. 1.19,а). Для передачи данных в память и из нее контроллеру 1)МА нужен контроль нэд шиной. Если в это время процессору также нужна шина, может возникнуть кон ликтная ситуация, и процессор должен ждать окончания работы модуля ВМА.
Заметим, что в этом случае нельзя говорить о прерывании, так как процессор не сохраняет информацию о состоянии задачи и не переходит к выполнению других операций. Вместо этого он вынужден сделать паузу на время выполнения одного цикла шины. В результате это приведет к тому„что во время передачи данных с использованием прямого доступа к памяти замедляется выполнение процессором тех команд, для которых е. у р у м т еб ется шина. Тем не менее при передаче большого количества информации прямой доступ к памяти намного более эффективен, чем программируемый ввод-вывод или ввод-вывод, управляемый прерываниями. Об щиеся в этой главе темы де в книге ГЯТА1 001. других руководств по устро у р пьютеров.
В числе достойных внимания учебников можно отметить следующие: исчерпывающий обзор представлен в 1РАТТ981„1НЕХХ961 — более специализиРованная книга тех же авторов, в которой акцент делаетс тся на количественных аспектах, характеризующих структуру компьютера. НЕЕ)'(96 Неппеву Л., Райегвоп Р. Сотривег Агсй1гесЕиге: А Яиапйгайи Арргоасй.
— Яап Ма1ео. СА: Могяап КаиХшапп,1996. РАТТ98 Ра11егвоп Р.. Неппеву д. Сотригег огаап(завшп апд Реваза: е ~ Тйе ~ Нагсйиаге13о~сшаге 1пеег1асе. — Яап Ма1ео, СА: Могяап Каийшапп,1996. ЯТА1.00 Я1а111пяв Ж. Сотриеег Огаап(еапоп апд Агс)игесвиге. 5'" е6.,— Бррег| Яааа1е ВЬ'ег, КЛ: РгепФлсе На11, 2000. Г„„, 1 ОбзОр компьютериых си~~~~ Основная память Блог,памяти, зарезервированний под отел 'еализация стека Рис, 1,25.
Организация типичного стека Адреса Основная память 40СО Главная программа Процедура Ргос1 Процедура Рсос2 Часть 1. Основные понятия- 4 Ф Об еп и ':~:йфф".::. ' ~;, щепринятым методом осуществления и возвратами из н я управления вызовами проц из них является использование стека, Б энном риводится краткое опис н роцедур. а ие своиств стека и е е стека, данном прилож его использования при р Стек — это упорядоченный набор элем ентов, причем при об а е ажно получить доступ лишь к одном из э р щенки к к одному из элементов. Эгот элемент назыв ршиной стека.
Число элементов стека (его азыза .вления или удаления можно делать толь его длина) является переменны р м..' только на вершине стека, поэтом е гвают магазинным списком, или спис ли списком, организованным по п и оследним вошел — первым выш " ~1 1-' Х' ел Г аэ -1п-Х1гз1-оп1 — 1 1РО). о прин Для реализации стека необходим набор ситься его элементы. Типичный по хо р ячеек памяти, в кото ые Р будут, ы подход проиллтострирован на рис.
1.25. В" вной (или виртуальной) памяти для стека резерви е б лысую часть в еме ируется лок смежных времени он частично заполнен элементами стека. я нормальной работы нужн о помнить следующие са тами стека. Для обесп "истрах процессора. адреса, которые храня Указатель стека. Содержит адрес вершины стека. Если в ст новый элемент 1РОЯН) или а. сли в стек добавля ветственно вели или из него удаляется элемент (РОР) у ичивается или уменьшается на едини . Посл т, указатель с вновь содержит адрес вершины стека.
а единицу. осле этого База стека. Содержит ес адр нижней ячейки зарезервированного блока. П добавлении элемента в пустой стек эта ячейка испо попытке извлечь лечь элемент из и стого эта яче ка используется первой. у стека генерируется сигнал ошибки. Предел стека. Содержит адрес второго кон а т.. ног б . П о лака. Ри попытке об р конца, т.е. вершины зарезервиро рируется сигнал ошибки. д авить новый элемент в заполненн й ы стек ге Традиционно сложилось так, что боль стека я у ольшинства современных машин ос ка является ячейка с максимальным ад есом, а е имальным адресом. Т ым адресом, а его пределом — ячейка ' адресом. Таким образом, стек является об енны астании заполняются ячей б я о ращенным, и при е я яче ки с убывающими адресами.
роцедуры и Возврат из нее Общеп иня р тым методом управления вызовами п о е является использов ами процедур и возвратами э црес в с ользование стека. П и об або р р отке вызова процессор помещает М с возврата. При возврате из п о е р цедуры процессор использует адрес :енны тека. а рис. 1.26 и 1.27 показан ми процедурами. ано использование стека при раб те с. о а1 Визовм и еозвра™ 61 Последовательноогь исполнения Рис. 1.36.
Вложенные процедуры Г. 1 Обзор компьютерных систем Указатель ка)ци Указатель стека в1Первоначальное б) После ) П содержимое стека СЛЬь Ргоо1 САЬ в ервнй Ь Ргос2 Рис. 1.27. И . Ррспользование сенека при ных на рис, 1.26 т) После л) После ВЕТт)ВИ СИ Ь Ргос2 обрабоптке влозкеннык е) После н) После ° хетт)йтт ввтцвз) . процедур. показан- . Часто вместе с вызовом и о е рые параметры. Это можно с процедуры бывает необхо имо д мо передать ей не жно сделать при помощи г стью является хранени е параметров в памяти ораз и щ Регистров; другой возм ' этом случае возврат дол жен осуществляться и ячейке и . сразу после команды вызо сразу после параметров.
Оба этих по ячеике памяти, располож зовании передачи параметр в а этих подхода имеют свои не о достатки. При исп етров в регистрах необходимо и вызываемой процеду га а мо согласование вызыва р, гарантирующее одинаковое асп по регистрам. При сохранени вое распределение парам внии параметров в памяти сл менного числа параметров. и усложняется передача Большую гибкость при и ботке вызова процессо ередаче парамет ов об р обеспечивает стек.
При сор заносит в стек не только ес передаваемые вызываемой и о о адрес возврата, но и парам ним. При возврате из про е мои процедуре, которая легко * о может получить дос стек, располагая их под оцедуры возвращаемые знач чения также можно зан х по адресом возврата. Набо вс рес возврата), который сох а ор всех параметров (включая' сохраняется при обращении кадром стека Мас)т. Хгапте). щ ии к процедуре, называ' Р ассмотрим пример прогр аммы, в которой испо В процедуре Р объявлены р используются процедуры Р ъявлены локальные переменные х1 переменные у1 и у2.