1. ДАВАЙТЕ ПОЗНАКОМИМСЯ

1.1. Мир, где живет ЭВМ,
или
Физический мир системы

       МИР, огромный и прекрасный, где живут люди называется планетой Земля. Леса, поля, моря и горы — все, что нас окружает, все, с чем мы общаемся, — это наш мир.
       Быстротечный мир сказок и мечты, льющийся к нам с экрана, — это другой, но тоже реальный мир — мир наших представлений — мир кинематографа.
       ЭВМ тоже должна где-то жить, с чем-то общаться. Мир ЭВМ ограничен тем оборудованием, которое с ней тем или иным способом связано.
       Основные устройства, которые подключаются к ЭВМ, — это различные устройства внешней памяти. Большие и маленькие, быстрые и медленные. Одни запоминают информацию отверстиями на бумажной ленте, другие — магнитными полями, как в бытовом магнитофоне, третьи используют для памяти гибкую пластинку, как у звукового журнала "Кругозор".
       Не меньшая группа устройств — устройства ввода и вывода информации. Это терминал с экраном, как у телевизора, на котором высвечиваются символы, и клавиатурой, как у пишущей машинки, для ввода данных, команд и просто текста, графический дисплей, на экране которого можно рисовать рисунки, как на чертежной доске. Есть и настоящий чертежный стол, на котором ЭВМ рисует сама, и называется он графопостроитель.
       И подобных устройств придумать можно много и их придумывают в настоящее время. ЭВМ окружает такое множество вспомогательных устройств, что саму ЭВМ уже не видно. Все это — ЭВМ и множество вспомогательных устройств — и называется аппаратной частью системы (HARDWARE), — это и есть физический мир системы.

 

1.2. Что окружает ЭВМ,
или
Конкретная реализация системы

       В нашем ВЦ есть, наверное, все модели отечественной мини-вычислительной техники. Самым первым здесь появился ДВК-2, на котором мы первое время будем работать. Он был разработан, когда несколько молодых ребят поняли, что все платы, которые находятся в микро-ЭВМ "Электроника-60", можно сложить в одну, по возможностям практически не уступающую всей микро-ЭВМ. Дальнейшие модификации ДВК были чисто внешними, кроме ДВК-4, в котором установлен более мощный микропроцессор и дополнительное ОЗУ. Для нашего ВЦ характерно, что вся аппаратура построена на единых принципах и, как говорят, программно-совместима между собой. Это и микро-ЭВМ "Электроника-60", МС-1212, ДВК-2, ДВК-3, ДВК-4; персональная ЭВМ "Электроника-85", мини-ЭВМ — "Электроника-100/25", "Электроника-79". И так как ЭВМ этого семейства можно собирать из отдельных узлов, как бы кирпичиков, в соответствии с нашими потребностями, то и мы для изучения возможностей системы соберем два комплекта аппаратуры, на которых и будем работать.
       Первый — с минимальными возможностями (и, следовательно, минимальной ценой) — выпускался нашей промышленностью под названием ДВК-2М. С незначительными отличиями все сказанное здесь относится и к ДВК-3, ДВК-4, "Электроника-85".

ПРОЦЕССОР
       — для выполнения программ нам необходимо арифметико-логическое устройство, оперативная память и устройство управления — в нашем случае это одноплатная микро-ЭВМ "Электроника_НМС-1201".

ТЕРМИНАЛ
       — для общения с системой нам необходим терминал, который состоит из клавиатуры и в нашем случае дисплея. Мы будем использовать терминал 15ИЭ-00-013, но можно использовать и терминал венгерского производства "Videoton_VDT52130", а также СМ7209 польского производства.

ВНЕШНЯЯ ПАМЯТЬ
       — в качестве внешней памяти в малых системах используются накопители на гибких магнитных дисках (дискетах). Мы будем использовать накопители с дискетами диаметром 203мм (или 8 дюймов) ГМД-70, ГМД-7012 или ГМД-7022 и с дискетами диаметром 133мм (или 5,25 дюйма) НГМД-6022. В ДВК-3М, ДВК-4 и "Электроника-85" используются накопители на гибких дисках НГМД-6121А (диаметр дискет 5,25 дюйма) и накопители на жестких герметичных дисках МС-5401 (МС-5402), работа с которыми в общем виде не отличается от ГМД-7012 или НГМД-6022. Мы в основном будем использовать диски ГМД-7012, так как они могут быть установлены на большую систему, что обеспечивает простейший перенос информации.

ПЕЧАТЬ
       — при необходимости получать твердую копию текстов на бумаге в состав комплекса нужно включить печатающее устройство. Для малых систем удобно использовать термопечатающее устройство 15ВВ1780-002, печать на котором происходит нагреванием иголок около специальной бумаги, которая меняет цвет при повышении температуры.

Примечание. Здесь термин "ПРОЦЕССОР" используется в современном понимании как законченное устройство для обработки данных. Конец примечания.

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

ПРОЦЕССОР
       — в качестве процессора будет использоваться мини-ЭВМ "Электроника-100/25", имеющая более широкий набор команд, чем "НМС-1201", а также более высокое быстродействие. Кроме того, у нее есть так называемая расширенная (дополнительная) память.

ТЕРМИНАЛ
       — для того чтобы в дальнейшем показать различия в терминалах "Videoton_VDT52130" и "15ИЭ-00-013", в данной системе будем использовать терминал "VDT52130".

ВНЕШНЯЯ ПАМЯТЬ
       — одно из достоинств систем данного типа — это большой набор внешних запоминающий устройств и их существенно лучшие характеристики. В нашу систему мы включим следующие устройства:
       — накопитель ГМД-7012 для переноса информации на малую систему;
       — накопитель на жестких магнитных дисках СМ5400 — основная быстродействующая память большого объема. Жесткий диск очень похож на большую грампластинку диаметром 356мм, только из аллюминия, и покрыт магнитным лаком, как магнитофонная лента. Для защиты от пыли диск помещен в пластмассовую кассету с небольшой щелью для ввода магнитных головок, отчего произошло его второе название — "диск-кассета".
       — накопитель ЕС-5061 на жестких диск-пакетах. Быстрая память очень большого объема. Диск-пакет очень похож на диск-кассету, но в пакете на одну ось надето несколько (11) жестких дисков, помещенных в съемный жесткий чехол;
       — накопитель на магнитной ленте СМ5300.01 — это медленное, но надежное запоминающее устройство большой емкости. Оно выполнено так же, как обычный бытовой магнитофон, но имеющий не две и не четыре дорожки, а целых девять. В остальном он отличается только габаритами.

