Управление заданиями (вычисления)
Эта статья нуждается в дополнительных цитатах для проверки . ( август 2017 г. ) |
В вычислительной технике управление заданиями означает управление несколькими задачами или заданиями в компьютерной системе , гарантируя, что каждое из них имеет доступ к адекватным ресурсам для правильной работы, чтобы конкуренция за ограниченные ресурсы не приводила к тупику , когда два или более заданий не могут выполняться. завершение, разрешение таких ситуаций, если они возникают, и прекращение заданий, которые по какой-либо причине не выполняются должным образом.
Управление заданиями развивалось с первых дней существования компьютеров, где люди -операторы отвечали за настройку, мониторинг и контроль каждого задания, до современных операционных систем , которые берут на себя основную часть работы по управлению заданиями.
Даже при наличии весьма сложной системы планирования некоторое вмешательство человека желательно. Современные системы позволяют своим пользователям останавливать и возобновлять задания, выполнять их в переднем плане (с возможностью взаимодействия с пользователем) или в фоновом режиме. Unix-подобные системы следуют этому шаблону .
История
[ редактировать ]Для первых разработчиков компьютеров стало очевидно, что их быстрые машины большую часть времени простаивали, потому что единственной программе, которую они выполняли, приходилось ждать, пока медленное периферийное устройство завершит важную операцию, такую как чтение или запись данных; Говоря современным языком, программы были привязаны к вводу-выводу , а не к вычислениям . Буферизация обеспечила лишь частичное решение; в конечном итоге выходной буфер займет всю доступную память или входной буфер будет очищен программой, и система будет вынуждена ждать, пока относительно медленное устройство завершит операцию.
Более общее решение — многозадачность . более одной запущенной программы или процесса В любой момент времени на компьютере присутствует . Если процесс не может продолжиться, его контекст может быть сохранен, и компьютер может запустить или возобновить выполнение другого процесса. Поначалу довольно бесхитростная и опиравшаяся на специальные методы программирования, многозадачность вскоре стала автоматизированной и обычно выполнялась специальным процессом, называемым планировщиком , имеющим возможность прерывать и возобновлять выполнение других процессов. Обычно драйвер периферийного устройства приостанавливает выполнение текущего процесса, если устройство не может немедленно завершить операцию, и планировщик помещает процесс в свою очередь спящих заданий. Когда периферийное устройство завершило операцию, процесс возобновляется. Аналогичная приостановка и возобновление могут также применяться к межпроцессному взаимодействию , когда процессам приходится взаимодействовать друг с другом асинхронно, но иногда им приходится ждать ответа.
Однако такое низкоуровневое планирование имеет свои недостатки. Процесс, которому редко требуется взаимодействовать с периферийными устройствами или другими процессами, будет просто потреблять ресурсы процессора до тех пор, пока не завершится или не будет остановлен ручным вмешательством. В результате, особенно для интерактивных систем, выполняющих задачи, которые часто взаимодействуют с внешним миром, система становится медлительной и медленно реагирует своевременно. Эта проблема решается путем выделения каждому процессу «кванта времени» — периода непрерывного выполнения, после которого планировщик автоматически помещает его в очередь ожидания. Процессу могут быть присвоены разные приоритеты, и планировщик может затем выделять различные доли доступного времени выполнения каждому процессу на основе назначенных приоритетов.
Эта система вытесняющей многозадачности составляет основу большинства современных систем управления заданиями.
Пакетная обработка
[ редактировать ]Хотя пакетная обработка может выполняться круглосуточно, с участием операторов компьютеров или без них, [1] поскольку компьютер намного быстрее человека, большая часть решений принимается еще до начала выполнения задания и требует планирования со стороны «программиста».
Пакетно-ориентированные функции
[ редактировать ]Хотя может присутствовать оператор компьютера, пакетная обработка в основном осуществляется без вмешательства человека. Поэтому в представленные инструкции необходимо включить множество деталей:
- какие программы запускать;
- какие файлы и/или устройства использовать для ввода-вывода; [2] и
- иногда, чтобы также указать, при каких условиях пропустить шаг.
Языки управления заданиями
[ редактировать ]Партия
[ редактировать ]Первые резидентные мониторы и операционные системы компьютеров были относительно примитивными и не были способны к сложному распределению ресурсов. Обычно такие решения о распределении принимаются оператором компьютера или пользователем, отправившим задание. Пакетная обработка была обычным явлением, а интерактивные компьютерные системы были редки и дороги. Языки управления заданиями (JCL), разработанные как примитивные инструкции, обычно напечатанные на картах в начале колоды, содержащей входные данные, запрашивающие такие ресурсы, как выделение памяти, серийные номера или названия катушек с магнитной лентой, которые должны быть доступны во время выполнения, или назначение имена файлов или устройств на номера устройств, на которые ссылается задание. Типичным примером такого рода языка, до сих пор используемого на мэйнфреймах, является IBM язык управления заданиями (также известный как JCL). Хотя формат ранних JCL был предназначен для использования перфокарт , он пережил переход к хранению в компьютерных файлах на диске.
BANG и другие JCL, не принадлежащие IBM
[ редактировать ]системы для мэйнфреймов, отличных от IBM, Пакетные имели некую форму языка управления заданиями, называлась она так или нет; их синтаксис полностью отличался от версий IBM, но обычно они предоставляли схожие возможности. Интерактивные системы включают в себя « командные языки » — командные файлы (такие как файлы PCDOS «.bat») можно запускать в неинтерактивном режиме, но они обычно не обеспечивают такую надежную среду для выполнения автоматических заданий, как JCL. В некоторых компьютерных системах язык управления заданиями и язык интерактивных команд могут различаться. Например, TSO в системах z/OS использует CLIST или Rexx в качестве командных языков наряду с JCL для пакетной работы. В других системах они могут быть такими же.
Не-IBM JCL того, что когда-то было известно как BUNCH (Burroughs, Univac/Unisys, NCR, Control Data, Honeywell), за исключением Unisys , являются частью BANG. [3] [4] это утихло.
Интерактивный
[ редактировать ]По мере развития систем разделения времени появилось интерактивное управление заданиями. Конечный пользователь в системе разделения времени может отправить задание в интерактивном режиме со своего удаленного терминала ( удаленный ввод задания ), связаться с операторами, чтобы предупредить их об особых требованиях, и запросить систему о ходе выполнения задания. Он мог присвоить заданию приоритет и при желании завершить (уничтожить) его. Он также мог бы, естественно, запустить задание на переднем плане, где он мог бы напрямую взаимодействовать с исполняемой программой. Во время интерактивного выполнения он мог прервать задание и позволить ему продолжить работу в фоновом режиме или завершить его. Такое развитие интерактивных вычислений в многозадачной среде привело к разработке современной оболочки .
JCL, файловые системы и независимость от устройств
[ редактировать ]Возможность не указывать часть или всю информацию о файле или устройстве, которое будет использоваться данной программой, называетсянезависимость устройства.
Вычисления в реальном времени
[ редактировать ]система работает своевременно Упреждающая многозадачность с контролем заданий гарантирует, что большую часть времени . В некоторых условиях (например, при эксплуатации дорогостоящего или опасного оборудования) серьезным конструктивным ограничением системы является предоставление своевременных результатов при любых обстоятельствах. В таких обстоятельствах контроль выполнения работ становится более сложным и роль планирования становится более важной.
Поскольку системы реального времени осуществляют планирование всех операций в реальном времени на основе событий, «последовательность этих операций в реальном времени не находится под непосредственным контролем оператора компьютера или программиста». [5]
Однако система может иметь возможность чередовать задачи реального времени и другие, менее критичные по времени задачи, где разделительной линией может, например, быть ответ, требуемый в течение одной десятой секунды. [5] : стр.1 В случае систем Xerox RBM (монитор реального времени/пакетной обработки) [6] [7] [8] например, существовали две другие возможности: [5] : стр.2
- команды оператора компьютера («незапрошенный ввод»);
- потоки фоновых заданий ( пакетные задания ).
Внешние ссылки
[ редактировать ]См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Мэйнфрейм работает в нерабочее время: пакетная обработка» .
- ^ и многие другие сведения, например, следует ли сохранить или удалить файл, максимальный объем дискового пространства, до которого он может вырасти, имя предварительно смонтированной ленты.
- ^ то, что Xerox Data Systems и ее покупка SDS назвали восклицательным знаком «Список операционных систем» .
- ^ SLASH SLASH его JCL, называют SLANT SLANT который некоторые . Оставшаяся часть этой сноски представляет собой напоминание, посвященное первому человеку, от которого я услышал SLANT SLANT, покойному старшему компьютерному оператору и отставному военному офицеру, который преподал много уроков, ориентированных на людей. Добавим это к его цитатам.
- ^ Jump up to: а б с Xerox Real-Time Batch Monitor (RBM), компьютеры Sigma 2/3, Руководство пользователя (PDF) . Корпорация Ксерокс . Проверено 16 февраля 2017 г.
- ^ семейство: Scientific Data Systems SDS Sigma 2 и 3, переименованное/объединенное в приобретенную Xerox Data Systems, Xerox 530.
- ^ SDS Sigma 5, 6 и 7 стали Xerox 560.
- ^ XOs SIGMR 5/7 МОНИТОР ПАРТИИ В РЕАЛЬНОМ ВРЕМЕНИ (RBM-2) (PDF) . Проверено 16 февраля 2017 г.