Книга: Архитектура операционной системы UNIX
6.4.4 Сохранение контекста на случай аварийного завершения
6.4.4 Сохранение контекста на случай аварийного завершения
Существуют ситуации, когда ядро вынуждено аварийно прерывать текущий порядок выполнения и немедленно переходить к исполнению ранее сохраненного контекста. В последующих разделах, где пойдет речь о приостановлении выполнения и о сигналах, будут описаны обстоятельства, при которых процессу приходится внезапно изменять свой контекст; в данном же разделе рассматривается механизм исполнения предыдущего контекста. Алгоритм сохранения контекста называется setjmp, а алгоритм восстановления контекста — longjmp[19]. Механизм работы алгоритма setjmp похож на механизм функции save_context, рассмотренный в предыдущем разделе, если не считать того, что функция save_context помещает новый контекстный уровень в стек, в то время как setjmp сохраняет контекст в пространстве процесса и после выхода из него выполнение продолжается в прежнем контекстном уровне. Когда ядру понадобится восстановить контекст, сохраненный в результате работы алгоритма setjmp, оно исполнит алгоритм longjmp, который восстанавливает контекст из пространства процесса и имеет, как и setjmp, код завершения, равный 1.
- 6.4 СОХРАНЕНИЕ КОНТЕКСТА ПРОЦЕССА
- Сохранение информации о пользователях при миграции
- Сохранение информации из Интернета
- Сохранение рабочей книги с именем, представляющим собой текущую дату
- Сохранение и использование шаблона узла
- Сохранение внесенных изменений
- Речевые модули для завершения продажи
- Сохранение информации в реестре Windows
- 4.11.8. Сохранение фильтра
- Сохранение документов
- Практическая работа 4. Создание, сохранение и редактирование текстов
- Сохранение результатов поиска