ЗАНЯТИЕ 21. «АРХИТЕКТУРА КОМПЬЮТЕРНОЙ СИСТЕМЫ»

18.1 Архитектура компьютерной системы
Компьютерная система имеет модульную структуру. Для каждого устройства (память, внешние устройства) в системе име¬ется специальное устройство управления (иначе говоря, специаль¬ный процессор), называемый контроллером устройства. Все мо¬дули (центральный процессор, память и контроллер памяти, внеш¬ние устройства и их контроллеры) соединены между собой си¬стемной шиной (system bus), через которую они обмениваются сигналами. Как мы уже знаем работой каждого контроллера управ¬ляет драйвер -специализированная низкоуровневая программа, яв¬ляющаяся частью ОС.
Вот типичная структура современной настольной или пор¬тативной компьютерной системы, с указанием наиболее распро¬страненных типов устройств и их характеристик.

Рис. 61 Ар¬хитектура компьютер-ной системы.

Центральный процессор – устройство, выполняющее ко¬манды (instructions) компьютерной системы. В современных ком¬пьютерах, как правило, он является многоядерным, т.е. имеет в своем составе от 2 до 32 ядер (копий) процессора, параллельно ра¬ботающих на общей памяти, либо гибридным, состоящим из цен¬трального и графического процессоров. Производительность каж¬дого ядра – 3 – 3.2 GHz. Заметим, что под производительностью понимается в данном случает актовая частота процессора (ядра) – время выполнения им одной самой простой машинной команды. Однако есть и другие важные факторы, определяющие общую про¬изводительность системы, — тактовая частота памяти и системной шины. Фактически итоговую производительность системы можно оценить по самой медленной из этих частей системы (обычно это системная шина). Эти характеристики необходимо принимать во внимание при выборе ипокупкекомпьютера.
Оперативная (основная) память, или просто память – устройство, хранящее обрабатываемые данные. Объем памяти – 1 – 16 гигабайт и более; меньший объем памяти использовать не реко¬мендуется, так как это может привести к значительному замедле¬нию системы. Тактовая частота памяти – 667 MHz – 1.5 GHz.
Системная шина – устройство, к которому подсоединены все модули компьютера и через которое они обмениваются сигна¬лами, например, о прерываниях. Тактовая частота шины – 1 – 1.5 GHz (это и есть фактически некая суммарная производительность системы). Обычно используется шина типа PCI (Personal Computer Interface). К ней могут быть подсоединены процессор, память, диски, принтер, модем и другие внешние устройства.
Порты – устройства с разъемами для подключения к ком¬пьютеру внешних устройств. Каждый порт имеет свой контроллер (и, соответственно, свой драйвер).
Чаще всего используется порт USB (Universal Serial Bus), с характерным плоским разъемом, размером порядка 1 см, с изобра¬жением трезубца. К портам USB могут подключаться большинство видов устройств, причем для этого не требуется предварительно отключать компьютер и подключаемое устройство, что очень удобно. Имеется несколько стандартов USB с различным быстро¬действием. Наиболее распространен ныне стандарт USB 2.0, обес¬печивающий быстродействие порта 240 – 260 килобит в секунду. Для сравнения, предыдущий стандарт – USB 1.0 – обеспечивал лишь 10 – 12 килобит в секунду (как говорится, почувствуйте раз¬ницу). Распознать тип USB-порта на Вашем компьютере можно, если вывести информацию об устройствах; в Windows: Мой ком¬пьютер / (правая кнопка мыши) Свойства / Оборудование / Диспетчер устройств / Устройства USB. При этом контроллер порта USB 2.0 будет обозначен как расширенный (enhanced). Если это не так, Вам необходимо модернизировать порты USB или сам компьютер, иначе при переписи на флэшку Вам придется ждать в 20 раз дольше . Существуют также «переходники» USB 1.0 -> USB 2.0. Новейший стандарт USB 3.0, реализация которого только началась, обеспечит быстродействие не менее 1 гигабита в секунду. К порту USB можно подключать клавиатуру, мышь, принтеры, ска¬неры, внешние жесткие диски, флэшки и даже TV-тюнеры — устройства для приема телевизионного сигнала с антенны и показа телевизионного изображения на компьютере. Рекомендуется каж¬дое устройство подключать всегда к одному и тому же порту USB, иначе для некоторых устройств (например, того же TV-тюнера) мо¬гут возникнуть проблемы.
Порты COM (communication ports) – порты для подклю¬чения различных коммуникационных устройств, например, моде¬мов – устройств для выхода в Интернет и передачи информации по аналоговой или цифровой телефонной линии. Более старое назва-ние стандарта COM-порта –RS-232. В компьютерах 10-15 – летней давности с COM-порту часто подключалась мышка (сейчас она, разумеется, подключается через USB). Разъемы COM-портов имеют два формата – «большой» (с 25 контактами -pins) и «малый» (с 9 контактами). В современных компьютерах часто разъемы COM-порты отсутствуют, но операционная система, по традиции, имитирует наличие в системе виртуальных COM-портов – вооб¬ражаемых COM-портов, которые ОС как бы инсталлирует в си¬стему при установке, например, драйверов для взаимодействия че¬рез Bluetooth или через кабель компьютера с мобильным устрой¬ством. При этом физически мобильный телефон или органайзер может быть подключен к порту USB (или соединен с компьютером беспроводной связью), но все равно для взаимодействия с ним ОС использует виртуальный COM-порт, обычно с большим номером (например, 10 или 15). COM-порт иначе называют последователь¬ным портом (serial port), так как, с точки зрения ОС и драйверов, COM-порт – это символьное устройство последовательного дей¬ствия.
Порт LPT (от line printer), или параллельный порт – это ныне уже устаревший вид порта для подключения принтера или сканера, с толстым в сечении кабелем и большим разъемом. Все новые модели принтеров и сканеров работают через USB-порты. Однако иногда приходится решать задачу подключения к новому компьютеру старого принтера. Если на компьютере нет LPT-порта, приходится покупать специальный переходник, подключаемый к USB или другим портам. Однако и здесь возможен сюрприз – разъем LPT-порта имеет несколько не совместимых друг с другом модификаций. Лучше всего иметь в домашнем «вычислительном центре» один старый компьютер с LPT-портом и через него и под¬ключать старые принтеры, обеспечивая обращение к ним с других компьютеров через домашнюю локальную сеть. Неудобство LPT-порта в том, что он требует предварительно выгрузить ОС и вы¬ключить принтер, и только после этого выполнять подсоединение к компьютеру, иначе возможен выход из строя принтера или компь¬ютера. LPT-порт может, как правило, работать и для ввода инфор¬мации, например, со сканером, но для этого требуется в низкоуров¬невой утилите Setup, запустив ее при загрузке ОС (обычно – кла¬вишей Del), установить для LPT-порта специальный режим ра¬боты:EPP – Extended Parallel Port.
Порты SCSI и SCSI-устройства.SCSI (Small Computer System Interface; произносится «скАзи», с ударением на первом слоге) – интерфейс, адаптеры и порты для подключения широкого спектра внешних устройств – жестких дисков, CD-ROM / DVD-ROM, сканеров и др. Стандарт SCSI был предложен в начале 1980-х гг. и получил широкое распространение, благодаря фирме Sun, ко¬торая широко использовала его в своих рабочих станциях. Харак¬терной удобной возможностью SCSI является возможность под¬ключения к одному SCSI-порту гирлянды (цепочки) SCSI-устройств (до 10), каждый из которых имеет уникальный для дан¬ного соединения SCSI ID – число от 0 до 9, устанавливаемое обычно на задней панели SCSI-устройства. Например, по традиции, SCSI ID сканера обычно равен 4. На одном из концов цепочки – SCSI-порт с контроллером, на другом – терминатор –переключа-тель на задней панели устройства, устанавливаемый в определен¬ное положение как признак конца SCSI-цепочки. Каждое устрой¬ство, кроме последнего, соединено со следующим SCSI-устрой¬ством специальным кабелем. SCSI-разъем напоминает разъем порта LPT, однако имеет по бокам специальные металлические захваты («лапки») для большей надежности подключения. Преимущество SCSI, кроме возможности использования гирлянд устройств, в его быстродействии, а также надежности. Ранние модели SCSI имели скорость обмена информацией до 10-12 мегабит в секунду, сейчас – 240-250 мегабит в секунду. Имеется несколько стандартов SCSI (в том числе – Wide SCSI, Ultra Wide SCSI), к сожалению, не совме¬стимых по разъемам. Автор до сих пор использует SCSI-сканер 10-летней давности, подключенный к старому компьютеру, и имеет большой положительный опыт использования SCSI-устройств для рабочих станций SPARC.
Порт VGA (Video Graphic Adapter) используется для под¬ключения монитора (дисплея), управляемого графическим кон¬троллером (процессором).
IEEE 1394 (FireWire) – порты для подключения цифровых видеокамер или фотоаппаратов. Характерная особенность – не¬большой блестящий плоский разъем шириной 3-5 мм (имеются два его стандарта). Порт работает в дуплексном режиме, т.е. позволяет управлять не только вводом информации с камеры в компьютер, но и установками самой камеры (например, перемоткой ленты) с по¬мощью компьютерной программы (например, Windows Movie Maker). С помощью такого же порта может быть подключен также телевизор, имеющий интерфейс FireWire. Характерной особенно¬стью современных компьютеров является то, что FireWire-порты монтируются прямо на материнской плате (motherboard) – ос¬новной печатной плате компьютера, на которой смонтированы процессор и память, — столь большое значение придают производи¬тели компьютеров портам для обмена мультимедийной информа¬цией. В таких случаях в технических характеристиках компьютера обычно указывается: «FireWire on board (на борту)». Читателям рекомендуется не путатьFireWire сWi-Fi – стандартом быстрой беспроводной связи; эти сокращения забавно напоминают друг друга из-за привязанности американцев к аббревиатурам в «дет¬ском стиле».
HDMI (High Definition Multimedia Interface) – интерфейс и порт. позволяющий подключить к компьютеру телевизор или другое видеооборудование, обеспечивающее наилучшее качество воспроизведения (HD – High Definition). Разъем HDMI напоминает разъем USB. HDMI-порт входит в комплектацию всех современных портативных компьютеров.
Bluetooth – устройства для беспроводного подключения (с помощью радиосвязи) к компьютеру мобильных телефонов, орга¬найзеров, а также наушников, плейеров и многих других полезных устройств. Удобство Bluetooth в том, что компьютер и телефон остаются соединенными, даже если отойти от компьютера с теле¬фоном на некоторое расстояние (например, в другую комнату), не более 10-15 метров (Bluetooth 2.0). Новый стандарт Bluetooth 3.0 обеспечивает взаимодействие на расстоянии 200-250 м. Обычно портативные компьютеры комплектуются встроенными адаптерами Bluetooth, либо можно приобрести адаптер Bluetooth, подключае¬мый через USB. Недостаток Bluetooth – относительно маленькая суммарная скорость передачи информации. Например, при пере¬сылке на компьютер через Bluetooth с мобильного телефона Nokia 3230 цифровой фотографии объемом 500 килобайт требуется ждать порядка 10 – 15 секунд.
Инфракрасный порт (IrDA) – порт для подключения но¬утбука к мобильному телефону (или двух ноутбуков друг к другу) через инфракрасную связь. Неудобство портов IrDA – необходи¬мость установки двух соединяемых устройств рядом, на расстоянии 20-30 см друг от друга, без физических препятствий между ними. Скорость передачи информации – 10-12 мегабит в секунду. Совре¬менные ноутбуки ужене комплектуются портами IrDA.
Имеются также сетевые устройства – порты и адаптеры – для подключения компьютера к локальной сети.

