Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OSSO ().docx
Скачиваний:
11
Добавлен:
08.04.2015
Размер:
52.62 Кб
Скачать

19.03.13

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

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

Планирование осуществляется на основе информации, хранящейся в описателях процессов и потоков. Принимается во внимание приоритет потоков, время их нахождения в очереди, суммарное время выполнения и тд.

Диспетчеризациязаключается в реализации найденного в ходе планирования решения. В организации непосредственного переключения с одного потока на другой. Включает три этапа:

  • Сохранение контекста текущего потока

  • Загрузка контекста потока выбранного в результате планирования

  • Запуск нового потока на выполнение

В случае, когда система решает несколько независимых задач несмотря на то, что они выполняются асинхронно, может возникнуть необходимость во взаимодействии при обмене данными. Согласование скоростей и потоков позволяет предотвратить эффект “гонок” и взаимных блокировок.

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

События приводящие к завершению процесса:

  1. Обычный выход, связанный с завершение задачи.

  2. Выход по ошибке (в том числе пользовательской).

  3. Выход по неисправимой программной ошибке.

  4. Уничтожение другим процессом.

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

Модели процессов и потоков.

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

Образ процессамножество, в которое входит программа, данные, стеки и атрибуты процессов.

При управлении процессами ОС использует данные сосредоточенные в двух информационных структурах:

  1. Дескриптор – содержит такую информацию о процессе, которая необходима ядру в течение всей жизни процесса, независимо от его активности и нахождения образа ( в оперативной памяти или на диске). Дескриптор и процессор объединяются в таблицу процессов, которая размещается в области ядра. Эта информация используется ОС для синхронизации и планирования

21.03.13

В дескрипторе содержится информация:

1. по идентификации процесса

- идентификатор процесса

- идентификатор пользователя и другое

2. по состоянию процесса

3. для управления процессом

Контекст процесса

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

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

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