Lib.Ru: Морис Дж. Бах. Архитектура операционной системы Unix

Поиск: Проза Переводы Поэзия Фантастика Детективы Классика История  И ДР.>>>
[НОВИНКИ][Хитпарад][Самиздат][Музыка][Художники][Заграница][Туризм][ArtOfWar][Форум][Зеркала]
Авторские разделы: Современная Остросюжетная Фантастика Военная [koi-win-lat]

(размер) [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
    При поддержке Федерального агентства по печати и массовым коммуникациям.
    Home: http://www.eunet.lv/~moshkow/ Mail: moshkow@systud.msk.suHost: www.eunet.lv