Глава 5. Управление вводом-выводом

в операционных системах..................................................... 130

Основные концепции организации ввода-вывода в операционных системах......... 131

Режимы управления вводом-выводом............................................................................... 134

Закрепление устройств, общие устройства ввода-вывода ........................................... 136

Основные системные таблицы ввода-вывода.................................................................. 138

Синхронный и асинхронный ввод-вывод......................................................................... 143

Организация внешней памяти на магнитных дисках....................................................... 145

Основные понятия........................................................................................................... 145

Логическая структура магнитного диска....................................................................... 146

Системный загрузчик Windows NT/2000/XP................................................................. 155

Кэширование операций ввода-вывода при работе с накопителями

на магнитных дисках........................................................................................................ 156

Контрольные вопросы и задачи.......................................................................................... 161

Вопросы для проверки ................................................................................................... 161

Задания............................................................................................................................... 162

Глава 6. Файловые системы...................................................... 163

Функции файловой системы и иерархия данных............................................................ 163

Файловая система FAT........................................................................................................... 166

Таблица размещения файлов ....................................................................................... 167

Структура загрузочной записи DOS............................................................................. 170

Файловые системы VFAT и FAT32................................................................................. 171

Файловая система HPFS ....................................................................................................... 177

Файловая система NTFS........................................................................................................ 188

Основные возможности файловой системы NTFS................................................... 189

Структура тома с файловой системой NTFS.............................................................. 190

Разрешения NTFS............................................................................................................. 194

6__________________________________________________________ Содержание

Контрольные вопросы и задачи.......................................................................................... 207

Вопросы для проверки ................................................................................................... 207

Задания............................................................................................................................... 208

Глава 7. Организация параллельных

взаимодействующих вычислений...................................... 209

Независимые и взаимодействующие вычислительные процессы................................ 209

Средства синхронизации и связи взаимодействующих вычислительных процессов 215

Использование блокировки памяти при синхронизации параллельных процессов.... 215

Семафорные примитивы Дейкстры ............................................................................. 224

Мьютексы............................................................................................................................ 229

Использование семафоров при проектировании взаимодействующих

вычислительных процессов ................................................................................... 230

Мониторы Хоара .................................................................................................................... 236

Почтовые ящики...................................................................................................................... 240

Конвейеры и очереди сообщений....................................................................................... 242

Конвейеры.......................................................................................................................... 242

Очереди сообщений........................................................................................................ 244

Контрольные вопросы и задачи.......................................................................................... 246

Глава 8. Проблема тупиков и методы борьбы с ними .. 247

Понятие тупиковой ситуации при выполнении параллельных

вычислительных процессов.......................................................................................... 247

Примеры тупиковых ситуаций и причины их возникновения ..................................... 249

Пример тупика на ресурсах типа CR............................................................................ 250

Пример тупика на ресурсах типа CR и SR.................................................................. 251

Пример тупика на ресурсах типа SR............................................................................ 252

Формальные модели для изучения проблемы тупиковых ситуаций........................... 254

Сети Петри......................................................................................................................... 254

Модель пространства состояний системы................................................................. 259

Методы борьбы с тупиками.................................................................................................. 263

Предотвращение тупиков............................................................................................... 263

Обход тупиков................................................................................................................... 264

Обнаружение тупика........................................................................................................ 267

Контрольные вопросы и задачи.......................................................................................... 277

Глава 9. Архитектура операционных систем....................... 278

Основные принципы построения операционных систем............................................. 279

Принцип модульности ................................................................................................... 279

Принцип особого режима работы................................................................................ 280

Принцип виртуализации................................................................................................ 281

Принцип мобильности................................................................................................... 283

Принцип совместимости ............................................................................................... 285

Принцип генерируемости.............................................................................................. 286

Принцип открытости....................................................................................................... 287

Принцип обеспечения безопасности вычислений................................................... 287

Микроядерные операционные системы ........................................................................... 289

Макроядерные операционные системы............................................................................ 292

Требования к операционным системам реального времени........................................ 293

Мультипрограммность и мультизадачность............................................................... 294

Приоритеты задач............................................................................................................. 294

Наследование приоритетов........................................................................................... 295

Сихронизация процессов и задач................................................................................ 295

Предсказуемость............................................................................................................... 296

Интерфейсы операционных систем................................................................................... 296

Содержание__________________________________________________________ 7

Интерфейс прикладного программирования................................................................... 298

Реализация функций API на уровне модулей операционной системы................ 299

Реализация функций API на уровне системы программирования........................ 300

