Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть 1 панова.doc
Скачиваний:
6
Добавлен:
17.04.2019
Размер:
3.18 Mб
Скачать

40. Различия между процессами и потоками.

С помощью процесса можно организовать параллельное выполнение программ. Для этого процесс клонируется (создается и завершается) с помощью вызовов fork и exit, затем между ними организуется взаимодействие.

Для организации параллельного выполнения и взаимодействия может использоваться механизм многопоточности, для которого основной единицей является поток.

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

Потоки представляют собой облегченную версию процессов.

Если рассматривать эти характеристики, независимо от других, как принято в современных ОС, то:

1 – владелец ресурса называется процессом или задачей, которой присуще:

  • виртуальное адресное пространство

  • индивидуальный доступ к процессору, файлам других ресурсов.

2 – модуль для диспетчеризации, который называется потоком (облегченным процессом), ему присуще:

  • состояние выполнения

  • сохранение контекста потока в неактивном состоянии

  • стек выполнения

  • некоторая статическая память для локальных переменных

  • доступ к пространству памяти и ресурсам своего процесса

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

41. Преимущества процессов над потоками

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

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

  2. Требуется меньше времени для завершения потока

  3. Требуется меньше времени для переключения между потоками в пределах одного процесса

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