КнигоПровод.Ru22.11.2024

/ИТ-книги

Операционные системы. Параллельные и распределённые системы — Бэкон Д., Харрис Т.
Операционные системы. Параллельные и распределённые системы
Бэкон Д., Харрис Т.
год издания — 2004, кол-во страниц — 800, ISBN — 5-94723-969-8, 0-321-11789-1, 966-552-136-5, тираж — 4000, язык — русский, тип обложки — твёрд. 7БЦ матов., масса книги — 1060 гр., издательство — Питер
КНИГА СНЯТА С ПРОДАЖИ
Jean Bacon, Tim Harris
University of Cambridge
OPERATING SYSTEMS
CONCURRENT AND DISTRIBUTED SOFTWARE DESIGN

Addison-Wesley, 2003

Пер. с англ. О. Здир

Формат 70x100 1/16
ключевые слова — операционн, транзакц, веб, субд, распределённ, unix, linux, windows, java, параллельн, cisc, risc, ethernet, многопоточн, файл-сервер, сервер, шифр, семафор, posix, .net, rpc, маршалинг, rmi, сокет, ntfs, http, xml, soap, jini, javabeans, jxta, corba, com

В книге освещены последние достижения в области теории операционных и прикладных систем, а также практики их разработки и эксплуатации. Рассматриваются объектная и транзакционная архитектуры современного программного обеспечения. Особое внимание уделено развивающимся технологиям на основе Веб и промежуточного программного обеспечения, а также интеграции СУБД и систем обработки транзакций в общую структуру распределённых систем.

Подробно затронута тема защиты. В качестве примеров операционных и языковых систем описаны UNIX, LINUX и Windows 2000/NT, а также платформа и язык Java. Книга будет полезной для студентов и аспирантов, изучающих курс операционных систем.

ОГЛАВЛЕНИЕ

Предисловие23
Структура книги24
Рекомендации по изучению материала28
Благодарности31
 
Глава 1. Требования к системе32
 
1.1. Введение32
1.2. Системы, параллельные по своей природе34
1.2.1. Системы реального времени и встроенные системы34
1.2.2. Операционные системы38
1.2.3. Оконные интерфейсы42
1.2.4. СУБД и системы обработки транзакций42
1.2.5. Промежуточное программное обеспечение44
1.2.6. Веб45
1.3. Потенциально параллельные системы45
1.3.1. Подходы к разработке параллельных алгоритмов46
1.3.2. Доступ к общим данным и синхронизация параллельных задач47
1.3.3. Области применения параллельных алгоритмов47
1.3.4. Требования к системам, поддерживающим параллельные приложения48
1.4. Архитектура аппаратных средств48
1.5. Параллельные системы: подведение итогов51
1.6. Общие требования к параллельным системам53
Контрольные вопросы54
 
Часть I. Структура и принципы работы
программных систем55
 
Глава 2. Структура системы и ее динамические компоненты57
 
2.1. Концептуальное представление структуры системы58
2.1.1. Понятие абстрактного типа данных58
2.1.2. Интерфейс абстрактного типа данных60
2.1.3. Состояние экземпляра абстрактного типа данных60
2.2. Структура системы с точки зрения реализации61
2.2.1. Объектно-ориентированное программирование62
2.2.2. Интерфейс объекта62
2.2.3. Реализация объекта63
2.2.4. Взаимодействие объектов65
2.2.5. Жизненный цикл объекта67
2.2.6. Специализация и обобщение69
2.2.7. Составные объекты70
2.2.8. Взаимодействие объектов70
2.3. Концепция процесса72
2.3.1. Аналогии процесса72
2.3.2. Многопоточные процессы75
2.4. функции операционной системы76
2.5. Вызовы операционной системы и её защита78
2.6. Структура операционной системы80
2.6.1. Многослойная структура80
2.6.2. Микроядро81
2.7. Операционные системы с поддержкой объектов и объектной структурой85
2.7.1. Именование объектов85
2.7.2. Защита, вызов и совместное использование объектов86
2.7.3. Унифицированные механизмы управления объектами87
2.8. Распределённые системы и промежуточные платформы88
2.9. Защита систем89
2.9.1. Объектная модель системы контроля доступа90
2.10. Резюме91
Контрольные вопросы91
 
