Задача по сравнению с процессом, там действительно какое-либо различие?

Я учусь для своих итоговых экзаменов в моем CS, главном в подчиненных распределенных системах и операционных системах.

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

Но что является различием между задачами и процессом. Я часто читал, что они interchangable и что термин задача больше не используется. Это действительно верно?

18
задан Jens Kohl 1 April 2010 в 14:08
поделиться

4 ответа

Процессы и потоки - это механика, задача - более концептуальна. Вы можете поставить задачу в очередь для асинхронного выполнения, например, в windows с .NET, она будет выполняться на потоке из пула потоков. В OpenMP задача будет частью цикла for, выполняемого на одном ядре.

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

5
ответ дан 30 November 2019 в 08:32
поделиться

Термин «задача» в основном используется в контексте планирования *, когда он может относиться либо к потоку , либо к * процессу ** *, которые можно запланировать для работы на процессоре.
С точки зрения планировщика, между потоком и процессом может быть практически полное отсутствие разницы - оба представляют задачу , которая должна быть запланирована.

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

* например, в программировании ядра, особенно. в Linux
** теоретически вы можете создать свои планируемые объекты

16
ответ дан 30 November 2019 в 08:32
поделиться

Это зависит от вашего контекста.

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

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

1
ответ дан 30 November 2019 в 08:32
поделиться

Я думаю, это зависит от основной операционной системы, в которой используется термин.

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

0
ответ дан 30 November 2019 в 08:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: