
- •1 Призначення та функції операційних систем.
- •2 Классификация ос:
- •3 Свойства ос:
- •4 Архитектура компьютерной системы Windows nt
- •5 Типы Windows-приложений:
- •6 Структура оконных вин приложений
- •7 Механизм сообщений Windows
- •8 Стандартні класи вікон у Windows.
- •10 Создание дочерних окон.
- •11 Организация адресного пространства. Виртуальная память
- •13 Страничная организация памяти в Windows
- •14.Алгоритм управления страницами
- •15. При выделении памяти необходимо учитывать следующие ограничения (принципы):
- •17.Выделение небольших блоков памяти
- •18. Механизмы работы с памятью. Использование виртуальной памяти.
- •19. Механизмы работы с памятью. Отображение файлов на память.
- •20. Механизмы работы с памятью. Использование «кучи».
- •21. Исследование виртуальной памяти. Системная информация.
- •22. Исследование виртуальной памяти. Статус виртуальной памяти.
- •23. Исследование виртуальной памяти. Определение состояния адресного пространства.
- •25 Компоненты файловой системы
- •26 Монтирование и демонтирование файловой системы
- •28 Ntfs
- •29 Поняття планування та диспетчеризації.
- •30 Алгоритм циклічного планування процесів.
- •31 Алгоритм пріоритетного планування процесів.
- •32 Алгоритм планування процесів з кількома чергами.
- •33 Алгоритм адаптивно-рефлекторного планування процесів.
- •34. Поняття політики планування процесів.
- •35. Класифікація процесів з погляду планування.
- •36. Поняття процесу. Пріоритети, порядок створення та завершення
- •37. Завдання. Обмеження, створення, статистична інформація.
- •38. Поняття потоку. Створення, призупинення, поновлення та завершення потоків.
- •39. Життєвий цикл процесу. Стан процесу. Переключення станів.
- •40. Абстрактне визначення та контекст процесу. Відносини між процесами.
- •41)Критичний ресурс. Критична секція. Використання спільної змінної.
- •42)Критичний ресурс. Критична секція. Почергове виконання критичної секції.
- •43)Критичний ресурс. Критична секція. Алгоритм Деккера.
- •44)Поняття синхронізації. Виявлення та запобігання тупиків (блокувань).
- •45)Синхронізація потоків. Функції та використання моніторів.
- •46)Синхронізація. Поняття та використання семафора для критичної секції.
- •47. Синхронізація потоків. Атомарний доступ.
- •48.Синхронізація потоків. Критична секція.
- •49. Синхронізація потоків. Функції очікування.
- •50. Синхронізація потоків. Події.
- •51. Синхронізація потоків. М’ютекси.
- •52 Синхронізація потоків. Семафори.
- •53. Понятие параллельного исполнения.
- •54 Можливості та особливості операційної системи Linux.
- •55 Особливості побудови та роботи файлових систем ос Linux.
- •56 Можливості та особливості роботи з командним рядком.
- •57. Назовите и охарактеризуйте структуру сетевых операционных систем.
- •58. Взаимодействий компонентов ос при взаимодействии компьютеров в сети.
- •59. Однорангові мережеві ос та ос з виділеними серверами.
- •60.Синхронізація. Використання семафорів для розподілу множини ресурсів
48.Синхронізація потоків. Критична секція.
InterLock функции позволяют в монопольном режиме выполнить только элементарные операции. Если необходимо выполнить группу операций в монопольном режиме, эти операции объединяются в критическую секцию. Критической секцией называют участки потоковых функций, которые нельзя прервать для выполнения такой же критической секции других потоковых функций данного процесса. В потоковой функции можно использовать несколько критических секций. С каждой критической секцией связывается ресурс, доступ к которому защищает эта критическая секция, например, в качестве ресурса можно использовать файл, одновременный доступ к которому запрещен. Запрет на одновременное исполнение распространяется только для данной критической секции.
Для использования критической секции необходимо выполнить следующие действия:
1. выделить память под крит. секцию так, что б её структура была доступна для всех потоковых функций, использующих её.
2. До создания потоков, использующих крит. секцию, нужно инициализировать её (функция InitializeCriticalSection);
3. Пределить начало критического участка потоковой функции с помощью функции EnterCriticalSection;
4. Определить конец крит. секции участка потоковой функции с помощью функции LeaveCriticalSection;
5. в основном потоке, удалить крит. секцию. когда она больше не нужна (deletecriticalSection);
49. Синхронізація потоків. Функції очікування.
Для каждого объекта ядра, в том числе File, Process, Thread
объектов синхронизации задаются состояние этого объекта (свободный или занятый) и список потоков, которые ждут освобождения этого объекта, если объект занят. Таким образом, ОС легко может определить, какие потоки зависят от данного объекта.
Каждый заблокированный поток имеет список объектов, которые должны освободиться для продолжения его работы. При освобождении объекта ОС корректирует его состояние. Выбирается очередной поток, ждущий данный объект. Если этот поток не зависит от других объектов, его состояние изменяется. Если это поток с динамическим приоритетом, устанавлявливается новое значение приоритета. Если исполняемый в данный момент поток имеет приоритет меньший, чем приоритет нового, исполняемый поток заменяется новым. В противном случае нрвый поток переводится в состояние «Готов» и ставится в очередь готовых потоков.
1. Функция WaitForSingleObject:
DWORD WaitForSingleObject (
HANDLE hHandle, //дескриптор объекта ядра,
DWORD dwMilliseconds // интервал времени в миллисекундах, в
//течение которого необходимо ждать
//освобождения заданного объекта.);
Возвращаемое значение:
WAIT_OBJECT_0— функция завершена, так как заданный объект перешел в состояние «Свободен»;
WAIT_TlMEOUT - функция завершена, так как истек заданный интервал времени.
2. Функция WaitForMultipleObjects.
DWORD WaitForMultipleObjects (
DWORD nCount, // количество дескрипторов, состояние
//которых проверяется
CONST HANDLE *IpHandles, // массив дескрипторов
BOOL bWaіtAll //флаг ожидания
DWORD dwMilliseconds // интервал времени в миллисекундах, в
//течение которого необходимо ждать
//освобождения заданных объкта);
Возвращаемое значение:
WAIT_OBJECT_0, WAIT_OBJECT_1, ... — ф у н к ц и я завершена так как объект с заданным номером перешел в состояние "Свободен" (если bWaitAll = FALSE);
WAIT TIMEOUT— функция завершена, так как истек заданный интервал времени.
Объекты синхронизации устанавливают и используют свободное состояние, которое учитывается функциями ожидания.