18.2 Функционирование компьютерной системы

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

18.3 Обработка прерываний

Операционную систему можно рассматривать как про¬грамму, управляемую прерываниями (interrupt-driven program). Прерывание центрального процессора передает управле¬ние подпрограмме обработки данного вида прерываний, являю¬щейся частью ОС. В большинстве компьютеров этот механизм реа¬лизован через вектор прерываний (interrupt vector) – резидент¬ный массив в оперативной памяти, в котором хранятся доступные по номерам прерываний адреса подпрограмм-обработчиков преры¬ваний (модулей ОС). При обработке прерывания аппаратура и ОС сохраняют адрес прерванной команды. При возобновлении вы¬числений будет вновь повторено выполнение прерванной команды.
Очевидно, что при обработке прерывания, в свою очередь, может возникнуть другое прерывание. В этом случае новое входя¬щее прерывание задерживается (disabled), и информация о нем запоминается в очереди прерываний – системной структуре ОС, обеспечивающей поочередную обработку всех возникших преры¬ваний.
Кроме прерываний, генерируемых аппаратурой неявно при вычислениях (например, отсутствие страницы в оперативной па¬мяти), возможно также программируемое прерывание (trap; до¬словно – ловушка) с помощью специальной команды процессора, — например, при обнаруженной ошибке в программе. В случае такого прерывания также работает общий механизм запуска обработчика прерывания – части ОС. Таким образом, с упрощенной точки зре¬ния, ОС можно рассматривать как набор обработчиков прерываний.
При прерывании ОС сохраняет состояние процессора – значения регистров и значение счетчика команд (program counter – PC) – адреса прерванной команды. Обработчик прерывания в ОС определяет по содержимому сегмента объектного кода, какого вида прерывание возникло и какие действия по его обработке следует предпринять. Среди возможных видов прерываний, кроме фикса¬ции различных ошибок, имеются также прерывания по таймеру – периодические прерывания через определенный квант времени, предназначенные для опроса устройств (polling) – действий опе¬рационной системы по периодической проверке состояния всех портов и внешних устройств, которое может меняться с течением времени: например, к USB-порту была подключена флэшка; прин¬тер закончил печать и освободился, и т.д. ОС выполняет реконфи¬гурацию системы и корректирует системные таблицы, хранящие информацию об устройствах.

