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

Архитектура компьютерной системы

Показывать лекцию целиком

Презентацию к данной лекции Вы можете скачать здесь.

Введение

В данной лекции рассмотрим более подробно архитектуру компьютерной системы. Будут рассмотрены следующие вопросы:

  • функционирование компьютерной системы
  • архитектура ввода-вывода
  • структура памяти
  • иерархия памяти
  • аппаратная защита памяти
  • общая архитектура системы.
  • Архитектура компьютерной системы

    (рис 4.1) Архитектура компьютерной системы.

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

    Вот типичная структура современной настольной или портативной компьютерной системы, с указанием наиболее распространенных типов устройств и их характеристик.

    ), т.е. имеет в своем составе от 2 до 32 ядер (копий) процессора, параллельно работающих на общей памяти, либо ), состоящим из центрального и графического процессоров. Производительность каждого ядра – 3 – 3.2 GHz. Заметим, что под производительностью понимается в данном случае тактовая частота процессора (ядра) – время выполнения им одной самой простой машинной команды. Однако есть и другие важные факторы, определяющие общую производительность системы, - тактовая частота памяти и системной шины. Фактически итоговую производительность системы можно оценить по самой медленной из этих частей системы (обычно это системная шина). Эти характеристики необходимо принимать во внимание при выборе и покупке компьютера.

    Оперативная (основная) память, или просто память – устройство, хранящее обрабатываемые данные. Объем памяти – 1 – 16 гигабайт и более; меньший объем памяти использовать не рекомендуется, так как это может привести к значительному замедлению системы. Тактовая частота памяти – 667 MHz – 1.5 GHz.

    Системная шина – устройство, к которому подсоединены все модули компьютера и через которое они обмениваются сигналами, например, о прерываниях. Тактовая частота шины – 1 – 1.5 GHz (это и есть фактически некая суммарная производительность системы). Обычно используется шина типа PCI (Peripheral Component Interconnect).К ней могут быть подсоединены процессор, память, диски, принтер, модем и другие внешние устройства.

    Порты – устройства с разъемами для подключения к компьютеру внешних устройств. Каждый порт имеет свой контроллер (и, соответственно, свой драйвер).

    Чаще всего используется порт 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) используется для подключения монитора (дисплея),управляемого графическим контроллером (процессором).

    ) – стандартом быстрой беспроводной связи; эти сокращения забавно напоминают друг друга из-за привязанности американцев к аббревиатурам в "детском стиле".

    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.

    Имеются также сетевые устройства – порты и адаптеры – для подключения компьютера к локальной сети.

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

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

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

    Операционную систему можно рассматривать как , .При возобновлении вычислений будет вновь повторено выполнение прерванной команды.

    Очевидно, что при обработке прерывания, в свою очередь, может возникнуть другое прерывание. В этом случае новое входящее прерывание задерживается (disabled),и информация о нем запоминается в очереди прерываний – системной структуре ОС, обеспечивающей поочередную обработку всех возникших прерываний.

    Кроме прерываний, генерируемых аппаратурой неявно при вычислениях (например, отсутствие страницы в оперативной памяти), возможно также программируемое прерывание (trap ; дословно – ловушка ) с помощью специальной команды процессора, - например, при обнаруженной ошибке в программе. В случае такого прерывания также работает общий механизм запуска обработчика прерывания – части ОС. Таким образом, с упрощенной точки зрения, ОС можно рассматривать как набор обработчиков прерываний.

    При прерывании ОС сохраняет .Обработчик прерывания в ОС определяет по содержимому сегмента объектного кода, какого вида прерывание возникло и какие действия по его обработке следует предпринять. Среди возможных видов прерываний, кроме фиксации различных ошибок, имеются также прерывания по таймеру – периодические прерывания через определенный квант времени, предназначенные для опроса устройств (polling) – действий операционной системы по периодической проверке состояния всех портов и внешних устройств, которое может меняться с течением времени: например, к USB-порту была подключена флэшка; принтер закончил печать и освободился, и т.д. ОС выполняет реконфигурацию системы и корректирует системные таблицы, хранящие информацию об устройствах.

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

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

    (рис 4.2) Временная диаграмма прерываний процессора при вводе-выводе.

    На диаграмме видны моменты смены состояний процессора и устройства ввода-вывода: прерывание по запросу на ввод-вывод, обработка этого прерывания и пересылка информации из памяти в буфер устройства, вызов драйвера и контроллера, окончание обмена и прерывание контроллера, продолжение вычислений.

    Имеются две разновидности режима ввода-вывода – синхронный и асинхронный.

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

    Асинхронный ввод-вывод – ввод-вывод, выполняемый параллельно с выполнением основной программы. После того. как начинается асинхронный ввод-вывод, управление возвращается пользовательской программе, без ожидания завершения ввода-вывода (последнее может быть выполнено специальной явной операцией). Таким образом, операция асинхронного обмена как бы разбивается на две: начать ввод-вывод и закончить ввод-вывод. Последняя выполняется для того, чтобы в этом месте программа все же ожидала завершения обмена, когда его результат необходим для дальнейших вычислений. Такой подход к реализации обмена более труден для понимания программистами и может привести к ошибкам (например, использована только операция начала ввода-вывода, а вызов операции его окончания забыт).

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

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

    Архитектура синхронного (a) и асинхронного (b) ввода-вывода иллюстрируется на рис 4.3.

    (рис 4.3) Архитектура синхронного и асинхронного ввода-вывода

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

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

    (рис 4.4) Пример состояния таблицы внешних устройств ОС

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

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

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

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

    В качестве вторичной памяти чаще всего используются жесткие диски (hard disks).Физически они состоят из твердых пластин из металла или стекла, покрытых магнитным слоем для записи. Поверхность диска логически делится на дорожки (tracks),которые, в свою очередь, делятся на секторы.Контроллер диска определяет логику взаимодействия между устройством и компьютером.

    Устройство жесткого диска показано на рис 4.5.

    (рис 4.5) Устройство жесткого диска

    Как видно из рисунка, цилиндр - это группа вертикально расположенных друг под другом секторов различных магнитных дисков с одним и тем же номером дорожки.

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

    Иерархия устройств памяти (в упрощенном виде) показана на рис 4.6

    (рис 4.6) Иерархия устройств памяти

    Более быстрые виды памяти на схеме расположены выше, более медленные – ниже. Схема особых комментариев не требует. Некоторые часто используемые виды внешней памяти:

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

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

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

    Использование системного вызова для выполнения ввода-вывода иллюстрируется на рис 4.7.

    (рис 4.7) Использование системного вызова для выполнения ввода-вывода.

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

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

    Использование базового регистра и регистра границы иллюстрируется на рис 4.8.

    (рис 4.8) Использование регистра базы и регистра границы для защиты памяти

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

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

    (рис 4.9) Схема аппаратной защиты адресов памяти

    Аппаратная защита адресов памяти в системах с теговой архитектурой

    Более радикальные меры для защиты памяти (и не только) предприняты в системах с теговой архитектурой - МВК "Эльбрус", Burroughs 5000/6700/7700 и др.

    Как уже пояснялось, в такой компьютерной системе каждое слово памяти имеет тег – информацию о типе данных, хранящемся в данном слове. Специальные теги имеют любые данные – например, числа (целые и вещественные), адреса, указатели на процедуры и др. Аппаратура при выполнении команды выполняет динамический контроль типов – проверяет, соответствуют ли теги операндов выполняемой операции. Если не соответствуют – прерывание.

    Адрес в системе с теговой архитектурой представлен специальным адресным словом - дескриптором ( descriptor ). Кроме тега и собственно адреса начала адресуемого массива в памяти, дескриптор содержит также длину массива и 4 бита защиты – от чтения, от записи, от выполнения и от записи адресной информации. Формирование и изменение дескриптора возможно только средствами ОС в привилегированном режиме. Пользовательская программа не может ни сформировать, ни изменить дескриптор и работает со своей областью памяти как с массивом, защищенным тегом и дескриптором, образовывая от него подмассивы и формируя их дескрипторы (такое действие разрешено). Допустимая операция над массивом - индексация a[i],в которой аппаратно проверяется, что индекс i не выходит за границы массива a. Таким образом, обращение в "чужую" область памяти в такой системе принципиально невозможно. Невозможна также адресная арифметика (в стиле C / C++), так как попытка выполнения арифметической операции над словом с тегом дескриптор приводит к немедленному прерыванию.

    Кроме дескриптора, имеется также косвенное слово (indirect word) тегированный адрес для обращения к элементу данных одной командой, непосредственно по адресу (без индексации). Для косвенных слов фактически выполняются те же аппаратные проверки, что и для дескрипторов.

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

    Организация аппаратной защиты памяти и процессора

    Прерывания по таймеру

    При исполнении в привилегированном режиме ОС имеет неограниченный доступ как к памяти монитора, так и к памяти пользователя. Команды записи значений в регистры base и limit являются привилегированными.

    В системах с теговой архитектурой только привилегированная команда может сформировать новый дескриптор на область памяти, либо изменить поле в дескрипторе (например, адрес начала или длину).

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

    Команда записи значения в таймер является привилегированной.

    Ключевые термины

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

    BluRay – диск – разновидность компакт-дисков большой емкости (25 – 50 ГБайт).

    COM (communication port, serial port, последовательный порт) – порт для подключения к компьютеру различных коммуникационных устройств, например, модемов.

    DMA (Direct Memory Access) – контроллеры с прямым доступом к оперативной памяти, минуя использование специализированной памяти устройства.

    EPP (Extended Parallel Port) двунаправленный режим работы порта LPT, в котором он может работать не только для вывода, но и для ввода информации.

    HDMI (High Definition Multimedia Interface) – интерфейс и порт. позволяющий подключить к компьютеру телевизор или другое видеооборудование, обеспечивающее наилучшее качество воспроизведения (HD – High Definition).

    IEEE 1394 (FireWire) – порт для подключения к компьютеру цифровой видеокамеры или фотоаппарата.

    LPT (от line printer), или параллельный порт –устаревший вид порта для подключения принтера или сканера, с толстым в сечении кабелем и большим разъемом, требующий предварительного выключения компьютера и устройства для их безопасного соединения.

    PCI (Peripheral Component Interconnect) – наиболее распространенный тип системной шины, к которой подсоединены процессор, память, диски, принтер, модем и другие внешние устройства компьютерной системы.

    RS-232 - другое (более старое) название порта COM.

    SCSI (Small Computer System Interface ) – интерфейс, адаптеры и порты для подключения широкого спектра внешних устройств – жестких дисков, сканеров и др., с возможностью обслуживания гирлянды устройств, подключенных к одному SCSI-порту и имеющих различные номера ( SCSI IDs ).

    SCSI ID – номер устройства (от 0 до 9), являющегося частью гирлянды SCSI-устройств,подключенных к одному SCSI-порту.

    TV-тюнер - устройство для приема телевизионного сигнала с антенны и показа телевизионного изображения на компьютере.

    USB (Universal Serial Bus) – наиболее распространенный универсальный порт компьютера (с характерным плоским разъемом, размером порядка 1 см, с изображением трезубца), к которому могут подключаться клавиатура, мышь, внешний диск, принтер, сканер и другие внешние устройства.

    Асинхронный ввод-вывод – ввод-вывод, выполняемый параллельно с выполнением программы пользователя.

    Ассоциативная память (кэш – cache) – область памяти, размещаемая в более быстродействующей системе памяти и хранящая наиболее часто используемые элементы более медленной памяти вместе с их адресами, с целью оптимизации обращений к ним.

    Базовый регистр (base register) – системный регистр, используемый для защиты памяти и содержащий начальный адрес области памяти, выделенной пользовательской программе.

    Бит режима – бит, хранящийся в системном регистре и задающий текущий режим выполнения команд: равен 0 для системного режима и 1 – для пользовательского режима.

    Вектор прерываний (interrupt vector) – резидентный массив в оперативной памяти, в котором хранятся доступные по номерам прерываний адреса подпрограмм-обработчиков прерываний (модулей ОС).

    Виртуальный COM-порт – воображаемый COM-порт (в действительности не существующий и не имеющий разъема), который ОС как бы инсталлирует в систему при установке, например, драйвера для взаимодействия через Bluetooth или через кабель компьютера с мобильным устройством. Обычно имеет большой номер, например, 18.

    Внешняя (вторичная) память – расширение основной памяти, обеспечивающее функциональность устойчивой (сохраняемой) памяти большого объема.

    Гирлянда SCSI-устройств – цепочка устройств, подключенных к одному SCSI-порту и имеющих различные SCSI IDs (номера).

    Дескриптор ( descriptor ) – адресное слово в системах с теговой архитектурой; содержит тег дескриптор, адрес начала адресуемого массива в памяти, длину массива и 4 бита зашиты – от чтения, от записи, от выполнения и от записи адресной информации.

    Дорожка (track) – часть жесткого диска, расположенная между двумя концентрическими окружностями на одном из составляющих его магнитных дисков.

    Жесткий диск (hard disk) - разновидность внешней памяти,физически состоящая из твердых пластин из металла или стекла, покрытых магнитным слоем для записи, шпинделя и головок считывания – записи.

    Инфракрасный порт (IrDA) – порт для подключения ноутбука к мобильному телефону (или двух ноутбуков друг к другу) через инфракрасную связь.

    Контроллер устройства – специализированный процессор (устройство управления) для какого-либо устройства компьютерной системы - основной памяти или внешнего устройства.

    Материнская плата (motherboard) – основная печатная плата компьютера, на которой смонтированы процессор и память.

    Модем (аббревиатура от модулятор – демодулятор ) – устройство для выхода в Интернет и передачи информации по аналоговой или цифровой телефонной линии.

    Опрос устройств (polling) – действия операционной системы по периодической проверке состояния всех портов и внешних устройств, которое может меняться с течением времени.

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

    Очередь прерываний – системная структура ОС, обеспечивающая поочередную обработку всех возникших прерываний.

    Пользовательский (непривилегированный) режим (user mode) – стандартный режим выполнения программ, в котором исполняются программы пользователей. В данном режиме запрещены некоторые привилегированные операции (например, изменение системных областей памяти и регистров).

    Порт – устройство с разъемом и контроллером для подключения к компьютеру внешних устройств.

    Прерывания по таймеру – периодические прерывания через определенный квант времени, предназначенные для опроса устройств и других необходимых периодических действий ОС.

    Программа, управляемая прерываниями (interrupt-driven program) – программа, запускаемая автоматически при возникновении прерывания центрального процессора (например, операционная система).

    Программируемое прерывание (trap ; дословно – ловушка) – прерывание, явно генерируемое с помощью специальной команды процессора (обычно для обработки ошибки в программе).

    Регистр границы (limit register) – системный регистр, используемый для защиты памяти и содержащий длину области памяти, выделенной пользовательской программе.

    Сектор – часть жесткого диска, ограниченная дорожкой и двумя радиусами.

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

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

    Системный вызов (system call) – явный запрос пользовательской программы к ОС путем вызова системной подпрограммы.

    Системный (привилегированный) режим (system mode, kernel mode, monitor mode) – особый режим выполнения команд, в котором исполняются модули ядра ОС, допускающий выполнения ряда привилегированных операций, например, изменение системных областей памяти и регистров.

    Состояние процессора – значения регистров и значение счетчика команд.

    Счетчик команд – адрес текущей выполняемой или прерванной команды процессора.

    Таблица состояния устройств – таблица, хранимая и используемая операционной системой, в которой каждому устройству соответствует элемент, содержащий тип устройства, его адрес и состояние, а для занятого устройства – ссылку на очередь обрабатываемых запросов к нему.

    Таймер – системный регистр, содержащий некоторое установленное специальной командой значение времени, которое уменьшается через каждый квант (такт) процессорного времени. Когда значение таймера становится равным нулю, происходит прерывание.

    Флэш-память (флэшка) – модуль внешней памяти компактного размера (как правило, – 5 см), подключаемый через USB-порт и имеющий емкость до 128 ГБайт.

    Цилиндр – часть жесткого диска, представляющая собой совокупность дорожек одного диаметра, находящихся на всех его параллельно расположенных магнитных дисках.

    Краткие итоги

    Компьютерная система состоит из модулей – процессора, памяти и внешних устройств, каждое из которых управляется своим контроллером, соединенных между собой системной шиной. В современных компьютерных системах имеются такие модули, как процессор, память, общая шина PCI, порты – USB, COM, IEEE 1394, SCSI, HDMI и другие,. SCSI-порт допускает подключение к нему гирлянды устройств. Инфракрасный порт (IrDA) неудобен и фактически устарел. Беспроводной интерфейс Bluetooth используется для связи компьютера с мобильным устройством, наушниками, плеером.

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

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

    Ввод-вывод может быть синхронным и асинхронным. Для обработки ввода-вывода ОС хранит и использует таблицу состояния устройств.

    Устройства памяти имеют свою иерархию, от самых быстрых к наиболее медленным. Для оптимизации обращения к более медленной памяти используется ассоциативная память (кэш), организуемый в более быстрой памяти. Наиболее распространенные виды внешней памяти – жесткие диски, а также флэш-память, CD, DVD и BluRay – диски.

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

    В системах с теговой архитектурой защита памяти осуществляется в помощью адресных слов со специальными тегами – дескрипторов. Дескриптор содержит адрес начала массива, длину и признаки защиты.

    Прерывания по таймеру организуются системой для опроса устройств и для реализации режима разделения времени.

    Набор для практики

    Вопросы

  • Назовите основные компоненты, из которых состоит настольная или портативная компьютерная система.
  • Что такое системная шина и какова ее роль в компьютерной системе?
  • Что такое контроллер?
  • Назовите и кратко охарактеризуйте основные типы портов в компьютерной системе.
  • Какие области памяти используются в операциях ввода-вывода?
  • Каким образом контроллер устройства информирует процессор об окончании операции ввода-вывода?
  • Как организована обработка прерываний?
  • Что такое вектор прерываний?
  • Как система обрабатывает ситуацию, когда при обработке прерывания возникает другое прерывание?
  • Что такое программируемое прерывание (ловушка) и когда оно генерируется?
  • Каково назначение прерывания по таймеру?
  • Что такое опрос устройств и какова его роль в системе?
  • Чем синхронный ввод-вывод отличается от асинхронного?
  • Что такое таблица состояния устройств и для чего она используется операционной системой?
  • В чем отличие основной памяти от внешней памяти?
  • Опишите кратко устройство жесткого диска.
  • Что такое ассоциативная память (кэш) и как она позволяет оптимизировать обращение к более медленным видам памяти?
  • Назовите основные виды внешней памяти.
  • Какова цель введения привилегированного режима и какие действия в нем разрешены, по сравнению с обычным режимом исполнения программ?
  • Каким образом система определяет текущий режим исполнения?
  • Что такое системный вызов и как они используются для организации ввода-вывода?
  • Что такое регистр базы и регистр границы и как они используются для защиты памяти?
  • Что такое таймер и как прерывания по таймеру используются операционной системой?
  • Как организована защита памяти в системах с теговой архитектурой?
  • Что такое дескриптор и для чего он предназначен?
  • Упражнения

  • Составьте наиболее предпочтительную, с Вашей точки зрения, конфигурацию офисного настольного компьютера для Вашей повседневной работы. Укажите объем памяти, быстродействие, виды портов и внешних устройств.
  • То же – для портативного компьютера (ноутбука).
  • Предложите наиболее быстрый, надежный и удобный, с Вашей точки зрения, способ резервного копирования информации – сохранения наиболее важных файловых систем во внешней памяти.
  • Изобразите схему прерываний и активизации процессора и устройства вывода при выполнении фрагмента простой программы: x := 1; writeln(x); y := 2; writeln(y);
  • Предложите и реализуйте схему алгоритма умножения матриц m * m, хранящихся во внешней памяти, с записью результата также во внешнюю память, с использованием асинхронного ввода-вывода с целью распараллеливания программы.
  • Опишите и реализуйте алгоритм обращения к памяти с использованием кэша, с предварительным поиском адреса в кэше и его записью в кэш, в случае, если он не найден.
  • Пусть задаче выделена область памяти, начиная с адреса 400000 (содержимое регистра базы), длиной 100000 (содержимое регистра границы). Корректным ли будет обращение по адресу 400001? по адресу 500001? Опишите подробно, как происходит проверка адреса на корректность в каждом из двух случаев, и соответствующие действия системы.
  • Темы для курсовых работ, рефератов, эссе

  • Обзор архитектуры компьютерной системы (реферат).
  • Обзор асинхронных и синхронных методов ввода-вывода в компьютерных системах (реферат).
  • Методы обработки прерываний с помощью вектора прерываний (реферат).
  • Обзор иерархии и видов внешней памяти (реферат).
  • Обзор методов защиты памяти в компьютерных системах (реферат).
  • Вернуться к учебному плану