
- •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. Взаимодействий компонентов ос при взаимодействии компьютеров в сети.
37. Завдання. Обмеження, створення, статистична інформація.
Задание – совокупность процессов, объединенных по какому-то признаку. Для задания могут быть установлены ограничения таких типов:
- базовые и расширенные базовые ограничения – не дают процессам монопольно захватывать системные ресурсы
- Базовые ограничения по пользовательскому интерфейсу
- ограничения, связанные с защитой.
Для задания ограничение используются структуры, каждая структура определяет ограничение определенного класса.
Создание задания
Для создания объекта типа JOB используется функция:
Handle CreateJobObject(
LPSECURITY_ATTRIBUTES lpJobAttributes,
LPCSSTR lpName
);
Статистическая информация о задании
Для получения информации об ограничениях задания используется функция
BOOL QueryInformationJobObject(
HANDLE hJob,
JOBOBJECTINFOCLASS JobObjectInformationClass,
LPVOID lpJobObjectInformationLength,
LPDWORD lpReturnLength
);
Для получения статистической информации о задании можно использовать эту же функцию, причем в качестве второго параметра надо задавать JobObjectBasicAccountingInformation и адрес структуры JOBOJECT_BASIC_ACCOUNTING_INFORMATION. Эта структура имеет информацию:
Typedef struct_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION{
LARGE_INTEGER TotalUserTime; //Процессороное время в режиме User
LARGE_INTEGER TotalKernelTime;//Процессорное время в режиме Kernel
LARGE_INTEGER ThisPeriodTotalUserTime;//Процессорное время в режиме User до изменения режимов
LARGE_INTEGER ThisPeriodTotalKernelTime;// Процессорное время в режиме Kernel до изменения режимов
DWORD otalPageFaultCount;// кол-во ошибок при обращении к страницам
DWORD TotalProcesses;//общее кол-во процессов в задании
DWORD ActiveProcesses//кол-во активных процессов
DWORD TotalTerminatedProcesses;//кол-во завершенных процессов
} JOBOBJECT_BASIC_ACCOUNTING_INFORMATION;
38. Поняття потоку. Створення, призупинення, поновлення та завершення потоків.
Поток - исполняющая единица, которая располагается в адресном пространстве процесса и использует выделяемые ей ресурсы. Управляется поток менеджером объектов и имеет такие атрибуты:
Идентификатора потока – уникальное значение, которое идентифицирует поток при его обращении к серверу;
Контекст потока – информация, необходимая ОС для того, чтобы обеспечивать выполнение потока в случае его прерывания. Содержится текущее состояние регистров, стеков и индивидуальной области памяти.
Динамический приоритет – значение приоритета потока в конкретный момент времени
Базовый приоритет – нижнее значение динамического приоритета потока
Процессорная совместимость потока – перечень типов процессоров, на которых данный поток может выполняться.
Время выполнения потока – время выполнения потока в режиме потока и в режиме ядра за время существования потока
Состояние предупреждения – флаг, который показывает, что поток должен выполнять вызов асинхронной процедуры
Счетчик приостановок – текущее количество приостановок выполнения потока.
Создание потока.
Для создания потока используется функция CreateThread:
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes, //атрибуты безопасности
DWORD dwStackSize, // начальный размер стека(байт)
LPTHREAD_START_ROUTINE lpStartAddress, // Потоковая функция
LPVOID lpParameter, //Параметр
DWORD dwCreationFlags, //Флаги создания
LPDWORD lpThreadId// Указатель идентификатора потока
);
Завершение потока
При завершении потока ОС выполняет следующие действия:
-освобождаются User-объекты, принадлежащие потоку(окна и ловушки – hook);
-код завершения меняется с STILL_ACTIVE(ещё активный) на код завершения функции;
-объект ядра Поток переводится в свободное состояние(Signaled);
-счетчик использования уменьшается на 1;
-если данный поток является последним потоком процесса, то уничтожается процесс. Объект ядра Поток не освобождается. Для освобождения памяти, выделенной для ядра, используется функция CloseHandle.
Приостановка и возобновление потоков.
Поток может запретить для себя выделять кванты времени в течение определённого интервала времени. Для этого используется функция Sleep:
void Sleep(DWORD dwMilliseconds);
dwMilliseconds – интервал времени в миллисекундах, в течение которого ОС не будет выделять кванты времени потоку.