Глава 3. Взаимодействие с аппаратным обеспечением94
 
3.1. Введение94
3.2. Интерфейс устройств95
3.2.1. Быстродействие процессора и устройств97
3.2.2. Компьютеры CISC и RISC99
3.2.3. Простейший интерфейс устройства99
3.2.4. Опрос и прерывания100
3.2.5. Обработка прерываний и их приоритеты102
3.2.6. Векторы прерываний102
3.2.7. RISC-подход к обработке прерываний103
3.2.8. Устройства с прямым доступом к памяти105
3.2.9. Ввод-вывод с отображением в память107
3.2.10. Таймеры107
3.3. Исключения108
3.3.1. Исключения, вызванные выполнением программы108
3.3.2. Системный и пользовательский режимы110
3.3.3. Механизм системного вызова110
3.3.4. Использование механизма исключения111
3.3.5. Обработка исключений пользовательского уровня112
3.4. Мультипроцессоры113
3.5. Ввод-вывод на прикладном уровне115
3.5.1. Буферы и синхронизация116
3.5.2. Синхронный и асинхронный ввод-вывод117
3.6. Управление сетевым взаимодействием118
3.7. Коммуникационные сети, интерфейсы и драйверы119
3.7.1. Сеть Ethernet121
3.7.2. Локальные сети кольцевой топологии122
3.7.3. Примеры сетевых интерфейсов122
3.8. Коммуникационное программное обеспечение123
3.8.1. Эталонная модель взаимодействия открытых систем124
3.8.2. Взаимодействие с установкой соединения и без таковой127
3.9. Прикладные и системные коммуникационные протоколы128
3.10. Резюме130
Контрольные вопросы131
 
Глава 4. Поддержка процессов133
 
4.1. Использование процессов в системе133
4.2. Процессы и процессоры135
4.3. Состояние процесса137
4.3.1. Сохранение состояния процесса137
4.3.2. Переключение контекста138
4.4. Синхронизация с аппаратным обеспечением139
4.4.1. Условия гонок1^0
4.4.2. Объекты событий и процессов141
4.5. Структуры данных, используемые при управлении процессами142
4.6. Стратегия планирования процессов143
4.6.1. Унарное, бинарное и общее планирование143
4.6.2. Поведение процесса и его приоритет144
4.7. Планирование процессов для мультипроцессоров с общей памятью146
4.8. Планирование процессов в реальном времени148
4.8.1. Структура системы и отклик на события151
4.9. Абстракция и реализация процесса152
4.10. Процессы в структуре операционной системы154
4.11. Реализация многопоточных процессов155
4.12. Реализация процессов в языковых и операционных системах157
4.13. Состояние процесса в языковых и операционных системах158
4.13.1. Записи активации в стеке времени выполнения160
4.13.2. Куча и сборка мусора161
4.14. Последовательные программы с системными вызовами162
4.15. Эволюция параллельности в языках программирования163
4.15.1. Примеры параллельных систем163
4.15.2. Параллельность, обеспечиваемая средствами последовательного языка165
4.15.3. Сопрограммы167
4.15.4. Процессы171
4.15.5. Поддержка процессов: подведение итогов174
4.16. Реализация процессов в языковых системах176
4.16.1. Определение, создание и завершение процессов176
4.16.2. Управление дочерними процессами178
4.16.3. Обработка исключений в языках программирования179
4.16.4. Выделение памяти для процессов уровня языка программирования179
4.17. Архитектуры управления потоками179
4.18. Потоки и исключения в языке Java184
4.19. Резюме186
Контрольные вопросы188
 
Глава 5. Управление памятью192
 
