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

36. Понятие потока. Модель потока

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

Сравнение одно- и многопоточной системы:

Модель потока.

С каждым потоком связываются счетчик выполнения команд, регистры для текущих переменных, стек и т.д.

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

  • адресное пространство

  • глобальные переменные

  • открытые файлы

  • таймеры

  • переменные специального типа – «семафоры»

  • статистическую информацию

В остальном модель потока подобна модели процесса

В POSIX и Window’s есть поддержка потоков на уровне ядра.

POSIX – PTHREAD_CREATE

Window’s – CREATETHREAD

В LINUX существует новый системный вызов CLONE для создания потоков.

37. Преимущества использования потоков.

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

2 Быстрота создания потока по сравнению с процессом (~ в 100 раз)

3 Повышение производительности самой программы (есть возможность одновременно выполнять вычисления в процессоре и операцию ввода-вывода).

Поток может одновременно взаимодействовать с пользователем, форматировать текст и записывать на диск резервную копию.

38. Реализация потоков в пространстве пользователя

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

Преимущества этой реализации:

1 – многопоточность можно реализовать на ядре, которое не поддерживает многоопоточность.

2 – более быстрое переключение, создание и завершение потоков

3– процесс может иметь собственный алгоритм планирования

Недостатки:

1 – отсутствие прерывания по таймеру внутри одного процесса

2 – при использовании блокирующего системного запроса (процесс переходит в режим ожидания) все остальные потоки блокируются.

3 – сложность реализации

39. Реализация потоков в пространстве ядра.

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

Преимущества:

1 – использование блокирующего системного запроса остальные потоки не блокирует.

2 – более простая реализация

Недостаток:

1 – многопоточность нельзя реализовать на ядре, не поддерживающем многопоточность.

Особенности реализации Windows

В Window’s используются следующие понятия:

Задание – набор процессов с общими квотами и лимитами

Процесс – контейнер ресурсов, который содержит как минимум 1 поток

Поток – именно исполняемая часть, планируемая пользователем. Работает в режиме пользователя, но при системных вызовах переключается в режим ядра. Из-за переключений в режим ядра и обратно очень замедляется работа системы, поэтому было введено понятие «волокна».

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