Архитектура Unix
  
ПРЕДИСЛОВИЕ 
ГЛАВА 1. ОБЩИЙ ОБЗОР ОСОБЕННОСТЕЙ СИСТЕМЫ 
ИСТОРИЯ 
СТРУКТУРА СИСТЕМЫ 
Архитектура системы UNIX 
ОБЗОР С ТОЧКИ ЗРЕНИЯ ПОЛЬЗОВАТЕЛЯ 
Файловая система 
Пример древовидной структуры файловой системы 
Программа копирования файла 
Среда выполнения процессов 
Программа порождения нового процесса 
Элементы конструкционных блоков 
ФУНКЦИИ ОПЕРАЦИОННОЙ СИСТЕМЫ 
ПРЕДПОЛАГАЕМАЯ АППАРАТНАЯ СРЕДА 
Процессы и режимы их выполнения 
Прерывания и особые ситуации 
Уровни прерывания процессора 
Стандартные уровни прерываний 
Распределение памяти 
ВЫВОДЫ 
ГЛАВА 2. ВВЕДЕНИЕ В АРХИТЕКТУРУ ЯДРА ОПЕРАЦИОННОЙ СИСТЕМЫ 
АРХИТЕКТУРА ОПЕРАЦИОННОЙ СИСТЕМЫ UNIХ 
Блок-схема ядра операционной системы 
ВВЕДЕНИЕ В ОСНОВНЫЕ ПОНЯТИЯ СИСТЕМЫ 
Обзор особенностей подсистемы управления файлами 
Таблицы файлов, дескрипторов файла и индексов 
Формат файловой системы 
Процессы 
Стеки задачи и ядра для программы копирования. 
Информационные структуры для процессов 
Состояния процесса и переходы между ними 
Пример программы, создающей список 
Список с указателями, некорректный 
СТРУКТУРЫ ДАННЫХ ЯДРА 
УПРАВЛЕНИЕ СИСТЕМОЙ 
Многократная приостановка выполнения 
ВЫВОДЫ И ОБЗОР ПОСЛЕДУЮЩИХ ГЛАВ 
УПРАЖНЕНИЯ 
ГЛАВА 3. БУФЕР СВЕРХОПЕРАТИВНОЙ ПАМЯТИ (КЕШ) 
ЗАГОЛОВКИ БУФЕРА 
Заголовок буфера 
СТРУКТУРА ОБЛАСТИ БУФЕРОВ (БУФЕРНОГО ПУЛА) 
Список свободных буферов 
Буферы в хеш-очередях 
МЕХАНИЗМ ПОИСКА БУФЕРА 
Алгоритм выделения буфера 
Поиск буфера - случай 1: буфер в хеш-очереди 
Алгоритм высвобождения буфера 
Второй случай выделения буфера 
Третий случай выделения буфера 
Четвертый случай выделения буфера 
Состязание за свободный буфер 
Пятый случай выделения буфера 
ЧТЕНИЕ И ЗАПИСЬ ДИСКОВЫХ БЛОКОВ 
Алгоритм чтения дискового блока 
Алгоритм чтения блока с продвижением 
Алгоритм записи дискового блока 
ПРЕИМУЩЕСТВА И НЕУДОБСТВА БУФЕРНОГО КЕША 
ВЫВОДЫ 
УПРАЖНЕНИЯ 
ГЛАВА 4. ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ ФАЙЛОВ 
Алгоритмы файловой системы 
ИНДЕКСЫ 
Определение 
Пример дискового индекса 
Обращение к индексам 
Алгоритм выделения индексов в памяти 
Освобождение индекса 
Освобождение индексов 
СТРУКТУРА ФАЙЛА ОБЫЧНОГО ТИПА 
Размещение непрерывных файлов 
Блоки прямой и косвенной адресации в индексе 
Объем файла в байтах при размере блока 1 Кбайт 
Преобразование адреса смещения 
Размещение блоков в файле и его индексе 
КАТАЛОГИ 
Формат каталога /etc 
ПРЕВРАЩЕНИЕ СОСТАВНОГО ИМЕНИ 
Алгоритм превращения имени пути поиска в индекс 
СУПЕРБЛОК 
НАЗНАЧЕНИЕ ИНДЕКСА НОВОМУ ФАЙЛУ 
Алгоритм назначения новых индексов 
Два массива номеров свободных индексов 
Алгоритм освобождения индекса 
Размещение номеров свободных индексов в суперблоке 
Конкуренция в назначении индексов 
Конкуренция в назначении индексов (продолжение) 
ВЫДЕЛЕНИЕ ДИСКОВЫХ БЛОКОВ 
Список номеров свободных дисковых блоков с указателями 
Алгоритм выделения дискового блока 
Запрашивание и освобождение дисковых блоков 
ДРУГИЕ ТИПЫ ФАЙЛОВ 
ВЫВОДЫ 
УПРАЖНЕНИЯ 
ГЛАВА 5. СИСТЕМНЫЕ ОПЕРАЦИИ ДЛЯ РАБОТЫ С ФАЙЛОВОЙ СИСТЕМОЙ 
Функции для работы с файловой 
OPEN 
Алгоритм открытия файла 
Структуры данных после открытия 
Структуры данных после того, как 
READ 
Алгоритм чтения из файла 
Параметры ввода-вывода, хранящиеся в пространстве процесса 
Пример программы чтения из файла 
Процессы, ведущие чтение и запись файла 
WRIТЕ 
Чтение из файла с использованием двух дескрипторов 
ЗАХВАТ ФАЙЛА И ЗАПИСИ 
УКАЗАНИЕ МЕСТА В ФАЙЛЕ, ГДЕ 
CLOSЕ 
Программа, содержащая вызов системной функции lseek 
Таблицы после закрытия файла 
СОЗДАНИЕ ФАЙЛА 
Алгоритм создания файла 
СОЗДАНИЕ СПЕЦИАЛЬНЫХ ФАЙЛОВ 
Алгоритм создания новой вершины 
Алгоритм смены текущего каталога 
СМЕНА ТЕКУЩЕГО И КОРНЕВОГО КАТАЛОГА 
СМЕНА ВЛАДЕЛЬЦА И РЕЖИМА ДОСТУПА К ФАЙЛУ 
STAT И FSTАТ 
Дерево процессов и совместное использование каналов 
КАНАЛЫ 
Системная функция pipе 
Алгоритм создания каналов (непоименованных) 
Открытие поименованного канала 
Чтение из каналов и запись в каналы 
Логическая схема чтения и записи в канал 
Закрытие каналов 
Примеры 
Чтение из канала и запись в канал 
Чтение и запись в поименованный канал 
DUР 
Структуры данных после выполнения функции dup 
Программа на языке Си, иллюстрирующая 
МОНТИРОВАНИЕ И ДЕМОНТИРОВАНИЕ ФАЙЛОВЫХ СИСТЕМ 
Дерево файловых систем до и после выполнения функции mount 
Алгоритм монтирования файловой системы 
Пересечение точек монтирования 
Структуры данных после монтирования 
Модификация алгоритма получения доступа к индексу 
Модификация алгоритма синтаксического анализа имени файла 
Демонтирование файловой системы 
Алгоритм демонтирования файловой системы 
Файлы в дереве файловой системы 
LINК 
Алгоритм связывания файлов 
UNLINК 
Взаимная блокировка процессов при выполнении функции link 
Архитектура 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 
Алгоритм обработки прерываний по таймеру 
Перезапуск часов 
Внутренние системные тайм-ауты 
Включение новой записи в таблицу ответных сигналов 
Построение профиля 
Адреса некоторых алгоритмов ядра 
Архитектура Unix
 
