А. Ю. Каргашина и А. С. Миркотан под редакцией > Ю. М. Баяковского

Вид материалаКнига

Содержание


1. ВВЕДЕНИЕ 1.1. Вычислительная система
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   27

1. ВВЕДЕНИЕ

1.1. Вычислительная система


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

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

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

Как и в обычной пишущей машинке, здесь есть клавиша SHIFT1. Заметим, однако, что многие терминалы имеют только прописные (заглавные) буквы. Это не должно беспокоить программиста, поскольку в машинных командах прописные и строчные буквы не различаются. В таких терминалах для печатания обычных букв не пользуйтесь клавишей SHIFT, так как иногда при этом могут получиться другие символы. Например, в некоторых терминалах символ @ есть SHIFT-P, символ ] — SHIFT-M, а [ — SHIFT-K. Обычно эти знаки четко обозначены на соответствующих клавишах.

Будьте внимательны, чтобы не спутать следующие литеры: I (заглавную i), l (строчную L) и 1 (единицу); O (заглавную букву O) и 0 (нуль), а также круглые (..), угловые <..> и квадратные [..] скобки.

Интересной особенностью обладает клавиша CONTROL2. Как и SHIFT, она ничего не выполняет сама по себе, однако, нажимая ее одновременно с другими клавишами, мы получаем совершенно иной набор литер. В некоторых случаях это обычные литеры. Так, если нажать CONTROL-A, то на бумаге или экране появится A. Если, однако, вы нажмете CONTROL-I, то не появится никакой литеры, но эффект при этом бывает, как правило, такой же, как от нажатия клавиши табуляции. При табуляции литеры обычно печатаются на каждой восьмой позиции. В большинстве систем PDP-11, если нажать CONTROL-C во время выполнения программы, то появится C и программа остановится (если вычисления все же продолжаются, то нужны два CONTROL-C). Есть CONTROL-литеры3, которые вызывают функции «прерывания». (В случае необходимости с ними можно ознакомиться самостоятельно).

В этой книге клавиша CONTROL будет обозначаться с помощью символа . Предупреждение: это не «крышечка» над буквой и не символ «стрелка вверх», имеющиеся в некоторых клавиатурах (последний символ обычно можно получить, нажав SHIFT-N). Если сначала нажать , затем C, то тоже появится C, но уже не будет обладать особым свойством CONTROL-C.

В этой книге сочетание типа A всегда означает, что, если нет особых оговорок, при нажатой клавише CONTROL вводится некая литера.

Когда переключатель режима on-line4 «включен» и тем самым обеспечена связь между терминалом и машиной, нажмите I. Как уже отмечалось, после этого в большинстве систем на терминале будет выполняться табуляция. Теперь отключите режим on-line, отсоединив тем самым терминал от ЭВМ. Терминал еще будет функционировать как пишущая машинка, но вы, вероятно, обнаружите, что I теперь ничего не исполняет (все зависит от типа используемого терминала). Некоторые современные терминалы, особенно экранные, обладают встроенным в схему узлом, который осуществляет табуляцию в ответ на I; в других этого нет, и I не будет работать, если терминал находится в автономном режиме. В оперативном режиме для выполнения табуляции требуется сложный процесс. Пользователь не видит проявлений этого процесса (для пользователя он прозрачен). Все, что пользователь вводит с терминала в режиме on-line (пользовательский ввод), сразу же попадает в машину. Специальная программа, которая всегда доступна в вычислительной машине, проверяет этот ввод; программа организована так, что в ответ на I заставляет передвигаться на нужное число позиций печатающую головку или курсор терминала. Когда терминал находится в оперативном режиме, то между клавиатурой и бумагой или экраном не существует прямой связи. Введенный с клавиатуры символ выводит на бумагу или экран терминала (т.е. создает эхо литеры) не механическая реакция терминала, а та же самая программа.

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

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

Можно работать на ЭВМ PDP-11, вовсе не пользуясь операционной системой. Однако, как только вы узнаёте о ее существовании, то теряете уверенность в собственных силах, и эта работа становится неописуемо нудной. Без операционной системы ввод программы в машину и ее выполнение превращаются в длительный процесс, и при этом каждый раз он состоит примерно из одной и той же последовательности шагов; другими словами, это работа как раз для ЭВМ. Итак, должна быть написана программа для управления программами; если эта «суперпрограмма» работает постоянно, то мы имеем примитивную операционную систему. В этом случае задача ввода программы в машину выполняется лишь однажды (почему?), после чего управление программой берет на себя суперпрограмма.

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

Из-за большого разнообразия операционных систем могут возникнуть проблемы, если вам придется работать на PDP-11 где-то в другой организации. В ответ на допустимую последовательность литер, введенных пользователем, программа монитора будет выполнять некоторую совокупность действий; у монитора есть список, с помощью которого он «узнаёт» пользовательские команды. Сложность состоит в том, что разные мониторы могут иметь различные списки, а выполнить программу без знания команд монитора данной системы невозможно. Подобные различия затрудняют весь процесс создания программ и могут даже привести к тому, что программа будет прекрасно работать в одной системе и совсем не будет работать в другой.

Разработчики программного обеспечения периодически предлагают новые, усовершенствованные версии; администраторы систем часто пытаются «рационализировать» свои операционные системы, иногда и улучшая их. В первом случае документация редко идет в ногу с изменениями, а если все же успевает за ними, то может быть неточной; во втором случае документация, как правило, вообще отсутствует. Поэтому даже такая операционная система PDP-11, которая считается самой обычной, может таить в себе неожиданности. По этой причине нет смысла подробно описывать здесь какую-либо версию данной системы; читателю, работающему в другой или усовершенствованной версии, это очень скоро наскучит. С другой стороны, не будет большой пользы и в общих теоретических утверждениях относительно операционных систем, так как это мало поможет студенту, намеревающемуся просто пропустить программу.

Будем строить изложение на одном уровне абстракции, опуская детали какой-либо определенной операционной системы. В этой главе, которая посвящена написанию нашей первой программы для PDP-11 и подготовке ее к счету, используется лишь узкий круг возможностей операционной системы. К счастью, этого объема достаточно для понимания принципов организации большинства систем фирмы DEC. Их мы всегда придерживаемся при обсуждении предполагаемого поведения операционной системы во время выполнения очередной задачи. Наши примеры программ могут и не работать в вашей системе точно в той форме, в которой мы их даем, однако вы уже ознакомитесь с терминологией, с помощью которой сможете со знанием дела пользоваться справочными руководствами по программному обеспечению и в нужный момент быстро осознать происходящее, чтобы принять решение. Например, в §1.2 мы рассматриваем редактор — системную программу, с помощью которой можно организовать в удобной и доступной форме текст или команды программы, хранящиеся на диске или ленте (в файле на диске или ленте). В каждом редакторе есть команда, которая позволяет распечатать следующую строку вашего файла. В редакторах фирмы DEC это, как правило, однобуквенная команда. В редакторе EDIT, на который ориентирован §1.2, это команда L. Студент, использующий, скажем, редактор TECO, должен просто проверить по руководству, что эквивалентной командой в данном случае будет Т, и сделать пометку в соответствующем месте книги.

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

Почти все ЭВМ PDP-11 снабжены операционными системами фирмы DEC либо системами, разработанными по тем же принципам; лишь немногие имеют систему UNIX производства фирмы Bell Laboratories. Эту систему мы не обсуждаем не только по той причине, что по ней уже есть хорошая документация, но и потому, что UNIX разрабатывалась для использования на многих разных компьютерах и не раскрывает индивидуальных особенностей ЭВМ PDP-11. Мы больше заинтересованы в том, чтобы читатель поближе познакомился с вычислительной машиной и научился оптимальным образом использовать специфические особенности PDP-11.

Несмотря на первые слова этого параграфа, мы не забыли про студента, сидящего перед небольшой машиной PDP-11 с минимальными возможностями. Действительно, поскольку внедрение LSI-11 (микрокомпьютерной версии PDP-11) открыло доступ к PDP-11 для непрофессионалов, таких читателей будет немало. Если это относится и к вам, то, чтобы подготовить к счету свою первую программу, после §1.4 прочтите §4.1, который преднамеренно был написан так, чтобы как можно меньше зависеть от более ранних параграфов и тем самым облегчить вам начало работы на машине.