Lib.Ru: Морис Дж. Бах. Архитектура операционной системы Unix
 Проза Переводы Поэзия Фантастика Детективы Классика История  И ДР.>>>[НОВИНКИ][Хитпарад][Самиздат][Музыка][Художники][Заграница][Туризм][ArtOfWar][Форум][Зеркала]
Авторские разделы: Современная Остросюжетная Фантастика 
(размер) [rate]  дата модиф.  ("THE DESIGN OF THE UNIX OPERATING SYSTEM" by Maurice J. Bach)
 Перевод Крюкова А. В.
    Предисловие......................................................... 3
  ГЛАВА 1 ОБЩИЙ ОБЗОР ОСОБЕННОСТЕЙ СИСТЕМЫ
 1.1 ИСТОРИЯ......................................................... 6
 1.2 СТРУКТУРА СИСТЕМЫ............................................... 8
 1.3 ОБЗОР С ТОЧКИ ЗРЕНИЯ ПОЛЬЗОВАТЕЛЯ.............................. 10
 1.3.1 Файловая система.......................................... 10
 1.3.2 Среда выполнения процессов................................ 14
 1.3.3 Элементы конструкционных блоков........................... 16
 1.4 ФУНКЦИИ ОПЕРАЦИОННОЙ СИСТЕМЫ................................... 17
 1.5 ПРЕДПОЛАГАЕМАЯ АППАРАТНАЯ СРЕДА................................ 18
 1.5.1 Прерывания и особые ситуации.............................. 19
 1.5.2 Уровни прерывания процессора.............................. 20
 1.5.3 Распределение памяти...................................... 20
 1.6 ВЫВОДЫ......................................................... 21
  ГЛАВА 2 ВВЕДЕНИЕ В АРХИТЕКТУРУ ЯДРА ОПЕРАЦИОННОЙ СИСТЕМЫ
 2.1 АРХИТЕКТУРА ОПЕРАЦИОННОЙ СИСТЕМЫ UNIX.......................... 22
 2.2 ВВЕДЕНИЕ В ОСНОВНЫЕ ПОНЯТИЯ СИСТЕМЫ............................ 24
 2.2.1 Обзор особенностей подсистемы управления файлами.......... 24
 2.2.2 Процессы.................................................. 26
 2.2.2.1 Контекст процесса.................................... 31
 2.2.2.2 Состояния процесса................................... 31
 2.2.2.3 Переходы из состояния в состояние.................... 31
 2.2.2.4 "Сон" и пробуждение.................................. 34
 2.3 СТРУКТУРЫ ДАННЫХ ЯДРА.......................................... 35
 2.4 УПРАВЛЕНИЕ СИСТЕМОЙ............................................ 36
 2.5 ВЫВОДЫ И ОБЗОР ПОСЛЕДУЮЩИХ ГЛАВ................................ 37
 2.6 УПРАЖНЕНИЯ..................................................... 38
огл  ГЛАВА 3 БУФЕР СВЕРХОПЕРАТИВНОЙ ПАМЯТИ
 3.1 ЗАГОЛОВКИ БУФЕРА.............................................. 39
 3.2 СТРУКТУРА ОБЛАСТИ БУФЕРОВ (БУФЕРНОГО ПУЛА).................... 41
 3.3 МЕХАНИЗМ ПОИСКА БУФЕРА........................................ 42
 3.4 ЧТЕНИЕ И ЗАПИСЬ ДИСКОВЫХ БЛОКОВ............................... 52
 3.5 ПРЕИМУЩЕСТВА И НЕУДОБСТВА БУФЕРНОГО КЕША...................... 55
 3.6 ВЫВОДЫ........................................................ 56
 3.7 УПРАЖНЕНИЯ.................................................... 57