18.4 Архитектура ввода-вывода

На рис. 62 изображена временная диаграмма прерываний процессора, выполняющего ввод-вывод.

Рис. 62. Временная диаграмма прерываний процессора при вводе-выводе.

На диаграмме видны моменты смены состояний процессора и устройства ввода-вывода: прерывание по запросу на ввод-вывод, обработка этого прерывания и пересылка информации из памяти в буфер устройства, вызов драйвера и контроллера, окончание об-мена и прерывание контроллера, продолжение вычислений.
Имеются две разновидности режима ввода-вывода – син¬хронный и асинхронный.
Синхронный ввод-вывод – это ввод-вывод, выполнение ко¬торого приводит к переходу программы в состояние ожидания, до тех пор, пока операция ввода-вывода не будет полностью завер¬шена. На аппаратном уровне – команда ввода-вывода переводит процессор в состоящие ожидания (idle) до следующего прерывания. При данном режиме в каждый момент выполняется не более одного запроса на ввод-вывод; одновременный ввод-вывод отсутствует. Синхронный вывод выполняют всем программистам привычные операторы вида println(x).При их использовании в программах мы не задумывается над тем, что используем достаточно неэффектив¬ный вариант синхронного ввода-вывода. Однако до сих пор мыш¬ление большинства программистов – последовательное, в том смысле, что о своей программе они мыслят как о чисто последова¬тельно выполняемой, и вообще не думают о возможности какого-либо распараллеливания. При отладке программы, либо если раз¬мер выводимой информации невелик, это обычно вполне допу¬стимо.
Асинхронный ввод-вывод – ввод-вывод, выполняемый па¬раллельно с выполнением основной программы. После того. как начинается асинхронный ввод-вывод, управление возвращается пользовательской программе, без ожидания завершения ввода-вы¬вода (последнее может быть выполнено специальной явной опера¬цией). Таким образом, операция асинхронного обмена как бы раз¬бивается на две: начать ввод-вывод и закончить ввод-вывод. Последняя выполняется для того, чтобы в этом месте программа все же ожидала завершения обмена, когда его результат необходим для дальнейших вычислений. Такой подход к реализации обмена более труден для понимания программистами и может привести к ошибкам (например, использована только операция начала ввода-вывода, а вызов операции его окончания забыт).

