Задача (вычисление) - Task (computing)

Образец пул потоков (зеленые квадраты) с очереди задач ожидания задачи (синий) и завершено задачи (желтый) в смысле задачи как «единицы работы».

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

Терминология

В смысле «единицы исполнения» в некоторых операционные системы, задача - синоним обработать[нужна цитата ], а в других с нить[нужна цитата ]. В неинтерактивном исполнении (пакетная обработка ), задача - это единица выполнения в работа,[1][2] сама задача обычно представляет собой процесс. Период, термин "многозадачность "в первую очередь относится к пониманию обработки - несколько задач выполнение в то же время - но имеет нюансы рабочего смысла выполнения нескольких задач выполнила в то же время.

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

Примеры

в Ява В языке программирования эти два понятия (единица работы и единица выполнения) объединяются при работе непосредственно с потоками, но четко различаются в Исполнители фреймворк:

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

Терминология IBM

IBM Использование этого термина оказало большое влияние, хотя и подчеркивало двусмысленность термина, в терминологии IBM «задача» имеет десятки конкретных значений, в том числе:[4]

  • Единица работы, представляющая один из этапов процесса.
  • Единица работы, выполняемая устройством или процессом.
  • Процесс и процедуры, запускающие этот процесс.
  • Набор действий, направленных на достижение определенного результата. Задача выполняется по набору целей по определенному расписанию.
  • Единица вычисления. В параллельном задании две или несколько параллельных задач работают вместе посредством передачи сообщений и общей памяти. Хотя принято выделять одну задачу на физический или логический процессор, термины «задача» и «процессор» не взаимозаменяемы.
  • Деятельность, имеющая ценность для бизнеса, инициируется пользователем и выполняется программным обеспечением.

В z / OS в частности, он определяется как:[5]

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

Термин «задача» в OS / 360 - z / OS примерно эквивалентен «облегченному процессу»; задачи на этапе задания разделяют адресное пространство. Однако в МВС / ЕКА через z / OS, задачу или Блокировка запроса на обслуживание (SRB) может иметь доступ к другим адресным пространствам через свой список доступа.

Ядро Linux

Период, термин задача используется в Ядро Linux (по крайней мере, с v2.6.13,[6] до версии 4.8 включительно[7]) для обозначения единицы выполнения, которая может совместно использовать различные системные ресурсы с другими задачами в системе. В зависимости от уровня совместного использования задачу можно рассматривать как обычную нить или обработать. Задачи создаются с помощью клон () системный вызов,[8] где пользователь может указать желаемый уровень совместного использования ресурсов.

История

Период, термин задача для части даты работы до мультипрограммирование в начале 1960-х годов, как в этом примере 1961 года:

Серийная модель имеет возможность обрабатывать задачи одной работы независимо, аналогично функционированию IBM 709.[9]

Этот термин был популяризирован с введением OS / 360 (объявлено в 1964 г.), в котором Мультипрограммирование с фиксированным количеством задач (MFT) и Мультипрограммирование с переменным количеством задач (МВТ). В этом случае задачи отождествлялись с легковесными процессами, задание состояло из ряда задач, а позже задачи могли иметь подзадачи (в современной терминологии, дочерние процессы ).

Сегодня термин «задача» используется очень неоднозначно. Например, Диспетчер задач Windows управляет (работает) процессы, в то время как Планировщик задач Windows графики программы выполнить в будущем то, что традиционно называется планировщик заданий, и использует .job расширение. Напротив, термин "очередь задач "обычно используется в смысле" единицы работы ".

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

использованная литература

  1. ^ «Что такое задача? - Определение с сайта WhatIs.com». WhatIs.com. Получено 11 июня, 2015.
  2. ^ "Что такое компьютерные процессы?". liutilities.com. Получено 11 июня, 2015.
  3. ^ Блох, Джошуа. Эффективная Java (Третье изд.). п.п. 272, Пункт 68.
  4. ^ Терминология IBM: Т
  5. ^ Глоссарий терминов и сокращений z / OS: Т
  6. ^ "включить / linux / sched.h". GitHub.com. Линус Торвальдс. 29 августа 2005 г.
  7. ^ "включить / linux / sched.h". GitHub.com. Линус Торвальдс. 3 октября 2016 г.
  8. ^ «clone, __clone2 - создать дочерний процесс». Руководство программиста Linux. 17 июля 2016 г.. Получено 6 ноября, 2016.
  9. ^ Джеймс Ларримор МакКенни (1961). Одновременное мультипрограммирование ЭВМ. п.154.