огл  ГЛАВА 4 ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ ФАЙЛОВ
 4.1 ИНДЕКСЫ....................................................... 59
 4.1.1 Определение.............................................. 59
 4.1.2 Обращение к индексам..................................... 62
 4.1.3 Освобождение индексов.................................... 64
 4.2 СТРУКТУРА ФАЙЛА ОБЫЧНОГО ТИПА................................. 64
 4.3 КАТАЛОГИ...................................................... 70
 4.4 ПРЕВРАЩЕНИЕ СОСТАВНОГО ИМЕНИ ФАЙЛА (ПУТИ ПОИСКА)
 В ИДЕНТИФИКАТОР ИНДЕКСА....................................... 71
 4.5 СУПЕРБЛОК..................................................... 73
 4.6 НАЗНАЧЕНИЕ ИНДЕКСА НОВОМУ ФАЙЛУ............................... 73
 4.7 ВЫДЕЛЕНИЕ ДИСКОВЫХ БЛОКОВ..................................... 80
 4.8 ДРУГИЕ ТИПЫ ФАЙЛОВ............................................ 83
 4.9 ВЫВОДЫ........................................................ 83
огл  ГЛАВА 5 СИСТЕМНЫЕ ОПЕРАЦИИ ДЛЯ РАБОТЫ С ФАЙЛОВОЙ СИСТЕМОЙ
 5.1 OPEN.......................................................... 86
 5.2 READ.......................................................... 90
 5.3 WRITE......................................................... 95
 5.4 ЗАХВАТ ФАЙЛА И ЗАПИСИ......................................... 96
 5.5 УКАЗАНИЕ МЕСТА В ФАЙЛЕ,ГДЕ БУДЕТ ВЫПОЛНЯТЬСЯ ВВОД-ВЫВОД -LSEEK 96
 5.6 CLOSE......................................................... 97
 5.7 СОЗДАНИЕ ФАЙЛА................................................ 99
 5.8 СОЗДАНИЕ СПЕЦИАЛЬНЫХ ФАЙЛОВ.................................. 100
 5.9 СМЕНА ТЕКУЩЕГО И КОРНЕВОГО КАТАЛОГА.......................... 102
 5.10 СМЕНА ВЛАДЕЛЬЦА И РЕЖИМА ДОСТУПА К ФАЙЛУ.................... 103
 5.11 STAT И FSTAT................................................ 103
 5.12 КАНАЛЫ...................................................... 104
 5.12.1 Системная функция pipe................................. 104
 5.12.2 Открытие поименованного канала......................... 106
 5.12.3 Чтение из каналов и запись в каналы.................... 106
 5.12.4 Закрытие каналов....................................... 108
 5.12.5 Примеры................................................ 109
 5.13 DUP......................................................... 110
 5.14 МОНТИРОВАНИЕ И ДЕМОНТИРОВАНИЕ ФАЙЛОВЫХ СИСТЕМ............... 111
 5.14.1 Пересечение точек монтирования в маршрутах поиска файлов.. 115
 5.14.2 Демонтирование файловой системы........................... 118
 5.15 LINK........................................................ 120
 5.16 UNLINK...................................................... 123
 5.16.1 Целостность файловой системы.............................. 125
 5.16.2 Поводы для конкуренции.................................... 126
 5.17 АБСТРАКТНЫЕ ОБРАЩЕНИЯ К ФАЙЛОВЫМ СИСТЕМАМ................... 129
 5.18 СОПРОВОЖДЕНИЕ ФАЙЛОВОЙ СИСТЕМЫ.............................. 130
 5.19 ВЫВОДЫ...................................................... 131
 5.20 УПРАЖНЕНИЯ.................................................. 131
