2016-02-06 2 views
0

EDIT: Это разъяснение определения, основанного на том, что я читал. Это отличается от других вопросов, потому что я рассказываю об «базовой единице использования ЦП»Профили определения потоков (операционных систем)

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

Поток (на основе того, что я прочитал в учебнике «Концепции операционных систем») описывается как «базовая единица использования ЦП». Что это означает, если это «базовая единица использования ЦП»

Означает ли это, что CPU выполняет поток или потоки, относящиеся к процессу, в отличие от «выполнения самого процесса»?

+0

Возможный дубликат [Процесс против темы] (http://stackoverflow.com/questions/1762418/process-vs-thread) –

ответ

0

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

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

Ответ на ваш вопрос зависит от его реализации. Существует два способа реализации потока.

1: Темы реализованы в библиотеке, связанной с приложением. В библиотеке используются таймеры для прерывания приложения и переключения между потоками.

В этой модели операционная система абсолютно ничего не знает о потоках. Нить полностью является созданием самого процесса.

В этом методе выполняется только один поток за один раз в процессе (выполнение с чередованием).

2: Операционная система реализует потоки. Потоки запланированы для выполнения операционной системой.

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

Разница между двумя вышеописанными моделями заключается в том, что в № 1 PROCESS является базовым блоком , который составляет. Операционные графики выполняются для выполнения, а процесс перемещается между потоками. Процесс рассылает РЕЗЬБЫ для выполнения.

В № 2, THREAD является базовым блоком планирования операционной системой.Когда поток выполняется, операционная система также должна загружать адресное пространство процесса.

- = - = - = - = - = - = - = - = - = - = - = - = - =

Возьмите то, что вы читаете в "Операционные системы понятия" с зерном соли. «базовая единица использования ЦП» - общая концепция BS. В этой книге изобретаются понятия, не имеющие отношения к действительности.

+0

Вы сказали: «В №2, THREAD - это базовая единица планирования с помощью действующего системы. Процесс расписаний THREADS для исполнения ». Разве вы не подразумеваете, что ОС планирует потоки для выполнения. Поскольку ранее в вашем ответе вы сказали: «Операционная система реализует потоки. Режимы запланированы для выполнения операционной системой». – nnelson

+0

Вырезать и прошлый выпуск. Ред. – user3344003

0

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

Каждый поток представляет собой отдельный поток выполнения CPU (s), поэтому он имеет свой собственный контекст выполнения. При использовании превентивных потоков это обычно означает полный набор регистров (включая счетчик программ), поэтому каждый поток может быть приостановлен и возобновлен по мере необходимости. В зависимости от того, сколько процессоров доступно, произвольное количество этих потоков может выполняться в любой момент времени.

0

Нити являются подмножествами процесса.

Процесс является АКТИВНОЙ ПРОГРАММОЙ.

Программа обычно состоит из различных инструкций.

Группы этих инструкций образуют потоки и, как правило, обрабатываются процессором как один блок (блок).

Нити одного процесса имеют одну и ту же память, Хотя стеки двух разных.

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

Концепция наличия потоков для максимального использования ЦП.

Таким образом, ответ на ваш последний вопрос: Да.