Управление заданиями (вычисления) - Job control (computing)

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

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

Даже при очень сложной системе расписания желательно вмешательство человека. Современные системы позволяют пользователям останавливать и возобновлять задания, выполнять их на переднем плане (с возможностью взаимодействия с пользователем) или в фоновом режиме. Unix-подобные системы следуют этому шаблону.

История

Первым разработчикам компьютеров стало очевидно, что их быстрые машины большую часть времени простаивают, потому что одна программа, которую они выполняют, должна ждать, пока медленная. периферийный устройство выполнило важную операцию, такую ​​как чтение или запись данных; в современном понимании программы были С привязкой к вводу / выводу, нет ограниченный вычислением. Буферизация предоставлено только частичное решение; в конечном итоге выходной буфер займет всю доступную память или входной буфер будет опустошен программой, и система будет вынуждена ждать, пока относительно медленное устройство завершит операцию.

Более общее решение многозадачность. Более одной запущенной программы или процесс, присутствует в компьютере в любой момент времени. Если процесс не может быть продолжен, его контекст могут быть сохранены, и компьютер может запускать или возобновлять выполнение другого процесса. Вначале довольно простая и основанная на специальных методах программирования, многозадачность вскоре стала автоматизированной и обычно выполнялась с помощью специального процесса, называемого планировщик, имея возможность прерывать и возобновлять выполнение других процессов. Обычно Водитель для периферийного устройства приостанавливает выполнение текущего процесса, если устройство не может немедленно завершить операцию, и планировщик помещает процесс на его очередь спальных мест. Когда периферийное устройство завершит операцию, процесс снова пробуждается. Аналогичная приостановка и возобновление могут также применяться к межпроцессного взаимодействия, где процессы должны взаимодействовать друг с другом асинхронно, но иногда им приходится ждать ответа.

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

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

Пакетная обработка

Хотя пакетная обработка может выполняться круглосуточно, с операторами компьютера или без них,[1] поскольку компьютер намного быстрее, чем человек, большинство решений принимается еще до того, как задание даже начинается, и требует планирования со стороны «программиста».

Пакетно-ориентированные функции

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

  • какую программу (ы) запустить;
  • какой файл (ы) и / или устройство (а) использовать для ввода-вывода;[2] и
  • иногда, чтобы также указать, при каких условиях нужно пропустить шаг.

Языки управления заданиями

Партия

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

BANG и другие JCL не IBM

Мэйнфреймы не IBM партия в системах была некоторая форма языка управления заданиями, независимо от того, называется он так или нет; их синтаксис полностью отличался от версий IBM, но обычно они предоставляли аналогичные возможности. Интерактивный системы включают "командные языки "—Командные файлы (например, файлы PCDOS" .bat ") можно запускать неинтерактивно, но они обычно не обеспечивают такой надежной среды для выполнения автоматических заданий, как JCL. В некоторых компьютерных системах язык управления заданиями и интерактивная команда язык может быть другим. Например, TSO в системах z / OS использует КЛИСТ или же Rexx в качестве командных языков вместе с JCL для пакетной работы. В других системах они могут быть такими же.

Не-IBM JCL того, что когда-то было известно как ГРУППА (Burroughs, Univac / Unisys, NCR, Control Data, Honeywell), за исключением Unisys, являются частью BANG[3][4] это было успокоено.

Интерактивный

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

JCL, файловые системы и независимость от устройств

Возможность не указывать часть или всю информацию о файле или устройстве, которые будут использоваться данной программой, называется независимостью от устройств.

Вычисления в реальном времени

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

Поскольку системы реального времени выполняют планирование на основе событий для всех операций в реальном времени, «последовательность этих операций в реальном времени не находится под непосредственным контролем оператора компьютера или программиста».[5]

Однако система может иметь возможность чередовать задачи в реальном времени и другие, менее критичные ко времени задачи, где разделительной чертой может быть, например, ответ, требуемый в течение одной десятой секунды.[5]:стр.1 В случае систем Xerox RBM (Real-time / Batch Monitor),[6][7][8] например, существовали две другие возможности:[5]:стр.2

  • команды оператора ЭВМ («незапрашиваемый ввод»);
  • фоновые потоки заданий (пакетные задания ).

внешняя ссылка

Смотрите также

Рекомендации

  1. ^ «Мэйнфрейм работает в нерабочее время: пакетная обработка».
  2. ^ и многие другие детали, например, следует ли сохранить или удалить файл, максимальный объем дискового пространства, до которого он может увеличиваться, имя ленты, которая будет предварительно смонтирована.
  3. ^ то, что Xerox Data Systems и ее покупка SDS назвали своей восклицательный знак«Список операционных систем».
  4. ^ косая черта его JCL, называемая НАКЛОН НАКЛОН некоторыми. Остальная часть этой сноски представляет собой напоминание, посвященное первому человеку, от которого я услышал SLANT SLANT, покойному старшему оператору компьютера и отставному военному офицеру, который провел много уроков, ориентированных на людей. Пусть это будет добавлено к его цитатам.
  5. ^ а б c Xerox Real-Time Batch Monitor (RBM), компьютеры Sigma 2/3, руководство пользователя (PDF). Xerox Corporation. Получено 2017-02-16.
  6. ^ семейство: Scientific Data Systems SDS Sigma 2 & 3, переименованные / объединенные, поскольку Xerox приобрела Xerox Data Systems, Xerox 530.
  7. ^ SDS Sigma 5, 6 и 7 стали Xerox 560
  8. ^ XOs SIGMR 5/7 ПАКЕТНЫЙ МОНИТОР В РЕАЛЬНОМ ВРЕМЕНИ (RBM-2) (PDF). Получено 2017-02-16.