
- •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.Синхронізація. Використання семафорів для розподілу множини ресурсів
20. Механизмы работы с памятью. Использование «кучи».
Механизмы работы с памятью:
Виртуальная память (используется для работы с большими объемами памяти);
Отображение файлов на память (используется для быстрой работы с файлом, если необходимо его записиобрабатывать в произвольном порядке, для создания разделяемой памяти между процессами)№
«Кучи» (используются для выделения небольших объемов памяти в приложении).
«Куча» - это зарезервированный (не закрепленный) участок адресного пространства. По мере использования этой памяти диспетчер «кучи» закрепляет за ней память из страничного файла. При освобождении памяти диспетчер «кучи» возвращает страницы системе.
«Куча» всегда может использоваться только одним процессом. Один процесс может иметь несколько «куч».
При создании процесса ОС ставит ему в соответствие стандартную «кучу» размером 1 Мбайт. Этот параметр можно переопределить в командной строке компоновщика или в среде. Сами функции win32 используют «кучи», поэтому уменьшать размер не стоит. Диспетчер «кучи» следит за тем, чтобы отдельные потоки одновременно не имели доступа к «куче». Стандартную «кучу» создает сама ОС и уничтожает она ее сама. Дескриптор стандартной «кучи» возвращает функция GetProcessHeap:
HANDLE GetProcessHeap(VOID).
Дескриптор стандартной «кучи» можно использовать для выделения памяти с помощью функции HeapAlloc ():
LPVOID HeapAlloc(
HANDLE hHeap, //дескриптор личного блока («кучи»)
DWORD dwFlags, //определяет флаги, которые более
//приоритетны, чем флаги при создании «кучи»
DWORD dwBytes //количество выделенных байт);
Возвращаемое значение:
Успех – адрес начала выделенной памяти.
Ошибка и не задано HEAP_GENERATE_EXCEPTIONS, функция возвращает NULL, а если задано, функция генерирует исключение (STATUS_NO_MEMORY – недостаток доступной памяти, STATUS_ACCESS_VIOLATION – неверные параметры функции).
Кроме кучи, предусмотренной по умолчанию, можно использовать дополнительные области памяти («кучи»).
Создание «кучи». Для создания используется функция HeapCreate. Функция выделяет непрерывный блок памяти в виртуальном адресном пространстве текущего процесса и выделяет физическую память для начального блока выделенной памяти.
HANDLE HeapCreate(
DWORD flOptions, // определяет атрибуты новой «кучи»
DWORD dwInitialSize, // определяет начальный размер блока в байтах
DWORD dwMaximumSize // максимальный размер в байтах
);
Возвращаемое значение:
Успех – дескриптор области памяти.
Ошибка – NULL.
21. Исследование виртуальной памяти. Системная информация.
Формируется функцией GetSystemInfo:
VOID GetSystemInfo (LPSYSTEM_INFO lpSystemInfo);
lpSystemInfo – адрес начала структуры типа SYSTEM_INFO с системной информацией.
Структура SYSTEM_INFO:
Typedef struct_SYSTEM_INFO{ //sinf
union{
DWORD dwOemld; //остается для совместимости с предыдущими
//версиями WINDOWS
struct{
WORD wProcessorArchitecture; //определяет архитектуру системного
//процессора
WORD wReserved; //резерв
DWORD dwPageSize; //размер страницы
LPVOID lpMinimumApplicationAddress; //указатель на минимальный
//адрес, доступный приложению и DLL
LPVOID lpMaximumApplicationAddress; //указатель на максимально
//допустимый адрес, доступный приложению и DLL
DWORD dwActiveProcessorMask; //определяет маску для
//рассматриваемого процессора системы
DWORD dwNumberOfProcessors; //количество процессоров в системе
DWORD dwProcessorType; //используется для совместимости со
//старыми ОС
DWORD dwAllocationGranularity; //определяет адрес выравнивания и
//единицу измерения выделяемой виртуальной памяти
WORD wProcessorLevel; //дополнительные сведения о процессоре
WORD wProcessorRevision; //определяет архитектурно зависимую
//дополнительную информацию о процессоре
}SYSTEM_INFO;