5.1. Введение192
5.2. Иерархия памяти193
5.3. Адресное пространство процесса195
5.3.1. Понятие преобразования адресов195
5.3.2. Статическое преобразование адресов196
5.3.3. Динамическое преобразование адресов197
5.3.4. Аппаратно-управляемая настройка адресов и защита198
5.4. Сегментация виртуальной памяти199
5.4.1. Структура виртуального адреса201
5.4.2. Преобразование адресов202
5.4.3. Сегментация виртуальной памяти: подведение итогов203
5.5. Страничная виртуальная память203
5.5.1. Особенности преобразования адресов204
5.5.2. Копирование при записи206
5.5.3. Страничная виртуальная память: подведение итогов207
5.6. Сегментация и страничная организация памяти208
5.6.1. Аппаратная поддержка сегментов и страниц209
5.6.2. Программная поддержка сегментов, аппаратная поддержка страниц209
5.7. Структуры данных операционной системы210
5.7.1. Многоуровневые таблицы страниц211
5.7.2. Ограждённые таблицы страниц212
5.7.3. Инвертированные таблицы страниц213
5.7.4. Страницы в основной памяти213
5.7.5. Страницы во внешней памяти214
5.7.6. Замещение страниц215
5.8. Пример диспетчера памяти216
5.9. Управление памятью и архитектура системы219
5.10. Резюме221
Контрольные вопросы221
 
Глава 6. Управление файлами224
 
6.1. Введение224
6.2. Обзор функций файловой системы224
6.3. Структура файла и каталога227
6.3.1. Путевые имена и рабочие каталоги228
6.3.2. Совместное использование объектов, права доступа и ссылки228
6.3.3. Управление существованием объектов230
6.4. Интерфейс файловой системы230
6.4.1. Сервис каталога как менеджер типа232
6.4.2. Интерфейс сервиса каталога233
6.4.3. Интерфейс файлового сервиса233
6.5. Реализация файловой системы233
6.5.1. Жёсткие и символические ссылки236
6.5.2. Хранение файлов на диске238
6.5.3. Хранение мультимедийных данных новых типов241
6.6. Архитектура современных файловых систем242
6.6.1. Управление логическими томами242
6.6.2. Чередование и зазеркаливание243
6.6.3. Журнальные файловые системы и протоколирование245
6.7. Сетевые файл-серверы246
6.7.1. Открытые и закрытые архитектуры хранения247
6.7.2. Интерфейс сервиса хранения248
6.7.3. Размещение функций249
6.7.4. Серверы, не сохраняющие состояние251
6.7.5. Системы с преобладающей записью254
6.7.6. Идентификаторы файлов и защита на уровне сервиса хранения254
6.8. Интеграция виртуальной и постоянной памяти256
6.8.1. Отображение файлов256
6.8.2. Отображение объектов258
6.9. Резюме259
Контрольные вопросы260
 
Глава 7. Распределённые системы262
 
7.1. Введение262
7.2. Эволюция распределённых систем263
7.3. Персональные системы265
7.4. Модель, архитектура и конструкторские решения266
7.5. Характеристики распределённых систем266
7.6. Время в распределённых системах267
7.6.1. Физическое земное время267
7.6.2. Время и распределённые процессы268
7.6.3. Логическое время и порядок событий269
7.6.4. Алгоритмы синхронизации часов270
7.7. Именование272
7.7.1. Создание уникальных имён272
7.7.2. Простые и составные имена273
7.7.3. Служба доменных имён Интернета274
7.7.4. Службы имён и связывание275
7.7.5. Атрибуты объектов, возвращаемые службами имён276
7.8. Мобильные пользователи, компьютеры и объекты277
7.8.1. Мобильные компьютеры277
7.8.2. Мобильные пользователи278
7.9. Резюме278
Контрольные вопросы279
 
Глава 8. Защита280
 
