- •Архитектура ОС UNIX
- •Модульная блок-схема ядра системы
- •Модульная блок-схема ядра системы
- •fork, exec, exit, wait, brk, signal
- •«индекс» файла (inode)
- •«индекс» файла (inode)
- •Таблицы файлов, дескрипторов файла и индексов
- •Формат файловой системы
- •Формат файловой системы
- •Процесс
- •Создание процесса
- •Исполняемый файл
- •Процесс и исполняемый файл
- •Стек ядра
- •Информационные структуры для запуска процессов
- •Адресное пространство задачи
- •Контекст процесса
- •Состояния процесса
- •Состояния
- •Сон и пробуждение процесса
- •Сон и пробуждение процесса
- •Сон и пробуждение. Пример блокировки
- •Управление системой
- •Структуры данных ядра
Сон и пробуждение процесса
Процесс, выполняющийся в режиме ядра, имеет значительную степень автономии в решении того, как ему следует реагировать на возникновение системных событий
Процессы приостанавливают свое выполнение, потому что они ожидают возникновения некоторого события
Приостановленные процессы не занимают центральный процессор
Когда событие наступает, все процессы, приостановленные по событию, пробуждаются, поскольку значение условия, связанного с событием, больше не является "истинным"
Когда процесс пробуждается, он переходит из состояния "сна" в состояние "готовности к выполнению", находясь в котором он уже может быть выбран планировщиком (через некоторое время)
21
Сон и пробуждение процесса
процесс, выполняемый в режиме ядра, должен иногда блокировать структуру данных на случай приостановки в будущем
процессы, пытающиеся обратиться к заблокированной структуре, обязаны проверить наличие блокировки и приостановить свое выполнение
ядро выполняет блокировки так:
while (условие "истинно")
sleep (событие: условие принимает значение "ложь"); set condition true;
пробуждение:
set condition false;
wakeup (событие: условие "ложно");
22
Сон и пробуждение. Пример блокировки
Цикл "while-sleep" обеспечивает такое положение, при котором самое большее один процесс может иметь доступ к ресурсу
Управление системой
Управляющие процессы (root)Пользовательские процессы
24
Структуры данных ядра
Большинство информационных структур ядра размещается в таблицах фиксированного размера, а не в динамически выделенной памяти
25