Книга: Архитектура операционной системы UNIX
6.6 ПРИОСТАНОВКА ВЫПОЛНЕНИЯ
К настоящему моменту мы рассмотрели все функции работы с внутренними структурами процесса, выполняющиеся на нижнем уровне взаимодействия с процессом и обеспечивающие переход в состояние «выполнения в режиме ядра» и выход из этого состояния в другие состояния, за исключением функций, переводящих процесс в состояние «приостанова выполнения». Теперь перейдем к рассмотрению алгоритмов, с помощью которых процесс переводится из состояния «выполнения в режиме ядра» в состояние «приостанова в памяти» и из состояния приостанова в состояния «готовности к запуску» с выгрузкой и без выгрузки из памяти.
Рисунок 6.29. Стандартные контекстные уровни приостановленного процесса
Выполнение процесса приостанавливается обычно во время исполнения запрошенной им системной функции: процесс переходит в режим ядра (контекстный уровень 1), исполняя внутреннее прерывание операционной системы, и приостанавливается в ожидании ресурсов. При этом процесс переключает контекст, запоминая в стеке свой текущий контекстный уровень и исполняясь далее в рамках системного контекстного уровня 2 (Рисунок 6.29). Выполнение процессов приостанавливается также и в том случае, когда оно наталкивается на отсутствие страницы в результате обращения к виртуальным адресам, не загруженным физически; процессы не будут выполняться, пока ядро не считает содержимое страниц.
- Приостановка и возобновление выполнения потока
- Приостановка и возобновление потока
- Права для выполнения резервного копирования
- Упражнения для самостоятельного выполнения
- 1.4.1. Кодирование во время выполнения
- Основания для выполнения проекта
- Полиморфизм на этапе выполнения
- Запуск сценариев на удаленных машинах. Контроль за ходом выполнения таких сценариев
- Листинг 12.1. Результат выполнения команды lastlog
- Листинг 12.2. Результат выполнения команды lsof
- Пример использования фонового потока для выполнения отдельной задачи
- Элемент : создание новых элементов на этапе выполнения