8.1. Сценарии и требования защиты280
8.1.1. Взаимодействие между клиентом и сервером280
8.1.2. Импорт исходного и объектного кода281
8.1.3. Удаленное соединение с компьютером282
8.2. Анализ рисков282
8.3. Виды шифрования284
8.3.1. Шифрование с секретным ключом285
8.3.2. Шифрование с открытым ключом285
8.3.3. Необратимые функции286
8.4. Алгоритмы287
8.4.1. Подстановочные шифры287
8.4.2. Перестановочные шифры289
8.4.3. Роторные машины289
8.4.4. Шифрование с помощью компьютера289
8.5. Протоколы291
8.5.1. Защищённое взаимодействие292
8.5.2. Сеансовые ключи в гибридных протоколах294
8.5.3. Аутентификация294
8.5.4. Атаки с воспроизведением и одноразовые метки297
8.6. Примеры применения рассмотренных алгоритмов297
8.6.1. Сертификация Х.509298
8.6.2. Инфраструктура сертификации SPKI298
8.6.3. Аутентификация и обмен ключами299
8.6.4. Программа Pretty Good Privacy301
8.6.5. Протокол Secure Sockets Layer302
8.7. Резюме302
Контрольные вопросы303
 
Часть II. Управление взаимодействием
между процессами305
 
Глава 9. Взаимодействие процессов308
 
9.1. Системы с единым адресным пространством процессов308
9.1.1. Размещение процессов, выполняющих подсистемы310
9.2. Процессы с раздельными адресными пространствами311
9.3. Выполнение процессами кода операционной системы313
9.4. Варианты размещения процессов315
9.5. Необходимость взаимодействия процессов316
9.6. Типы взаимодействия процессов318
9.7. Особенности взаимодействия процессов320
9.7.1. Совместное использование данных в памяти320
9.7.2. Отсутствие общих данных в памяти322
9.7.3. Уровень структуризации параллельности323
9.8. Определение одного действия процесса324
Контрольные вопросы325
 
Глава 10. Реализация низкоуровневой синхронизации328
 
10.1. Синхронизация процессов и механизм «ждать-сигнализировать»329
10.2. Взаимное исключение330
10.3. Аппаратная поддержка взаимного исключения333
10.4. Семафоры337
10.5. Способы использования семафоров338
10.5.1. Взаимное исключение338
10.5.2. Условная синхронизация340
10.5.3. Использование более одного экземпляра ресурса341
10.6. Реализация операций семафора342
10.6.1. Параллельная реализация семафоров343
10.6.2. Планирование очереди semWait(), инверсия приоритетов
    и наследование344
10.6.3. Реализация семафоров на пользовательском уровне346
10.7. Резюме347
Контрольные вопросы348
 
Глава 11. Алгоритмы низкоуровневой синхронизации351
 
11.1. Введение351
11.2. Семафоры как базовый механизм синхронизации352
11.3. Проблема «производитель-потребитель»354
11.3.1. Обмен данными через буфер354
11.3.2. Определение циклического буфера355
11.3.3. Один производитель, один потребитель356
11.3.4. Много производителей, много потребителей358
11.4. Надёжность программ и их жизнеспособность359
11.5. Проблема «писатель и читатели»360
11.6. Ограничения, налагаемые на использование семафоров365
11.7. Счётчики событий и секвенсоры366
11.7.1. Применение счётчиков событий367
11.7.2. Применение секвенсоров367
11.7.3. Решение задачи «производитель-потребитель»368
11.7.4. Реализация счётчиков событий и секвенсоров369
11.7.5. Достоинства и недостатки счетчиков событий и секвенсоров370
11.8. Потоки POSIX371
11.8.1. Объекты, дескрипторы и атрибуты371
11.8.2. Синхронизация371
11.8.3. Операции пакета pthread374
11.9. Резюме376
11.10. Учебный пример: управление дисковым кэшем377
11.10.1. Чтение и запись дисковых данных377
11.10.2. Выделенные и свободные буферы378
11.10.3. Структура буфера379
11.10.4. Алгоритмы для доступа к буферу380
Вопросы и упражнения к учебному примеру382
Контрольные вопросы383
 
Глава 12. Взаимодействие между процессами с общей памятью387
 