18.5 Таблица состояния устройств

На системном уровне, при обмене происходит следующее. Выполняется системный вызов (system call) – запрос к ОС путем вызова системной подпрограммы, в данном случае – чтобы позво¬лить пользователю ожидать завершения ввода-вывода. Операцион¬ная система хранит таблицу состояния устройств, в которой каж¬дому устройству соответствует элемент, содержащий тип устрой¬ства, его адрес и состояние. ОС индексирует таблицу устройств, с целью определения состояния устройства и модификации элемента таблицы для включения в нее информацию о прерывании.
Архитектура синхронного (a) и асинхронного (b) ввода-вы¬вода иллюстрируется на рис. 63.

Рис. 63. Архитектура синхронного и асинхронного ввода-вывода

На схеме видно, что отличительной чертой синхронного обмена является переход процессора в состояние ожидания до окончания операции ввода-вывода.
На рис. 64 показан пример состояния таблицы устройств ввода-вывода, хранимой операционной системой. Для каждого устройства хранится информация о его имени, состоянии, а для за¬нятых устройств – адрес начала и длина порции информации, под-лежащей обмену. Если для некоторого устройства (в примере – диск3) имеется несколько запросов на ввод-вывод, все они органи¬зуются в очередь и обслуживаются по очереди, по мере освобожде¬ния устройства.

