- •1. Поняття ос, її призначення та функції.
- •1. Понятие операционной системы. Назначение, состав и функции операционных систем.
- •2. Історія розвитку ос. Класифікація сучасних ос.
- •3. Основные принципы построения ос.
- •4. Операционные оболочки.
- •5. Драйверы и утилиты.
- •6. Процессы. Определение процесса. Классификация процессов ос.
- •4. Функциональные компоненты ос. Общая характеристика
- •7. Ресурсы. Определение ресурса. Классификация ресурсов ос.
- •3. Функціональні компоненти ос.
- •5. Требования к современным ос
- •4. Ядро ос. Привілейований режим і режим користувача. Системний виклик.
- •Рхитектура ос
- •Ядро и вспомогательные модули ос
- •Ядро в привилегированном режиме
- •Микроядерная архитектура
- •Тенденции в структурном построении ос
- •Монолитные системы
- •Многоуровневые системы
- •6. Ос та її оточення. Взаємодія ос і апаратного забезпечення. Засоби апаратної підтримки ос
- •Взаимодействие с аппаратным обеспечением
- •По сфере применения[править | править вики-текст]
- •Содержание
- •Описание и использование интерфейсов[править | править вики-текст]
- •Интерфейсы и абстрактные классы[править | править вики-текст]
- •Множественное наследование и реализация интерфейсов[править | править вики-текст]
- •8. Особливості архітектури Windows. Компоненти режиму ядра. Компоненти режиму користувача. Архитектура Windows nt
- •Режим пользователя[править | править вики-текст]
- •Режим ядра[править | править вики-текст]
- •9. Процеси і потоки в сучасних ос. Складові елементи процесів і потоків. Багатопотоковість. Стани процесів і потоків. Поток выполнения
- •Отличие от процессов[править | править вики-текст]
- •Многопоточность[править | править вики-текст]
- •10. Інтерфейс Windows api. Версії Windows api. Категорії функцій Windows api.
- •Содержание
- •Общие сведения[править | править вики-текст]
- •Содержание
- •Api как средство интеграции приложений[править | править вики-текст]
- •Сигнатура функции[править | править вики-текст]
- •Семантика функции[править | править вики-текст]
- •Api операционных систем. Проблемы, связанные с многообразием api[править | править вики-текст]
- •Структура security_attributes
- •Возвращаемые значения
- •Замечания
- •Содержание
- •Общие сведения[править | править вики-текст]
- •Секреты многопоточности: изучаем модульное тестирование в сфере мобильного программинга
- •Объект ядра Событие
- •Объект ядра Мьютекс
- •Пример работы Mutex
- •Объект ядра Семафор (semaphore)
- •Критические секции
- •Атомарные операции
- •Заключение
- •15. Потоки. Функція CreateThread. Завершення потоку. Зміна класу пріоритету процесу. Установка відносного пріоритету потоку.
- •17. Робота з файлами, каталогами і дисками в Win32. Отримання інформації про диски, вільний простір.
- •18. Функція CreateFile та її параметри. Функция CreateFile
- •Коммуникационные ресурсы
- •19. Функції Windows api для пошуку файлів. Применение функций Windows api
- •Функции LoadKeyboardLayout и UnloadKeyboardLayout
- •Функция GetLocalTime
- •Функция GetTickCount
- •Функция GlobalMemoryStatus
- •Функция Sleep
- •Функции для работы с guid
- •Функция ShellExecute
- •Функция shFileOperation
- •20. Функції Windows api для читання даних з файлу та запису в файл. Синхронні і асинхронні операції з файлами. Функции api для работы с консолью
- •Использование русского языка в консоли с помощью api
- •Чтение/запись данных в консоль/файл
- •Установка заголовка окна консоли
- •Установка цвета символов и фона в консоли
- •Установка позиции курсора
Функция GetTickCount
Функция GetTickCount из библиотеки Kernel32.dll возвращает количество миллисекунд, прошедшее с момента запуска системы. Минимальный интервал времени в Windows - около 55 миллисекунд. Вот её прототип:
DWORD GetTickCount(VOID)
Объявление функции в Visual FoxPro:
DECLARE Long GetTickCount IN WIN32API
Пример вызова функции из вашего приложения:
nMilliSeconds = GetTickCount()
Функция GlobalMemoryStatus
Функция GlobalMemoryStatus из библиотеки Kernel32.dll предоставляет информацию об использовании физической и виртуальной памяти компьютера. Вот её прототип:
VOID GlobalMemoryStatus(
LPMEMORYSTATUS lpBuffer // Адрес структуры MemoryStatus
);
Тип данных LPMEMORYSTATUS - это указатель на структуру MemoryStatus:
typedef struct _MEMORYSTATUS {
DWORD dwLength; // Размер структуры
DWORD dwMemoryLoad; // Процент использования памяти
DWORD dwTotalPhys; // Физическая память, байт
DWORD dwAvailPhys; // Свободная физическая память, байт
DWORD dwTotalPageFile; // Размер файла подкачки, байт
DWORD dwAvailPageFile; // Свободных байт в файле подкачки
DWORD dwTotalVirtual; // Виртуальная память, используемая процессом
DWORD dwAvailVirtual; // Свободная виртуальная память
} MEMORYSTATUS, *LPMEMORYSTATUS;
Функция не возвращает никаких значений. Вот её объявление в Visual FoxPro:
DECLARE GlobalMemoryStatus IN WIN32API String @ MemoryStatus
В следующем примере показан код функции GlobalMemory, которая вызывает Windows API функцию GlobalMemoryStatus и заполняет массив taMemoryStatus данными из структуры MemoryStatus:
FUNCTION GlobalMemory
PARAMETERS taMemoryStatus
EXTERNAL ARRAY taMemoryStatus
DIMENSION taMemoryStatus[7]
LOCAL lcMemoryStatus
DECLARE GlobalMemoryStatus IN WIN32API String @
lcMemoryStatus = CHR(32) + REPLICATE(CHR(0), 31) && Подготовка структуры
GlobalMemoryStatus(@lcMemoryStatus)
taMemoryStatus[1] = CTOBIN(SUBSTR(lcMemoryStatus,5,4), '4RS')
taMemoryStatus[2] = CTOBIN(SUBSTR(lcMemoryStatus,9,4), '4RS')
taMemoryStatus[3] = CTOBIN(SUBSTR(lcMemoryStatus,13,4), '4RS')
taMemoryStatus[4] = CTOBIN(SUBSTR(lcMemoryStatus,17,4), '4RS')
taMemoryStatus[5] = CTOBIN(SUBSTR(lcMemoryStatus,21,4), '4RS')
taMemoryStatus[6] = CTOBIN(SUBSTR(lcMemoryStatus,25,4), '4RS')
taMemoryStatus[7] = CTOBIN(SUBSTR(lcMemoryStatus,29,4), '4RS')
RETURN
ENDFUNC
Структура MemoryStatus формируется в переменной lcMemoryStatus. В первое поле структуры заносится значение её длины (32 байта). Остальные поля заполняются нулями.
После выполнения функции GlobalMemoryStatus структура MemoryStatus "расшифровывается" при помощи функции CTOBIN.
Пример вызова функции GlobalMemory из вашего приложения:
LOCAL lcInfo, laMemoryStatus[1]
DECLARE GlobalMemoryStatus IN WIN32API String @
GlobalMemory(@laMemoryStatus)
lcInfo = 'Физическая память, байт: ' + LTRIM(STR(laMemoryStatus[2])) + ;
', свободно: ' + LTRIM(STR(laMemoryStatus[3])) + CHR(13) + ;
'Виртуальная память, байт: ' + LTRIM(STR(laMemoryStatus[6])) + ;
', свободно: ' + LTRIM(STR(laMemoryStatus[7]))
= MESSAGEBOX(lcInfo)
