Учебное пособие: Аппаратура, программное обеспечение и микропрограммы
2.3.4 Системы управления вводом-выводом (IOCS)
2.3.5 Спулинг
2.3.6 Процедурно-ориентированные и проблемно-ориентированные языки
2.3.7 Быстрые компиляторы без оптимизации и оптимизирующие компиляторы
2.3.8 Интерпретаторы
2.3.9 Абсолютные и перемещающие загрузчики
2.3.10 Связывающие загрузчики и редакторы связей
2.4 Микропрограммы
2.4.1 Горизонтальный и вертикальный микрокод
2.4.2 Выбор функций для микропрограммной реализации
2.4.3 Эмуляция
2.4.4 Микродиагностика
2.4.5 Специализированные компьютеры
2.4.6 Микропрограммная поддержка
2.4.7 Микропрограммирование и операционные системы
2.4.8 Пример микропрограммирования
2.1 Введение
В данной главе мы кратко рассмотрим, что такое аппаратура, программное обеспечение и микропрограммы. Все они играют важную роль с точки зрения функционирования вычислительных машин и управления ими. Аппаратные средства — это устройства вычислительной машины; ее процессоры, устройства памяти и устройства ввода-вывода, а также средства приема-передачи данных. Программное обеспечение — это программы, содержащие команды на машинном языке и данные, которые соответствующим образом интерпретируются аппаратурой машины. В качестве примеров некоторых распространенных видов программных средств можно привести компиляторы, ассемблеры, загрузчики, редакторы связей, связывающие загрузчики, прикладные программы пользователя, системы управления базами данных, системы приема — передачи данных и операционные системы. Микропрограммы— это микрокодированные программы, выполняемые непосредственно из управляющей памяти очень высокого быстродействия. Наиболее часто используемые объектные программы, занесенные в постоянную память (постоянные запоминающие устройства и программируемые ПЗУ), также иногда называют микропрограммным обеспечением. О микропрограммировании и его важной роли для современных машинных архитектур и операционных систем идет речь в последнем разделе настоящей главы.
2.2 Аппаратура
В нескольких следующих разделах рассматриваются различные виды аппаратных средств, которые имеют важное значение с точки зрения работы операционных систем. Читатель, которому требуются более подробные сведения об аппаратуре, может обратиться к таким книгам-учебникам по архитектуре компьютеров, как (Ва80), (1182) и (Le80).
2.2.1 Расслоение памяти
Метод расслоения памяти (интерливинг) применяется для увеличения скорости доступа к основной (оперативной) памяти. В обычном случае во время обращения к какой-то одной из ячеек модуля основной памяти никакие другие обращения к памяти производиться не могут. При расслоении памяти соседние по адресам ячейки размещаются в различных модулях памяти, так что появляется возможность производить несколько обращений одновременно. Например, при расслоении на два направления ячейки с нечетными адресами оказываются в одном модуле памяти, а с четными — в другом. При простых последовательных обращениях к основной памяти ячейки выбираются поочередно. Таким образом, расслоение памяти позволяет обращаться сразу к нескольким ячейкам, поскольку они относятся к различным модулям памяти.
2.2.2 Регистр перемещения
Регистр перемещения обеспечивает возможность динамического (перемещения программ в памяти. В регистр перемещения заносится базовый адрес программы, хранящейся в основной памяти. Содержимое регистра перемещения прибавляется к каждому указанному в выполняемой программе адресу. Благодаря этому пользователь может писать программу так, как если бы она начиналась с нулевой ячейки памяти. Во время выполнения программы все исполнительные адреса обращений формируются с использованием регистра перемещения — и благодаря этому программа может реально размещаться в памяти совсем не в тех местах, которые она должна была бы занимать согласно адресам, указанным при трансляции.
2.2.3 Прерывания и опрос состояний
Одним из способов, позволяющих некоторому устройству проверить состояние другого, независимо работающего устройства, является опрос; например, первое устройство может периодически проверять, находится ли второе устройство в определенном состоянии, и если нет, то продолжать свою работу. Опрос может быть связан с высокими накладными расходами.
Прерывания дают возможность одному устройству немедленно привлечь внимание другого устройства, с тем чтобы первое могло сообщить об изменении своего состояния. Состояние устройства, работа которого прерывается, должно быть сохранено, только после этого можно производить обработку данного прерывания. После завершения обработки прерывания состояние прерванного устройства восстанавливается, с тем чтобы можно было продолжить работу. Прерывания подробно обсуждаются в гл. 3.
2.2.4 Буферизация
Буфер — это область основной памяти, предназначенная для промежуточного хранения данных при выполнении операций ввода-. вывода. Скорость выполнения операции ввода-вывода зависит от многих факторов, связанных с характеристиками аппаратуры ввода-вывода, однако в обычном случае ввод-вывод производится не синхронно с работой процессора. При вводе, например, данные помещаются в буфер средствами канала ввода-вывода; после занесения данных в буфер процессор получает возможность доступа к этим данным.