огл  ГЛАВА 6 СТРУКТУРА ПРОЦЕССОВ
 6.1 СОСТОЯНИЯ ПРОЦЕССА И ПЕРЕХОДЫ МЕЖДУ НИМИ..................... 137
 6.2 ФОРМАТ ПАМЯТИ СИСТЕМЫ........................................ 141
 6.2.1 Области................................................. 141
 6.2.2 Страницы и таблицы страниц.............................. 143
 6.2.3 Размещение ядра......................................... 145
 6.2.4 Пространство процесса................................... 146
 6.3 КОНТЕКСТ ПРОЦЕССА............................................ 147
 6.4 СОХРАНЕНИЕ КОНТЕКСТА ПРОЦЕССА................................ 150
 6.4.1 Прерывания и особые ситуации............................ 151
 6.4.2 Взаимодействие с операционной системой череззовы
 системных функций....................................... 153
 6.4.3 Переключение контекста.................................. 156
 6.4.4 Сохранение контекста на случай аварийного завершения.... 158
 6.4.5 Копирование данных между адресным пространствсис-
 темы и адресным пространством задачи.................... 159
 6.5 УПРАВЛЕНИЕ АДРЕСНЫМ ПРОСТРАНСТВОМ ПРОЦЕССА................... 159
 6.5.1 Блокировка области и снятие блокировки.................. 160
 6.5.2 Выделение области....................................... 160
 6.5.3 Присоединение области к процессу........................ 161
 6.5.4 Изменение размера области............................... 162
 6.5.5 Загрузка области........................................ 163
 6.5.6 Освобождение области.................................... 167
 6.5.7 Отсоединение области от процесса........................ 168
 6.5.8 Копирование содержимого области......................... 169
 6.6 ПРИОСТАНОВКА ВЫПОЛНЕНИЯ...................................... 170
 6.6.1 События, вызывающие приостанов выполнения, и их адреса.. 171
 6.6.2 Алгоритмы приостанова и возобновления выполнения........ 173
 6.7 ВЫВОДЫ....................................................... 175
 6.8 УПРАЖНЕНИЯ................................................... 176
огл  ГЛАВА 7 УПРАВЛЕНИЕ ПРОЦЕССОМ
 7.1 СОЗДАНИЕ ПРОЦЕССА............................................ 179
 7.2 СИГНАЛЫ...................................................... 187
 7.2.1 Обработка сигналов...................................... 190
 7.2.2 Группы процессов........................................ 197
 7.2.3 Посылка сигналов процессами............................. 197
 7.3 ЗАВЕРШЕНИЕ ВЫПОЛНЕНИЯ ПРОЦЕССА............................... 198
 7.4 ОЖИДАНИЕ ЗАВЕРШЕНИЯ ВЫПОЛНЕНИЯ ПРОЦЕССА...................... 200
 7.5 ВЫЗОВ ДРУГИХ ПРОГРАММ........................................ 204
 7.6 КОД ИДЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПРОЦЕССА...................... 213
 7.7 ИЗМЕНЕНИЕ РАЗМЕРА ПРОЦЕССА................................... 215
 7.8 КОМАНДНЫЙ ПРОЦЕССОР SHELL.................................... 218
 7.9 ЗАГРУЗКА СИСТЕМЫ И НАЧАЛЬНЫЙ ПРОЦЕСС......................... 220
 7.10 ВЫВОДЫ...................................................... 223
 7.11 УПРАЖНЕНИЯ.................................................. 224
огл  ГЛАВА 8 ДИСПЕТЧЕРИЗАЦИЯ ПРОЦЕССОВ И ЕЕ ВРЕМЕННЫЕ ХАРАКТЕРИСТИКИ
 8.1 ПЛАНИРОВАНИЕ ВЫПОЛНЕНИЯ ПРОЦЕССОВ............................ 232
 8.1.1 Алгоритм................................................ 233
 8.1.2 Параметры диспетчеризации............................... 233
 8.1.3 Примеры диспетчеризации процессов....................... 237
 8.1.4 Управление приоритетами................................. 238
 8.1.5 Планирование на основе справедливого раздела............ 239
 8.1.6 Работа в режиме реального времени....................... 241
 8.2 СИСТЕМНЫЕ ОПЕРАЦИИ, СВЯЗАННЫЕ СО ВРЕМЕНЕМ.................... 241
 8.3 ТАЙМЕР....................................................... 243
 8.3.1 Перезапуск часов........................................ 245
 8.3.2 Внутренние системные тайм-ауты.......................... 246
 8.3.3 Построение профиля...................................... 247
 8.3.4 Учет и статистика....................................... 250
 8.3.5 Поддержание времени в системе........................... 251
 8.4 ВЫВОДЫ....................................................... 251
 8.5 УПРАЖНЕНИЯ................................................... 251
