ЗНАЕТЕ ЛИ ВЫ?

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



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

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

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

Рисунок 2.1 -Архитектура компьютера с общей шиной

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

Функционирование компьютера после включения питания начинается с запуска программы первоначальной загрузки (bootstrap), которая инициализирует основные аппаратные блоки компьютера (регистры центрального процессора, контроллеры периферийного оборудования, накопители памяти), а затем загружает ядро ОС (operating system kernel) и передает ему управление. Обычно эта программа располагается в постоянном запоминающем устройстве (ПЗУ – Read Only Memory, ROM), возможно, электрически стираемом и перепрограммируемом (EEPROM).

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

Источниками прерываний могут быть как аппаратура, так и программы. Аппаратура «сообщает» о прерывании асинхронно (в любой момент времени) путем пересылки в центральный процессор через общую шину сигнала прерывания. Программа «сообщает» о прерывании путем выполнения операции, называемой системным вызовом (system call).

Примеры событий, вызывающих прерывания:

­ деление на ноль;

­ переполнение;

­ неправильное обращение к памяти;

­ запрос на системное обслуживание;

­ завершение операции ввода-вывода.

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

Главные функции механизма прерываний:

­ распознавание/классификация прерывания;

­ передача управления соответствующему обработчику прерывания;

­ корректное возвращение к прерванной программе.

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

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

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

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

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

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

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

­ основная память обычно слишком мала для размещения всех необходимых программ и данных;

­ содержимое основной памяти теряется при отключении питания.

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

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

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

Рисунок 2.2 - Иерархия запоминающих устройств компьютера

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

Обычно в центральной части сосредоточены регистры процессора (CPU registers), основная память(main memory) и кэш-память (cashe memory).

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

Метод доступа к адресуемым элементам памяти центральной части называется произвольным (random access). Это означает, что все элементы доступа равнодоступны и для доступа к ним не требуется просмотра других элементов (direct access), и время доступа не зависит от адреса (arbitrary access). На практике контроллер открывает доступ к содержимому регистра/ячейки, используя в качестве входной информации адрес регистра/ячейки. Причем последовательность адресов на вход контроллера может следовать в произвольном порядке.

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

Время доступа к ячейкам основной памяти в несколько раз больше, чем время доступа к регистрам. Поэтому часто, с целью уменьшения среднего времени доступа к памяти центральной части в архитектуру компьютера включают блок памяти, называемый кэш-память. Кэш-память обладает временем доступа равным или соизмеримым со временем доступа к регистрам. В кэш-память поблочно копируется информация из основной памяти. Эффективность кэш-памяти с точки зрения увеличения производительности во многом зависит от стратегии копирования. Вначале центральный процессор проверяет наличие требуемых данных в кэш-памяти, а затем в основной. Хорошая стратегия копирования обеспечивает нахождение информации в кэш-памяти в 80% - 99% случаев обращения процессора к памяти.

Необходимость вторичной памяти обусловлена двумя причинами:

­ емкость основной памяти недостаточна для хранения всех программ и данных;

­ основная память энергозависима и ее содержимое теряется после отключения напряжения питания.

В качестве накопителя вторичной памяти обычно используется магнитный диск. Накопитель на магнитном диске обычно состоит из нескольких дисков, покрытых слоем магнитного материала и расположенных на общей оси вращения. В процессе работы диски вращаются с постоянной скоростью. Информация наносится на поверхность магнитного материала побитно в виде концентрических окружностей, называемых дорожками (tracks). Любая дорожка содержит одинаковое количество информации. Дорожки разделены на секторы (sectors). Сектор является наименьшей адресуемой порцией информации для магнитного диска.

Запись/считывание данных осуществляется без остановки диска с помощью универсальных головок чтения/записи. Головки устанавливаются на соответствующую дорожку с помощью механизма доступа.

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

Структура ввода-вывода

В состав компьютера общего назначения входят центральный процессор и множество контроллеров, которые соединены общей шиной. Контроллеры периферийного оборудования специализированы по типу оборудования и обычно один контроллер управляет устройством одного типа. Однако иногда конструируются универсальные контроллеры, предназначенные для работы с несколькими разнотипными устройствами. Например, контроллер SCSI (Small Computer System Interface) позволяет подключать до семи различных устройств. Каждый контроллер снабжен памятью, включающей буферное запоминающее устройство, регистр команды, регистр состояния. Контроллер должен обладать способностью перемещать данные между периферийным устройством, которым он управляет, и локальной буферной памятью. Обычно в операционной системе имеется соответствующий драйвер (driver) для каждого контроллера. Драйвер умеет напрямую работать с устройством и предоставляет унифицированный интерфейс для остальной части операционной системы.

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

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

Рисунок 2.3 - Два метода взаимодействия центрального процессора и контроллера: (а) – синхронный, (b) –асинхронный

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

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

Контрольные вопросы

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

2. Что такое вектор прерываний?

3. Опишите иерархию запоминающих устройств компьютера. Что означает произвольный метод доступа к адресуемым элементам памяти?

4. Зачем нужна кэш-память?

5. Опишите различия между синхронным и асинхронным методами взаимодействия центрального процессора и контроллера.





Последнее изменение этой страницы: 2016-08-16; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 34.201.3.10 (0.008 с.)