- •Часть I. Операционные системы и среды
- •Глава 1. Основные понятия .22
- •Глава 2. Управление задачами и памятью в операционных системах. . 51
- •Глава 3. Особенности архитектуры микропроцессоров 180x86 100
- •Глава 4. Управление вводом/выводом и файловые системы 129
- •Глава 5. Архитектура операционных систем и интерфейсы
- •Глава 6. Проектирование параллельных взаимодействующих
- •Глава 7. Проблема тупиков и методы борьбы с ними 269
- •Глава 8. Современные операционные системы 301
- •Часть II. Трансляторы, формальные языки и грамматики
- •Глава 9. Формальные языки и грамматики 347
- •Глава 10. Регулярные языки 387
- •Глава 11. Контекстно-свободные языки 418
- •Глава 12. Классы кс-языков и грамматик . . . 463
- •Глава 13. Основные принципы построения трансляторов 529
- •Глава 14. Генерация и оптимизация кода 588
- •Глава 15. Современные системы программирования 655
- •Часть I Операционные
- •Глава 1 Основные понятия
Глава 5. Архитектура операционных систем и интерфейсы
прикладного программирования 191
Основные принципы построения операционных систем 191
Принцип модульности 191
Принцип функциональной избирательности 192
Принцип генерируемое™ ОС. . 192
Принцип функциональной избыточности 193
Принцип виртуализации 193
Принцип независимости программ от внешних устройств 195
Принцип совместимости : 195
Принцип открытой и наращиваемой ОС 196
Принцип мобильности (переносимости) 197
Принцип обеспечения безопасности вычислений 197
Микроядерные операционные системы 199
Монолитные операционные системы 201
Требования, предъявляемые к ОС реального времени . . 202
Мультипрограммность и многозадачность 203
Приоритеты задач (потоков) 203
Наследование приоритетов 204
Синхронизация процессов и задач 204
Предсказуемость 205
Принципы построения интерфейсов операционных систем 205
Интерфейс прикладного программирования 207
Реализация функций API на уровне ОС 208
Реализация функций API на уровне системы программирования 209
Реализация функций API с помощью внешних библиотек 211
Платформенно-независимый интерфейс POSIX 213
Пример программирования в различных API ОС . 216
Текст программы для Windows (WinAPI) 216
Текст программы для Linux (POSIX API) 218
Контрольные вопросы и задачи 219
Вопросы для проверки 219
Глава 6. Проектирование параллельных взаимодействующих
вычислительных процессов 221
Независимые и взаимодействующие вычислительные процессы . 221
Средства синхронизации и связи при проектировании
взаимодействующих вычислительных процессов .227
Использование блокировки памяти при синхронизации параллельных
процессов 227
Синхронизация процессов посредством операции
«ПРОВЕРКА И УСТАНОВКА» 233
Семафорные примитивы Дейкстры 236
Использование семафоров при проектировании взаимодействующих
вычислительных процессов . . 242
Мониторы Хоара 250
Почтовые ящики 253
Конвейеры и очереди сообщений 255
Конвейеры (программные каналы) 255
Очереди сообщений 257
Примеры создания параллельных взаимодействующих
вычислительных процессов 258
Пример создания многозадачного приложения с помощью системы
программирования Borland Delphi 259
Пример создания комплекса параллельных взаимодействующих программ, выступающих как самостоятельные
вычислительные процессы 262
Контрольные вопросы и задачи 267
Вопросы для проверки 267
Глава 7. Проблема тупиков и методы борьбы с ними 269
Понятие тупиковой ситуации при выполнении параллельных
вычислительных процессов 269
Примеры тупиковых ситуаций и причины их возникновения 271
Пример тупика на ресурсах типа CR 271
Пример тупика на ресурсах типа CR и SR 273
Пример тупика на ресурсах типа SR 274
Формальные модели для изучения проблемы тупиковых ситуаций 276
Сети Петри 276
Вычислительные схемы 281
Модель пространства состояний системы 283
Методы борьбы с тупиками 287
Предотвращение тупиков 287
Обход тупиков 288
Обнаружение тупика 291
Контрольные вопросы и задачи 300
Вопросы для проверки 300
