- •Операционные системы (учебное пособие)
- •Введение
- •1. Операционная система: основные понятия
- •1.1. Понятие операционной системы, её роль и функции
- •1.2. Операционная и программная среды
- •1.3. Очередь и стек
- •1.4. Машинная команда, способы адресации, привилегированные команды
- •1.5.Система прерываний
- •1.6. Задачи, вычислительные процессы и ресурсы
- •Ресурс – это абстрактная структура, имеющая множество атрибутов, характеризующих способы доступа к ресурсу и его физическое представление в системе
- •1.7. Мультипрограммный, мультизадачный и многопользовательский режимы работы операционной системы. Режим разделения времени
- •2. Управление памятью в операционных системах
- •2.1. Память и отображения, виртуальное адресное пространство
- •2.2. Простое непрерывное распределение и распределение с перекрытием
- •2.3. Распределение памяти статическими разделами
- •2.4. Распределение памяти с динамическими разделами
- •2.5. Распределение памяти с фрагментацией задач
- •3. Управление процессами
- •3.1. Реализация последовательного процесса в операционной системе
- •3.2. Планирование и диспетчеризация процессов и задач
- •3.3. Управление параллельными процессами
- •3.3.1. Понятие параллельных процессов
- •3.3.2. Методы реализации взаимных исключений
- •3.3.3. Блокировка памяти
- •3.3.4. Применение специальных операций типа "проверка–установка"
- •3.3.5.Семафоры и их применение
- •3.3.6. Мониторы
- •3.3.7. Почтовые ящики, конвейеры и очереди сообщений
- •4. Проблема тупиков и её решение
- •4.1. Проблема тупиков, разделяемые ресурсы и модели параллельных процессов
- •4.2. Модель повторно используемых ресурсов Холта1
- •4.3. Сети Петри
- •4.4. Модель пространства состояний системы
- •4.5. Борьба с тупиками
- •4.5.1. Предотвращение тупиков
- •4.5.2. Обход тупиков
- •4.5.3. Обнаружение тупика
- •5. Жёсткий диск
- •5.1. Устройство накопителя жесткого диска (hdd) и адресация элементов дискового пространства
- •5.2. Логическая структура диска
- •5.3. Создание загрузочных дисков
- •6. Файловые системы
- •6.1. Файлы и каталоги
- •6.2. Понятие и функции файловой системы и системы управления файлами.
- •6.3. Обзор файловых систем
- •6.3.1. Файловая система fat16, fat32 и vfat
- •6.3.2. Файловая система ntfs
- •6.3.3. Файловые системы компакт-дисков
- •7. Средства защиты и восстановления операционных систем
- •7.1. Цифровая подпись драйверов и её верификация
- •7.2. Защита и проверка системных файлов
- •7.3. Откат драйверов
- •7.6. Безопасный режим загрузки
- •7.7. Мастер и точки восстановления системы
- •7.8. Резервное копирование и восстановление
- •7.9. Аварийное восстановление системы. Консоль восстановления.
- •8. Загрузчики операционных систем
- •8.1. Понятие загрузчика и виды его реализации
- •8.2. Решение проблемы четырех разделов в mbr
- •8.3. Установка загрузчиков ос
- •8.4. Настройка загрузчиков ос
- •8.5. Удаление загрузчиков ос
- •9. Системный реестр и системные службы
- •9.1. Назначение и структура реестра
- •9.2. Работа с реестром
- •9.3. Системные службы
- •10. Безопасность операционных систем
- •10.1. Угрозы, уязвимости, атаки
- •10.2. Политика безопасности
- •10.3. Защита от вторжений
- •10.4. Межсетевые экраны
- •10.5. Отключение ненужных служб
- •10.6. Защита от спама
- •10.7. Защита от вредоносных программ и вирусов средствами операционных систем
- •10.8. Защита конфиденциальной информации.
- •Список литературных источников
4.3. Сети Петри
Сети Петри являются одним из самых старых методов описания параллельных процессов и предложены Карлом Петри в 1962 г. Они описывают не непосредственные связи между событиями в системе, а ситуации, при которых упомянутые события могут произойти.
Сети Петри могут быть представлены в аналитической и в графической форме. В первом случае становится возможной автоматизация процесса анализа, во втором – наглядное изображение параллельного процесса.
При графической интерпретации сети Петри представляют собой направленный граф с вершинами двух типов – позиций (обозначаются кружками) и переходов (обозначаются черточками). Направленные дуги могут связывать только вершины разных типов. Вершины-переходы соответствуют событиям, происходящим в системе, а позиции – условиям их возникновения. Совокупность этих трех элементов позволяет описать причинно-следственные связи в объекте в статике.
Кроме вершин и дуг сети Петри содержат еще один объект – фишки (метки) позиций. Переход считается активным, если в каждой его входной позиции находится хотя бы одна фишка. Расположение фишек называется разметкой сети. Пример изображения сети Петри при двух разметках приведен на рис. 4.9.
а) |
б) |
Рис. 4.9. Пример изображения сети Петри при двух разметках |
В аналитической форме сеть Петри представляется в виде 5 компонент:
P = (B, D, I, O, M),
где |
B |
– конечное непустое множество позиций, |
|
D |
– конечное непустое множество переходов, |
|
I |
– входная функция, задающая для каждого перехода множество его входных позиций, |
|
O |
– выходная функция, задающая для каждого перехода множество его входных позиций, |
|
M |
– разметка сети. |
Компоненты B и D являются перечнями вершин-позиций и вершин переходов, в которых обозначения вершин разделены запятыми. Для рис. 4.9 эти компоненты имеют вид: b1,b2,b3,b4,b5 и d1,d2,d3,d4.
Входные и выходные функции являются матрицами, в которых столбцы соответствуют переходам, а строки – позициям. В матрицах I и О элементы, находящиеся на пересечении столбцов, соответствующих переходам, и строк, соответствующих входным вершинам-позициям перехода, равны единице, в противном случае – нулю. Для рис. 4.9 эти матрицы показаны на рис. 4.10, а,б.
Разметка сети для рис. 4.9,а описывается последовательностью чисел (1,0,0,0,1), а для рис. 4.9,б – последовательностью (0,1,1,0,1). Единицы показывают наличие фишек в вершинах-позициях, а нули – их отсутствие. На рис. 4.9,а активен только переход d2, т.к. он имеет только одну входную вершину b1, в которой находится фишка. Переход d3 пассивен, т.к. он имеет две входных вершины и только в одной из них находится фишка. Осуществление события d2 сделало активным переход d1 и d3, т.к. фишка из вершины b1 перешла в вершины b2и b3. Смена разметки из М0 в М1 обозначается следующим образом:
Правило срабатывания перехода: Переход может сработать, только при наличии фишек во всех входных позициях |
Правило изменения разметки: При срабатывании перехода фишки изымаются по одной из всех входных позиций и добавляются по одной в каждую выходную позицию. |
Fа) |
б) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Рис. 4.10. Входная (а) и выходная (б) функции для сети Петри (для рис. 4.9). |
При анализе сети Петри исследования ведутся, как правило, в трех направлениях:
исследование достижимости конкретной разметки М1 при наличии некоторой стартовой разметки М0 (т.е. исследование возможности достижения конкретного состояния системы при определенных начальных условиях);
исследование живости переходов, т.е. возможности срабатывания переходов в данной сети при начальной разметке (т.е. выявление невозможных состояний системы);
исследование безопасности сети – выявление невозможности появления в любой позиции более одной фишки (т.е. возможность работы сети в стационарном режиме).
Основным недостатком сетей Петри является невозможность моделировать временные характеристики объектов.
Ниже приведены примеры исследования параллельных процессов с помощью сетей Петри. Первый пример описан в разделе 4.2 (рис. 4.4, 4.5). Для удобства изучения материала рисунки примера повторены ниже (рис. 4.11).
Рис. 4.11. Граф модели Холта |
Рис. 4.13. Сеть Петри для первого примера |
. . . |
|
Parbegin |
|
ПР1: |
|
1: REQUEST(R1,3); |
|
. . . |
|
2: SAND_MASSAGE(ПР2, М1, ПЯ); |
|
3: WAIT_ANSWER(М2, ПЯ); |
|
. . . |
|
4: RELEASE(R1,3); |
|
ПР2: |
|
. . . |
|
5: WAIT_MASSAGE(ПР1, М1, ПЯ2); |
|
6: REQUEST(R1,2); |
|
. . .; |
|
7: RELEASE(R1,2); |
|
8: SAND_ANSWER(М1, ПЯ); |
|
. . . |
|
Parend Рис. 4.12. Код программы процессов |
Позиция Р1 соответствует началу процесса ПР1, а Р9 – началу процесса ПР2. Позиция Р2 соответствует выполнению оператора 1 и получению процессом 3-х единиц ресурса R, который изображает позиция Р6. Прохождение перехода t2 соответствует выполнению оператора 2, т.е. посылке сообщения процессу ПР2. Позиция Р3 соответствует ситуации "выполнен оператор 2". Процесс остановлен до получения сообщения от процесса ПР2. Если это сообщение придёт, то процесс продолжится, выполнится оператор 4 и процесс ПР1 освободит ресурс R (переход t4). Однако процесс ПР2 ожидает сообщения от ПР1. Сообщение вызовет прохождение через переход t5 в позицию Р10. В ней процесс остановится, т.к. у ресурса R свободна только одна единица, а нужно две. Процесс ПР2 остановлен и не может послать сообщение процессу ПР1, а тот, в свою очередь, не получив сообщение, не может освободить ресурс R. Возник тупик.
Второй пример, иллюстрировавший возникновение тупика на ресурсах SR также рассматривался разделе 4.2 (рис. 4.6 и 4.7). Исследование возникновения тупика проиллюстрировано на рис. 4.14 – 4.15.
Рис. 4.14. Граф модели Холта |
Р3
Р7
.
.
t1
t5
Р8
Р4
t2
.
t6
Р5
Р1
Р9
t7
t3
Р6
Р2
Р10
.
t4
t8
Рис. 4.16. Сеть Петри для первого примера |
. . . |
|
Parbegin |
|
Parbegin |
|
ПР1: |
|
1: P(S2); . . . |
|
2: P(S1); . . . |
|
3: V(S1); . . . |
|
4: V(S2); . . . |
|
ПР2: |
|
5: P(S1); . . . |
|
6: P(S2); . . . |
|
7: V(S1); . . . |
|
8: V(S2); . . . |
|
Parend
Рис. 4.15. Код программы процессов |
На рис. 4.16 номера переходов соответствуют номерам отмеченных операторов управления семафорами, позиции Р1 и Р2 – семафорам S1 и S2. Из него видно, при прохождении перехода t1 процесс ПР1 захватывает ресурс Р2, а процесс ПР2 при прохождении перехода t5 захватывает ресурс Р1. Дальнейшие попытки выполнить переходы t2 и t6 переводят процессы в состояние ожидания, поэтому t3, t4, t7 и t8 никогда не будут выполнены.
Сети с выполняющимися переходами называются живыми. С этой точки зрения сети, показанные на рис. 4.13 и 4.16 не являются живыми.
Графическое представление сетей Петри позволяет придать наглядность процессу исследования процессов на возникновение тупиков. Применение математического описания сети Петри позволяет автоматизировать процесс исследования. Можно считать также перспективной автоматизацию процесса исследования на основе математического описания сети Петри с визуализацией процесса исследования посредством графического представления сети.