Реализация функций API с помощью внешних библиотек...................................... 302

Интерфейс POSIX.................................................................................................................... 304

Примеры программирования для разных интерфейсов API......................................... 307

Контрольные вопросы и задачи.......................................................................................... 310

Глава 10. Краткий обзор современных

операционных систем.................................................... 311

Семейство операционных систем UNIX............................................................................. 312

Общая характеристика и особенности архитектуры................................................ 312

Основные понятия........................................................................................................... 314

Функционирование.......................................................................................................... 320

Файловая система............................................................................................................ 323

Взаимодействие между процессами ............................................................................ 329

Операционная система Linux......................................................................................... 336

Операционная система FreeBSD................................................................................... 339

Сетевая операционная система реального времени QNX............................................. 340

Архитектура системы QNX.............................................................................................. 342

Основные механизмы организации распределенных вычислений ..................... 345

Семейство операционных систем OS/2 Warp компании IBM........................................ 351

Особенности архитектуры и основные возможности ............................................. 354

Особенности интерфейсов............................................................................................ 357

Серверная операционная система OS/2 Warp 4.5..................................................... 359

Контрольные вопросы и задачи.......................................................................................... 360

Глава 11. Операционные системы Windows........................ 361

Операционные системы Windows 9x................................................................................. 363

Краткая историческая справка ...................................................................................... 363

Общие сведения................................................................................................................ 365

Организация многозадачности...................................................................................... 369

Распределение оперативной памяти........................................................................... 373

Операционные системы Windows NT/2000/XP.................................................................. 378

Краткая историческая справка ...................................................................................... 378

Основные особенности архитектуры .......................................................................... 382

Модель безопасности...................................................................................................... 387

Распределение оперативной памяти........................................................................... 390

Контрольные вопросы и задачи.......................................................................................... 394

Вопросы для проверки ................................................................................................... 394

Задания............................................................................................................................... 395

Список терминов............................................................... 396

Список литературы........................................................... 406

Алфавитный указатель...................................................... 409

Введение

Как известно, процесс проникновения информационных технологий практически во все сферы человеческой деятельности продолжает развиваться и углубляться. Помимо уже привычных и широко распространенных персональных компьюте­ров, общее число которых достигло многих сотен миллионов, становится все боль­ше и встроенных средств вычислительной техники. Пользователей всей этой раз­нообразной вычислительной техники становится все больше, причем наблюдается развитие двух вроде бы противоположных тенденций. С одной стороны, инфор­мационные технологии все усложняются, и для их применения, и тем более даль­нейшего развития, требуется иметь очень глубокие познания. С другой стороны, упрощаются интерфейсы взаимодействия пользователей с компьютерами. Ком­пьютеры и информационные системы становятся все более дружественными и понятными даже для человека, не являющегося специалистом в области инфор­матики и вычислительной техники. Это стало возможным прежде всего потому, что пользователи и их программы взаимодействуют с вычислительной техникой посредством специального (системного) программного обеспечения — через опе­рационную систему.

Операционная система предоставляет интерфейсы и для выполняющихся прило­жений, и для пользователей. Программы пользователей, да и многие служебные программы запрашивают у операционной системы выполнение тех операций, ко­торые достаточно часто встречаются практически в любой программе. К таким операциям, прежде всего, относятся операции ввода-вывода, запуск или останов какой-нибудь программы, получение дополнительного блока памяти или его ос­вобождение и многие другие. Подобные операции невыгодно каждый раз програм­мировать заново и непосредственно размещать в виде двоичного кода в теле про­граммы, их удобнее собрать вместе и предоставлять для выполнения по запросу из программ. Это и есть одна из важнейших функций операционных систем. При­кладные программы, да и многие системные обрабатывающие программы (такие, например, как системы программирования или системы управления базами дан­ных), не имеют непосредственного доступа к аппаратуре компьютера, а взаимо­действуют с ней только через обращения к операционной системе. Пользователи также путем ввода команд операционной системы или выбором возможных дей-

Введение_____________________________________________________________ 9

ствий, предлагаемых системой, взаимодействуют с компьютером и своими про­граммами. Такое взаимодействие осуществляется исключительно через операци­онную систему. Помимо выполнения этой важнейшей функции операционные системы отвечают за эффективное распределение вычислительных ресурсов и орга­низацию надежных вычислений.