Рис. 64. Пример состояния таблицы внешних устройств ОС

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

18.6 Структура памяти

Основная (оперативная) память – единственная крупная часть памяти, к которой процессор имеет непосредственный до¬ступ. Как известно, содержимое основной памяти не сохраняется после перезагрузки системы или после выключения компьютера. Внешняя (вторичная) память – расширение основной памяти, обеспечивающее функциональность устойчивой (сохраняемой) па¬мяти большого объема.
В качестве вторичной памяти чаще всего используются жесткие диски (hard disks). Физически они состоят из твердых пластин из металла или стекла, покрытых магнитным слоем для записи. Поверхность диска логически делится на дорожки (tracks), которые, в свою очередь, делятся на секторы. Контроллер диска определяет логику взаимодействия между устройством и компью¬тером.
Устройство жесткого диска показано на рис. 65.

Рис. 65. Устройство жесткого диска

Как видно из рисунка, цилиндр — это группа вертикально расположенных друг под другом секторов различных магнитных дисков с одним и тем же номером дорожки.
Системы памяти организованы в иерархию, исходя их быстродействия, стоимости и возможности сохранения информа¬ции (устойчивости). Для оптимизации работы памяти любого вида используется ассоциативная память (кэш – cache), размещаемая в более быстродействующих системах памяти и хранящая наиболее часто используемые элементы более медленной памяти. С этой точки зрения, оперативную память можно рассматривать как кэш для внешней памяти. Кэш-память – это, по сути дела, ассоциатив¬ный список пар (Адрес, Значение), причем аппаратный поиск в ней происходит по адресу как по ключу. Таким образом, перед обраще¬нием к медленной внешней памяти сначала происходит поиск по заданному адресу в кэш-памяти, и только если он не привел к успеху, выполняется стандартное обращение к внешней памяти. Принцип кэширования очень важен и позволяет существенно уско¬рить работу со внешней памятью. Однако он требует реализации специальной политики управления кэш-памятью, так как кэширо¬вание вводит дополнительный уровень в иерархии памяти и тре¬бует согласованности данных, хранимых одновременно на разных уровнях памяти. Аппаратура и ОС поддерживают кэш команд, кэш данных, кэш жесткого диска и т.д. – для всех видов памяти.
Иерархия устройств памяти (в упрощенном виде) показана на рис. 66

Рис. 66. Иерархия устройств памяти

Более быстрые виды памяти на схеме расположены выше, более медленные – ниже. Схема особых комментариев не требует. Некоторые часто используемые виды внешней памяти:
• флэш-память (флэшка) – внешняя память компактного размера, модуль которой подключаются через USB-порт. Параметры: объем — до 128 гигабайт и более; скорость об¬мена через порт USB 2.0: 240 – 260 мегабит в секунду;
• внешний жесткий диск (ZIV drive и другие) – объем до 1 терабайта; работает также через порт USB;
• BluRay – диски – новая разновидность компакт-дисков большой емкости (односторонние – 25 гигабайт, двусторон¬ние – 50 гигабайт). Для сравнения, стандартная емкость диска DVD составляет 4.7 гигабайт.

