
- •Кафедра автоматизації і комп’ютерних систем
- •Классификация архитектурных типов процессоров.
- •Традиционно машинный уровень.
- •Команды обращения к процедурам
- •Процедуры
- •Управление циклами
- •Представление данных
- •Управление процессами
- •Типы адресации
- •Поиск и сортировка
- •Сортировка данных
- •Межпроцессорное взаимодействие.
- •Критические области.
- •Методы синхронизации с пассивным ожиданием.
- •Решение задачи производительности потребителя с помощью мониторов.
- •Разработка систем с помощью передачи сообщений.
- •Классические проблемы межпроцессорного взаимодействия.
- •Планировщик процессов
- •Планирования в системах реального времени.
- •Организация виртуальной памяти.
- •Стратегии замещения страниц.
- •Алгоритм «2-я попытка»
- •Алгоритм «часы»
- •Алгоритм nfu (редко используемая страница)
- •Методы ускорения работы со страницами
- •Способы ассемблирования
- •Связывание программ
- •Структура объектного модуля
- •Атака системы безопасности
- •Принципы проектирования систем безопасности.
- •Аутентификация пользователей
- •Механизм защиты
- •Технические механизмы защиты
- •Защита информации при передаче
- •Основные понятия криптографии:
- •Криптографический протокол
- •Гибридные криптосистемы
- •Цифровая подпись
- •Сертификаты
- •Алгоритм des
- •Принципы аутентификации управления доступом
- •Аутентификация с использованием односторонних функций
- •Аутентификация по принципу "запрос-ответ"
- •Аутентификация управления доступом в Unix
- •Супер-пользователь Root
- •Теневые пароли
- •Поддержка возможностей в Linux.
- •Аутентификация.
- •Идентификаторы безопасности.
- •Одалживание прав.
- •Управление доступом Windows xp.
- •Аудит. Общие принципы.
- •Локальная безопасность.
- •Сетевая безопасность
Критические области.
Критические области это участки программ кода которые осуществляют доступ к разделяемым с другими процессами данных. Основой пути борьбы состязания процессов это взаимное переключение, т.е. в один момент времени разделяемыми данными может пользоватся только 1 процесс. Длительность этого промежуткавремени совпадает со временем вполнения критической секции. Доказано что для избежания состязаний необходимо выполнение часных условий:
Два процесса разделяющих данные не могут одновременно находиться в критических областях.
Текст прогарммы должен исключить предположение о скорости вычисления системы либо количестве процессов.
Прочесс не должен блокировать другие процессы, если он не находится в критической области.
Процесс не должен вечно ждать попадания в критическую секцию.
Методы синхронизации разделены на 2 направления:
Синхронизация с активным ожиданием.
Синхронизация с блокировкой процессов (пассивным ожиданием)
Методы активной синхронизации:
Зпрет на прерывание состоит в запрете приреваний при входе в критическую секцию и разделении при выходе из нее.
Достоинства: самое простое решение, запрет прирывания исключает доступ к процессору любому процессу.
Недостаток: нарушается 4-ре условия синхронизации. При этом никакой другой процесс его из ожидания не выведет, это приводит к краху системы.
Указанное решение применяется в ядре ОС для обеспечения наивысшего приоритета при работе с переменными. Для пользовательских программ указанный метод не приемлем. Этот метод применяется при программировании контроллеров.
Использование переменных блокировки – простейшее програмное решение задач синхронизации состоящее в использовании разделяемой переменной блокировки, как правило логической (0 или 1). Когда процесс должен войти в критическую секцию он изменяет значение переменной блокировки (из 0 в 1) и пока значение переменной блокировки равно 1 другой процесс не может войти в критическую секцию. По выходу из критической секции возвращает.
Достоиства: простота решения.
Недостатки: не соблюдаются условия 1 и 3 т.к. не блокируются другие процессы не находящиеся в критической секции. В следствии этогог снижается вероятность но не исключается возможность двух процессов в критической секции.
В некоторой литературе переменные блокировки называются симафорами. В противовес симафоры деструкторы которые по сути являются счетчиками процесса в очереди.
Метод строгого чередования.
while(TRUE)
{
while(turn!=0);
critical_selection();
turn=1;
noncritical_selection();
}
while(TRUE)
{
while(turn!=1);
critical_selection();
turn=0;
noncritical_selection();
}
turn – распределяемая переменная блокировки.
Алгоритм, когда несколько синхронизирующих процессов получают право на доступ в критическую секцию внеочереди называется алгоритмом строгого чередования.
Достоинства: процессы гарантированно будут выполнены.
Недостатки: если один процесс значительно медленнее другого, работа всего множества процессов замедляется, что может привести к нарунению условий 3 и 4.
Алгоритм Деккера.
Деккером был продложен метод взаимного исключения без строгого чередования, что позволяло процессам не задерживать друг друга. В настоящее время метод не используется из-за сложности, вместо его использется метод Петерсона.
Алгоритм Петерсона предложен в 1981 г.
#define №2
int turn;
bool interested[N];
void enter_region(int process)
{
int other; //номер другого процесса.
other=1-process;
interessted[process]=true;
turn=process;
while(turn==process && interessted[other]==true); //ожидание перед входом в критическую секцию.
}
//вызывается перед выходом из критической секции
void leave_region(int process)
{
interessted[process]=false;
}
Пусть дано 2 процесса совмесно использующих область, enter_region – перед входом.
Использование команды tsl – это асемблерная программа внедренная в многопроцессорные системы поддерживается на аппаратном уровне, расшифровывается как «проверить и заблокировать», работает следущимобразом: в регистр процессора считывается содержимое ячейки памяти и затем в эту ячейку устанавливается единица.
Команда tsl неделима, во время ее выполнения процессором системная шина блокируется.
enter_region:
tsl register, block; - блокирует ячейку памяти и записует в регистр;
cmp register, #0 – команда сравнить;
jne enter_region; - переход по несовпадению;
leav_region:
move lock, #0;
ret – ретурн;
Преймущества: использования команды tsl перед методом использования переменной блокировки в том что при использовании tsl модификация блокировки не делима что исключает состязание между процессами.
Недостатки: не все вычисительные программы поддерживают метод tsl;
Все алгоритмы синхронизации с активным ожиданием не ражионально расходуют процессорное время, а кроме того имеют проблему приоритотов, которая состоит в том что процесс с более высоким приоритетом при постоянных попытках войти в критическую сесию во время запросов заберет вс время процесса на себя и не позволит процессу м низким приоритетом выполнить критическую секцию и выйтииз нее в результате чего сам никогда не вейдет в критическую сессию.