Знание основ организации операционных систем и принципов их функциониро­вания позволяет использовать компьютеры более эффективно. Глубокое изуче­ние операционных систем позволяет применить эти знания прежде всего при со­здании программного обеспечения. Если, к большому сожалению, в нашей стране в последние годы практически не создаются новые операционные системы, то раз­работки сложных информационных систем, комплексов программ и отдельных приложений, предназначенных для работы в широко распространенных операци­онных системах, ведутся достаточно интенсивно, причем большим числом орга­низаций. И здесь знание операционных систем, принципов их функционирования, методов организации вычислений является не только желательным, но обязатель­ным.

Дисциплина «Операционные системы» является одной из важнейших. Она вклю­чена в Государственный образовательный стандарт по направлению 654600 — «Информатика и вычислительная техника» и отнесена к блоку общепрофессио­нальных дисциплин. В рамках этого направления имеется несколько специально­стей, в том числе 220100 — «Вычислительные машины, комплексы, системы и сети», 220200 — «Автоматизированные системы обработки информации и управления», 220300 — «Системы автоматизированного проектирования», 220400 — «Программ­ное обеспечение вычислительной техники и автоматизированных систем». Имен­но для студентов вузов, обучающихся по этим специальностям, и предназначается настоящая книга. Однако она может быть востребована и студентами других спе­циальностей, изучающих информатику и вычислительную технику, а также обыч­ными подготовленными пользователями, желающими углубить свои познания в области операционных систем, ибо сегодня уже мало просто уметь работать на компьютере, а желательно понимать, как он работает, как организуются в нем вы­числения. Знания основных принципов организации вычислительных процессов, понимание проблем, которые при этом возникают, и методов их решения позволя­ют обдуманно подходить к использованию компьютера, предусмотреть и предотв­ратить нежелательные явления. Помимо общетеоретических в книге рассмотрены и отдельные практические вопросы, описаны конкретные реализации отдельных модулей и подсистем.

Учебный материал, ставший основой для настоящей книги, уже в течение несколь­ких лет читается студентам специальности 220100 в Санкт-Петербургском госу­дарственном университете аэрокосмического приборостроения. Материал пост­роен с учетом упомянутого Государственного образовательного стандарта по направлению «Информатика и вычислительная техника», регламентирующего содержание дисциплины «Операционные системы». В основу издания легла пере­работанная первая часть учебника «Системное программное обеспечение», вышед­шего в издательстве «Питер» в 2001 году и используемого в учебном процессе во

10___________________________________________________________ Введение

многих вузах. При работе над рукописью автор постарался учесть те советы и за­мечания от коллег по цеху, которые были получены после выхода в свет книги «Системное программное обеспечение».

Напоследок хочется высказать самые теплые слова благодарности всем тем, кто принял участие в подготовке этой книги к изданию. Это и Андрей Васильев, кото­рого, к сожалению, уже больше нет среди нас, и его замечательные коллеги — со­трудники издательства «Питер». Своим кропотливым трудом, вниманием и доб­рожелательным отношением они помогли преодолеть возникшие трудности. Работа над книгой — длительный процесс: хочется улучшить то одно, то другое, перепи­сать или добавить, а времени свободного, да еще в достаточном количестве, как всегда, нет. В связи с этим хочется также поблагодарить своих родных и близких за долготерпение, доброжелательность и сердечную заботу в течение всего вре­мени работы над рукописью. Без их поддержки эта книга, скорее всего, не состоя­лась бы.

От издательства

Ваши замечания, предложения, вопросы отправляйте по адресу электронной по­чты [email protected] (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

Подробную информацию о наших книгах вы найдете на web-сайте издательства http://www.piter.com.

Глава1. Основныепонятия

Эта глава является вводной и, пожалуй, самой главной. Любой предмет имеет свои основные понятия и положения. Не является исключением и дисциплина «Опе­рационные системы». К основным понятиям, без которых практически невозмож­но по-настоящему изучить эту дисциплину, понять основные принципы организа­ции вычислений, взаимодействия прикладных программ с операционной системой и пользователей с компьютерами, следует, прежде всего, отнести понятия вычис­лительных процессов и ресурсов, системной программы, супервизора, операцион­ной среды, прерываний. Мы также рассмотрим относительно новые понятия, к которым относятся поток выполнения и задача; они дополняют понятие вычисли­тельного процесса и позволяют более эффективно организовать работу компьюте­ра. Поскольку абсолютное большинство операционных систем обеспечивают воз­можность параллельного выполнения нескольких программ, мы познакомимся с понятием мультипрограммирования. Завершается глава обзором основных обще­принятых классификаций.

Наши рекомендации