ПЕЧАТЬ
       — в качестве печатающего устройства в данном случае используется матричное печатающее устройство ударного действия DZM-180 или ROBOTRON-1156 (эти устройства отличаются друг от друга только габаритами и скоростью печати). Печатают они ударами иголок через красящую ленту, а так как иголок несколько, то они образуют прямоугольник из точек — матрицу. От того, какие точки были ударены, зависит, какой символ изображен. Они могут также подключаться и к ДВК без каких-либо изменений. Кроме этого могут, использоваться и другие печатающие устройства — Robotron-K6311, Epson, D-100 и др.

       Таким образом, мы собрали аппаратную часть для двух систем — малой и средней, на базе которых мы будем изучать возможности нашей операционной системы. Необходимо хорошо понимать, что состав аппаратуры в системе диктуется потребностями пользователя при решении конкретной задачи и может меняться в количественном отношении и в качественном. Мы берем указанный набор аппаратуры для того, чтобы рассмотреть возможно большее количество вопросов, возникающих у пользователя. В свободном разговоре для краткости обычно малую систему называют ДВК (Диалоговый Вычислительный Комплекс), среднюю — "СОТКА" (по названию процессора "Электроника-100/25"). Так эти системы будут называться и в книге.

       Внешний вид этих систем, так как их можно изобразить с их же помощью, показан на Рис.1 и Рис.2.

  ::

 
         ------------------------+
        /                       /I------- ------------- ------------
       /                       / I      //            //
      /                       /  I     //            //            /
     +-----------------------+   I    //            //            /
     I +-----------------+   I   I   //            //            /
     I I                 I   I   I  //            //            /
     I I                 I   I   / //            //            /
     I I                 I   I  / //            //            /
     I I                 I * I / //            //            /
     I +-----------------+ * I/ /+------------++------------+
    /+-----------------------+ / I            II            I     /
   /                          /  I ==##==     II ==##==     I    //
  +--------------------------+   I *          II *          I   //
  I                      ##  I  /I         *  II         *  I  //
  I                          I //I ==##==     II ==##==     I //   /
  I                          I// I *          II *          I//   /
  +--------------------------+/  +------------++------------+/   /
  +--------------------------+   +--------------------------+   /
  I                  # # #   I  /I                          I  /
  I                          I / I                          I /
  I                          I/  I =====#=====  =====#===== I/
  +--------------------------+   +--------------------------+
                                     +----------------------+
     +------------------------+     / /              /     /I
    / """  """  """   """""" /I    / /--------------/   * / I
   / """"""""""""""" """ """/ /   +----------------------+  I
  / """"""""""""""" """ """/ /    I                      I  /
  IZZZZZZZZZZZZZZZZZZZZZZZZI/     I                      I /
                                  IZZZZZZZZZZZZZZZZZZZZZZI/

 
          Диалоговый Вычислительный Комплекс - ДВК-2М
 
 
 
 
  ::

        --------------++-------------++-------------+
       /             //             //             /I
      /             //             //             / I
     /             //             //             /  I
    +#############++#############++#############+   I
    I .........   II             II             I   I
    I .........   II             II             I   I
    I .........   II             II             I   I
    I """""""" """II=============II             I   I
    I=============II             II             I   I
    I             II             II=============I   I
    I             II             II             I   I
    I       # # # II=============II ==#== ==#== I   I
    I=============II             II=============I   I
    I             II             II :::::::: :: I   I
    I             II             II """""""" "" I   I
    I       # # # II             II-------------I   I
    I=============II             II             I   I
    I             II             II             I   I
    I             II             II             I   /
    I             II             II             I  /
    I             II             II             I /
    +-------------++-------------++-------------+/
                                        --------------
      +-------------+\              ---/             /--+
  ----I+----------+ I \------------/  /-------------/  /I
      II          I I  \          /*                  / I
      II          I I   \        /*                  /  I
      I+----------+ I/I  \      +-------------------+   /
      +-------------+ I  /      I                   I  /
        IZZZZZZZZZZZZZI_/      /I                   I /#
         +--------------+     / IZZZZZZZZZZZZZZZZZZZI/ #
        / """""""  """" /I   /     #                   #
       / """"""""" """ //   /      #                   #
      / """"""""" """ //   /       #  /#               # /#
      IZZZZZZZZZZZZZZI/   /        ##################### #/
                         /         ##/                 ##/
  ZZZZZZZZZZZZZZZZZZZZZZ#         #/                  #/
                        #

            Комплекс на базе мини-ЭВМ "Электроника-100/25"

 

1.3. Как общаться с ЭВМ,
или
Понятие файла

       — Вот мы с тобой сидим и мило беседуем, а как бы ты назвал этот процесс по-другому?
       — У людей это называется — процесс общения,— отвечает Алеша.
       — Ну, а в информатике — это процесс обмена информацией между двумя объектами. При этом под объектом может пониматься человек, ЭВМ, животное или что-нибудь другое.
       — А, например, холодильник? — задает каверзный вопрос Алеша.
       — И холодильник,— отвечаю я,— если он "заурчал", то передал информацию о том, что в морозилке стало тепло и он начал вырабатывать холод. А если, например, он долго не "урчит", то это тоже информация о том, что он сломался. При этом важен не способ, с помощью которого эта передача происходит, а сам факт того, что приемник (в данном случае это я) получил некоторую информацию и она вызвала такие же ассоциации, как и у передатчика.
       — Но ведь я не могу передать информацию холодильнику,— возразил Алеша.
       — Можешь,— убеждаю его я.— Ты можешь подойти и повернуть регулятор, передав информацию о том, до какой температуры нужно охлаждать содержимое.
       Но ты правильно обратил внимание на то, что передача информации имеет направление и не всегда возможен двухсторонний обмен информацией. Передача информации может происходить не только как перемещение от одного места к другому, но и как передача от одного момента времени к другому, т.е. хранение информации. Например, когда ты записываешь в дневник домашнее задание, то передаешь информацию самому себе через какой-то промежуток времени.
       — Да, но я не могу тогда передать информацию в прошлое,— заметил Алеша.
       — Правильно, это и есть случай односторонней передачи информации.
       Кроме того, передача информации может происходить с изменением по определенным правилам, т.е. преобразование информации.
       — Это когда я читаю английский текст,— сообразил Алеша,— и в уме перевожу его на русский.
       — Совершенно верно, и в ЭВМ часто происходят такие преобразования.
       При всей своей элементарности вопрос передачи информации (мы не рассматриваем сейчас техническую сторону этого вопроса) очень важен. Часто информацию нельзя принять только потому, что возможная форма приема (или ассоциации приемника) не соответствует форме передачи.
       Таким образом, мы можем сказать, что все наши проблемы сводятся к задаче — как передать информацию от одного устройства к другому, от устройства к человеку, от человека к устройству и, наконец, от одного момента времени к другому.
       — И мы должны еще,— добавляет Алеша,— уметь преобразовывать ее к удобному для нас виду.
       — Да, но мы пока говорим об информации как о целом объекте,— говорю я.— На самом деле этот объект может быть очень большим и нужно научиться передавать его по частям. Я хочу сказать, что нам необходимо определить, какими порциями можно передавать информацию в системе. И еще один аспект мы не указали — эту порцию информации мы должны уметь найти в системе, т.е. она должна иметь какой-то адрес в системе, или, если сказать по-другому, быть адресуемой.
       — Можно передавать по буквам, словам или по строчкам,— фантазирует Алеша.
       — Да, если у нас информация текстовая,— уточняю я.— А если произвольная? В таком случае минимальным элементом информации является байт. В большинстве случаев понятия БАЙТ и СИМВОЛ (буква) текста эквивалентны.

Примечание. Байт — это минимальный адресуемый элемент данных. Первоначально имел размер в 5 бит в телеграфных аппаратах, 6 бит в первых ЭВМ типа PDP-8 и других, 7 бит в терминалах и телетайпах. Сегодня самый распространенный вид байта имеет размер 8 бит. Бит — это минимальное количество информации, может принимать только два значения — 0 и 1, ДА — НЕТ, ПРИСУТСТВУЕТ — ОТСУТСТВУЕТ. Конец примечания.

       С другой стороны, при разработке операционной системы это вопрос принципиальный. Например, в операционной системе UNIX основным адресуемым элементом данных является БАЙТ, для операционной системы RSX-11 — ЗАПИСЬ, которая в тексте эквивалентна строке.

Примечание. Примером записи может быть строка символов, которая начинается символом перевода строки (ПС) и кончается символом возврата каретки (ВК). Конец примечания.

       В нашей системе RT-11 адресуемым элементом данных является блок, содержащий 512. байт.
       — Но это очень мелкая порция,— замечает Алеша,— примерно четверть машинописной страницы. Может быть, можно эти "странички" подшить в какую-нибудь "папку" и передавать целиком?
       — И при этом ты подшил бы "странички" в определенном порядке,— спрашиваю я Алешу.
       — Да, ведь они же адресуемые, значит, каким-то образом организованы в цепочку или ряд.
       — Тогда в английском языке есть слово File, которое означает папка, дело, досье, подшитые документы или бумаги. А изначально — шпилька для накалывания бумаг.
       — Это как в магазине — для чеков,— быстро нашел аналогию Алеша.
       — Да, и в вычислительной технике это слово стало обозначать "папку", только электронную. А если серьезно, то дадим точное определение файла:

ФАЙЛ
       — это совокупность адресуемых элементов данных и способа их организации.

       Таким образом, файл может содержать произвольное количество блоков (страниц), находиться на любом устройстве (в шкафу). С файлом можно выполнять некоторый набор операций, который задается при проектировании системы.
       Давай я буду называть операцию, а ты — находить аналогию из повседневной жизни.
       — ПОИСК ФАЙЛА ПО ИМЕНИ.
       — Найти в шкафу папку, на обложке которой указано, что в ней лежит,— быстро ответил Алеша.
       — ЧТЕНИЕ ИНФОРМАЦИИ ИЗ ФАЙЛА.
       — Открыть папку и прочитать ее страницы, а затем закрыть,— полностью описал свои действия Алеша.
       — ЗАПИСЬ ИНФОРМАЦИИ В ФАЙЛ.
       — Открыть папку, записать на странице информацию и затем закрыть ее,— опять полностью перечислил свои действия Алеша.
       — СОЗДАТЬ ЗАПИСЬ О ФАЙЛЕ В КАТАЛОГЕ,— не унимаюсь я.
       — Ну, это когда папок много,— задумался Алеша,— тогда удобней на дверке шкафа повесить отдельный листок, в котором записать имя папки и на какой полке она находится и, может быть, другие параметры, например когда папка была начата и какой ее объем.
       — Но ведь у нас еще нет объема,— говорю я,— ты только на листочке написал ее название, а папку на полку не положил. Да и если ты ее положишь, то объем папки равен нулю.
       — Но тогда,— стал искать ответ Алеша,— если говорить строго, мы должны положить в папку какое-то количество листов чистой бумаги и считать это зарезервированным объемом. На папке можно написать название или обойтись без него. Но если мы хотим иметь каталог, то в нем мы должны указать все атрибуты файла, т.е. нашей папки — признак состояния "ПОСТОЯННЫЙ", полное имя, размер (объем), на какой полке шкафа он лежит.
       — Ну, а если мы уже имеем каталог,— втягиваю я его в это исследование,— то как УДАЛИТЬ ФАЙЛ?
       — Можно просто снять папку с полки и выкинуть,— торопится Алеша.
       — И засорять окружающую среду,— остановил его я.
       — Какую окружающую среду?
       — Ах, у тебя даже ее нет,— говорю я,— значит тебе, и выкидывать некуда. Значит то, что ты имеешь в шкафу, там должно и остаться. Может, можно сделать проще?
       — А можно,— Алеша нашел выход,— просто в каталоге заменить признак "ПОСТОЯННЫЙ" на "ПУСТОЙ". Нет,— Алеша быстро себя поправил,— на "НЕИСПОЛЬЗУЕМЫЙ". Ведь мы не можем из папки выкинуть листочки. Мы можем только предположить, что на этих листочках можно заменять информацию, т.е. писать столько раз, сколько нужно.
       — Но тогда мы подошли к очень важному выводу,— говорю я.— Если мы представляем устройство памяти как шкаф с папками на полках, то все папки должны быть заполнены "листочками", т.е. иметь объем. А используется ли этот объем, мы узнаем из каталога. При этом общий объем шкафа зависит не от количества папок, а от их суммарного объема.
       — И кроме того,— замечает Алеша,— в этом же шкафу должен лежать наш каталог, хоть несколько листочков, который тоже занимает место.
       — А теперь, заметь, что если ты взял папку для работы, то никто другой в это время с ней работать не может. Что же будет тогда в нашем каталоге?
       — А я сделаю очень просто,— отвечает Алеша,— введу еще один признак "ВРЕМЕННЫЙ" и пока я работаю, в каталоге будет отмечено, что это место временно занято.
       — Прекрасно,— отмечаю я,— у тебя уже появился набор признаков. Тогда такой вопрос: что ты будешь делать, если у тебя в шкафу (а значит и в каталоге) будет две (или больше) папки с одинаковым именем и признаком "ПОСТОЯННЫЙ"?
       — А этого нельзя допускать,— говорит Алеша,— потому что я не смогу различить, какую папку я должен взять. И об этом должна позаботиться система.
       — Это ты правильно заметил, но есть еще одно свойство: ты можешь взять из шкафа любую папку?
       — Да,— отвечает Алеша,— и с произвольной полки, и из любого ее места.
       — Тогда,— даю я определение,— у тебя устройство с произвольным доступом.
       — Согласен,— говорит Алеша.
       — А раз есть устройство с произвольным доступом, то можно придумать и устройство с последовательным доступом. Что-то вроде длинной полки, которая перемещается мимо тебя, а ты можешь ей управлять и брать папки только в окошке напротив тебя.
       — А я такую видел,— говорит Алеша.— В нашей поликлиннике в регистратуре истории болезни хранятся на таких полках, свернутых в кольцо.
       — И какая же при этом особенность наблюдается?
       — А у них нет каталога,— вспоминает Алеша,— они просматривают папку за папкой и по названию на обложке находят нужную.
       — Но в принципе каталог собрать можно?
       — Да, для этого нужно просмотреть обложки всех папок по порядку и названия и параметры выписать на отдельный листок.
       — А раз так,— добавляю я,— то эти данные должны быть написаны на обложке. И еще необходимо иметь какие-то признаки, которые позволяют явно отделить один файл от другого. Это как тесемки для связывания обложек папки.

       Этот разговор был затеян не зря. Кроме чисто этимологических свойств, термин "File-Папка" очень точно отражает процессы, происходящие с файлом в системах обработки данных. Некоторая неоднозначность возникает из-за имеющегося в литературе термина "тип файла". По существу, это тоже имя файла, или название папки, но которое может указывать на принадлежность данного файла к некоторому множеству файлов с особыми свойствами. Но так как современные операционные системы не накладывают ограничений на использование типа, то можно считать (в нашей аналогии), что он соответствует цвету папки. С одной стороны, это позволяет нам просматривать содержимое, например только красных папок, с другой — мы имеем право хранить в них произвольную информацию.
       А так как мы должны сообщить системе, с каким файлом хотим работать, то должны уметь написать его адрес. В операционных системах этот адрес называется СПЕЦИФИКАЦИЯ ФАЙЛА. В дальнейшем мы разберем точное определение спецификации файла в RT-11. Сейчас же мы должны понять из аналогии с папкой, что этот адрес должен состоять из имени устройства (номер шкафа, в котором лежит папка), имени файла (название, написанное на папке) и типа файла (цвет папки).
       Если мы можем каким-то образом провести аналогию между формой запоминания данных и рассмотренной File-Папкой, т.е. мы можем тем или иным образом собрать каталог, то такое устройство называется устройством файловой структуры. Например, накопители на магнитной ленте представлены в RT-11 в двух видах — файловой и нефайловой структуре. Ответственность за структуру данных (если ее можно создать) в устройствах нефайловой структуры пользователь берет на себя.
       Кроме того, устройства различаются по методу доступа, как наши шкаф и длинная полка. Если мы можем работать с произвольным файлом на устройстве, то такое устройство имеет произвольный доступ. Если мы можем записывать или читать данные только последовательно — файл за файлом, то такое устройство имеет последовательный доступ.
       И уже переходя к файлам, уточним о чем мы говорили.
       При записи файла на магнитный диск мы можем записать файл произвольно на любое свободное место на диске, а также прочитать произвольный файл, так как каталог содержит информацию не только о файлах, но и о свободных зонах. При этом свободная зона также считается файлом.
       На устройствах с произвольным доступом существует такое понятие, как состояние файла. А именно файл может быть "НЕИСПОЛЬЗУЕМЫМ", "ВРЕМЕННЫМ" и "ПОСТОЯННЫМ". Это понятие очень важно для понимания того, что будет происходить в системе, когда мы начнем в ней работать.
       Допустим, мы захотели создать на устройстве файл и записать в него некоторую информацию. Что же при этом происходит?
       — В каталог устройства заносится запись о том, что на таком-то месте тома зарезервировано место размером в указанное число блоков для файла с указанным именем и типом. Т.е. файла еще не существует, а запись о нем в каталоге уже есть. Признак состояния файла — "ВРЕМЕННЫЙ". Говорят, что файл открыт для записи. В общем случае на устройстве может существовать больше одного временного файла с одинаковым именем и типом.
       — По мере поступления информации она записывается в файл в зарезервированную область на устройстве, и при этом начинает существовать настоящий файл, содержащий некоторую полезную информацию. Признак состояния файла — "ВРЕМЕННЫЙ".
       — После окончания работы с файлом мы можем его "закрыть" (точнее, сказать системе, что мы закончили работу с файлом и хотим его сохранить) и тем самым сделать его постоянным. На одном устройстве должен быть только ОДИН файл, имеющий признак состояния "ПОСТОЯННЫЙ" и указанные имя и тип. Это значит, что в каталоге тома должна быть только одна запись о файле с указанным именем и типом и с признаком состояния — "ПОСТОЯННЫЙ". Если на устройстве есть еще файл с таким же именем и типом, система изменит его признак состояния на "НЕИСПОЛЬЗУЕМЫЙ".
       — Если после окончания работы с файлом мы его не закроем (или, как говорят, освободим), то система занесет в запись о файле признак состояния — "НЕИСПОЛЬЗУЕМЫЙ". Такие атрибуты, как имя и тип файла, в дальнейшем использоваться не будут. При этом система будет считать, что на месте, где находится файл (а он существует), имеется свободная (неиспользуемая) зона, равная по размеру файлу.

Примечание. Состояние файла на устройстве с последовательным доступом может иметь признак только "ПОСТОЯННЫЙ". Конец примечания.

       Таким образом, важно отчетливо понимать, что на устройстве с произвольным доступом существует файл как объект, содержащий информацию и запись о файле в каталоге устройства. В общем случае они могут быть не связаны между собой, но мы можем производить какие-либо операции с файлом только тогда, когда сам файл и запись о нем в каталоге имеют однозначное соответствие друг другу и при этом признак состояния файла — "ПОСТОЯННЫЙ".
       Все, что мы говорили о файлах и их существовании, весь комплекс понятий о файлах и операциях над ними носит название файловой системы. Более точно можно определить файловую систему как набор правил, однозначно определяющий свойства файлов как объектов и все операции над ними. Эти правила будут определяться и уточняться на протяжении всей книги. Здесь следует отметить еще одно свойство файлов.
       Файл может содержать коды символов печатающего устройства, и этот файл можно вывести на печатающее устройство и получить на бумаге некоторый текст. Такой файл мы назовем текстовым. Файл, содержащий произвольные двоичные коды, мы назовем двоичным. Если в двоичном файле коды записаны в соответствии с определенными правилами, то такой файл может являться программой для процессора, тогда его можно загрузить в оперативную память и выполнить. В общем случае двоичный файл может не быть программой. Некоторые файлы могут содержать часть произвольных двоичных кодов и часть символьных кодов.

 

1.4. И кто правит в мире этом?
или
Базовый состав операционной системы

       Как мы видели, мир системы может быть огромным и разнообразным. Если каждый пользователь будет сам писать программы для управления многочисленными периферийными устройствами и файлами, то получится полная неразбериха, так как каждый пишет по своему. С другой стороны, обмен файлами между пользователями будет практически невозможен. Поэтому удобно, чтобы пользователи пользовались единой управляющей программой или набором программ, которые называются операционной системой. Для того чтобы понимать, о чем далее пойдет речь, дадим определение понятия "ОПЕРАЦИОННАЯ СИСТЕМА".

ОПЕРАЦИОННАЯ СИСТЕМА
       — это организованный набор программ, предназначенный для управления операциями ввода/вывода информации, для управления программами пользователя, а также облегчения разработки программ и файлов пользователя.


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

 

1.4.1. На золотом крыльце сидели...
или
Структура операционной системы

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

1.4.1.1. Царь, Царевич...
или
Системные программы

Операционная система предназначена для

          управления операциями ввода/вывода.

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

TT
       — драйвер системного терминала. Обеспечивает ввод информации с клавиатуры и вывод на экран дисплея. Это устройство с последовательным вводом/выводом нефайловой структуры;

DX
       — драйвер накопителя на гибких магнитных дисках ГМД-70 или ГМД-7012. Устройство с произвольным доступом файловой структуры. Полный объем устройства 494 блока;

LP
       — драйвер печатающего устройства с параллельным выводом информации. Вывод информации подобен выводу на экран дисплея, но при этом отсутствуют многие специальные функции терминала. Устройство последовательного вывода нефайловой структуры. Для "Электроники-85" вместо него используется драйвер LS для печатающих устройств с последовательной передачей информации. Для пользователя эта разница не существенна;

SL
       — драйвер редактора командной строки. Физически такого устройства не существует. Драйвер появился только в RT-11 V5.0 и позволяет редактировать вводимую с терминала строку или уже введенную, но предназначенную для повторного ввода;

NL
       — еще одно фиктивное устройство, не существующее физически. Оно "делает вид", что выводит информацию на устройство нефайловой структуры, при этом никакого вывода физически не происходит. Очень удобно при отладке программ;

PC
       — перфоратор и считыватель с перфоленты;

Для ДВК используется драйвер накопителя на гибких магнитных дисках НГМД-6022, который имеет имя MX. Этот драйвер разработан в СССР и не входит в исходную систему RT-11. Этот накопитель нельзя подключить к СОТКЕ.

       Для СОТКИ прибавляются драйверы устройств, которые мы подключили к ней дополнительно:

RK
       — драйвер накопителя на диск-кассетах RK05 или СМ-5400. Устройство с произвольным доступом файловой структуры. Объем 4800 блоков;

DP
       — драйвер накопителя на диск-пакетах RP03 или ЕС-5061 емкостью 20М байт. Устройство с произвольным доступом файловой структуры. Объем 40 000 блоков;

MT
       — драйвер накопителя на магнитной ленте TM11 или СМ-5300. Устройство с последовательным доступом файловой структуры;

VM
       — драйвер виртуальной памяти. Программа, позволяющая использовать дополнительную память, которая имеется в СОТКЕ, как сверхскоростное устройство файловой структуры с произвольным доступом. Драйвер появился только в RT-11 V5.0. Может использоваться также в "Электронике-85" и ДВК-4. В "Электронике-85" объем достигает 820 блоков;

LD
       — драйвер логического диска. Физически такого устройства, как это видно из названия, нет. Однако эта программа позволяет на любом физическом диске (а точнее, на устройстве файловой структуры с произвольным доступом) работать с конкретным файлом как с устройством файловой структуры с произвольным доступом. Драйвер появился в RT-11 V5.0, как логическое развитие имевшихся в предыдущих версиях драйверов UX, UY, UZ. Для того чтобы понять, зачем он нужен, достаточно представить себе насколько неудобно пользоваться книгой очень большого размера и насколько проще читать ту же книгу, напечатанную в нескольких томах, беря в руки том за томом. Когда мы начнем работать с накопителями типа RK или DP (для ДВК-4 или "Электроника-85" он применяется на устройстве DW), мы сможем в этом убедиться.

       Таким образом, мы подобрали для обеих систем наборы программ для ввода/вывода информации на соответствующее устройство. Важно при этом понимать, что каждому устройству в системе, фиктивному или реальному, должна иметься программа-драйвер.
       Однако для организации всех операций ввода/вывода одних драйверов недостаточно. Необходима еще и некоторая программа, которая бы этими драйверами управляла, и в совокупности с ними составляла бы систему ввода/вывода информации. Такая программа есть в RT-11 и, несмотря на то что мы ее функции будем рассматривать отдельно, в самостоятельном виде она не применяется. Программа называется USR (User Service Routine — программа обслуживания пользователя). Программа USR занимается организацией всех операций ввода/вывода и тех, которые мы захотели выполнить в диалоговом режиме командами с клавиатуры, и тех, которые требуется выполнить программе пользователя, исполняющейся в данный момент.
       По определению операционная система должна управлять программами пользователя, т.е. загружать программы в память, следить за распределением памяти, следить за событиями в системе, вести учет времени и выполнять еще много других вспомогательных функций для облегчения разработки программ и файлов поль зователя. Программа такого рода обычно называется монитором (Monitor — старший ученик в классе, управляющий). Так как эта программа управляет всеми другими программами, то она должна постоянно находиться в оперативной памяти или, как говорят, "быть резидентной в памяти". Из совокупности этих посылок и вытекает название управляющей программы в RT-11 — RMON (Residented MONitor).
       Так как программы ОС хранятся на машинном носителе (магнитной ленте или диске), необходима некоторая программа, позволяющая загрузить монитор ОС в оперативную память процессора и запустить ее. Эта программа называется BSTRAP (Bootstrap - загрузчик). Загрузчиков у системы несколько, работают они в разное время и располагаются в разных программных модулях. Здесь мы только отметим, что основной загрузчик располагается в файле монитора.
       Еще одно требование, которое необходимо учитывать, касается чисто человеческого фактора. Работает с системой человек, единственное его средство общения с системой — это клавиатура для ввода команд и экран для вывода информации. Для передачи команд системе необходима программа обработки команд с клавиатуры. В RT-11 эта программа состоит из двух частей. Клавиатурный монитор — KMON (Keyboard MONitor), — выполненный как самостоятельная программа, и его работа находится под управлением резидентного монитора. Вторая часть — интерпретатор командной строки (Command String Interpretator — CSI) — реализована как часть программы USR. Это сделано для того, чтобы облегчить обращение к системе из программы пользователя.
       Четыре описанные выше программы — BSTRAP, USR, RMON, KMON — на носителе хранятся в виде единого файла, имеющего имя RT11$$. Где "$$" обозначают тип монитора BL, SJ, FB, XM, TS, PI, AI (про типы мониторов мы будем говорить в дальнейшем, а пока будем использовать монитор RT11SJ (Single Job — одно задание), который позволяет запускать в один момент времени только одну программу. Все, что будет говориться о нем без оговорок, будет справедливо и для остальных).

Примечание. По причинам, которые будут описаны дальше, в RT-11 V2, V3 имя файла монитора обозначалось иначе — @@MN$$. Где @@ — двухбуквенное имя устройства, которое будет использоватся как системное, $$ — тип монитора. Например, в ОСДВК используется монитор MXMNSJ, т.е. однозадачный (SJ) монитор (MN), который должен располагаться и загружаться с устройства MX (гибкие диски 5.25"). Конец примечания.

       Конечно, можно работать в системе и не зная этих подробностей. Но поиск решения в тупиковых ситуациях, когда, как говорят, "система не понимает", опирается на понимание описанных мелочей. Это во-первых. А во-вторых — в другой системе программы будут иметь другие имена, будут по-другому делить между собой функции, но функции останутся.
       Еще один файл необходим для работы операционной системы — это SWAP. Он представляет собой рабочий буфер системы, где сохраняются важные области памяти пользователя во время операций ввода/вывода.
       Все эти программы и файлы носят название системных, так как самостоятельно они работать не могут и составляют ядро операционной системы и имеют тип .SYS. Образно это можно изобразить так, как это показано на рисунке.

                         +---------------+     +---------+
                         !     K M O N   !<===>!         !
                         !---------------!     !         !
                         !     R M O N   !     ! S W A P !
                         !---------------!     !         !
                         !     U S R     !<===>!         !
                         !---------------!     +---------+
                         !  B S T R A P  !
        +----+----+----+--==+====+====+==--+----+----+----+
        ! TT ! SL ! DX ! NL ! RK ! VM ! DP ! MT ! LD ! MX !
        +----+----+----+----+----+----+----+----+----+----+
           !         !         !        !     !        !
           !         V         !        V     !        V
           !    ГМД-7012       !     ЕС-5061  !   НГМД-6022
           V                   V              V
        VDT-52130          СМ-5400         СМ-5300

               Ядро операционной системы RT-11

1.4.1.2. Сапожник, Портной...
или
Вспомогательные программы

       Вспомогательные программы, или утилиты (Utility), расширяют функциональные возможности операционной системы. Их набор определяется потребностями пользователя при решении конкретной задачи. И все-таки среди множества утилит есть программы, необходимость которых диктуется независимостью работы от сбоев и неполадок системы — аппаратуры и программ.
       Одна из самых важных функций — это копирование файлов. Копирование выполняется при переносе файла с устройства на устройство, при выводе на печать. Скопировать файлы операционной системы с эталона — это первое, с чем сталкивается пользователь. В RT-11 для этой цели используется программа PIP (Peripheral Interchange Program — программа обмена с периферией).
       Файлы хранятся на устройстве внешней памяти. Устройство файловой структуры имеет каталог, и с ним надо работать. Организация каталога, внесение в него записей, запись идентификатора тома и имени владельца, копирование информации с устройства на устройство, используя абсолютные номера блоков, а не имена файлов. Все эти операции в RT-11 выполняет программа DUP (Device Utility Program — программы обслуживания устройств).
       Программист работает вслепую. Никто и никогда не видел программу и не увидит. Никто не видел файл, хранящийся на магнитном диске. И когда возникают сбои — ошибки аппаратуры или программ, ошибки самого пользователя, — очень хочется посмотреть, что произошло в системе, что изменилось. Получить хоть малейшую информацию для анализа возникшей ситуации.
       Одной из таких программ является программа DIR (DIRectory). Эта программа позволяет распечатать каталог устройства файловой структуры в удобном для пользователя виде. Используя информацию программы DIR, полученную в различные моменты времени, можно сказать, что происходило в системе и что не происходило.
       Программа DIR выдает пользователю информацию о файлах и о занимаемых ими блоках на устройстве. Часто требуется более подробная информация, например какие коды находятся в данном месте устройства. Для этого в RT-11 используется программа DUMP. Следует отметить, что эта программа часто позволяет получить информацию об устройствах в тех случаях, когда другие программы бессильны.
       Итак, в качестве вспомогательных программ мы включили в операционную систему четыре. Программы PIP, DUP — это руки операционной системы, DIR, DUMP — это глаза. Взаимодействие этих программ с файлом показано ниже.

            +-------+       +----------+      +---------+
            ! D U P !<=====>!  Запись  !=====>!  D I R  !
            +-------+       ! о  файле !      +---------+
                            +==========+
                            !          !
            +-------+       !          !      +---------+
            ! P I P !<=====>!  Ф А Й Л !=====>! D U M P !
            +-------+       !          !      +---------+
                            +----------+
  
                 Взаимодействие программ с файлом

1.4.1.3. ...кто ты будешь такой?
или
Остальные программы ОС

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

1.5. А откуда все это взялось?
или
Немного истории

       ЭВМ Whirlwind (Вихрь), разработанная в Массачусетсском технологическом институте (МТИ) в начале 50-х годов, явилась в некотором смысле первой персональной ЭВМ. Сидя перед телевизионным экраном этой 16-ти разрядной ЭВМ и пользуясь клавиатурой, световым пером, манипулятором "джойстик" и звуковым сигналом, инженер мог выполнять различные вычисления в диалоговом режиме. Ширина каждой разрядной секции такой ЭВМ составляла 0.6м, а высота 3.35м; вся ЭВМ занимала площадь 232 квадратных метра, т.е. имела довольно большие габариты, и все же она была поистине интерактивной ЭВМ.
       Для того чтобы реализовать идеи, заложенные в ЭВМ Whirlwind, в виде быстродействующих простых интерактивных ЭВМ, в 1957 году была основана фирма Digital Equipment Corporation (DEC). Первые машины PDP-11 корпорации DEC появились в начале 70-х годов. В отличие от серии PDP-8, представляющей собой многократное повторение по существу одной и той же машины в разных технологических вариантах, семейство PDP-11 задумано и осуществляется как ряд машин, объединенных единой архитектурой, но значительно отличающихся друг от друга в отношении производительности и цены. Семейство PDP-11 неуклонно расширяется и включает в себя уже более двадцати моделей, покрывающий обширный диапазон мощностей — от микрокомпьютера LSI-11, поставляемого в минимальном варианте с 8К байт памяти, до "супер-микро" Micro/PDP-11/83 с памятью 4М байта и производительностью на уровне средних моделей IBM 360/370.

Примечание. Обычно буквы "К" и "М" служат для обозначения величин, равных 1000 и 1000000 соответственно. Однако при рассмотрении памяти вычислительных машин по рекомендации Американского Института Национального Стандартов (ANSI) эти буквы обозначают величины 1024 и 1048576. Конец примечания.

       Младшие и средние машины выпускаются в двух вариантах: в завершенном оформлении для конечного пользователя (PDP-11/10, 11/20, 11/40) и в виде полуфабрикатов для комплектования систем (PDP-11/04, 11/05, 11/15, 11/35). Старшие модели (PDP-11/45, 11/50, 11/55, 11/60, 11/70) независимо от назначения поставляются в завершенном варианте. К машинам PDP-11 имеется богатый выбор периферийных устройств, выпускаемых как самой фирмой Digital Equipment Corporation, так и многими другими фирмами.
       Замечательной чертой семейства PDP-11 является тщательно соблюденная на всех уровнях совместимость аппаратуры, программного обеспечения, а также кодов и форматов представления данных на различных носителях.
       Во многих странах выпускались как аналоги, так и машины архитектурно совместимые с машинами серии PDP-11. Это и машины CORAL 4001/4011/4030 румынского производства, и машины JANUS венгерского производства (последние большей частью используют советские микропроцессоры и другие комплектующие изделия). Среди советских ЭВМ получила наибольшее распространение серия малых ЭВМ (СМ-ЭВМ), включающая в себя ЭВМ СМ-3, СМ-4, СМ-1420, а также "Электроника-60", "Электроника-100/25", "Электроника-79" и т.д.
       Ниже мы приводим соответствие ЭВМ класса PDP-11, выпущенных различными странами и фирмами:

Digital Equipment Corporation (DEC) Министерство Электронной Промышленности СССР Министерство РадиоПромышленности СССР Румыния Польша
PDP-11/03        
LSI-11 Электроника-60     MERA-60
PDP-11/04   СМ-3 CORAL-4001  
PDP-11/05/10        
PDP-11/15/20        
PDP-11/35/40 Электроника-100/25 СМ-4   MERA-125
PDP-11/45        
PDP-11/34   СМ-1420 CORAL-4011  
PDP-11/24        
PDP-11/44     CORAL-4030  
PDP-11/50        
PDP-11/55        
PDP-11/60        
PDP-11/70 Электроника-79      
PDP-11/73        
LSI-11/02        
LSI-11/23 Электроника-МС1211      
LSI-11/23+ Электроника-МС1212      
microPDP-11/83 Электроника-МС0102      
Professional-350 Электроника-85      

       Мы будем говорить в этой книге об операционной системе RT-11 (Real Time system pdp-11), разработанной фирмой DEC (Мейнард, шт.Массачусетс, США), прежде всего потому, что она явилась родоначальницей всех однопользовательских ОС для малых и микро-ЭВМ. Вторая причина — большое количество ОС, так или иначе совместимых с RT-11, часто имеют и плохую документацию, которая использует большую часть документации по ОС RT-11, и в своих рекламных заявлениях настолько искажают ее сущность, что говорить о них — значит внести путаницу в весь комплекс понятий однопользовательских систем. Зная исторический процесс и сложившееся положение, легче найти решения при работе с подобными системами, используя логику и аналогии.
       — Алеша, чтобы нам не придумывать самим,— прошу я,— возьми на верхней полке вон ту толстую книгу.
       — RT-11, Software Support Manual,— читает название Алеша.
       — Да, это руководство, изданное фирмой DEC,— подтверждаю я,— и оно начинается с истории создания RT-11.
       — Тогда я просто прочитаю ее,— говорит Алеша,— и сразу переведу.
       — Да,— отвечаю,— а я буду дополнять.
       В 1972 году предполагалось, что RT-11 будет маленькой, быстродействующей, простой в обращении ОС для семейства компьютеров PDP-11. Она развивалась как однопользовательская система для задач реального времени и вычислений; ее основными приложениями были: получение данных, управление технологическими процессами или научными экспериментами и, конечно, разработка программ, расширяющих возможности системы.

Примечание. Задачи реального времени — это задачи, в которых время реакции системы на запрос пользователя меньше времени реакции самого пользователя. Конец примечания.

       1971 год был началом бурного развития компьютерной промышленности. Компьютеру PDP-11 исполнился только год, и Digital демонстрировала многочисленные возможности для тысяч применений, предоставляемых этим относительно недорогим 16-ти разрядным компьютером.
       Имеющееся программное обеспечение для PDP-11 состояло из PTS (Papir Tape Software программное обеспечение на бумажной ленте, которое включало ассемблер PAL-11) и DOS-11 (система пакетной обработки).
       Популярная операционная система для PDP-8, называвшаяся OS/8, была принята как модель для новой операционной системы PDP-11 и временно была названа OS-11. Новая операционная система разрабатывалась как маленькая, однопользовательская, интерактивная система, управляемая событиями от ввода/вывода в реальном времени, которая могла бы работать на компьютерах PDP-11 с памятью 28К слов или меньше. Это обеспечивалось разработкой простой, модульной структуры; драйверы устройств могли быть использованы для передачи ввода/вывода так, чтобы прикладные программы могли быть независимыми от устройств, и файлы запоминались бы в смежных блоках на диске так, чтобы управление записями не вызывало бы беспокойства программиста. Фактическая работа по развитию OS-11 началась в конце 1972 года. Группа из 5 системных программистов и одного составителя документации была набрана для отбора проектов для OS-11 и создания программного обеспечения и описания. В основу работы над OS-11 была положена совместимость с OS/8 и TOPS-10.
       1 версия OS-11 включала однозадачный монитор и набор инструментальных средств для разработки программного обеспечения: редактор текста EDIT, транслятор с языка MACRO-11, редактор связей в программах LINK, отладчик программ ODT, программу обмена с периферийными устройствами PIP и ее вариант для работы с кассетным магнитофоном PIPC, программу редактирования двоичных файлов PATCH. BASIC-11, первая дополнительная система программирования, требующая RT-11 в качестве базовой системы, также был частью версии 1. Однозадачный монитор преусматривал необходимый сервис для работы программ и устанавливал очередь ввода/вывода системы. ОС поддерживала работу с 7 устройствами: с кассетным диском RK, печатающим устройством LP, терминалом TT, кассетным магнитофоном CT, фотосчитывателем с перфоленты PR (Papir Read), перфоратором PP (Papir Punch) и накопителем на магнитной ленте DT (DECTape).
       OS-11 сначала была названа RTPS-11 (Real-Time Programing System — система программирования реального времени). Версия RT-11 V1.0 была завершена в конце 1973 года и дополнена средствами для работы с графическим дисплеем GT-40 в конце 1974 года.
       Вскоре стало очевидным, что RT-11 удалась. В группу добавились еще системные программисты и разработчики документации, и началось развитие следующей реализации. Версии 2, 2В, 2С внесли несколько новых значительных особенностей в ОС. Новый монситор позволял одновременно выполнять две задачи в основном и фоновом (Foreground/Background) режиме. Была добавлена поддержка новых периферийных устройств, включая накопители на магнитных лентах MM и MT, считыватель с перфокарт CR, диск-пакет DP, накопитель на гибком магнитном диске DX. Количество вспомогательных программ увеличилось для улучшения набора средств разработки программ. Сюда были включены: программа сбора таблицы перекрестных ссылок CREF, программа для создания библиотек LIBR, программа распечатки содержимого носителей DUMP, программа преобразования форматов записи на носителях FILEX, программа сравнения текстовых файлов SRCCOM, программа выполнения заданий в пакетном режиме BATCH. Транслятор с языка FORTRAN- IV был реализован с версией 2, и ОС теперь включала библиотеку подпрограмм, названную SYSLIB. Версия 2 была закончена в конце 1974 года; версия 2С — в начале 1976 года.
       Версия 3 RT-11 была еще одной важной реализацией. Наиболее значительной была разработка монитора расширенной памяти, который представлял собой двух-задачный монитор с добавленными средствами управления расширенной памятью. Это позволяло работать с системами, имеющими 124К слов физической памяти (все модели PDP-11, кроме PDP-11/04). Дополнительные системы программирования, такие, как FORTRAN-IV, MULTI-USER BASIC-2 (многопользовательский BASIC), использовали преимущества этих особенностей и могли теперь переносить их на прикладные программы. Были также включены средства поддержки многотерминальных систем и системы протоколирования ошибок. Командный язык DCL (Digital Command Language — командный язык фирмы DEC) развивался таким образом, что почти все системные программы должны быть доступны командам монитора, приближенным к естественному английскому языку. Возможность формирования файлов из этих команд сделало пакетную обработку более удобной, чем в BATCH.
       Была добавлена поддержка для новых устройств фирмы DEC: DL, DM, DY, NL, PC (которое заменяет PR и PP). Были представлены еще системные программы. Функции программы PIP были разделены между программами PIP, DUP, DIR. Были включены программы форматирования дисков FORMAT и программа определения ресурсов системы RESORC. Пользователю была предоставлена возможность быстрого и простого изменения функций ОС, наиболее гибко приспосабливая ее к потребностям пользователя. В прилагаемые пакеты программ был включен экранный редактор TECO. Версия 3 была окончена в конце 1977 года, а версия 3в — в начале 1978 года.
       Наиболее существенные (можно сказать революционные) изменения произошли при разработке RT-11 V4.0. Рабочую систему стало возможным переносить с одного типа устройств на другой путем простого копирования, за счет отделения файлов монитора от драйверов системных устройств. Именно поэтому изменилась структура имен мониторов, так как теперь монитор не зависел от системного устройства. При этом обеспечивалась большая гибкость в работе и экономия памяти как на носителях, так и в ОЗУ процессора.
       Количество одновременно запускаемых программ (задач) было увеличено до 8. В качестве одной из таких задач был предложен диспетчер очередей для файлов, выводимых на печатающее устройство (QUEMAN). Это повышало производительность пользователя.
       Были предложены мощные средства сопровождения программ BINCOM, SIPP, SRCCOM, SLP, что позволило сделать создание и внесение изменений почти автоматическим. Также был включен мощный экранный редактор KED и его версия для терминала VT52 — K52. Версия RT-11 V4.0 была завершена в начале 1980 года.
       Ничто не вечно в компьютерной промышленности. Новое аппаратное обеспечение и расширяющиеся потребности пользователей потребовали создать современное программное обеспечение.
       Версия 5 RT-11, изменявшаяся до весны 1983 года, включала поддержку для новых аппаратных средств, таких, как MSCP и Micro/PDP-11. Монитор расширенной памяти теперь поддерживал 22-разрядную адресацию памяти на центральных процессорах с магистралью Q-bus, что предоставляло пользователю адресное пространство для программ до 4М байт.
       Новый драйвер виртуальной памяти позволял использовать расширенную память так же, как диск. LD-драйвер был добавлен для поддержки логического диска. Драйвер SL (Single Line editor — редактор одной строки) имел поддержку программой LET, что позволяло запоминать для любой символьной клавиши строку из 15 символов. Программа IND (INDirect command file processor — процессор косвенных командных файлов) и программа BUP, которая позволяла копировать содержимое большого диска на несколько маленьких с автоматическим формированием каталога и наоборот, добавленный в дистрибутивный носитель, а также переписанный SYSGEN сделали установку и модификацию системы простой и удобной. Добавленны новые DCL-команды и ключи, а также CCL (Concise Command Language — язык командных последовательностей) и UCL (User Command Linkage — связь с командами пользователя). В то же время минимальная система требовала для работы 16К слов оперативной памяти, оставаясь традиционно для RT-11 маленькой, быстрой, интерактивной и удобной для пользования.
       Версия 5.1 RT-11 своим появлением обязана серии персональных компьютеров Professinal-300. Кроме того, была обеспечена поддержка новых микропроцессоров T-11 и J-11, а также систем на их основе (SBC-11/21, PDP-11/23+, LSI-11/73). Новые периферийные устройства: нгмд RX50, жесткий диск "Винчестер" RD50/RD51 для PRO-350 объемом 5/10М байт, жесткий диск "Винчестер" RA80 объемом 124М байта, сменные жесткие диски RC25 объемом 2*26М байт, новый магнитофон TSV05, который в 9-ти дорожечном стандарте может запоминать до 28М байт на одной ленте и "стриммер" TK25 с объемом кассеты 60М байт, так же получили программую поддержку.
       Были включены средства для автоматической установки RT11AI-монитор и верификации системы IVP (Installation Verification Procedure). Отсутствие в PRO-300 символьного дисплея потребовало эмуляции его с помощью нового драйвера PI. Это позволило предлагать пользователю терминалы VT52, VT100 и др. по его желанию. А с помощью программы SETUP пользователь мог установить параметры терминала от цвета символов и фона до набора символов его родного языка. Исполнение программ в расширенной памяти с помощью программы VBGEXE позволило использовать ресурсы системы до предела.
       Добавленные средства для построения локальных сетей VTCOM позволили персональным компьютерам PRO-300 связываться с любыми системами как фирмы DEC, так и других производителей. Версия 5.1 была закончена в декабре 1983 года, Версия 5.1B завершена в январе-марте 1984 года.
       Новый виток усовершенствований включал уже в себя и персональные компьютеры. Версия 5.2 RT-11 была дополнена средствами для программирования графического дисплея, а жесткий диск "Винчестер" RD52 (для PRO-300) стал объемом 33М байта. Для всех систем PDP-11 добавились средства для построения быстрых локальных сетей EtherNet. Поддерживаемые системой устройства печати пополнились лазерным принтером LN03.
       Таким образом, в настоящее время RT-11 представляет собой мощную многозадачную, многотерминальную, однопользовательскую операционную систему. На базе RT-11, включая ее различные версии, в нашей стране и за рубежом были "разработаны" совместимые с ней операционные системы. Ниже приводится соответствие различных версий RT-11 и других систем:

DEC Венгрия СССР СССР СССР Румыния Польша
RT-11 V2.0 FOBOS   ФОДОС-2В      
RT-11 V3.0 FOBOS РАФОС   ОС ДВК MINOS RT-60
RT-11 V4.0   РАФОС-2   ОС ДВК MINOS RT-60
RT-11 V5.0     ФОДОС-II      
RT-11 V5.1     ФОДОС-III      
RT-11 V5.2            
RT-11 V5.3            
RT-11 V5.4            

       Все примеры, приводимые в книге, будут ориентированы на использование RT-11 V5.1B, но объяснения справедливы для всех перечисленных операционных систем. Любые отличия между версиями будут так или иначе оговариваться в каждом конкретном случае. Таблицы соответствия команд клавиатурного монитора и интерпретатора командной строки взяты из исходных текстов клавиатурного монитора версии RT-11 V5.1В, каталог дистрибутива, которой приведен в седьмой главе.
       В конце 1975 года Гарри Килдэл, организовавший в 1976 году фирму Digital Research, использовал принципы RT-11 и разработал операционную систему CP/M (Control Program for Microprocessor), которая во многих случаях, с точки зрения пользователя, не отличается от RT-11. Строго говоря, она не является операционной системой в полном смысле этого слова. Более точно — это управляющая программа, как отражено в ее названии. Заслуга Г.Килдэла в том, что он приблизил компьютеры к миллионам рядовых пользователей. Компьютер PDP-11/40 в то время стоил 13500 долл., что было достаточно дорого, а систему, которую предлагал Г.Килдэл на базе микропроцессора Intel-8080 можно было купить за несколько сот долларов.
       Чисто конструктивные изменения были в следующем.
       — Функции клавиатурного монитора были сокращены до минимума — он должен найти в каталоге программу с указанным именем и запустить ее на выполнение. В эту же секцию вошел CSI (говоря терминами RT-11). В результате получился CCP (Console Command Processor).
       — Количество поддерживаемых устройств было сведено до минимума — гибкий диск 8" (а в последствии и 5,25"), консоль, принтер. Драйверы и USR были объединены в одну секцию, что резко сократило ее объем. В результате получился BIOS (Basic Input/Output System).
       — Функции RMON были также сокращены и упрощен способ обращения к ним, и он был преобразован в BDOS (Basic Disk Operating System).
       Все это позволило уложить эти три секции только в две дорожки 8" диска. Остальная часть (75 дорожек) могла быть использована для каталога и данных пользователя. По сравнению с RT-11 CP/M занимает места на диске всего в два раза больше, чем загрузчик монитора в RT-11, и лежит, по существу, на его месте.
       Наличие в CP/M отдельных программ для каждой выполняемой команды внесло путаницу в комплекс понятий "Команда Монитора и вызываемая ею программа".
       Примерно в то же время фирма Intel разработала свою операционную систему
       ISIS-II для систем проектирования микропроцессоров и микроконтроллеров INTELECT, основанную на тех же принципах.
       Фирма MicroSoft, которая долгое время писала прикладное и системное программное обеспечение по заказу Digital Researc для CP/M, адаптировала ее для других микропроцессоров, назвав свой вариант, выпущенный на рынок в августе 1984 года для персональных ЭВМ IBM PC, — MS-DOS.
       Кроме того, необходимо отметить, что фирмой Software & Hardware System (США) была сделана попытка разработать многопользовательский вариант RT-11, которая получила название TSX (в СССР ей соответствует TS-монитор из РАФОС-2).

 

1.6. Указ становится законом,
или
Полное определение системы


       Теперь мы можем определить то, что в данной книге будет называться "СИСТЕМОЙ". Система — это организованная совокупность набора аппаратуры (аппаратная часть системы — Hardware), набора программ (операционная система — Software) и правил обмена информацией в системе (Interface), предназначенная для удовлетворения нужд пользователя.

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

1. Варга Б., Димень Ю., Лопариц Э. Язык, Музыка, Математика. Пер. с венгерского Ю.А.Данилова. М., Мир, 1981.
       Эта книга не имеет никакого отношения ни к программированию, ни к вычислительной технике, ни к операционным системам. Даже к содержанию этой главы она имеет весьма косвенное отношение. Главное, для чего ее предлагается прочитать именно сейчас, — это сформировать у читателя умение находить и желание искать аналогии в окружающем нас мире. Без этого умения дальнейшая работа в системе будет неэффективной и не продвинется дальше любительства.

2. Рафаэл Б. Думающий компьютер. Пер. с английского В.П.Стефанюка. М., Мир. 1979.
       Несмотря на то что Бертран Рафаэл является специалистом в области искусственного интеллекта, в предлагаемой книге должно привлечь внимание удивительно точное описание сущности ЭВМ и значение, которое Рафаэл придает постановке задачи. В точной постановке задачи содержится более половины решения.

3. Колин А. Введение в операционные системы. Пер. с английского И.Х.Зусман. М., Мир, 1975.
       Достоинства этой книги очевидны: одна из самых тоненьких, с прекрасным юмором рассказывает об основных чертах операционных систем, не опираясь на какую-нибудь конкретную систему. Следует отметить, что эпиграфы к каждой главе книги настолько точно формулируют идею, что глава является скорее иллюстрацией к эпиграфу, чем самостоятельным носителем идеи.

4. Уорвик М. Введение в операционные системы. Основные понятия. В книге "Супервизоры и операционные системы" под ред. Дж.Каттла и П.Робинсона. М., Мир, 1972.
       Прекрасный взгляд на операционные системы, с точки зрения различных групп людей. Мартин Уорвик в начале задается вопросом — зачем нужна операционная система? Пытаясь ответить на этот вопрос, он приходит к некоторым выводам — какими качествами должна обладать хорошая операционная система.

(c) 1992г Архангельский Андрей Германович




Поддержите культуру
ЯндексЯндекс. ДеньгиХочу такую же кнопку

Google
 
Web azdesign.ru az-libr.ru


Дата последнего изменения:
Wednesday, 06-Nov-2013 08:33:54 UTC