- •ОПЕРАЦИОННЫЕ
- •Лабораторная работа №1. Функции получения системной информации
- •Задание
- •Начинаем с определения и структуры работы
- •Пути получения имени компьютера
- •Примерный результат работы
- •Получение версии Windows
- •2.1. GetVersion()
- •2.2. GetVersionEx()
- •Версии Windows
- •4. Из реестра
- •Лабораторная работа №2.
- •Как делать
- •switch (pressedKey)
- •Результат работы
- •Лабораторная работа №3. Методы синхронизация потоков
- •Синхронизация
- •Межпроцессное
- •Используемые средства синхронизации
- •Критическая секция
- •Мьютексы
- •Пример. Критическая секция
- •Результат
- •Пример. Мьютекс
- •Пример. События
- •Результат
- •Лабораторная работа №4. Архитектура памяти Windows
- •Подзадача: вывод информации
- •Получение информации о памяти
- •Результат
- •Карта памяти
Используемые средства синхронизации
■Критическая секция
■Мьютекс
■Событие
Критическая секция
■Критическая секция – это часть программы, результат выполнения которой может непредсказуемо меняться, если переменные, относящиеся к этой части программы, изменяются другими потоками в то время, пока выполнение этой части еще не завершено.
■Критическая секция всегда определяется по отношению к определенным критическим данным, при несогласованном изменении которых могут возникнуть нежелательные эффекты.
■Чтобы исключить эффект гонок по отношению к критическим данным, необходимо обеспечить, чтобы в каждый момент времени в критической секции, связанной с этими данными, находился только один поток.
Мьютексы
■Мьютексы (от MUTual Exclusion -взаимоисключения) – объекты ядра, позволяют координировать взаимное исключение доступа к разделяемому ресурсу.
■Системные семафоры - принцип действия мьютексов, но в них заложена возможность подсчета ресурсов, что позволяет заранее определенному числу потоков одновременно войти в синхронизуемый участок кода.
сСо
Событиямр используются в качестве сигналов о завершенииоау какой-либо операции.
чт бин ыч ыме
с
тбк ир имо
с
ябо мр
о
с
о
м
Пример. Критическая секция
Выбор задачи: эмуляция непрерывного сохранения данных разными потоками в общей базе данных
Результат
Пример. Мьютекс
Запуск приложения в единственном экземпляре
Пример. События
Последовательный запуск и ожидание выполнения двух поток