Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_OS.docx
Скачиваний:
4
Добавлен:
24.09.2019
Размер:
63.23 Кб
Скачать

6. Классификация процессов.

По генеалогическим признакам: родительский и дочерний.

По результативности:

  • Эквивалентные – получающие из одинаковых входных одинаковые вых. данные в общем случае по разным программам.

  • Тождественные – эквивалентные, выполняющиеся по одинаковым программам.

  • Равные – тождественные, трассы которых совпадают.

Все остальные различны.

По временным хар-кам: параллельные и последовательные.

По связности:

  • Процессы обменивающиеся инфо – взаимодействующие.

  • Иначе – информационно независимые.

7. Понятие потока. Способы реализации потоков. Планирование потоков.

Поток ( _en. stream) - абстрактная последовательность инструкций или данных вообще, привязанная к соответствующему дескриптору (может быть представлен именем потока).

Многопоточность – это

  1. Способность процесса выполняться в более чем одном потоке команд.

  2. Квазимногозадачность в рамках одного процесса.

Достоинства использования потоков:

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

  2. Скорость переключение между потоками на порядок выше чем между процессами, за счет отсутствия необходимости переключения контекстов.

  3. Скорость создания и удаления потоков тоже на порядок выше.

Недостатки: Усложнение планирования потоков и процессов.

Способы реализации потоков

Типы:

  1. Потоки на уровне ядра

  2. Потоки на уровне пользователя

  3. Смешанный поток (комбинированный)

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

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

Достоинства:

- такая схема может быть реализована в системе не поддерживающей многопоточность;

- потоки внутри каждого процесса могут использовать свой алгоритм планирования

Недостатки:

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

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

Потоки на уровне ядра

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

Недостатки:

- нельзя реализовать в системе не поддерживающей многопоточность

- частые переключения между потоков различных процессов приводит к частой смене контекста процесса, тем самым увеличивая прикладные расходы на управление

Смешанная реализация

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

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

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

Подсистема управления процессами и потоками ответственна за обеспечение процессов необходимыми ресурсами. ОС поддерживает в памяти специальные информационные структуры, в которые записывает, какие ресурсы выделены каждому процессу. Она может назначить процессу ресурсы в единоличное пользование или в совместное пользование с другими процессами. Некоторые из ресурсов выделяются процессу при его создании, а некоторые — динамически по запросам во время выполнения. Ресурсы могут быть приписаны процессу на все время его жизни или только на определенный период. При выполнении этих функций подсистема управления процессами взаимодействует с другими подсистемами ОС, ответственными за управление ресурсами, такими как подсистема управления памятью, подсистема ввода-вывода, файловая система.

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

Каждый раз, когда процесс завершается, ОС предпринимает шаги, чтобы «зачистить следы» его пребывания в системе. Подсистема управления процессами закрывает все файлы, с которыми работал процесс, освобождает области оперативной памяти, отведенные под коды, данные и системные информационные структуры процесса. Выполняется коррекция всевозможных очередей ОС и списков ресурсов, в которых имелись ссылки на завершаемый процесс.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]