Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SPPO_na_unitaze.doc
Скачиваний:
13
Добавлен:
16.04.2015
Размер:
540.67 Кб
Скачать
  1. Синхронизация процессов в ос.

У каждого ресурса есть свой диспетчер, который:

  • отслеживает состояние ресурса (свободен/занят)

  • поддерживает алгоритм и стратегию выделения ресурса

  • выделяет ресурс (организует очередь)

  • освобождает ресурс

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

Алгоритм диспетчера по обработке запросов на использование ресурса P(S):

S=S-1

if (S < 0)

процессочередь ; тогда абсолютное значениеS– количество процессов в очереди

else

выделить ресурс процессу

Освобождение ресурса процессом – V(S):

S=S+1

if (S <= 0)

разблокировать первый ждущий процесс

В Windows2000 каждый процесс содержит в себе диспетчер процессов. Возникает проблема синхронизации диспетчеров. Несколько системных процессов имеют доступ к семафорам и управляющей таблице. Для них имеется еще один управляющий элемент, который либо разрешает (0), либо запрещает (1) доступ системного процесса к управлению ресурсами. Работа с битами осуществляется командойTestAndSet.

  1. Алгоритмы распределения времени процессора в ос. Управление процессами – верхний уровень.

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

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

  1. Создание процесса (верхний уровень)

  • Выделение ОП

  • Выделение статических ресурсов

  • Создается PCB

  • Создается образ процесса

  • Программа загружается в память

  • PCBвключается в очередь

  1. Выбор процесса, которому предоставляется время CPU

Из очереди готовых процессов выбирается один активный (если один CPU).

  1. Завершение процесса (верхний уровень)

  • Закрываются все открытые файлы

  • Освобождается память

  • Освобождаются статические и динамические ресурсы

  • Уничтожается PCB(при этом виртуальные устройства связываются с физическими)

  1. Процесс ждет ресурса

  2. Процесс освобождает ресурс

  3. Ожидание объектов синхронизации.

Правило построения очереди готовых процессов. (При “В” какой квант времени ему предоставляется.)

(qэто квант времени)

  1. FIFO (First-in First out). Кто первым пришел, тот первым и обслуживается (q=).

  2. Круговорот (RR - Round Robin). FIFO, q = const. Удобно при равноправных процессах.

  3. Алгоритм приоритетного планирования времени CPU(PPA). Процессы делятся на системные и пользовательские. Каждый процесс имеет приоритет. Приоритет влияет на положение в очереди, а не на квант времени. Маленькие процессы вперед. Здесь процесс с низким приоритетом может никогда не выполниться (q= любой).

  4. Круговорот со смещением (SRR-ShiftRR). Каждому процессу присваивается диспетчерский приоритет, но он используется не для очереди готовых процессов (это поFIFO), а для назначения кванта времени (чем выше приоритет, тем быстрее идет процесс). Это круговорот со смещениемFIFO, но квант времени пропорционален приоритету. Это обеспечивает выполнение процесса в любом случае,q=f(приоритет).

  5. Алгоритм очереди с обратной связью (Feed Back Queue Algorithm). STF(ShortTimeFirst) – высокий приоритет назначается коротким программам. Чем меньше времени остается до завершения, тем больше приоритет.

  6. Алгоритм использования очередей с обратной связью (FBQUA). Первоначально процесс попадает в первую очередь. Процесс попадает в каждую очередь определенное число раз, а потом переходит в следующую очередь, если не завершился. Автоматически дается преимущество коротким процессам. Очереди также строятся по принципуFIFO.

В Windows используется вытесняющее планирование:

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