Архитектура Unix
Алгоритм удаления связи файла с каталогом
Целостность файловой системы
Поводы для конкуренции
Соперничество процессов за индекс
Удаление связи с открытым файлом
АБСТРАКТНЫЕ ОБРАЩЕНИЯ К ФАЙЛОВЫМ СИСТЕМАМ
Индексы для файловых систем различных типов
СОПРОВОЖДЕНИЕ ФАЙЛОВОЙ СИСТЕМЫ
ВЫВОДЫ
УПРАЖНЕНИЯ
Считывание нулей и конца файла
Чтение большой порции данных в маленький буфер
Каталог, создание которого не завершено
Пример программы с использованием функции chdir
ГЛАВА 6. СТРУКТУРА ПРОЦЕССОВ
СОСТОЯНИЯ ПРОЦЕССА И ПЕРЕХОДЫ МЕЖДУ НИМИ
Диаграмма переходов процесса из состояния в состояние
ФОРМАТ ПАМЯТИ СИСТЕМЫ
Области
Процессы и области
Страницы и таблицы страниц
Адресация физической памяти по страницам
Отображение логических номеров страниц на физические
Преобразование виртуальных адресов в физические
Размещение ядра
Переключение режима работы с непривилегированного
Пространство процесса
Карта памяти пространства процесса в ядре
КОНТЕКСТ ПРОЦЕССА
Компоненты контекста процесса
СОХРАНЕНИЕ КОНТЕКСТА ПРОЦЕССА
Прерывания и особые ситуации
Пример векторов прерывания
Алгоритм обработки прерываний
Взаимодействие с операционной
Примеры прерываний
Алгоритм обращения к системным функциям
Системная функция creat и сгенерированная
Конфигурация стека для системной функции creat
Переключение контекста
Последовательность шагов, выполняемых
Псевдопрограмма переключения контекста
Сохранение контекста на случай аварийного завершения
Копирование данных между
Пересылка данных из пространства
УПРАВЛЕНИЕ АДРЕСНЫМ ПРОСТРАНСТВОМ ПРОЦЕССА
Блокировка области и снятие блокировки
Выделение области
Алгоритм выделения области
Присоединение области к процессу
Алгоритм присоединения области
Изменение размера области
Пример присоединения существующей области команд
Загрузка области
Алгоритм изменения размера области
Увеличение области стека на 1 Кбайт
Алгоритм загрузки данных области из файла
Загрузка области команд (текста)
Алгоритм освобождения области
Освобождение области
Алгоритм отсоединения области
Отсоединение области от процесса
Копирование содержимого области
Алгоритм копирования содержимого существующей области
Копирование содержимого области
ПРИОСТАНОВКА ВЫПОЛНЕНИЯ
Стандартные контекстные уровни приостановленного процесса
События, вызывающие приостанов выполнения, и их адреса
Процессы, приостановленные до
Алгоритм приостанова процесса
Алгоритмы приостанова и возобновления выполнения
Алгоритм возобновления приостановленного процесса
ВЫВОДЫ
УПРАЖНЕНИЯ
ГЛАВА 7. УПРАВЛЕНИЕ ПРОЦЕССАМИ
Системные функции управления процессом
СОЗДАНИЕ ПРОЦЕССА
Алгоритм fork
Создание контекста нового процесса
Программа, в которой родительский
Использование функций pipe, dup и fork
СИГНАЛЫ
Диаграмма переходов процесса из
Алгоритм опознания сигналов
Обработка сигналов
Алгоритм обработки сигналов
Исходный текст программы приема сигналов
Результат дисассемблирования программы приема сигналов
Стек задачи и область сохранения
Программа, демонстрирующая возникновение
Группы процессов
Посылка сигналов процессами
Пример использования функции setpgrp
ЗАВЕРШЕНИЕ ВЫПОЛНЕНИЯ ПРОЦЕССА
Алгоритм функции exit
ОЖИДАНИЕ ЗАВЕРШЕНИЯ ВЫПОЛНЕНИЯ ПРОЦЕССА
Пример использования функции exit
Алгоритм функции wait
Пример использования функции
Пример указания причины появления
ВЫЗОВ ДРУГИХ ПРОГРАММ
Алгоритм функции exec
Образ исполняемого файла
Пример использования функции exec
Пример программы, ведущей запись в область команд
Алгоритм выделения областей
КОД ИДЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПРОЦЕССА
Пример выполнения программы setuid
ИЗМЕНЕНИЕ РАЗМЕРА ПРОЦЕССА
Алгоритм выполнения функции brk
Пример программы, использующей
Основной цикл программы shell
КОМАНДНЫЙ ПРОЦЕССОР SHELL
Основной цикл программы shell (продолжение)
Взаимосвязь между процессами
ЗАГРУЗКА СИСТЕМЫ И НАЧАЛЬНЫЙ ПРОЦЕСС
Алгоритм загрузки системы
Алгоритм выполнения процесса init
Фрагмент файла inittab
ВЫВОДЫ
УПРАЖНЕНИЯ
Пример модуля, содержащего вызов
Пример программы, в которой
Программа, в которой процесс
Пример программы, использующей подпрограмму sbrk
ГЛАВА 8. ДИСПЕТЧЕРИЗАЦИЯ ПРОЦЕССОВ
ПЛАНИРОВАНИЕ ВЫПОЛНЕНИЯ ПРОЦЕССОВ
Алгоритм
Алгоритм планирования выполнения процессов
Параметры диспетчеризации
Диапазон приоритетов процесса
Переход процесса из одной очереди в другую
Примеры диспетчеризации процессов
Пример диспетчеризации процессов
Управление приоритетами
Планирование на основе кольцевого
Планирование на основе справедливого раздела
Работа в режиме реального времени
Пример планирования на основе
СИСТЕМНЫЕ ОПЕРАЦИИ, СВЯЗАННЫЕ СО ВРЕМЕНЕМ
Пример программы, использующей функцию times
ТАЙМЕР
Программа, использующая системную функцию alarm
Алгоритм обработки прерываний по таймеру
Перезапуск часов
Внутренние системные тайм-ауты
Включение новой записи в таблицу ответных сигналов
Построение профиля
Адреса некоторых алгоритмов ядра
Содержание раздела