Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС__Глава1.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.32 Mб
Скачать

Глава 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