18.7 Аппаратная защита памяти и процессора

В целях совместного использования системных ресурсов (памяти, процессора, внешних устройств) несколькими програм¬мами, требуется, чтобы аппаратура и операционная система обес¬печили невозможность влияния некорректно исполняемой про-граммы на другие пользовательские программы. Для этого необхо¬дима аппаратная поддержка, как минимум, двух режимов исполне¬ния программ – пользовательского (непривилегированного) ре¬жима (user mode) – для выполнения программ пользователей – и системного (привилегированного, режима ядра — system mode, monitor mode) — для модулей операционной системы. Идея двух режимов в том, чтобы выполняемые в привилегированном режиме модули ОС могли выполнять распределение и выделение систем¬ных ресурсов, в частности, формировать новые адреса, а пользова¬тельские программы, в результате ошибок или преднамеренных атак, выполняясь в обычном режиме, не могли бы обратиться в об¬ласть памяти операционной системы или другой задачи, изменять их и этим нарушать их целостность. Для определения текущего ре¬жима выполнения команд в аппаратуре вводится бит режима, рав¬ный 0 для системного и 1 – для пользовательского режима. При прерывании или сбое аппаратура автоматически переключается в системный режим. Некоторые привилегированные команды, изме¬няющие системные ресурсы и состояние системы (например, ре¬гистр состояния процессора), должны выполняться только в си¬стемном режиме, что защитит системные ресурсы от случайной или преднамеренной порчи при выполнении этих команд обычной пользовательской программой. Для защиты ввода-вывода все ко¬манды ввода-вывода считаются привилегированными. Необходимо гарантировать, чтобы пользовательская программа никогда не по¬лучила управление в системном режиме и, в частности, не могла бы записать новый адрес в вектор прерываний, который, как уже отме¬чалось, содержит адреса подпрограмм обработки прерываний, в частности, связанных со вводом-выводом.
Использование системного вызова для выполнения ввода-вывода иллюстрируется на рис. 67.

Рис. 67. Использование системного вызова для выполнения ввода-вывода.

На схеме системный вызов номер n вызывает программируемое прерывание (trap), вызывается ОС в привилегированном режиме, и по номеру системного вызова определяется операция ввода-вывода, которая должна быть выполнена по данному прерыванию. Затем в привилегированном режиме выполняется операция ввода-вывода, после чего происходит прерывание и возврат в пользовательскую программу, выполняемую в обычном режиме.
Для защиты памяти необходимо обеспечить защиту, по крайней мере, для вектора прерываний и подпрограмм обслуживания прерываний. Например, недопустимо разрешить пользовательской программе формировать в обычном режиме произвольный адрес и обращаться по нему, так как при этом может быть нарушена целостность системных областей памяти. Чтобы этого избежать, в аппаратуре вводятся два регистра, которые отмечают границы допустимой области памяти, выделенной пользовательской программе. Это базовый регистр (base register), содержащий начальный адрес области памяти, выделенной пользовательской программе, и регистр границы (limit register), содержащий размер пользовательской области памяти. Память вне отмеченного диапазона считается защищенной, т.е. обращения к ней из пользовательской программы не допускаются (при попытке такого обращения возникает прерывание).
Использование базового регистра и регистра границы иллюстрируется на рис. 68.

Рис. 68. Использование регистра базы и регистра границы для защиты памяти

На схеме заданию 2 выделена область памяти, начиная с адреса 300040 (хранящегося в регистре базы), длиной 120900 (хранящейся в регистре границы), т.е. по адрес 420939 включительно. Обращение, например, по адресу 420940 из программы задания 2 приводит к прерыванию как недопустимое – срабатывает защита памяти.

Схема аппаратной защиты адресов памяти иллюстрируется рис. 69.

Рис. 69. Схема аппаратной защиты адресов памяти

Оставить комментарий

avatar
  Подписаться  
Уведомление о