Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

История [ править ]

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

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

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

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

Пакетная обработка [ править ]

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

Пакетно-ориентированные функции [ править ]

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

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

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

Пакет [ править ]

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

BANG и другие JCL, не принадлежащие IBM [ править ]

В пакетных системах мэйнфреймов сторонних производителей имелся язык управления заданиями, независимо от того, назывался он так или нет; их синтаксис полностью отличался от версий IBM, но обычно они предоставляли аналогичные возможности. Интерактивные системы включают « языки команд » - файлы команд (например, файлы «.bat» PCDOS) могут запускаться неинтерактивно, но они обычно не обеспечивают такой надежной среды для выполнения автоматических заданий, как 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 (Real-time / Batch Monitor), [6] [7] [8], например, существовали две другие возможности: [5] : стр. 2

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

Внешние ссылки [ править ]

  • Управление заданиями - Библиотека GNU C

См. Также [ править ]

  • Командный язык
  • Язык управления заданиями
  • Управление заданиями (Unix)

Ссылки [ править ]

  1. ^ «Мэйнфрейм работает в нерабочее время: пакетная обработка» .
  2. ^ и многие другие детали, такие как сохранение или удаление файла, максимальный объем дискового пространства, до которого он может увеличиваться, имя предварительно смонтированной ленты.
  3. ^ то, что Xerox Data Systems и ее покупка SDS назвали своим восклицательным знаком «Список операционных систем» .
  4. ^ SLASH SLASH его JCL, который некоторыеназывают SLANT SLANT . Остальная часть этой сноски представляет собой напоминание, посвященное первому человеку, от которого я услышал SLANT SLANT, покойному старшему оператору компьютера и отставному военному офицеру, который провел много ориентированных на людей уроков. Пусть это будет добавлено к его цитатам.
  5. ^ a b c Xerox Real-Time Batch Monitor (RBM), Sigma 2/3 Computers, Руководство пользователя (PDF) . Корпорация Xerox . Проверено 16 февраля 2017 .
  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) . Проверено 16 февраля 2017 .