12.1. Критические секции в языках программирования387
12.2. Мониторы390
12.2.1. Средства синхронизации в языке Java393
12.2.2. Критические секции в языке Java395
12.2.3. Условная синхронизация в языке Java396
12.2.4. Реализация мониторов в языке Java397
12.2.5. Дополнительные вопросы, связанные с мониторами401
12.2.6. Единый класс для доступа к ресурсам402
12.2.7. Менеджер циклического буфера403
12.2.8. Решение проблемы читателей и писателей405
12.2.9. Практика применения мониторов406
12.3. Синхронизация на уровне целых операций408
12.3.1. Формулы маршрута408
12.3.2. Активные объекты410
12.4. Резюме414
Контрольные вопросы415
 
Глава 13. Взаимодействие между процессами и структура системы420
 
13.1. Виды взаимодействия между процессами420
13.2. Структура системы и IPC с общей памятью422
13.3. Структура системы и IPC без общей памяти423
13.4. Область применения метода взаимодействия через общую память424
13.5. Системы с обязательным разделением процессов425
13.6. Взаимодействие процессов в операционной системе UNIX425
13.7. Обзор механизмов взаимодействия между процессами427
13.8. Функциональная эквивалентность двух типов системной архитектуры429
13.9. Именование в параллельных и распределённых системах431
13.10. Резюме432
Контрольные вопросы432
 
Глава 14. Взаимодействие между процессами без общей памяти434
 
14.1. Введение434
14.2. Файлы для общих данных435
14.3. Каналы UNIX437
14.3.1 Конвейеризация команд438
14.3.2. Недостатки каналов438
14.4. Передача сообщений439
14.5. Разновидности передачи сообщений441
14.5.1. Сообщение от произвольного отправителя442
14.5.2. Примитивы запроса и ответа442
14.5.3. Несколько портов на процесс443
14.5.4. Входные и выходные порты444
14.5.5. Глобальные порты446
14.5.6. Широковещание и мультивещание447
14.5.7. Перенаправление сообщений448
14.5.8. Время ожидания448
14.5.9. Удаление устаревших сообщений448
14.6. Реализация асинхронной передачи сообщений449
14.7. Применение синхронной передачи сообщений451
14.8. Поддержка передачи сообщений языками программирования453
14.8.1. Каналы occam для синхронного взаимодействия453
14.8.2. Абстракции языка Linda454
14.9. Многопоточные клиентские и серверные процессы456
14.10. Резюме457
Контрольные вопросы458
 
Глава 15. Отказоустойчивость и постоянные данные460
 
15.1. Отказ системы460
15.2. Модель отказа сбой-остановка461
15.3. Понятие отказоустойчивости4621
15.4. Идемпотентные операции462
15.5. Атомарные операции над постоянными объектами462
15.5.1. Энергозависимая, постоянная и стабильная память463
15.6. Реализация атомарных операций464
15.6.1. Протоколирование465
15.6.2. Теневое выполнение операций465
15.7. Энергонезависимая память467
15.8. Одна операция над постоянными данными468
15.9. Требования СУБД к операционной системе469
15.10. Резюме471
Контрольные вопросы472
 
Глава 16. Взаимодействие между процессами
в распределённой системе474
 
16.1. Введение474
16.2. Специфические характеристики распределенных систем475
16.3. Взаимодействие между процессами методом передачи сообщений476
16.3.1. IPC в распределенной системе476
16.3.2. Распределенная асинхронная передача сообщений476
16.4. Интеграция IPC с сетевым сервисом478
16.4.1. Взаимодействие между процессами через сокеты478
16.5. Сокеты и потоки Java482
16.5.1. Пакет java.net485
16.5.2. Реализация клиента485
16.5.3. Асинхронная передача сообщений486
16.6. Парадигмы распределённого программирования486
16.6.1. Синхронное и асинхронное взаимодействие486
16.6.2. Процедурное взаимодействие и передача сообщений487
16.7. Удалённый вызов процедур488
16.7.1. Системы с поддержкой RPC488
16.7.2. Учёт вероятности перегрузки сети или сервера490
16.7.3. Учёт вероятности отказа отдельных узлов490
16.7.4. Язык CCLU492
16.7.5. RPC и эталонная модель OSI493
16.8. Интеграция RPC и языков программирования494
16.8.1. Прозрачность распределённой реализации494
16.8.2. Маршалинг аргументов496
16.8.3. Объектно-ориентированные системы497
16.8.4. Проверка типов и согласованность версий498
16.8.5. Представление данных в гетерогенной среде498
16.9. Пакет java.rmi499
16.9.1. RMI и объектная модель499
16.9.2. Механизмы RMI500
16.9.3. Пример использования RMI503
16.9.4. Сравнение RMI с механизмом сокетов505
16.10. Недостатки синхронного вызова505
16.11. Именование, поиски связывание507
16.11.1. Именование объектов с использованием IPC507
16.11.2. Поиск имен объектов509
16.11.3. Архитектура ANSA510
16.12. Резюме511
Контрольные вопросы512
 
