Cтраница 1
Расширенная машина дает возможность упростить этап компиляции путем обеспечения интерфейсов более высокого уровня, в терминах которых оформляется объектная программа, а также снизить трудоемкость процесса программирования на машинном языке. [1]
С точки зрения пользователя операционная система выполняет функцию расширенной машины или виртуальной машины, в которой проще программировать и легче работать, чем непосредственно с аппаратным обеспечением, составляющим реальный компьютер. То, каким образом операционная система достигает своей цели - долгая история, но мы подробно рассмотрим этот процесс в нашей книге. Подведем итог вышесказанному: операционная система предоставляет нам ряд возможностей, которые могут использовать программы с помощью специальных команд, называемых системными вызовами. [2]
Поскольку операции ввода-вывода выполняются либо асинхронно по отношению к основной программе, либо вызывают ее приостановку, в расширенной машине должен быть предусмотрен механизм синхронизации выполнения программы и операций ввода-вывода или средства, позволяющие сообщить основной программе о завершении обменов. [3]
Эта система, в оригинале называвшаяся CP / CMS, а позже переименованная в VM / 370 [279], была основана на следующем проницательном наблюдении: система с разделением времени обеспечивает ( 1) многозадачность и ( 2) расширенную машину с более удобным интерфейсом, чем тот, что предоставляется оборудованием напрямую. VM / 370 основана на полном разделении этих двух функций. [4]
Система IBSYS / IBJOB - это развитая крупная система без мультипрограммирования, разработанная в начале 60 - х годов. Она представляет собой многоязыковое обобщение FMS, основанное на концепции резидентного ядра системы, реализующего расширенную машину. [5]
Поскольку языки управления существенно зависят от структур операционных систем, каждый из них фактически годится только для некоторого состояния системы. Вследствие развития систем и функционального обогащения среды выполнения меняются как семантика запросов, так и отношения между расширенными машинами и языками управления. Поэтому старые языки управления неизбежно перестают соответствовать новым условиям. [6]
Основные метрические префиксы. [7] |
Как менеджер ресурсов операционная система рационально управляет различными частями системы. С точки зрения расширенной машины, работа операционной системы состоит в предоставлении пользователям виртуальной машины, более удобной, чем настоящий компьютер. [8]
Структура VM / 370 с системой CMS. [9] |
Когда программа операционной системы CMS выполняет системный вызов, он прерывает операционную систему на своей собственной виртуальной машине, а не на VM / 370, как произошло бы, если бы он работал на реальной машине вместо виртуальной. Затем CMS выдает обычные команды ввода-вывода для чтения своего виртуального диска или другие команды, которые ей могут понадобиться для выполнения вызова. Эти команды ввода-вывода перехватываются VM / 370, которая выполняет их в рамках моделирования реального оборудования. При полном разделении функций многозадачности и предоставления расширенной машины каждая часть может быть намного проще, гибче и удобней для обслуживания. [10]
Различные программы зачастую обращаются к одним и тем же функциям. Решение о том, какие функции следует помещать непосредственно в скомпилированную программу, а какие реализовывать в виде части расширенной машины, принимается на этапе проектирования и отражает представление разработчиков об операциях, наиболее часто встречающихся в программах. Этот вопрос часто служит предметом дискуссии между разработчиками компиляторов и разработчиками операционных систем. [11]
Вероятно, одним из лучших образцов командных систем, работающих в диалоговом режиме, можно назвать систему Multics. Командный язык системы Multics позволяет вводить программы с терминала, осуществлять их редактирование и передачу на выполнение в режиме диалога или в режиме пакетной обработки. Система позволяет обращаться с терминала к любой известной ей процедуре и обеспечивает доступ с терминала к любой совокупности данных. Командный язык предусматривает определение прав доступа пользователя с терминала к любой процедуре и организованной совокупности данных. Разнообразные функции, доступные в других системах только программам, работающим с интерфейсами расширенной машины, в Multics реализуются ( хотя и в иной синтаксической форме) с помощью терминальных команд. Кроме того, команды могут обмениваться параметрами, получать необходимые значения в результате вызова процедур, а также объединяться в командные процедуры ( напоминающие каталогизированные процедуры JCL), вызываемые по именам. В системе Multics нашли свое отражение многие характерные черты современных командных систем, которые мы рассмотрим в следующем разделе. [12]