Основы современных операционных систем Основы современных операционных систем Курс предназначен для студентов младших курсов в области ИТ. Он знакомит с принципами архитектуры и функционирования современных операционных систем (ОС) и сетей, дает теоретические знания и практические навыки для работы в распространенных ОС – Windows, Linux, Solaris, а также в ОС для мобильных устройств и облачных вычислений. Особое внимание уделяется алгоритмам и структурам данных, используемым в ОС, их надежности и безопасности. БИНОМ. Лаборатория знаний 978-5-9963-0495-0
642 руб.
Russian
Каталог товаров

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

Временно отсутствует
?
  • Описание
  • Характеристики
  • Отзывы о товаре
  • Отзывы ReadRate
Курс предназначен для студентов младших курсов в области ИТ. Он знакомит с принципами архитектуры и функционирования современных операционных систем (ОС) и сетей, дает теоретические знания и практические навыки для работы в распространенных ОС – Windows, Linux, Solaris, а также в ОС для мобильных устройств и облачных вычислений. Особое внимание уделяется алгоритмам и структурам данных, используемым в ОС, их надежности и безопасности.
Отрывок из книги «Основы современных операционных систем»
Пре дис ло вие
Операционная система (ОС) – основа для использования всех компьютер-
ных систем, от суперкомпьютеров до мобильных устройств. ОС – это сложный
комплекс системных программ, управляющий работой компьютера и его ком-
понент и обеспечивающий его интерфейс (взаимодействие) с пользователем-
человеком и с другими компьютерами в вычислительных сетях.
Операционная система необходима для работы современного компьютера и
его пользователей. Поэтому знание основ операционных систем требуется не толь-
ко каждому программисту, но и каждому пользователю компьютера (которыми
сейчас являются практически все). Включая компьютер, вы неявно запускаете и
его операционную систему. При каждом нажатии клавиши или щелчке мыши во
время работы на компьютере также вызывается операционная система, преобразуя
результат действий пользователя в информацию, доступную компьютеру и исполь-
зуемым вами программам. Операционная система обеспечивает своевременный
запуск программ, считывание данных с диска или из сети, защиту от внешних
атак, информацию для пользователя о проблемах и ошибках. Таким образом, вся
работа с компьютером представляет собой непрерывный цикл взаимодействия
пользователя-человека, аппаратуры компьютера, операционной системы, прочего
программного обеспечения и других компьютеров, входящих в сеть.
Первые компьютеры появились в 1940-50-х годах, каждый из них занимал
огромный машинный зал, они не имели операционных систем, и пользователям
приходилось работать на них непосредственно с пульта, вводя программу с пер-
фоленты или перфокарт, запуская или останавливая компьютер нажатием кнопки
на пульте, вводя исходные данные или анализируя промежуточные результаты в
двоичной форме, представленной комбинацией индикаторов на пульте или вклю-
ченных или отключенных тумблеров (штекеров).
Современному молодому человеку трудно даже представить себе подобный
режим использования компьютеров, а ведь именно в таких условиях в 1950-х гг.
решались жизненно важные задачи обороны СССР, расчета траекторий космиче-
ских ракет и многие другие.
Важнейшая роль операционных систем именно в том, что благодаря им и их
развитию взаимодействие человека с компьютером становится все более удобным,
надежным, безопасным, быстрым, наглядным и современным.
Ваша задача – внимательно изучить данный курс, что сделает вас экспертом
по операционным системам и даст вам необходимые знания и навыки для вашей
работы в ведущих фирмах и университетах России и мира.

