
- •1 Призначення та функції операційних систем.
- •2 Классификация ос:
- •3 Свойства ос:
- •4 Архитектура компьютерной системы Windows nt
- •5 Типы Windows-приложений:
- •6 Структура оконных вин приложений
- •7 Механизм сообщений Windows
- •9 Реєстрація класів вікон користувача та створення вікон у Windows.
- •10 Создание дочерних окон.
- •12 Сегментный способ адресации в Windows
- •13 Страничная организация памяти в Windows
- •14.Алгоритм управления страницами
- •15. При выделении памяти необходимо учитывать следующие ограничения:
- •18. Механизмы работы с памятью. Использование виртуальной памяти.
- •19. Механизмы работы с памятью. Отображение файлов на память.
- •20. Механизмы работы с памятью. Использование «кучи».
- •21. Исследование виртуальной памяти. Системная информация.
- •22. Исследование виртуальной памяти. Статус виртуальной памяти.
- •23. Исследование виртуальной памяти. Определение состояния адресного пространства.
- •25 Компоненты файловой системы
- •26 Монтирование и демонтирование файловой системы
- •Функциональные свойства fat
- •28 Ntfs
- •29 Поняття планування та диспетчеризації.
- •30 Алгоритм циклічного планування процесів.
- •31 Алгоритм пріоритетного планування процесів.
- •32 Алгоритм планування процесів з кількома чергами.
- •33 Алгоритм адаптивно-рефлекторного планування процесів.
- •34. Поняття політики планування процесів.
- •35. Класифікація процесів з погляду планування.
- •36. Поняття процесу. Пріоритети, порядок створення та завершення
- •37. Завдання. Обмеження, створення, статистична інформація.
- •38. Поняття потоку. Створення, призупинення, поновлення та завершення потоків.
- •39. Життєвий цикл процесу. Стан процесу. Переключення станів.
- •40. Абстрактне визначення та контекст процесу. Відносини між процесами.
- •41) Критичний ресурс. Критична секція. Використання спільної змінної.
- •42) Критичний ресурс. Критична секція. Почергове виконання критичної секції.
- •43) Критичний ресурс. Критична секція. Алгоритм Деккера.
- •44) Поняття синхронізації. Виявлення та запобігання тупиків (блокувань).
- •45) Синхронізація потоків. Функції та використання моніторів.
- •46) Синхронізація. Поняття та використання семафора для критичної секції.
- •53. Понятие параллельного исполнения.
- •57. Назовите и охарактеризуйте структуру сетевых операционных систем.
- •58. Взаимодействий компонентов ос при взаимодействии компьютеров в сети.
41) Критичний ресурс. Критична секція. Використання спільної змінної.
Пусть переменная Status, которая определена в области памяти доступной нескольким процессам, задает состояние критической секции (занята, свободна). Вход в критическую секцию процесса возможен только в том случае, если она свободна.
Недостатки метода:
- операторы while (Status == Busy) проверки состояния критической секции и Status= Busy установки этого состояния должны выполняться как один оператор.
- Не определен порядок выполнения процессов, в реальных задачах часто необходимо зафиксировать этот порядок.
- Если квант времени выделен процессу, который не может выполняться сейчас, процессор выполняет цикл ожидания вместо переключения на другой процесс.
Первый недостаток устраняется, выключением прерываний на время проверки и установки значения. Современные процессоры также имеют в списке команд такие, которые позволяют проверять и изменять значение переменной одной командой.
Общая переменная int Status = Free ; |
|
// Процесс 1 while (Status == Busy); Status = Busy; // Критическая секция … Status = Free; |
// Процесс 1 while (Status == Busy); Status = Busy; // Критическая секция … Status = Free; |
42) Критичний ресурс. Критична секція. Почергове виконання критичної секції.
Пусть процессы должны выполнять КС, причем первым должен выполнить КС первый процесс. Определим общую для обоих процессов переменную, куда вначале запишем номер процесса который должен первым выполнить КС.
Недостаток метода:
Если процесс 1 выполняется на более быстром процессоре, то он не сможет два раза подряд выполнить свою критическую секцию. По-прежнему процессор простаивает до завершения кванта времени, если КС не может бать выполнена.
Общая переменная int number = 1; |
|
// Процесс 1 while (1){ … while (number == 2); // Критическая секция … number = 2; // Продолжение процесса … } |
// Процесс 2 while (1){ … while (number == 1); // Критическая секция … number = 1; // Продолжение процесса … } |
43) Критичний ресурс. Критична секція. Алгоритм Деккера.
Используем 3 общих переменных для процессов c[0] – истина, если выполняется КС первого процесса; c[1] – истина, если выполняется КС второго процесса; переменная OtherProcessNumber задает номер неактивного процесса. Начальная инициализация переменных:
bool c[2] = {false, false};
int OtherProcessNumber = 0;
// Код для процесса 1 с критическим участком кода
// Установка переменных для первого процесса
int i=0; j = 1 – i;
c[i] = true; OtherProcessNumber = j;
// Ждем пока критическую секцию выполняет второй процесс
while (c[j] && OtherProcessNumber == j);
// Критическа секция
…
c[i] = false;
Для второго процесса переменная i = 1. Для решения проблемы простоя процессора в случае необходимости ожидания завершения выполнения КС другим процессом используется блокирование, выполнение которого не может быть продолжено. Блокирование процесса выполняет ОС. В этом случае квант времени процессора передается готовому процессу. В следующих разделах предполагается, что процессы, которые не могут выполняться, блокируются.