Jump to content

Задача (вычисления)

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

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

Терминология [ править ]

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

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

Примеры [ править ]

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

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

Терминология IBM [ править ]

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

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

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

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

Термин «задача» в OS/360–z/OS примерно эквивалентен облегченному процессу; задачи на этапе задания совместно используют одно адресное пространство. Однако в MVS/ESA через z/OS задача или блок запроса на обслуживание (SRB) может иметь доступ к другим адресным пространствам через свой список доступа.

Ядро Linux [ править ]

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

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

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

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

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

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

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

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

  1. ^ «Что такое задача? — Определение с сайта WhatIs.com» . WhatIs.com . Проверено 11 июня 2015 г.
  2. ^ «Что такое компьютерные процессы?» . liutilities.com . Проверено 11 июня 2015 г.
  3. ^ Блох, Джошуа . Эффективная Java (Третье изд.). п. п. 272 , пункт 68.
  4. ^ Терминология IBM: T
  5. ^ Глоссарий терминов и сокращений z/OS : T
  6. ^ " include/linux/sched.h» . GitHub.com . Линус Торвальдс. 29 августа 2005 г.
  7. ^ " include/linux/sched.h» . GitHub.com . Линус Торвальдс. 3 октября 2016 г.
  8. ^ «clone, __clone2 — создать дочерний процесс» . Руководство программиста Linux . 17 июля 2016 г. Проверено 6 ноября 2016 г.
  9. ^ Джеймс Ларримор МакКенни (1961). Одновременное мультипрограммирование электронных вычислительных машин . п. 154 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1c634001431293d39c1bac6e3c9c70a9__1679063520
URL1:https://arc.ask3.ru/arc/aa/1c/a9/1c634001431293d39c1bac6e3c9c70a9.html
Заголовок, (Title) документа по адресу, URL1:
Task (computing) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)