Оставить заявку на описание
?
Содержание
Лекции
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Лекция 1. Понятие операционной системы (ОС), цели ее работы.
Классификация компьютерных систем . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Комментарии к списку литературы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Краткое содержание курса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Почему важно знать операционные системы – мнение эксперта
из Microsoft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Расцвет ОС в 2000-х гг. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Понятие операционной системы и цели ее работы . . . . . . . . . . . . . . . . . . . . 26
Компоненты компьютерной системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Общая картина функционирования компьютерной системы . . . . . . . . . . . 28
Классификация компьютерных систем . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Классификация компьютерных архитектур . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Основные компоненты операционной системы . . . . . . . . . . . . . . . . . . . . . . 35
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Лекция 2. История ОС. Отечественные ОС. Диалекты UNIX. Режимы пакетной
обработки, мультипрограммирования, разделения времени . . . . . . . . . . 38
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
История ОС . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Диалекты UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Отечественные операционные системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Особенности операционных систем для компьютеров общего
назначения (mainframes). Пакетный режим . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Распределение памяти в однозадачной ОС с пакетной обработкой
заданий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
ОС пакетной обработки с поддержкой мультипрограммирования . . . . . . 46
Режим разделения времени и особенности ОС с режимом разделения
времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Лекция 3. Особенности ОС для различных классов компьютерных систем.
ОС реального времени. ОС для облачных вычислений . . . . . . . . . . . . 51
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Особенности ОС для персональных компьютеров . . . . . . . . . . . . . . . . . . . . 51
Параллельные компьютерные системы и особенности их ОС . . . . . . . . . . 55
Распределенные компьютерные системы и особенности их ОС . . . . . . . . 55
Виды серверов в клиент-серверных компьютерных системах . . . . . . . . . . 56
Кластерные вычислительные системы и их ОС . . . . . . . . . . . . . . . . . . . . . . . 57
Системы и ОС реального времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Карманные компьютеры (handhelds) и их ОС . . . . . . . . . . . . . . . . . . . . . . . . 58
Развитие концепций и возможностей ОС . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Вычислительные среды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Облачные вычисления и ОС для облачных вычислений . . . . . . . . . . . . . . . 60
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Лекция 4. Архитектура компьютерной системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Архитектура компьютерной системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Функционирование компьютерной системы . . . . . . . . . . . . . . . . . . . . . . . . . 68
Обработка прерываний . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Архитектура ввода-вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Таблица состояния устройств . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Прямой доступ к памяти (Direct Memory Access – DMA) . . . . . . . . . . . . . . 72
Структура памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Аппаратная защита памяти и процессора . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Аппаратная защита адресов памяти в системах с теговой архитектурой . . . 76
Организация аппаратной защиты памяти и процессора.
Прерывания по таймеру . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Дополнительные материалы, презентации . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Лекция 5. Архитектура ОС. Управление процессами: основные понятия.
Семафоры и мониторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Основные компоненты ОС . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Управление процессами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Семафоры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Мониторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Лекция 6. Обзор функций ОС: управление памятью, файлами, процессами,
сетями, командными интерпретаторами, сервисы ОС, системные
вызовы. Уровни абстракции ОС. Архитектура UNIX и MS-DOS . . . 89
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Управление основной памятью . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Управление файлами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Управление вторичной памятью . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Система защиты (ptotection) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Система поддержки командного интерпретатора . . . . . . . . . . . . . . . . . . . . . 94
Сервисы (службы) ОС . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Дополнительные функции ОС . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Системные вызовы (system calls) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Исполнение программ в MS DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Исполнение нескольких программ в UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Коммуникационные модели . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Системные программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Структура системы MS DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Структура системы UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Уровни абстракции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Лекция 7. Уровни абстракции ОС. ОС с архитектурой микроядра.
Виртуальные машины. Цели проектирования и разработки ОС.
Генерация ОС . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Уровни абстракции ОС . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Операционные системы с микроядром . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Виртуальные машины . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Виртуальная машина Java (JVM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Цели проектирования и разработки ОС . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Механизмы и политики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Реализация операционных систем . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Генерация операционной системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Лекция 8. Управление процессами. Планирование и диспетчеризация
процессов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Понятие процесса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Состояния процесса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Блок управления процессом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Переключение с одного процесса на другой . . . . . . . . . . . . . . . . . . . . . . . . 119
Очереди, связанные с диспетчеризацией процессов . . . . . . . . . . . . . . . . . . 119
Планировщики, выполняющие диспетчеризацию процессов . . . . . . . . . 121
Переключение контекста . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Создание процесса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Уничтожение процесса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Лекция 9. Методы взаимодействия процессов . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Независимые и взаимодействующие процессы . . . . . . . . . . . . . . . . . . . . . . 128
Виды организации взаимосвязи процессов . . . . . . . . . . . . . . . . . . . . . . . . . 128
Парадигма (шаблон) взаимодействия процессов:
«производитель–потребитель» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Коммуникация процессов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Непосредственная коммуникация процессов . . . . . . . . . . . . . . . . . . . . . . . 131
Косвенная коммуникация процессов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Буферизация и очередь сообщений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Клиент-серверная взаимосвязь . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Лекция 10. Потоки (threads) и многопоточное выполнение программ
(multi-threading) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Однопоточные и многопоточные процессы . . . . . . . . . . . . . . . . . . . . . . . . . 139
История многопоточности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Пользовательские потоки и потоки ядра. Модели многопоточности . . . 141
Проблемы многопоточности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Потоки POSIX (Pthreads) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Потоки и процессы в Solaris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Потоки в Windows 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Потоки в Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Потоки в Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Лекция 11. Стратегии и критерии диспетчеризации процессов . . . . . . . . . . . . . 151
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Основные понятия диспетчеризации процессов . . . . . . . . . . . . . . . . . . . . . 151
Планировщик процессора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Собственно диспетчер процессор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Критерии диспетчеризации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Стратегия First-Come-First-Served (FCFS) . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Стратегия Shortest Job First (SJF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Предсказание длины следующего периода активности . . . . . . . . . . . . . . . 156
Диспетчеризация по приоритетам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Стратегия Round Robin (RR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Многоуровневая очередь . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Многоуровневые аналитические очереди . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Планирование загрузки многопроцессорных систем . . . . . . . . . . . . . . . . . 160
Планирование загрузки процессоров в системах реального времени . . . 160
Планирование в Solaris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Планирование в Windows 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Лекция 12. Методы синхронизации процессов . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
История синхронизации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Анализ проблемы «производитель–потребитель» с точки зрения
синхронизации по общему буферу . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Синхронизация процессов по критическим секциям . . . . . . . . . . . . . . . . . 168
Алгоритм решения проблемы критической секции . . . . . . . . . . . . . . . . . . 169
Алгоритм булочной (bakery algorithm) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Синхронизация на основе аппаратной поддержки атомарных
операций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Синхронизация на основе общих семафоров . . . . . . . . . . . . . . . . . . . . . . . . 173
Реализация семафоров . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Семафоры как общее средство синхронизации . . . . . . . . . . . . . . . . . . . . . . 174
Общие и двоичные семафоры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Вариант операции wait (S) для системных процессов («Эльбрус») . . . . . . 175
Реализация общего семафора с помощью двоичных семафоров . . . . . . . 175
Решение классических задач синхронизации с помощью семафоров.
Задача «ограниченный буфер» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Решение с помощью семафоров задачи «читатели-писатели» . . . . . . . . . 177
Решение с помощью семафоров задачи «обедающие философы» . . . . . . 179
Критические области . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Решение с помощью критических областей задачи
«ограниченный буфер» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Схема реализации критических областей с помощью семафоров . . . . . . 181
Мониторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Решение задачи «обедающие философы» с помощью мониторов . . . . . . 183
Реализация мониторов с помощью семафоров . . . . . . . . . . . . . . . . . . . . . . 184
Синхронизация в ОС Solaris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Синхронизация в Windows 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Лекция 13. Тупики (deadlock), методы предотвращения и обнаружения
тупиков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Проблема тупиков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Модель системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Граф распределения ресурсов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Поиск тупиков по графу распределения ресурсов . . . . . . . . . . . . . . . . . . . . 194
Методы обработки тупиков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Предотвращение тупиков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Избежание тупиков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Лекция 14. Алгоритм банкира . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Безопасное состояние системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Модифицированный вариант графа распределения ресурсов для
стратегии избежания тупиков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Принципы алгоритма банкира . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Структуры данных для алгоритма банкира . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Алгоритм проверки состояния системы на безопасность . . . . . . . . . . . . . 203
Алгоритм запроса ресурсов для процесса Pi – основная часть
алгоритма банкира . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Пример использования алгоритма банкира . . . . . . . . . . . . . . . . . . . . . . . . . 204
Методы обнаружения тупиков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Граф wait-for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Обнаружение тупиков для случая ресурсов с множественными
экземплярами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Алгоритм обнаружения тупиков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Пример применения алгоритма обнаружения тупиков . . . . . . . . . . . . . . . 207
Использование алгоритма обнаружения тупиков . . . . . . . . . . . . . . . . . . . . 208
Восстановление после тупика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Комбинированный подход к обработке тупиков . . . . . . . . . . . . . . . . . . . . . 208
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Лекция 15. Управление памятью . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Основные положения размещения процессов в памяти . . . . . . . . . . . . . . 212
Связывание программ и данных с адресами в памяти . . . . . . . . . . . . . . . . 212
Многоэтапная обработка пользовательской программы . . . . . . . . . . . . . . 213
Логическое и физическое адресное пространство . . . . . . . . . . . . . . . . . . . . 215
Устройство управления памятью . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Динамическая загрузка и динамическая линковка . . . . . . . . . . . . . . . . . . . 216
Оверлейная структура программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Лекция 16. Страничная организация памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Откачка и подкачка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Смежное распределение памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Общая задача распределения памяти и стратегии ее решения . . . . . . . . . 223
Фрагментация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Страничная организация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Реализация таблицы страниц. Использование ассоциативной памяти . . 227
Оценка среднего времени доступа к памяти с использованием TLB . . . . 228
Защита памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Структура таблицы страниц. Иерархические таблицы страниц . . . . . . . . 230
Хэшированные таблицы страниц . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Инвертированные таблицы страниц . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Разделяемые страницы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Лекция 17. Сегментная организация памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Принципы сегментной организации памяти . . . . . . . . . . . . . . . . . . . . . . . . 237
Архитектура сегментной организации памяти . . . . . . . . . . . . . . . . . . . . . . . 238
Пример сегментной организации памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Пример использования разделяемых сегментов . . . . . . . . . . . . . . . . . . . . . 241
Сегментно-страничная организация памяти в системах MULTICS
и «Эльбрус» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Сегментно-страничная организация памяти в системе Intel 386 . . . . . . . 243
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Лекция 18. Виртуальная память . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Мотивировка концепции виртуальной памяти . . . . . . . . . . . . . . . . . . . . . . 246
Страничная организация по требованию . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Обработка ситуации отсутствия страницы в памяти. . . . . . . . . . . . . . . . . . 250
Отсутствие свободного фрейма. Оценка производительности
стратегии обработки страниц по требованию . . . . . . . . . . . . . . . . . . . . . . . 251
Преимущества виртуальной памяти при создании
процессов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Проблема замещения страниц . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Алгоритмы замещения страниц . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Оптимальный алгоритм замещения страниц . . . . . . . . . . . . . . . . . . . . . . . . 257
Алгоритм Least Recently Used (LRU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Алгоритмы, близкие к LRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Алгоритмы со счетчиком . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Выделение фреймов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Thrashing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Модель рабочего множества . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Страничная организация по требованию в Windows NT . . . . . . . . . . . . . . 262
Страничная организация в Solaris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Лекция 19. Системы файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Понятие файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Структура файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Атрибуты файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Операции над файлами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Типы файлов – имена и расширения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Методы доступа к файлам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Директории . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Особенности системы файлов в «Эльбрусе» . . . . . . . . . . . . . . . . . . . . . . . . . 272
Типичная организация файловой системы . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Операции над директориями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Логическая организация директорий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Монтирование файловых систем . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Общий доступ к файлам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Защита файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Реализация файловых систем . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Структура файловой системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Системные структуры в памяти для управления файловой системой . . . 283
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Лекция 20. Виртуальные файловые системы (VFS). Реализация файловых
систем. Сетевая файловая система NFS . . . . . . . . . . . . . . . . . . . . . . . 287
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Виртуальные файловые системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Реализация директорий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Методы размещения файлов. Смежное размещение . . . . . . . . . . . . . . . . . 288
Файловые системы, основанные на расширениях . . . . . . . . . . . . . . . . . . . 288
Ссылочное размещение файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Индексируемое размещение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Управление свободной внешней памятью . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Эффективность и производительность дисковой памяти . . . . . . . . . . . . . 294
Кэширование диска. Буферная кэш-память . . . . . . . . . . . . . . . . . . . . . . . . 294
Проблемы восстановления файлов. Файловые системы с журналом
транзакций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Сетевая файловая система NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Лекция 21. Системы ввода-вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Аппаратура ввода-вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Основные концепции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Опрос устройств . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Прерывания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Ввод-вывод с прямым доступом к памяти (DMA) . . . . . . . . . . . . . . . . . . . 308
Программный интерфейс ввода-вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Блочные и символьные устройства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Сетевые устройства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Часы и таймеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Блокируемый (синхронный) и неблокируемый (асинхронный)
ввод-вывод . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Подсистема ввода-вывода в ядре ОС . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Структуры данных для ввода-вывода в ядре ОС . . . . . . . . . . . . . . . . . . . . . 313
Жизненный цикл запроса на ввод-вывод . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Производительность ввода-вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Лекция 22. Сети и сетевые структуры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Распределенные системы. Мотивация сетей . . . . . . . . . . . . . . . . . . . . . . . . 320
Сетевые и распределенные операционные системы . . . . . . . . . . . . . . . . . . 321
Сетевые топологии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Типы сетей. Локальные сети . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Глобальные и региональные сети . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Проблема организации коммуникаций по сети . . . . . . . . . . . . . . . . . . . . . . 325
Стратегии маршрутизации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Стратегии соединения и разрешение коллизий. Сети с кольцевой
топологией . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Лекция 23. Классические и современные сетевые коммуникационные
протоколы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Протоколы коммуникации. Модель ISO . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Сети Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Протокол TCP/IP. IP-адреса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Устойчивость сетей к ошибкам – обнаружение ошибок
и реконфигурация сетей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Проектирование сетей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Функционирование Ethernet-сетей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Некоторые современные сетевые протоколы. Протокол GPRS . . . . . . . . 337
Семейство протоколов Wi-Fi (IEEE 802.11x) . . . . . . . . . . . . . . . . . . . . . . . . 338
Обмен мгновенными сообщениями (Instant Messaging and Presence) . . . 338
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Лекция 24. Безопасность операционных систем и сетей.
Trustworthy Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Проблема безопасности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Aутентификация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Программные угрозы (атаки) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Системные угрозы (атаки) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Типы сетевых атак . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Trustworthy Computing (TWC) Initiative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Принципы разработки безопасных программных продуктов . . . . . . . . . . 346
Классификация угроз и атак (STRIDE). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
Оценка атак на программное обеспечени . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
Борьба с атаками . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
Брандмауэр . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Обнаружение попыток взлома . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Криптография . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Уровни безопасности компьютеров . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Безопасность в Windows NT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Безопасность в .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Лекция 25. Обзор архитектуры и возможностей системы Linux: архитектура,
ядро, распространение и лицензирование, принципы
проектирования, управление процессами . . . . . . . . . . . . . . . . . . . . . 356
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
История Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Ядро Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Современное состояние Linux, дистрибутивы и лицензирование . . . . . . 357
Принципы проектирования и компоненты системы Linux . . . . . . . . . . . . 359
Загружаемые модули ядра Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Управление процессами в Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Планирование задач ядра и синхронизация в ядре . . . . . . . . . . . . . . . . . . . 362
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Лекция 26. Обзор архитектуры и возможностей системы Linux: управление
памятью, ресурсами, файловые системы, драйверы устройств,
сети, безопасность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Управление физической памятью в Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Виртуальная память в Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Исполнение и загрузка пользовательских программ в Linux . . . . . . . . . . 369
Системы файлов Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Ввод и вывод в Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Взаимодействие процессов в Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
Структура сети в Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Безопасность в Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Развитие и использование Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Лекция 27. Обзор архитектуры и возможностей систем Windows 2000/XP/
2003/Vista/2008/7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Система Windows 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
История Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Принципы проектирования Windows 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Архитектура Windows 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Ядро Windows 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Обработка прерываний в ядре . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
Исполнительная подсистема (executive) ОС Windows 2000 . . . . . . . . . . . . 385
Подсистемы окружения в Windows 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Лекция 28. Системные механизмы Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Система файлов Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Сетевые средства Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Программный интерфейс Windows. Доступ к объектам ядра . . . . . . . . . . 399
Программный интерфейс Windows: управление процессами . . . . . . . . . . 399
Управление виртуальной и физической памятью и рабочими
наборами в Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Лекция 29. Академическая программа Microsoft Shared Source Initiative.
Открытое ядро Windows для изучения и исследований
(Windows Research Kernel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Академическая программа Microsoft Shared Source Initiative . . . . . . . . . . . 406
Портал Codeplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Академическая программа Microsoft Windows Academic Program . . . . . . . 408
Компоненты академической программы Windows . . . . . . . . . . . . . . . . . . . 409
Пакет учебных ресурсов CRK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Исследовательское ядро Windows Research Kernel . . . . . . . . . . . . . . . . . . . . 410
Проект ProjectOZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Контактная информация и ссылки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
Лекция 30. ОС для мобильных устройств. Windows Mobile . . . . . . . . . . . . . . . . . 415
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Особенности ОС для мобильных устройств . . . . . . . . . . . . . . . . . . . . . . . . . 415
Рынок ОС для мобильных устройств . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Windows Mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Symbian OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Google Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
BlackBerry OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
Перспективы ОС для мобильных устройств . . . . . . . . . . . . . . . . . . . . . . . . . 420
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
Лекция 31. ОС для облачных вычислений cloud computing).
Windows Azure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
Элементы концепции и архитектуры облачных вычислений . . . . . . . . . . 424
Windows Azure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
Лекция 32. Перспективы операционных систем и сетей . . . . . . . . . . . . . . . . . . . 432
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
Операционные системы других крупных фирм . . . . . . . . . . . . . . . . . . . . . . 432
Solaris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
MacOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
HP-UX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
Современные тенденции в развитии ОС . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
Новые ОС семейства Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Новые тенденции в развитии ОС. Проект Midori . . . . . . . . . . . . . . . . . . . . 435
Графические оболочки ОС . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Поддержка параллельных вычислений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Развитие беспроводных сетей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Перспективы развития ОС . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
Краткие итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
Набор для практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Лабораторные работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
№ 1. Практическое изучение системы Windows XP . . . . . . . . . . . . . . . . . . 442
№ 2. Практическое изучение системы Windows Vista . . . . . . . . . . . . . . . . . 452
№ 3. Практическое изучение системы Windows Server 2008 . . . . . . . . . . . . . . 463
№ 4. Практическое изучение системы Windows 7 . . . . . . . . . . . . . . . . . . . . 479
№ 5. Практическое изучение системы Windows Mobile . . . . . . . . . . . . . . . 493
№ 6. Практическое изучение Windows Azure . . . . . . . . . . . . . . . . . . . . . . . . 500
№ 7. Практическое изучение Windows Research Kernel . . . . . . . . . . . . . . . 512
№ 8. Практическое изучение системы Linux . . . . . . . . . . . . . . . . . . . . . . . . 520
Глоссарий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
Список сокращений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
Предметный указатель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
Список литературы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
Отзывы
Найти пункт
 Выбрать станцию:
жирным выделены станции, где есть пункты самовывоза
Выбрать пункт:
Поиск по названию улиц:
Подписка 
Введите Reader's код или e-mail
Периодичность
При каждом поступлении товара
Не чаще 1 раза в неделю
Не чаще 1 раза в месяц
Мы перезвоним

Возникли сложности с дозвоном? Оформите заявку, и в течение часа мы перезвоним Вам сами!

Captcha
Обновить
Сообщение об ошибке

Обрамите звездочками (*) место ошибки или опишите саму ошибку.

Скриншот ошибки:

Введите код:*

Captcha
Обновить