Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания для контрольной по ОСиУБД (весенний сем...doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
73 Кб
Скачать
☆

Вариант 2

Средствами Windows создать и запустить 3 потока (функция CreateThread), первый из которых периодически считывает текстовую информацию из заранее подготовленного текстового буфера (массив с элементами типа char, реализованный в виде проекции файла) и отображает еѐ на форме (с помощью системных функций передачи сообщений).

Второй поток постоянно (в фоновом режиме) сканирует содержимое буфера и производит замену всех букв “а” на буквы “б”.

Третий поток постоянно (в фоновом режиме) сканирует содержимое буфера и производит замену всех букв “б” на буквы “а”.

Для синхронизации потоков при доступе к буферу памяти использовать семафоры. Для создания семафора использовать функцию CreateSemaphore. Для управления занятостью ресурса поток должен вызывать функцию ReleaseSemaphore. Для обеспечения доступа потока к разделяемому ресурсу необходимо использовать функцию ожидания освобождения ресурса WaitForSingleObject.

Предусмотреть возможность изменение приоритета каждого потока (функции GetThreadPriority и SetThreadPriority), приостановки потока (функция SuspendThread) и принудительного завершения потока (функция TerminateThread). --------------------------------------------------------------------------------------------------------------------------------------

Вариант 3

Средствами Windows создать и запустить 3 потока (функция CreateThread), первый из которых периодически считывает текстовую информацию из заранее подготовленного текстового буфера (массив с элементами типа char, реализованный в виде проекции файла) и отображает еѐ на форме (с помощью системных функций передачи сообщений).

Второй поток постоянно (в фоновом режиме) сканирует содержимое буфера и производит замену всех букв “а” на буквы “б”.

Третий поток постоянно (в фоновом режиме) сканирует содержимое буфера и производит замену всех букв “б” на буквы “а”.

Для синхронизации потоков при доступе к буферу памяти использовать мьютексы. Для создания мьютекса использовать функцию CreateMutex. Для управления занятостью ресурса поток должен вызывать функцию ReleaseMutex. Для обеспечения доступа потока к разделяемому ресурсу необходимо использовать функцию ожидания освобождения ресурса WaitForSingleObject.

Предусмотреть возможность изменение приоритета каждого потока (функции GetThreadPriority и SetThreadPriority), приостановки потока (функция SuspendThread) и принудительного завершения потока (функция TerminateThread).

--------------------------------------------------------------------------------------------------------------------------------------

Вариант 4

Средствами Windows создать и запустить 3 потока (функция CreateThread), первый из которых периодически считывает текстовую информацию из заранее подготовленного текстового буфера (массив с элементами типа char, реализованный в виде проекции файла) и отображает еѐ на форме (с помощью системных функций передачи сообщений).

Второй поток постоянно (в фоновом режиме) сканирует содержимое буфера и производит замену всех букв “а” на буквы “б”.

Третий поток постоянно (в фоновом режиме) сканирует содержимое буфера и производит замену всех букв “б” на буквы “а”. Для синхронизации потоков при доступе к буферу памяти использовать критические секции.

Предусмотреть возможность изменение приоритета каждого потока (функции GetThreadPriority и SetThreadPriority), приостановки потока (функция SuspendThread) и принудительного завершения потока (функция TerminateThread).

--------------------------------------------------------------------------------------------------------------------------------------