огл  ГЛАВА 9 АЛГОРИТМЫ УПРАВЛЕНИЯ ПАМЯТЬЮ
 9.1 СВОПИНГ...................................................... 253
 9.1.1 Управление пространством на устройстве выгрузки......... 253
 9.1.2 Выгрузка процессов...................................... 257
 9.1.2.1 Выгрузка при выполнении системной функции fork........ 259
 9.1.2.2 Выгрузка с расширением................................ 260
 9.1.3 Загрузка (подкачка) процессов........................... 260
 9.2 ПОДКАЧКА ПО ЗАПРОСУ.......................................... 265
 9.2.1 Структуры данных, исп-мые подсистемой замещения страниц..267
 9.2.1.1 Функция fork в системе с замещением страниц........ 270
 9.2.1.2 Функция exec в системе с замещением страниц........ 272
 9.2.2 "Сборщик" страниц....................................... 274
 9.2.3 Отказы при обращениях к страницам....................... 277
 9.2.3.1 Обработка прерываний по отказу из-за недоступности  278
 9.2.3.2 Обработка прерываний по отказу системы защиты...... 282
 9.2.4 Замещение страниц на менее сложной технической базе..... 285
 9.3 СИСТЕМА СМЕШАННОГО ТИПА СО СВОПИНГОМ И ПОДКАЧКОЙ ПО ЗАПРОСУ.. 286
 9.4 ВЫВОДЫ....................................................... 287
 9.5 УПРАЖНЕНИЯ................................................... 287
огл  ГЛАВА 10 ПОДСИСТЕМА УПРАВЛЕНИЯ ВВОДОМ-ВЫВОДОМ
 10.1 ВЗАИМОДЕЙСТВИЕ ДРАЙВЕРОВ С ПРОГРАММНОЙ И АППАРАТНОЙ СРЕДОЙ.. 290
 10.1.1 Конфигурация системы................................... 291
 10.1.2 Системные функции и взаимодействие с драйверами........ 293
 10.1.2.1 Open.............................................. 294
 10.1.2.2 Close............................................. 297
 10.1.2.3 Read и Write...................................... 298
 10.1.2.4 Стратегический интерфейс.......................... 299
 10.1.2.5 Ioctl............................................. 300
 10.1.2.6 Другие функции, имеющие отношение к файловой систе 300
 10.1.3 Программы обработки прерываний......................... 301
 10.2 ДИСКОВЫЕ ДРАЙВЕРЫ........................................... 301
 10.3 ТЕРМИНАЛЬНЫЕ ДРАЙВЕРЫ....................................... 305
 10.3.1 Символьные списки...................................... 307
 10.3.2 Терминальный драйвер в каноническом режиме............. 310
 10.3.3 Терминальный драйвер в режиме без обработки символов... 315
 10.3.4 Опрос терминала........................................ 318
 10.3.5 Назначение операторского терминала..................... 318
 10.3.6 Драйвер косвенного терминала........................... 319
 10.3.7 Вход в систему......................................... 319
 10.4 ПОТОКИ...................................................... 320
 10.4.1 Более детальное рассмотрение потоков................... 324
 10.4.2 Анализ потоков......................................... 326
 10.5 ВЫВОДЫ...................................................... 327
 10.6 УПРАЖНЕНИЯ.................................................. 327
огл  ГЛАВА 11 ВЗАИМОДЕЙСТВИЕ ПРОЦЕССОВ
 11.1 ТРАССИРОВКА ПРОЦЕССОВ....................................... 330
 11.2 ВЗАИМОДЕЙСТВИЕ ПРОЦЕССОВ В ВЕРСИИ V СИСТЕМЫ................. 334
 11.2.1 Сообщения.............................................. 335
 11.2.2 Разделение памяти...................................... 341
 11.2.3 Семафоры............................................... 344
 11.2.4 Общие замечания........................................ 353
 11.3 ВЗАИМОДЕЙСТВИЕ В СЕТИ....................................... 354
 11.4 ГНЕЗДА...................................................... 355
 11.5 ВЫВОДЫ...................................................... 360
 11.6 УПРАЖНЕНИЯ.................................................. 360
