Структура и основные компоненты вычислительной системы. Лекции
Рефераты >> Программирование и компьютеры >> Структура и основные компоненты вычислительной системы. Лекции

Теперь рассмотрим ВЗУ иначе - по методам доступа. Суть почти любого запоминающего устройства заключается в том, что информация в нем записывается некоторыми блоками, или записями. В некоторых устройствах размер блока фиксирован и чем-то напоминает страничную организацию памяти. В некоторых устройствах размер блока может быть переменным, и определяется некоторым начальным и конечным маркером, который можно программно записать на носитель этого устройства. В контексте работы с блоками, ВЗУ можно подразделить на два типа: устройства прямого доступа и устройства последовательного доступа. В бытовом плане можно рассмотреть компакт диск (CD) и аудиокассету. Воспроизведение десятой записи на компакт диске начинается почти сразу после соответствующей команды, за счет своей системы координат, подобной системе координат магнитного диска. Это устройство прямого доступа. Устройство последовательного доступа - это аудиокассета. Если вам надо воспроизвести пятую песню, то приходится, перематывая кассету, искать начало, так или иначе прослушивая предыдущие четыре. Устройства последовательного доступа, это те устройства, которые для чтения i-той записи, должны просмотреть предыдущие (i-1)-ну запись. Прямой доступ лишен этого недостатка. Примеры устройств прямого доступа - это магнитный барабан, всевозможные вариации магнитных дисков, память на магнитных доменах и прочее. Устройства последовательного доступа - это либо магнитная лента на больших машинах, либо стримерные устройства, которые используют для организации долговременного хранения данных на маленьких машинах.

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

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

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

Мультипрограммирование

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

Нарисуем простую диаграмму:

Ось абсцисс связана со временем. На оси ординат отмечены выполняемые задачи. Пусть процессор работает над Задачей №1. В какой-то момент ему потребовались данные, которые находятся на ВЗУ. Формируется заказ на обмен, но данные с устройства еще не поступили (мы знаем, что скорость обмена низка). И какое-то время процессор простаивает. Затем обмен завершился, и программа начала выполняться далее. Затем эта ситуация повторяется (опять простой и т.д.). В зависимости от типа или класса решаемой на этой машине задачи, таких простоев может быть от 99% всего времени до единиц процентов в том случае, если программа долго что-то вычисляет, не обращаясь к внешним устройствам. Но в любом случае эта ситуация приводит к неэффективной работе вычислительной системы, поэтому было бы неплохо при наличии асинхронно работающих устройств (то есть тех устройств, которые работают под управлением аппарата прерываний) в промежутки времени, когда одна программа не может выполняться (так как она ожидает данные), запускать другую программу (Задачу №2). Задача №2 будет жить по тем же правилам (то есть в периоды обмена Задачи №2 и Задачи №1 с внешними устройствами будет запускаться третья задача, и так далее).

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

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


Страница: