Архитектура Unix


Архитектура Unix


. Алгоритм удаления связи файла с каталогом
5.16.1 Целостность файловой системы
5.16.2 Поводы для конкуренции
. Соперничество процессов за индекс
. Удаление связи с открытым файлом
5.17 АБСТРАКТНЫЕ ОБРАЩЕНИЯ К ФАЙЛОВЫМ СИСТЕМАМ
. Индексы для файловых систем различных типов
5.18 СОПРОВОЖДЕНИЕ ФАЙЛОВОЙ СИСТЕМЫ
5.19 ВЫВОДЫ
5.20 УПРАЖНЕНИЯ
. Считывание нулей и конца файла
. Чтение большой порции данных в маленький буфер
. Каталог, создание которого не завершено
. Пример программы с использованием функции chdir
ГЛАВА 6. СТРУКТУРА ПРОЦЕССОВ
6.1 СОСТОЯНИЯ ПРОЦЕССА И ПЕРЕХОДЫ МЕЖДУ НИМИ
Диаграмма переходов процесса из состояния в состояние
6.2 ФОРМАТ ПАМЯТИ СИСТЕМЫ
6.2.1 Области
Процессы и области
6.2.2 Страницы и таблицы страниц
Адресация физической памяти по страницам
Отображение логических номеров страниц на физические
Преобразование виртуальных адресов в физические
6.2.3 Размещение ядра
Переключение режима работы с непривилегированного
6.2.4 Пространство процесса
Карта памяти пространства процесса в ядре
6.3 КОНТЕКСТ ПРОЦЕССА
Компоненты контекста процесса
6.4 СОХРАНЕНИЕ КОНТЕКСТА ПРОЦЕССА
6.4.1 Прерывания и особые ситуации
Пример векторов прерывания
. Алгоритм обработки прерываний
6.4.2 Взаимодействие с операционной
. Примеры прерываний
. Алгоритм обращения к системным функциям
. Системная функция creat и сгенерированная
. Конфигурация стека для системной функции creat
6.4.3 Переключение контекста
. Последовательность шагов, выполняемых
. Псевдопрограмма переключения контекста
6.4.4 Сохранение контекста на случай аварийного завершения
6.4.5 Копирование данных между
. Пересылка данных из пространства
6.5 УПРАВЛЕНИЕ АДРЕСНЫМ ПРОСТРАНСТВОМ ПРОЦЕССА
6.5.1 Блокировка области и снятие блокировки
6.5.2 Выделение области
. Алгоритм выделения области
6.5.3 Присоединение области к процессу
. Алгоритм присоединения области
6.5.4 Изменение размера области
. Пример присоединения существующей области команд
6.5.5 Загрузка области
. Алгоритм изменения размера области
. Увеличение области стека на 1 Кбайт
. Алгоритм загрузки данных области из файла
. Загрузка области команд (текста)
. Алгоритм освобождения области
6.5.6 Освобождение области
. Алгоритм отсоединения области
6.5.7 Отсоединение области от процесса
. Копирование содержимого области
. Алгоритм копирования содержимого существующей области
6.5.8 Копирование содержимого области
6.6 ПРИОСТАНОВКА ВЫПОЛНЕНИЯ
. Стандартные контекстные уровни приостановленного процесса
6.6.1 События, вызывающие приостанов выполнения, и их адреса
. Процессы, приостановленные до
. Алгоритм приостанова процесса
6.6.2 Алгоритмы приостанова и возобновления выполнения
. Алгоритм возобновления приостановленного процесса
6.7 ВЫВОДЫ
6.8 УПРАЖНЕНИЯ
ГЛАВА 7. УПРАВЛЕНИЕ ПРОЦЕССАМИ
Системные функции управления процессом
7.1 СОЗДАНИЕ ПРОЦЕССА
Алгоритм fork
Создание контекста нового процесса
Программа, в которой родительский
Использование функций pipe, dup и fork
7.2 СИГНАЛЫ
Диаграмма переходов процесса из
Алгоритм опознания сигналов
7.2.1 Обработка сигналов
Алгоритм обработки сигналов
Исходный текст программы приема сигналов
. Результат дисассемблирования программы приема сигналов
. Стек задачи и область сохранения
. Программа, демонстрирующая возникновение
7.2.2 Группы процессов
7.2.3 Посылка сигналов процессами
. Пример использования функции setpgrp
7.3 ЗАВЕРШЕНИЕ ВЫПОЛНЕНИЯ ПРОЦЕССА
. Алгоритм функции exit
7.4 ОЖИДАНИЕ ЗАВЕРШЕНИЯ ВЫПОЛНЕНИЯ ПРОЦЕССА
. Пример использования функции exit
. Алгоритм функции wait
. Пример использования функции
. Пример указания причины появления
7.5 ВЫЗОВ ДРУГИХ ПРОГРАММ
. Алгоритм функции exec
. Образ исполняемого файла
. Пример использования функции exec
. Пример программы, ведущей запись в область команд
. Алгоритм выделения областей
7.6 КОД ИДЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПРОЦЕССА
. Пример выполнения программы setuid
7.7 ИЗМЕНЕНИЕ РАЗМЕРА ПРОЦЕССА
. Алгоритм выполнения функции brk
. Пример программы, использующей
. Основной цикл программы shell
7.8 КОМАНДНЫЙ ПРОЦЕССОР SHELL
. Основной цикл программы shell (продолжение)
. Взаимосвязь между процессами
7.9 ЗАГРУЗКА СИСТЕМЫ И НАЧАЛЬНЫЙ ПРОЦЕСС
. Алгоритм загрузки системы
. Алгоритм выполнения процесса init
. Фрагмент файла inittab
7.10 ВЫВОДЫ
7.11 УПРАЖНЕНИЯ
. Пример модуля, содержащего вызов
. Пример программы, в которой
. Программа, в которой процесс
. Пример программы, использующей подпрограмму sbrk
ГЛАВА 8. ДИСПЕТЧЕРИЗАЦИЯ ПРОЦЕССОВ
8.1 ПЛАНИРОВАНИЕ ВЫПОЛНЕНИЯ ПРОЦЕССОВ
8.1.1 Алгоритм
Алгоритм планирования выполнения процессов
8.1.2 Параметры диспетчеризации
Диапазон приоритетов процесса
Переход процесса из одной очереди в другую
8.1.3 Примеры диспетчеризации процессов
Пример диспетчеризации процессов
8.1.4 Управление приоритетами
Планирование на основе кольцевого
8.1.5 Планирование на основе справедливого раздела
8.1.6 Работа в режиме реального времени
Пример планирования на основе
8.2 СИСТЕМНЫЕ ОПЕРАЦИИ, СВЯЗАННЫЕ СО ВРЕМЕНЕМ
Пример программы, использующей функцию times
8.3 ТАЙМЕР
Программа, использующая системную функцию alarm
Алгоритм обработки прерываний по таймеру
8.3.1 Перезапуск часов
8.3.2 Внутренние системные тайм-ауты
. Включение новой записи в таблицу ответных сигналов
8.3.3 Построение профиля
. Адреса некоторых алгоритмов ядра
. Программа, использующая системную функцию profil








- Начало -