
- •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.Синхронізація. Використання семафорів для розподілу множини ресурсів
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 – интервал времени в миллисекундах, в течение которого ОС не будет выделять кванты времени потоку.