огл  ГЛАВА 12 МНОГОПРОЦЕССОРНЫЕ СИСТЕМЫ
 12.1 ПРОБЛЕМЫ, СВЯЗАННЫЕ С МНОГОПРОЦЕССОРНЫМИ СИСТЕМАМИ.......... 362
 12.2 ГЛАВНЫЙ И ПОДЧИНЕННЫЙ ПРОЦЕССОРЫ............................ 363
 12.3 СЕМАФОРЫ.................................................... 365
 12.3.1 Определение семафоров.................................. 366
 12.3.2 Реализация семафоров................................... 367
 12.3.3 Примеры алгоритмов..................................... 374
 12.3.3.1 Выделение буфера.................................. 374
 12.3.3.2 Wait.............................................. 377
 12.3.3.3 Драйверы.......................................... 377
 12.3.3.4 Фиктивные процессы................................ 378
 12.4 СИСТЕМА TUNIS............................................... 378
 12.5 УЗКИЕ МЕСТА В ФУНКЦИОНИРОВАНИИ МНОГОПРОЦЕССОРНЫХ СИСТЕМ..... 379
 12.6 УПРАЖНЕНИЯ.................................................. 379
огл  ГЛАВА 13 РАСПРЕДЕЛЕННЫЕ СИСТЕМЫ
 13.1 ПЕРИФЕРИЙНЫЕ ПРОЦЕССОРЫ..................................... 382
 13.2 СВЯЗЬ ТИПА NEWCASTLE........................................ 390
 13.3 "ПРОЗРАЧНЫЕ" РАСПРЕДЕЛЕННЫЕ ФАЙЛОВЫЕ СИСТЕМЫ................ 393
 13.4 РАСПРЕДЕЛЕННАЯ МОДЕЛЬ БЕЗ ПЕРЕДАТОЧНЫХ ПРОЦЕССОВ............ 396
 13.5 ВЫВОДЫ...................................................... 397
 13.6 УПРАЖНЕНИЯ.................................................. 398
огл  ПРИЛОЖЕНИЕ
 СИСТЕМНЫЕ ОПЕРАЦИИ............................................... 400
 access....................................................... 400
 acct......................................................... 400
 alarm........................................................ 400
 brk.......................................................... 401
 chdir........................................................ 401
 chmod........................................................ 401
 chown........................................................ 401
 chroot....................................................... 401
 close........................................................ 402
 creat........................................................ 402
 dup.......................................................... 402
 exec......................................................... 402
 exit......................................................... 402
 fcntl........................................................ 403
 fork......................................................... 404
 getpid....................................................... 404
 getuid....................................................... 404
 ioctl........................................................ 404
 kill......................................................... 404
 link......................................................... 405
 lseek........................................................ 405
 mknod........................................................ 405
 mount........................................................ 406
 msgctl....................................................... 406
 msgget....................................................... 407
 msgsnd и msgrcv.............................................. 407
 nice......................................................... 408
 open......................................................... 408
 pause........................................................ 409
 pipe......................................................... 409
 plock........................................................ 409
 profil....................................................... 410
 ptrace....................................................... 410
 read......................................................... 410
 semctl....................................................... 411
 semget....................................................... 412
 semop........................................................ 412
 setpgrp...................................................... 413
 setuid....................................................... 413
 shmctl....................................................... 413
 shmget....................................................... 414
 shmop........................................................ 414
 signal....................................................... 415
 stat......................................................... 416
 stime........................................................ 416
 sync......................................................... 416
 time......................................................... 416
 times........................................................ 417
 ulimit....................................................... 417
 umask........................................................ 417
 umount....................................................... 418
 uname........................................................ 418
 unlink....................................................... 418
 ustat........................................................ 418
 utime........................................................ 419
 wait......................................................... 419
 write........................................................ 419
 БИБЛИОГРАФИЯ..................................................... 420
zip(433k)         Эта книжка доступна также в виде одного zip-архива
Visitors: 
 1996 Nov: 310
 1997: 250,280
| Свидетельство о регистрации электронного СМИ 77-20625
 | При поддержке Федерального агентства по печати и массовым коммуникациям. |