Часть III. Управление транзакциями515
 
Глава 17. Составные операции517
 
17.1. Выполнение составной операции517
17.2. Данные в основной памяти518
17.3. Данные в постоянной памяти519
17.3.1. Составные операции в файловых системах519
17.3.2. Составные операции в СУБД520
17.4. Параллельное выполнение составных операций520
17.4.1. Оценка необходимости параллельного выполнения521
17.5. Проблемы параллельного выполнения составных операций522
17.5.1. Неконтролируемое чередование подопераций523
17.5.2. Видимость результатов подопераций524
17.5.3. Взаимоблокировка524
17.6. Отказ системы525
17.7. Резюме526
Контрольные вопросы527
 
Глава 18. Выделение ресурсов и взаимоблокировка529
 
18.1. Требования к динамическому выделению ресурсов529
18.2. Взаимоблокировка процессов530
18.3. Активная блокировка и зависание процесса531
18.4. Условия взаимоблокировки532
18.4.1. Предотвращение взаимоблокировки533
18.5. Проблема обедающих философов534
18.6. Граф выделения ресурсов536
18.7. Выявление взаимоблокировки538
18.7.1. Алгоритм выявления взаимоблокировки539
18.7.2. Пример выявления взаимоблокировки539
18.7.3. Устранение взаимоблокировки540
18.8. Предупреждение взаимоблокировки541
18.8.1. Проблемы, связанные с предупреждением взаимоблокировки542
18.9. Информация об освобождении объектов, многостадийные процессы542
18.10. Взаимоблокировка распределённых процессов543
18.10.1. Выявление взаимоблокировки распределённых процессов544
18.11. Резюме546
Контрольные вопросы546
 
Глава 19. Транзакции549
 
19.1. Введение549
19.2. Определение транзакций в приложении551
19.3. Сериализуемость553
19.4. Свойства транзакций555
19.5. Допустимые схемы выполнения транзакций556
19.6. Модель системы и обработка транзакций556
19.6.1. Некоммутативные пары операций558
19.6.2. Условие сериализуемости559
19.7. Граф зависимостей транзакций561
19.8. История транзакций564
19.9. Отмена транзакций и свойство изолированности567
19.9.1. Каскадная отмена транзакций567
19.9.2. Возможность восстановления состояния системы568
19.10. Резюме570
Контрольные вопросы571
 
Глава 20. Параллельное выполнение транзакций573
 
20.1. Введение573
20.2. Обработка объектов в основной памяти573
20.2.1. Централизованная система574
20.2.2. Распределённая система575
20.2.3. Подходы к разработке параллельных программ576
20.3. Структура системы обработки транзакций577
20.4. Методы на основе блокирования578
20.4.1. Двухфазное блокирование579
20.4.2. Пример двухфазного блокирования579
20.4.3. Семантическое блокирование581
20.4.4. Взаимоблокировка при использовании метода
    двухфазного блокирования581
20.5. Упорядочение по отметкам времени582
20.5.1. Изолированность транзакций585
20.6. Оптимистическое управление транзакциями585
20.7. Резюме594
Контрольные вопросы596
 
Глава 21. Восстановление состояния системы600
 
