Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Unix лекции / lection2.ppt
Скачиваний:
14
Добавлен:
20.04.2015
Размер:
274.43 Кб
Скачать

Сон и пробуждение процесса

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

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

Приостановленные процессы не занимают центральный процессор

Когда событие наступает, все процессы, приостановленные по событию, пробуждаются, поскольку значение условия, связанного с событием, больше не является "истинным"

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

21

Сон и пробуждение процесса

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

процессы, пытающиеся обратиться к заблокированной структуре, обязаны проверить наличие блокировки и приостановить свое выполнение

ядро выполняет блокировки так:

while (условие "истинно")

sleep (событие: условие принимает значение "ложь"); set condition true;

пробуждение:

set condition false;

wakeup (событие: условие "ложно");

22

Сон и пробуждение. Пример блокировки

Цикл "while-sleep" обеспечивает такое положение, при котором самое большее один процесс может иметь доступ к ресурсу

Управление системой

Управляющие процессы (root)Пользовательские процессы

24

Структуры данных ядра

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

25

Соседние файлы в папке Unix лекции