Пример результатов выполнения 
Учет и статистика 
Поддержание времени в системе 
ВЫВОДЫ 
УПРАЖНЕНИЯ 
ГЛАВА 9. АЛГОРИТМЫ УПРАВЛЕНИЯ ПАМЯТЬЮ 
СВОПИНГ 
Управление пространством на устройстве выгрузки 
Первоначальный вид карты памяти для устройства выгрузки 
Алгоритм выделения пространства с помощью карт памяти 
Выделение пространства на устройстве выгрузки 
Освобождение пространства на устройстве выгрузки 
Выделение пространства на устройстве 
Выгрузка процессов 
Отображение пространства процесса на устройство выгрузки 
Загрузка процесса в память 
Перенастройка карты памяти в случае выгрузки с расширением 
Загрузка (подкачка) процессов 
Алгоритм подкачки 
Последовательность операций 
Загрузка процессов в случае 
ПОДКАЧКА ПО ЗАПРОСУ 
Структуры данных, используемые 
Рабочее множество процесса 
Записи таблицы страниц и дескрипторы дисковых блоков 
Взаимосвязь между структурами 
Адресация страниц, участвующих 
Функция vfork и искажение информации процесса 
Отображение файла на область 
Сборщик" страниц 
Диаграмма состояний страницы 
Пример "созревания" страницы 
Отказы при обращениях к страницам 
Алгоритм обработки отказа из-за 
Иллюстрация к отказу из-за недоступности данных 
Результат загрузки страницы в память 
Два отказа на одной странице 
Алгоритм обработки отказа системы 
Отказ системы защиты из-за установки 
Замещение страниц на менее сложной технической базе 
Имитация установки "аппаратного" 
СИСТЕМА СМЕШАННОГО ТИПА СО 
ВЫВОДЫ 
УПРАЖНЕНИЯ 
ГЛАВА 10. ПОДСИСТЕМА УПРАВЛЕНИЯ ВВОДОМ-ВЫВОДОМ 
ВЗАИМОДЕЙСТВИЕ ДРАЙВЕРОВ 
Конфигурация системы 
Точки входа для драйверов 
Системные функции и взаимодействие с драйверами 
Пример заполнения таблиц ключей 
Алгоритм открытия устройства 
Алгоритм закрытия устройства 
Отображение в памяти ввода-вывода 
Прерывания от устройств 
Программы обработки прерываний 
ДИСКОВЫЕ ДРАЙВЕРЫ 
Разделы на диске RP07 
Чтение данных с диска с использованием 
ТЕРМИНАЛЬНЫЕ ДРАЙВЕРЫ 
Символьные списки 
Последовательность обращений и 
Символьный блок 
Удаление символов из символьного списка 
Включение символов в символьный список 
Терминальный драйвер в каноническом режиме 
Алгоритм переписи данных на терминал 
Передача данных через стандартный вывод 
Алгоритм чтения с терминала 
Конкуренция за данные, вводимые с терминала 
Терминальный драйвер в режиме без обработки символов 
Режим без обработки - чтение 5-символьных блоков 
Опрос терминала 
Опрос терминала 
Назначение операторского терминала 
Драйвер косвенного терминала 
Вход в систему 
Алгоритм регистрации 
ПОТОКИ 
Поток после открытия 
Сообщения в потоках 
Продвижение модуля к потоку 
Более детальное рассмотрение потоков 
Отображение виртуальных окон 
Псевдопрограмма мультиплексирования окон 
Анализ потоков 
ВЫВОДЫ 
УПРАЖНЕНИЯ 
ГЛАВА 11. ВЗАИМОДЕЙСТВИЕ ПРОЦЕССОВ 
ТРАССИРОВКА ПРОЦЕССОВ 
Структура процесса отладки 
Программа trace (трассируемый процесс) 
Программа debug (трассирующий процесс) 
ВЗАИМОДЕЙСТВИЕ ПРОЦЕССОВ В ВЕРСИИ V СИСТЕМЫ 
Сообщения 
Алгоритм посылки сообщения 
Структуры данных, используемые в организации сообщений 
Пользовательский процесс 
Алгоритм получения сообщения 
Обслуживающий процесс (сервер) 
Разделение памяти 
Структуры данных, используемые при разделении памяти 
Алгоритм присоединения разделяемой памяти 
Семафоры 
Присоединение процессом одной 
Разделение памяти между процессами 
Структуры данных, используемые в работе над семафорами 
Операции установки и снятия блокировки 
Алгоритм выполнения операций над семафором 
Структуры восстановления семафоров 
Последовательность состояний 
Общие замечания 
ВЗАИМОДЕЙСТВИЕ В СЕТИ 
ГНЕЗДА 
Модель с использованием гнезд 
Прием вызова сервером 
Процесс-сервер в домене "UNIX system" 
Процесс-клиент в домене "UNIX system" 
ВЫВОДЫ 
УПРАЖНЕНИЯ 
ГЛАВА 12. МНОГОПРОЦЕССОРНЫЕ СИСТЕМЫ 
Многопроцессорная конфигурация 
Internet Information Services версии 6.0 (IIS) 
Internet Information Services версии 6.0 (IIS) - набор базовых служб Интернета в составе Windows Server 2003, в число которых входят: службы WWW, FTP SMTP, NNTP и ряд дополнительных служб. Службы IIS предоставляют множество новых возможностей, которые могут превратить систему Windows Server 2003 в мощную платформу для распределенных сетевых приложений. Службы IIS объединены при помощи стандартного интерфейса администрирования и общих методов управления. Следует заметить, что подробное рассмотрение всего набора служб IIS заслуживает отдельной книги. Службы IIS могут быть рассмотрены как с позиции администратора -человека, отвечающего за настройку и корректную работу служб, так и с позиции разработчика - человека, который создает приложения, ориентированные на работу с данными службами. Хотелось бы сразу оговориться, что наше рассмотрение служб IIS будет вестись исключительно с позиции администратора. В данной главе мы постараемся дать обзор служб IIS, описать новые возможности, открывающиеся перед администраторами и разработчиками, а также описать процесс развертывания в корпоративной сети служб IIS Также будут рассмотрены и другие службы, использующие веб-технологии или позволяющие на базе систем Windows Server 2003 строить распределенные сетевые системы
Нейросети 
Нейросети - в сущности это попытка создать искусственный разум. В последнее время эта тема стала крайне популярной во всех областях и отраслях человеческой деятельности. Ну в идеале оно, конечно, того стоит. Задача крайне сложная хотя бы потому, что никто толком не знает как на самом деле работает мозг человека. Но определенные успехи есть и ими нужно пользоваться.
Нейросети в Brain Maker 
Нейросети в Data Mining 
Нейросети в Fuzzy Logic 
Нейросети в Ithink 
Адаптивные нейросети 
Алгоритмы нейросети 
Анализ нейросетей 
Архитектура нейросети 
Ассоциативные сети 
Введение в нейросети 
Гибридные системы нейросети 
Данные в нейросети 
Знания о нейросети 
Иерархическое построение нейросети 
Инвестиции в нейросети 
Инструменты нейросети 
Искуственный интелект и нейросети 
Кибернетика нейросетей 
Классификация нейросетей 
Теория множеств и нейросети 
Финансы нейросети 
Нейросети на Форекс 
Формирование знаний нейросети 
Хранение данных в нейросети 
Эвристика нейросети 
Экспертные системы нейросети 
Компьютер в нейросети 
Конструирование нейросети 
Модели нейросети 
Обзор нейросетей 
Обработка нейросети 
Образы в нейросети 
Обучение нейросети 
Нейросети - ООП 
Пролог для ИИ 
Системы ИИ 
Основы проектирования ИИ 
Искусственный интеллект 
Основы теории нейронных сетей 
Нейросети для анализа звука 
Нейронные сети в планировании 
Введение в ANSYS 
Методология проектирования SADT 
OFSA. Основные принципы 
Нейрокомпьютерные системы 
Язык CLIPS  для нейросети 
ИИ: различные взгляды 
Транспорт неоднородных сетей 
Основы проектирования систем ИИ 
Нейрокомпьютеры - архитектура 
Нейроинформатика 
Логические нейронные сети 
Планирование нейросети 
Пояснения к нейросети 
Предположения  в нейросети 
Представление знаний в нейросети 
Приобретение знаний нейросетью 
Проблемы нейросети 
Прогнозирование нейросети 
Программирование нейросети 
Рассуждения о нейросети 
Рынок нейросетей 
Нейросети доверия 
Нейросети 
Символические вычисления в нейросети 
Системы нейросети 
Системы ВВ1 в нейросети 
Системы знаний нейросетей 
Софт для нейросети 
Справочник по нейросетям 
Теория нейросети 
Справочник по нейросетям 
Адаптивные нейросети 
Нейролингвистика 
Идентификация линейных систем 
Нейросетевой анализ 
Нейрокомпьютерная техника