21.1. Необходимость восстановления600
21.2. Восстановление состояния объекта601
21.3. Параллельное выполнение, отказы и свойства транзакций602
21.4. Протоколирование и теневое выполнение602
21.5. Восстановление с использованием журнала603
21.5.1. Записи в журнале и их использование при восстановлении604
21.5.2. Опережающая запись в журнал604
21.5.3. Контрольные точки605
21.6. Идемпотентные операции отмены и повтора606
21.7. Состояние транзакции на момент сбоя607
21.8. Алгоритм восстановления608
21.9. База данных координат мобильных объектов609
21.10. Резюме610
Контрольные вопросы611
 
Глава 22. Распределённые транзакции613
 
22.1. Объектная модель для распределённых систем613
22.2. Распределённая обработка транзакций614
22.3. Взаимодействие распределённых компонентов системы616
22.4. Метод двухфазного блокирования616
22.5. Метод упорядочения по отметкам времени617
22.6. Оптимистический метод618
22.7. Фиксация и отмена транзакций619
22.8. Протокол двухфазной фиксации621
22.9. Протокол двухфазного подтверждения624
22.10. Резюме627
Контрольные вопросы628
 
Глава 23. Управление распределённой обработкой630
 
23.1. Введение630
23.2. Группы процессов631
23.2.1. Выборы координатора632
23.3. Согласование реплик данных634
23.3.1. Сбор кворума для обеспечения строгой согласованности635
23.3.2. Крупномасштабные системы636
23.4. Упорядочение доставки сообщений636
23.4.1. Векторные часы638
23.5. Взаимное исключение в распределённой системе639
23.5.1. Реплицированные и распределённые объекты данных640
23.5.2. Алгоритмы взаимного исключения640
23.6. Резюме642
Контрольные вопросы644
 
Часть IV. Примеры реальных систем645
 
Глава 24. UNIX647
24.1. Эволюция UNIX647
24.2. Структура системы и ядро UNIX649
24.2.1. Системные вызовы и выполнение кода ядра650
24.2.2. Управление устройствами651
24.2.3. Буферный кэш652
24.3. Файловая система652
24.3.1. Монтирование файловых систем653
24.3.2. Каталоги654
24.4. Реализация файловой системы654
24.4.1. Индексные узлы655
24.4.2. Файлы каталогов656
24.4.3. Защита доступа657
24.4.4. Выделение дисковых блоков658
24.4.5. Структуры данных в основной памяти658
24.4.6. Согласованность файловой системы659
24.5. Управление процессами660
24.5.1. Создание процессов661
24.5.2. Синхронизация между родительским и дочерним процессами661
24.5.3. Создание процессов при инициализации системы662
24.5.4. Создание процесса интерпретатором команд663
24.5.5. Планирование процессов663
24.5.6. Свопинг и страничная подкачка666
24.5.7. Состояния процесса666
24.6. Взаимодействие между процессами в классической UNIX668
24.6.1. Каналы между командами668
24.6.2. Сигналы670
24.6.3. Механизмы IPC в классической UNIX671
24.7. Классическая UNIX и её современные версии672
24.8. Совершенствование структуры ядра672
24.8.1. Загружаемые модули ядра673
24.8.2. Потоковый интерфейс ядра673
24.9. Совершенствование механизма обработки прерываний674
24.10. Поддержка параллельного выполнения процессов675
24.10.1. Взаимодействие между процессами в SVr4676
24.10.2. Сокеты и именованные каналы678
24.11. Новые механизмы управления памятью679
24.12. Поддержка мультипроцессорной обработки680
24.13. Резюме680
Контрольные вопросы681
 
Глава 25. Windows 2000683
 
