Операционные системы. Управление ресурсами


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


Глава 1 Основные понятия
Глава 1Основные понятия...
Операционная система с точки зрения системного программиста
1.1. Операционная система с точки зрения системного программиста Операционная система (ОС) есть набор программ, которые распределяют ресурсы процессам. Приведенная выше формулировка является ключе...
Операционные системы и ресурсы
Рисунок 1.1. Операционные системы и ресурсы В идеале исчерпывающее изложение курсов "Системное программное обеспечение ЭВМ" и "Операционные системы" должно привести к заполнени...
Классификация и предварительный обзор операционных систем
1.2. Классификация и предварительный обзор операционных системВ изданиях, упомянутых выше, классификация совмещается с историческим обзором, показывающим, как со временем увеличивались ресурсы выч...
Уровни обработки и модели клиент/серверных вычислений
Рисунок 1.2. Уровни обработки и модели клиент/серверных вычислений В персональных вычислительных системах, построенных по персональной идеологии, все три функции в полной мере сосредоточены на одн...
Трехуровневая архитектура клиент/сервер
Рисунок 1.3. Трехуровневая архитектура клиент/сервер Прогнозируется (см., например, [33]), что в ближайшие годы ПЭВМ должны будут существенно "потесниться" в роли клиента, уступив значит...
Точка зрения пользователя
1.3. Точка зрения пользователяОперационные системы скрывают от пользователя детали управления оборудованием (hardware) и обеспечивают ему более удобную среду.Этот принцип иллюстрируется Рисунком 1...
Операционная система процессы оборудование
Рисунок 1.4. Операционная система, процессы, оборудование Как видно из рисунка, ОС играет роль "прослойки" между процессами пользователей и оборудованием системы. (Под оборудованием пони...
Аппаратная архитектура и поддержка ОС
1.4. Аппаратная архитектура и поддержка ОС Существует несколько различных определений того, что следует считать аппаратной архитектурой ЭВМ, каждое из таких определений "работает" для оп...
Ядро и процессы
1.5. Ядро и процессы Прежде чем приступать к изложению основного материала этого раздела, сделаем несколько общих замечаний о принципах управления ресурсами и о представлении их в нашем пособии. Я...
Архитектурные концепции операционных систем
Рисунок 1.5....
Архитектурные концепции операционных
Рисунок 1.6. Иерархия абстрактных машин в системе THE Реализация архитектуры абстрактных машин сопряжена со значительными трудностями, связанными с правильным выбором уровней и их иерархическим уп...
Контрольные вопросы
Контрольные вопросыОдин из авторов [11] заявляет, что он не может дать определения ОС, но сразу узнает ОС, если ее увидит. В чем, по-Вашему, состоит ошибочность такого утверждения? Прокомментируй...
Глава 2 Планирование процессов
Глава 2Планирование процессов В предыдущей главе мы определили три уровня планирования, теперь остановимся более подробно на стратегиях или дисциплинах планирования. Многие дисциплины применимы на...
Дисциплины планирования требования показатели классификация
2.1. Дисциплины планирования - требования, показатели, классификация В общем случае планирование (на любом уровне) может быть представлено, как система массового обслуживания, показанная на рисун...
Представление планирования процессов в виде системы массового обслуживания
Рисунок 2.1. Представление планирования процессов в виде системы массового обслуживания Первые два случая с точки зрения системы массового обслуживания одинаковы: в любом случае процесс выходит из...
Базовые дисциплины планирования
2.2. Базовые дисциплины планирования Ниже приводятся описания некоторых базовых дисциплин планирования. Эти дисциплины достаточно просты в реализации и хорошо исследованы методами как аналитическо...
Планирование процессов по дисциплине FCFS
Рисунок 2.2. Планирование процессов по дисциплине FCFS RR (round robin - карусель) - простейшая дисциплина с вытеснением. Процесс получает в свое распоряжение ЦП на некоторый квант времени Q (в пр...
Планирование процессов по дисциплине RR
Рисунок 2.3. Планирование процессов по дисциплине RR SJN (shortest job next - самая короткая работа - следующая) - невытесняющая дисциплина, в которой наивысший приоритет имеет самый короткий проц...
Планирование процессов по дисциплине SPN
Рисунок 2.4. Планирование процессов по дисциплине SPN PSJN (preemptive SJN - SJN с вытеснением) - текущий активный процесс прерывается, если его оставшееся время выполнения больше, чем у новоприбы...
Планирование процессов по дисциплине PSPN
Рисунок 2.5. Планирование процессов по дисциплине PSPN HPRN (highest penalty ratio next - с наибольшим штрафным отношением - следующий) - дисциплина без вытеснения, обеспечивающая наилучшие показа...
Планирование процессов по дисциплине HPRN
Рисунок 2.6. Планирование процессов по дисциплине HPRN SRR (selfish RR - эгоистичный RR) - метод с вытеснением, дающий дополнительные преимущества выполняемым процессам, что позволяет повысить про...
Планирование процессов по дисциплине SRR
Рисунок 2.7. Планирование процессов по дисциплине SRR Под временной шкалой здесь показаны текущие значения приоритетов процессов. Процесс A при поступлении получает приоритет 0. Поскольку на этот...
Планирование процессов по дисциплине MLFB
Рисунок 2.8. Планирование процессов по дисциплине MLFB В простейшем варианте MLFB очередь с большим номером не обслуживается до тех пор, пока есть процессы в очередях с меньшими номерами. Возможны...
Планирование процессов в реальных системах
2.3. Планирование процессов в реальных системах Как мы отмечали выше, в реальных ОС при планировании процессорного времени применяются модификации и/или комбинации базовых алгоритмов, обеспечивающ...
Пример применения алгоритма полураспада (Q=16; P0=16)
Рисунок 2.9. Пример применения алгоритма полураспада (Q=16; P0=16) ОС VM/370 [19] демонстрирует нам значительно более сложный (но и более гибкий) пример планирования - рассчитанный на одновременно...
Состояния виртуальных машин в ОС VM/370
Рисунок 2.10. Состояния виртуальных машин в ОС VM/370 Непланируемыми называются ВМ, ожидающие завершения операции ввода-вывода на реальном внешнем устройстве или какого-либо другого внешнего событ...
Планирование виртуальных машин в ОС VM/370
Рисунок 2.11. Планирование виртуальных машин в ОС VM/370 Из диспетчируемых ВМ в очереди RUNLIST выбирается ВМ с высшим приоритетом, и ей выделяется квант времени ЦП - dt. ВМ может освободить ЦП по...
Другие уровни планирования
2.4. Другие уровни планирования Выше мы сосредоточились только на краткосрочном планировании. Методы, рассмотренные нами, могут применяться и на других уровнях планирования. Не всегда, правда, мож...
Контрольные вопросы
Контрольные вопросы Какие требования предъявляются к дисциплинам планирования процессов? Назовите те пары требований, которые кажутся Вам взаимоисключающими. Если ОС применяет дисциплину планиров...
Глава 3 Управление памятью
Глава 3Управление памятью...
Виртуальная и реальная память
3.1. Виртуальная и реальная память Мультипрограммирование будет эффективным только в том случае, когда несколько процессов одновременно находятся в оперативной памяти, тогда переключение процессов...
Функции управления памятью
Рисунок 3.1. Функции управления памятью Функция именования производит отображение точки из пространства имен программы в пространство адресов в виртуальной памяти, иными словами - переводит символ...
Фиксированные разделы
3.2. Фиксированные разделы. Эта модель памяти применяется в вычислительных системах, не имеющих аппаратных средств трансляции адресов. Процесс загружается в непрерывный участок памяти (раздел), пр...
Разделы в реальной памяти OS/360
Рисунок 3.2. Разделы в реальной памяти OS/360 Внутренней дырой называется память, которая распределена процессу, но им не используется. Так, на Рис 3.2.а процессу 1 выделен раздел P1, но виртуальн...
Пример оверлейной структуры программы
Рисунок 3.3. Пример оверлейной структуры программы В модели с фиксированными разделами после загрузки процесса все обращения к памяти в нем производятся по реальным адресам. Следовательно, ничто н...
Односегментная модель
3.3. Односегментная модель Нам неизвестны ОС, поддерживающие односегментную модель "в чистом виде", но ее рассмотрение облегчит понимание более сложных моделей. Внешне (с точки зрения пр...
Односегментная модель
Рисунок 3.4. Односегментная модель То обстоятельство, что процесс работает в виртуальных адресах, делает возможным перемещение сегментов в реальной памяти. Переместив процесс в другую область реал...
Многосегментная модель
3.4. Многосегментная модель Расширим модель, рассмотренную в предыдущем разделе на случай N сегментов. Виртуальное пространство процесса разбивается на сегменты, которые нумеруются от 0 до N-1. Ви...
Трансляция адресов Многосегментная модель Рисунок 3 6 Примерная структура дескриптора сегмента
Рисунок 3.5. Трансляция адресов. Многосегментная модель Рисунок 3.6. Примерная структура дескриптора сегмента Допустимое количество сегментов определяется разрядностью соответствующего поля виртуа...
Страничная модель
3.5. Страничная модель Страничную организацию памяти легко представить как многосегментную модель с фиксированным размером сегмента. Такие сегменты называются страницами. Вся доступная реальная па...
Зависимость частоты отказов от объема реальной памяти
Рисунок 3.7. Зависимость частоты отказов от объема реальной памяти С точки зрения стратегии размещения не имеет значения, какой страничный кадр занимать при подкачке. Но как выбрать один кадр из в...
Сегментностраничная модель
3.6. Сегментно-страничная модель Из предыдущего изложения должно быть ясно, что сегментная модель памяти ориентирована в большей степени на программиста, а страничная - на ОС. Программисту удобно...
Трансляция адресов Cегментностраничная модель
Рисунок 3.8. Трансляция адресов. Cегментно-страничная модель Такой аппарат трансляции адресов поддерживается во многих современных процессорных архитектурах. Иногда алгоритм вычисления адреса сост...
Плоская модель памяти
3.7. Плоская модель памяти. Начиная с модели Intel-80386, в микропроцессорах Intel-Pentium адрес состоит из 16-разрядного номера сегмента и 32-разрядного смещения. 32-разрядное поле смещения позво...
Одноуровневая модель памяти
3.8. Одноуровневая модель памяти. Дальнейшее расширение разрядной сетки процессоров может привести к появлению совершенно новых моделей памяти. Сейчас трудно с уверенностью прогнозировать, какая м...
Контрольные вопросы
Контрольные вопросыЧасто единственным достоинством виртуальной памяти называют возможность обеспечить для процесса объем виртуального адресного пространства, превышающий объем реальной памяти. На...
Глава 4 Порождение программ и процессов
Глава 4Порождение программ и процессов В первой главе мы дали строгое определение понятия процесса. Прикладной программист, однако, разрабатывает не "процесс", а "программу", н...
Компиляция
4.1. Компиляция Этот этап реализуется не ОС, а системами программирования, которые представляют собой "системы, образуемые языком программирования, компиляторами или интерпретаторами программ...
Компоновка и загрузка
4.2. Компоновка и загрузка Очевидно, что ни одно сколько-нибудь сложное программное изделие не может быть реализовано в виде единственного модуля. Модульность программ и данных является необходимы...
Установка межмодульных связей при динамической компоновке
Рисунок 4.1. Установка межмодульных связей при динамической компоновке При совместном использовании процедур, входящих в состав модулей DLL, несколькими процессами все процессы используют один и т...
Цикл жизни процесса
4.3. Цикл жизни процесса Программа, готовая к выполнению, превратится в процесс только тогда, когда ОС создаст для нее блок контекста и запись в системной таблице процессов. ОС существенно различа...
Процессы в ОС Unix
Рисунок 4.2. Процессы в ОС Unix Хотя на Рисунок 4.2. между процессами init и shell находятся еще два процесса, shell может считаться прямым потомком init, так как находящиеся между ними процессы з...
Нити
4.4. Нити Философия дешевых процессов подразумевает, что процесс может быть создан легко и быстро. С одной стороны, это позволяет в максимальной степени обеспечивать распараллеливание работ по реш...
Контрольные вопросы
Контрольные вопросыКаким образом при различных внутренних структурах и даже механизмах обращения к ОС может быть обеспечен одинаковый API для разных ОС? Какие стадии оптимизации может проходить п...
Глава 5 Монопольно используемые ресурсы
Глава 5Монопольно используемые ресурсы...
Свойства ресурсов и их представление
5.1. Свойства ресурсов и их представление Процессорное время и оперативная память являются ключевыми ресурсами любой ОС, без них не может выполняться ни один процесс. Ресурсы, которые мы рассматри...
Обедающие философы
5.2. Обедающие философы Классической уже стала неформальная постановка задачи распределения ресурсов, носящая название "проблемы обедающих философов" и показанная на Рисунке 5.1....
Обедающие философы Тупик
Рисунок 5.1. Обедающие философы. Тупик Пять философов сидят за круглым столом, в центре которого стоит блюдо с рисом. Между каждой парой философов лежит палочка для еды, палочек, следовательно, то...
(Стрелка от философа к палочке
Рисунок 5.1. (стрелка от философа к палочке означает, что философ хочет взять эту палочку, стрелка в обратном направлении - что эту палочку этот философ уже взял.) Каждый из философов взял палочку...
Философ Чжуан хочет взять палочки
Рисунок 5.2. Философ Чжуан хочет взять палочки, но обнаруживает, что его правая палочка занята философом Мо. Чжуан ожидает. Тем временем философ Мэн берет свои палочки и начинает есть. Мо есть зак...
Находятся в глобальном тупике
5.3. Тупики: предупреждение, обнаружение, развязка Борьба с тупиками включает в себя три задачи: предупреждение тупиков - какую стратегию распределения ресурсов выбрать, чтобы тупики не возникали...
Последовательное выделение
Последовательное выделение. Любыми ресурсами может одновременно пользоваться только один процесс. Если процесс A из предыдущего примера получил ресурс-принтер, то процессу B будет отказано даже в...
Залповое выделение
Залповое выделение. Процесс должен запрашивать/освобождать все используемые им ресурсы сразу. Эта стратегия позволяет параллельно выполняться процессам, использующим непересекающиеся подмножества...
Иерархическое выделение
Иерархическое выделение. Все классы ресурсов разбиваются по уровням с номерами от 1 до N, каждый уровень содержит только один класс. Процесс имеет право запрашивать ресурсы только из классов с бол...
Предварительные заявки и алгоритм банкира
Предварительные заявки и алгоритм банкира. Эта стратегия названа так потому, что действия ОС напоминают действия банкира, выдающего ссуды клиентам, именно на таком примере эта стратегия была рассм...
А В резерве ОС остаются таким
Рисунок 5.3.а. В резерве ОС остаются, таким образом, 2 ресурса. Ситуация Рисунок 5.3.а является безопасной. ОС может выделить оставшиеся два ресурса процессу P2, и этот процесс, полностью получив...
Алгоритм Габермана Другая алгоритмическая
Рисунок 5.3.а. (Убедитесь сами, что на конечное состояние массива S не влияет последовательность, в которой ресурсы выделялись.) Три нижние строки, в которых идентификатору процесса предшествует с...
Б еще может разрядиться если
Рисунок 5.5. Анализ ситуации При исследовании проблемы тупиков удобно представлять систему в виде графа. Пример такого графа показан на Рисунке 5.6....
Граф ресурсов и процессов
Рисунок 5.6. Граф ресурсов и процессов Графы такого рода содержат вершины двух типов - процессы (показаны окружностями) и классы ресурсов (показаны прямоугольниками), в последних указывается число...
Представлена тупиковая ситуация
Рисунок 5.5 представлена тупиковая ситуация: следование по графу любыми возможными путями заставит нас проходить одни и те же вершины. Если же мы уберем дугу, ведущую от процесса P3 к ресурсу R2,...
Бесконечное откладывание
5.4. Бесконечное откладывание Процессы, ожидающие ресурсов, встают в очереди к этим ресурсам. Такая очередь может обслуживаться любой невытесняющей стратегией планирования. Моментом, когда менедже...
Контрольные вопросы
Контрольные вопросыПриведите примеры ресурсов: разделяемых и монопольно используемых, непрерывных и дискретных, потребляемых и повторно используемых. Какую информацию о ресурсах должна хранить ОС...
Глава 6 Управление вводомвыводом
Глава 6Управление вводом-выводом...
Виртуализация устройств и структура драйвера
6.1. Виртуализация устройств и структура драйвера Управление вводом-выводом в полной мере воплощает в себе определение "ОС снаружи": ОС конструирует ресурсы высокого уровня - виртуальные...
Интерфейсы устройств
6.2. Интерфейсы устройств Здесь мы рассматриваем взаимодействия ОС с устройствами, лежащие на уровне "интерфейса оборудования" - вспомните Рисунок 1.2. При всем многообразии внешних устр...
Прямое подключение устройства
Рисунок 6.1. Прямое подключение устройства Сколько-нибудь сложные по управлению устройства подсоединяются к ЭВМ через контроллеры ввода-вывода (устройства управления), причем один контроллер может...
Подключение через контроллер
Рисунок 6.2. Подключение через контроллер Быстродействие устройств много ниже быстродействия центрального процессора, поэтому обычно после выдачи команды на устройство программа должна дожидаться...
Подключение через ПДП
Рисунок 6.3. Подключение через ПДП В сущности, и контроллер обычного устройства, и контроллер ПДП представляют собой специализированные процессорные устройства, но более полно это качество присуще...
Подключение через канал вводавывода
Рисунок 6.4. Подключение через канал ввода-вывода Идея канала ввода-вывода, впервые реализованная в System/360 фирмы IBM, была впоследствии воплощена в ряде других архитектур. Ввиду своей продукти...
Управление устройствами
6.3. Управление устройствами Внешние устройства ЭВМ отличаются большим разнообразием в форматах управляющей информации и в алгоритмах управления. Даже в канальной модели интерфейса разные устройст...
Структура драйвера
Рисунок 6.5. Структура драйвера Как мы сказали, верхний уровень драйвера определяет очередность, в которой обслуживаются запросы от разных процессов. Для реализации политики обслуживания драйвер д...
Примеры драйверов устройств
6.4 Примеры драйверов устройствПриводимые ниже примеры показывают, что на драйверы некоторых устройств часто возлагаются дополнительные функции помимо непосредственного управления вводом-выводом....
Драйвер системных часов
Драйвер системных часов. Вычислительные системы имеют один или два таймера. Обязательным является линейный таймер, генерирующий прерывания центрального процессора через фиксированные интервалы вре...
Драйвер клавиатуры
Драйвер клавиатуры. Этот драйвер предназначен для ввода символов с клавиатуры терминала. В большинстве аппаратных архитектур нажатие любой клавиши на клавиатуре вызывает прерывание. Обработчик это...
Драйверы дисковых запоминающих устройств
Драйверы дисковых запоминающих устройств. Обычной функцией такого драйвера является перевод виртуального адреса на диске в реальный (физический). Физический адрес на диске состоит из трех компонен...
Потоки и многоуровневые драйверы
6.5 Потоки и многоуровневые драйверы. В целом ряде случаев данные, передаваемые из процесса на устройство или в обратном направлении, должны быть дополнительно преобразованы. Такими преобразования...
Поток вводавывода
Рисунок 6.6. Поток ввода-вывода Поток (stream) представляет собой цепочку очередей, через которые проходят данные, передаваемые от процесса драйверу устройства или в обратном направлении. Каждая о...
Интерфейс процесса
6.6 Интерфейс процесса Как мы уже отметили выше, ОС конструирует для процессов виртуальные устройства высокого уровня. Характерным примером таких устройств являются файлы. Процесс может работать с...
Буферизация
6.7 Буферизация Хотя блокировки и не влияют на результат выполнения процесса и не отражаются на его виртуальном времени, они сказываются на реальном времени его выполнения. Для интерактивных проце...
Буфер терминала для Unix
Рисунок 6.7. Буфер терминала для Unix Пример буфера при N=8 показан на Рисунке 6.7. Ядро ОС хранит указатели на первый и последний блоки цепочки и ведет список свободных блоков (очередь LIFO). Ядр...
Контрольные вопросы
Контрольные вопросыОхарактеризуйте методы виртуализации устройств в ОС. Приведите примеры их применения. Почему даже при закреплении устройства за процессом устройство все равно остается виртуаль...
Глава 7 Файловые системы
Глава 7Файловые системы...
Иерархическая модель файловой системы
7.1. Иерархическая модель файловой системы Файл есть именованная совокупность данных. Это определение относится к виртуальному файлу - каким он представляется пользователю. Определение виртуальног...
Иерархическая модель файловой системы
Рисунок 7.1. Иерархическая модель файловой системы Подсистема логической организации файлов обеспечивает API процессов в соответствии с той логической структурой, которую имеет виртуальный файл. Л...
Логическая организация файлов Интерфейсы
7.2. Логическая организация файлов. Интерфейсы Вне зависимости от логической структуры виртуального файла для получения процессом доступа к данным файла должен быть выполнен системный вызов open:...
Логическая файловая система Каталоги
7.3. Логическая файловая система. Каталоги Логическая ФС рассматривает файл, как единицу хранения. Удачным нам представляется сравнение логической ФС с библиотекарем, который не должен знать соде...
Пример иерархической структуры каталогов
Рисунок 7.2. Пример иерархической структуры каталогов Иерархические каталоги хорошо известны пользователям MS DOS, поэтому мы будем останавливаться прежде всего на тех их свойствах, которые в этой...
Альтернативное имя для файла
Рисунок 7.3. Альтернативное имя для файла Косвенным файлом (indirect file) или символьной связью (symbolic link), или мягкой связью (soft link) называется элемент каталога, который ссылается на др...
Логическая файловая система Системные вызовы
7.4. Логическая файловая система. Системные вызовы В API ФС зачастую трудно установить, к какой части ФС адресован тот или иной системный вызов, так как большинство вызовов проходят обработку на в...
Базовая файловая система
7.5. Базовая файловая система. Дескриптор файлаВыше мы уже неоднократно упоминали дескриптор файла, и читатель, наверное, уже сделал правильный вывод о том, что эта структура данных является ключ...
Физическая структура файлов
7.6. Физическая структура файлов До этого уровня ФС оперировала с виртуальными адресами в файле - относительными номерами байт или записей. Уровень физической структуры выполняет перевод реальных...
Размещение файла в файловой системе s5
Рисунок 7.4. Размещение файла в файловой системе s5 Другой аспект распределения дисковой памяти - учет свободного пространства на диске. Как и для учета размещения файлов, здесь применяются либо к...
Пример
7.7. Пример Мы описали работу каждого уровня ФС по отдельности. Их совместное функционирование будет удобнее всего разобрать на конкретном примере. Рассмотрим такую программу: 1 main() { 2 fileh...
Целостность данных и файловой системы
7.8. Целостность данных и файловой системы Контроль доступа является лишь одной из составляющих защиты файлов. Другими составляющими является обеспечение сохранения или восстановления целостности...
Технология RAID 5
Рисунок 7.5. Технология RAID 5 Промышленное применение в настоящее время имеют технологии RAID 0, 1 и 5. Резервное копирование и даже аппаратная избыточность позволяют уменьшить потери, но не избе...
Загружаемая файловая система
7.9. Загружаемая файловая система Задачи переносимости программного обеспечения, в том числе, и системного, и функционирования программных изделий в среде распределенной обработки данных включают...
Контрольные вопросы
Контрольные вопросыПоясните различие между виртуальным и физическим файлом. Охарактеризуйте основные компоненты иерархической модели файловой системы. Какие преимущества дает иерархическая модель...
Глава 8 Параллельное выполнение процессов
Глава 8Параллельное выполнение процессов...
Постановка проблемы
8.1. Постановка проблемы Параллельными называются процессы, у которых "интервалы времени выполнения перекрываются за счет использования разных ресурсов одной и той же вычислительной системы и...
Пример графа синхронизации Взаимное исключение запретом прерываний
Рисунок 8.1. Пример графа синхронизации...
Взаимное исключение запретом прерываний
Большинство компьютерных архитектур предусматривает в составе своей системы команд команды запрета прерываний (иногда - селективного запрета). В микропроцессорах Intel-Pentium, например, такими ко...
Взаимное исключение через общие переменные
8.3. Взаимное исключение через общие переменные Следующая группа решений базируется на непрерываемости памяти. Представляя эти алгоритмы, мы в основном следуем первоисточнику [7] и приводим в каче...
Вариант 1 общая переменная исключения
Вариант 1: общая переменная исключения.Введем булевскую переменную mutEx, которая должна получать значение true (1), если вхождение в критическую секцию запрещено, или false (0), если вхождение ра...
Может быть обеспечен если мы
Рисунок 8.1, может быть обеспечен, если мы введем массив done, каждый элемент которого свяжем с определенным событием. События пронумерованы и номер события является параметром функции, сигнализир...
Вариант 2 переменнаяпереключатель
Вариант 2: переменная-переключательВведем общую переменную right, значением ее будет номер процесса, который имеет право входить в критическую секцию. Реализация "скобок критической секции&qu...
Вариант 3 неальтернативные переключатели
Вариант 3: неальтернативные переключатели.Введем для каждого процесса свою переменную, отражающую его нахождение в критической секции. Эти переменные сведены у нас в массив inside. Элемент массива...
Алгоритм Деккера
Алгоритм ДеккераЭффективное и универсальное решение проблемы взаимного исключения носит название алгоритма Деккера и выглядит для двух процессов таким образом: 1 static int right = 0; 2 sta...
Алгоритм Питерсона
Алгоритм ПитерсонаБолее компактная и изящная модификация алгоритма Деккера известна, как алгоритм Питерсона. Вот его вариант для двух процессов: 1 static int right; 2 static char wish[2] =...
Команда testAndSet и блокировки
8.4. Команда testAndSet и блокировки Взаимное исключение при помощи переменных-переключателей базируется на атомарности обращений к памяти. Как мы показали выше, это делает решение универсальным к...
Семафоры
8.5. Семафоры Все рассмотренные выше методы используют занятое ожидание: если процесс не может войти в критическую секцию, он зацикливается на опросе переменных состояния. Следующие методы использ...
"Производителипотребители"
8.6. "Производители-потребители" Пусть мы имеем два циклических процесса, которые мы назовем "производитель" и "потребитель". Производитель в каждой итерации своего ц...
Конструкции критических секций в языках программирования
8.7. Конструкции критических секций в языках программирования Семафоры являются удобными и эффективными примитивами, при помощи которых решаются задачи взаимного исключения и синхронизации, поэтом...
Мониторы
8.8. Мониторы Монитор представляет собой набор информационных структур и процедур, которые используются в режиме разделения. Некоторые из этих процедур являются внешними и доступны процессам польз...
Простая модель монитора
Рисунок 8.2. Простая модель монитора Обратите внимание на то, что взаимное исключение обеспечивается для всех охраняемых процедур, а не только для одноименных. В сущности, такая процедура представ...
Расширенная модель монитора
Рисунок 8.3. Расширенная модель монитора Эти правила предполагают, что процесс будет разблокирован немедленно (речь идет не о немедленной активизации процесса, а о его разблокировании - перемещени...
"Читателиписатели" и групповые мониторы
8.9. "Читатели-писатели" и групповые мониторы Еще одна классическая задача синхронизации называется задачей "читателей-писателей" и формулируется следующим образом. Имеется про...
Примитивы синхронизации в языках программирования
8.10. Примитивы синхронизации в языках программирования До сих пор мы рассматривали методы, которые обеспечивают и взаимное исключение, и синхронизацию. Целый ряд прикладных задач, однако, требует...
Рандеву
8.11. Рандеву Модель взаимодействия процессов, названная рандеву, рассматривает синхронизацию и передачу данных как единую деятельность. Когда процесс A намерен передать данные процессу B, оба про...
Контрольные вопросы
Контрольные вопросыПокажите, что задача синхронизации является частным случаем задачи взаимного исключения. Для каких задач использование единственной общей переменной исключения может быть оправ...
Глава 9 Системные средства взаимодействия процессов
Глава 9Системные средства взаимодействия процессов В предыдущей главе мы уже фактически затронули эту тему, однако, средства, которые мы рассматривали, в основном ограничивались теми, которые реал...
Скобки критических секций
9.1. Скобки критических секций. Выделение критических секций, как системное средство, целесообразно применять для относительно сильно связанных процессов - таких, которые разделяют большой объем д...
Виртуальные прерывания или сигналы
9.2. Виртуальные прерывания или сигналы Мы уже говорили о виртуальных прерываниях, как о средстве, при помощи которого ОС сигнализирует процессу об окончании асинхронно выполняемой операции ввода-...
Модель виртуальных коммуникационных портов
9.3. Модель виртуальных коммуникационных портов Большинство средств взаимодействия процессов соответствуют концепции коммуникационных портов - виртуальных устройств, через которые процессы обменив...
Общие области памяти
9.4. Общие области памяти Два и более процессов могут использовать одну и ту же физическую область памяти. Наиболее просто это достигается в тех моделях памяти, которые обеспечивают динамическую т...
Семафоры
9.5. Семафоры В предыдущей главе мы достаточно подробно рассмотрели сущность и свойства семафоров. ОС может предоставлять семафоры в распоряжение пользователя, как средство для самостоятельного ре...
Программные каналы
9.6. Программные каналы Программный канал по-английски называется pipe (труба), и это весьма удачное название. Канал действительно можно представить как трубопровод пневматической почты, проложен...
Программные каналы
Рисунок 9.1. Программные каналы Из всех средств взаимодействия между процессами каналы (pipe) лучше всего вписываются в модель виртуальных коммуникационных портов. Канал для процесса практически а...
Очереди сообщений
9.7. Очереди сообщений Очереди воплощают модель взаимодействия процессов "много отправителей - один получатель". Эту модель часто называют почтовым ящиком (mailbox) из-за сходства с почт...
Контрольные вопросы
Контрольные вопросыПочему системные вызовы - скобки критических секций применяются для нитей, но не для процессов? В чем сходство и в чем различия между сигналами и реальными прерываниями? Процес...
Глава 10 Защита ресурсов
Глава 10Защита ресурсов...
Общие требования безопасности
10.1. Общие требования безопасности В системе ценностей современного мира информация занимает одно из ведущих мест, и рейтинг ее в этой системе возрастает с течением времени почти экспоненциально....
Объектноориентированная модель доступа и механизмы защиты
10.2. Объектно-ориентированная модель доступа и механизмы защиты В главе 7 мы рассмотрели модель управления доступом применительно к файловой системе. Управление доступом к файлам является частным...
Процедуры аутентификации и авторизации
Рисунок 10.1. Процедуры аутентификации и авторизации В соответствии с требованиями безопасности система должна различать пользователей. Пользователь - это некоторое имя, определенное в системе и с...
Представление прав доступа
10.3. Представление прав доступаПолный набор прав доступа для всех субъектов и всех объектов может быть представлен в виде матрицы доступа, строки которой соответствуют субъектам, а столбцы - объе...
Матрица доступа
Рисунок 10.2. Матрица доступа Как видно даже из рисунка 10.2, в матрице присутствует избыточность - пустые клетки, так как некоторые объекты недоступны для некоторых субъектов. В многопользователь...
Списки привилегий
Рисунок 10.3. Списки привилегий Во втором случае имеется таблица объектов, с элементами которой связаны списки субъектов (Рисунок 10.4)....
Списки управления доступом Дополнительные возможности
Рисунок 10.4. Списки управления доступом...
Дополнительные возможности
Среди действий, которые может выполнять пользователь, есть и такие, которые не связаны с конкретным объектом, а относятся к большой группе объектов или даже ко всей системе в целом, например, выпо...
Контрольные вопросы
Контрольные вопросыВ чем различие между избирательным и обязательным управлением доступом? Какой из этих подходов более надежен? В чем преимущества объектно-ориентированных (объектно-базированных...