25.1. Введение683
25.1.1. Свойства системы684
25.2. Структура системы686
25.2.1. Компоненты исполнительной системы688
25.3. Объектная модель и менеджер объектов689
25.3.1. Использование объектов691
25.3.2. Структура объекта691
25.3.3. Типы объектов693
25.3.4. Имена объектов и каталогов694
25.3.5. Дескрипторы объектов695
25.3.6. Методы объекта, специфические для конкретного типа696
25.3.7. Защита объектов697
25.4. Ядро697
25.4.1. Объекты, процессы и потоки ядра698
25.4.2. Планирование и диспетчеризация потоков699
25.4.3. Обработка прерываний и исключений700
25.5. Процессы, потоки, нити700
25.5.1. Синхронизация потоков702
25.5.2. Оповещения и асинхронные вызовы процедур703
25.5.3. Управление памятью704
25.6. Подсистема ввода-вывода706
25.6.1. Особенности архитектуры подсистемы ввода-вывода707
25.6.2. Обработка ввода-вывода709
25.6.3. Модель драйверов Windows710
25.7. Файловая система NTFS711
25.7.1. Архитектура NTFS712
25.8. Сетевое взаимодействие714
25.9. Резюме716
Контрольные вопросы717
 
Глава 26. World Wide Web718
 
26.1. Взаимодействие между клиентом и сервером Веб719
26.2. Именование веб-страниц720
26.3. Протокол HTTP722
26.4. Структура документа722
26.5. Выполнение программ на сервере и клиенте724
26.6. Защита726
26.6.1. Контроль доступа726
26.6.2. Передача конфиденциальных данных726
26.6.3. Мобильный код727
26.7. Управление параллельным доступом727
26.8. Масштабируемость728
26.9. Язык XML и протокол SOAP729
26.10. Резюме731
Контрольные вопросы731
 
Глава 27. Промежуточное программное обеспечение733
 
27.1. Парадигмы промежуточного программного обеспечения733
27.1.1. Эволюция объектно-ориентированного промежуточного
    программного обеспечения735
27.2. Промежуточная платформа Java738
27.2.1. Java как технология программирования для Веб738
27.2.2. Удаленный вызов методов в Java740
27.2.3. Технологии Jini и JavaSpaces741
27.2.4. Компонентная модель JavaBeans744
27.2.5. Сервис передачи сообщений Java746
27.2.6. Технология JXTA746
27.3. Технологии OMG747
27.3.1. Компоненты модели ОМА748
27.3.2. Объектная модель OMG750
27.4. Инфраструктура CORBA751
27.4.1. Ядро брокера объектных запросов752
27.4.2. Язык описания интерфейсов OMG753
27.4.3. Остальные компоненты инфраструктуры CORBA754
27.4.4. Поддержка асинхронной передачи данных в CORBA756
27.5. Консорциум ODMG757
27.6. Технологии COM, DCOM и .NET758
27.7. Промежуточные платформы, ориентированные на передачу сообщений761
27.7.1. Система передачи сообщений MQSeries763
27.7.2. Система TIB/Rendezvous765
27.8. Резюме767
Контрольные вопросы768
 
Литература770
 
Алфавитный указатель785

Книги на ту же тему

  1. Введение в параллельные методы решения задач: Учебное пособие, Якобовский М. В., 2013
  2. Современные языки и технологии параллельного программирования: Учебник, Гергель В. П., 2012
  3. Параллельное программирование в среде MATLAB для многоядерных и многоузловых вычислительных машин: Учебное пособие, Кепнер Д., 2013
  4. Многоядерное программирование, Эхтер Ш., Робертс Д., 2010
  5. Параллельные вычислительные системы, Головкин Б. А., 1980
  6. Генерация операционной системы ОС ЕС, Назаров С. В., Барсуков А. Г., 1985
  7. Принципы работы и система программного обеспечения МП ЕС 2700, Семерджян М. А., Налбандян Ж. С., Гаспарян Л. X., 1988
  8. Системное программирование: Учебное пособие для втузов, Дьяконов В. Ю., Китов В. А., Калинчев И. А., 1990
  9. Работа с файлами, Джадд Д. Р., 1975
  10. Проектирование структур баз данных: В 2-х кн. (комплект из 2 книг), Тиори Т., Фрай Д., 1985

© 1913—2013 КнигоПровод.Ruhttp://knigoprovod.ru