Операционные системы. Кручинин А.Ю. - 48 стр.

UptoLike

Составители: 

48
2. Написать программу «Приѐмник данных» со следующими функциями:
опрос по таймеру файла, на наличие в нѐм сообщений;
приѐм и обработка сообщения WM_COPYDATA от «Источника данных».
Контрольные вопросы:
1. Каковы параметры функции CreateProcess?
2. Каковы режимы чтения и записи файлов?
3. Какой формат сообщения WM_COPYDATA?
4. Как осуществляется приѐм и обработка сообщения WM_COPYDATA?
Для самостоятельного изучения:
1. Другие способы сообщения между независимыми процессами.
4.7 Управление потоками и работа с файлами средствами Win32API
Для создания дополнительных потоков в программе используется функция:
Функция CreateThread
HANDLE CreateThread
(
LPSECURITY_ATTRIBUTES lpThreadAttributes, // дескриптор защиты
SIZE_T dwStackSize, // начальный размер стека
LPTHREAD_START_ROUTINE lpStartAddress, // функция потока
LPVOID lpParameter, // параметр потока
DWORD dwCreationFlags, // опции создания
LPDWORD lpThreadId // идентификатор потока
);
Функция CreateThread создает поток, который выполняется в пределах
виртуального адресного пространства вызывающего процесса. Чтобы создавать
поток, который запускается в виртуальном адресном пространстве другого
процесса, используется функция CreateRemoteThread.
Параметры:
lpThreadAttributes указатель на структуру SECURITY_ATTRIBUTES, которая
обуславливает, может ли возвращенный дескриптор быть унаследован дочерними
процессами. Если lpThreadAttributes является значением NULL, дескриптор не
может быть унаследован.
dwStackSize начальный размер стека, в байтах. Система округляет это значение до
самой близкой страницы памяти. Если это значение нулевое, новый поток
использует по умолчанию размер стека исполняемой программы.
lpStartAddress указатель на определяемую программой функцию типа
LPTHREAD_START_ROUTINE, код которой исполняется потоком и обозначает
начальный адрес потока. Для получения дополнительной информации о функции
потока, см. ThreadProc.
lpParameter указатель на переменную, которая передается в поток.
2. Написать программу «Приѐмник данных» со следующими функциями:
      – опрос по таймеру файла, на наличие в нѐм сообщений;
      – приѐм и обработка сообщения WM_COPYDATA от «Источника данных».

Контрольные вопросы:
1. Каковы параметры функции CreateProcess?
2. Каковы режимы чтения и записи файлов?
3. Какой формат сообщения WM_COPYDATA?
4. Как осуществляется приѐм и обработка сообщения WM_COPYDATA?

Для самостоятельного изучения:
1. Другие способы сообщения между независимыми процессами.

     4.7 Управление потоками и работа с файлами средствами Win32API

     Для создания дополнительных потоков в программе используется функция:

     Функция CreateThread
HANDLE CreateThread
(
    LPSECURITY_ATTRIBUTES lpThreadAttributes,     // дескриптор защиты
    SIZE_T dwStackSize,                           // начальный размер стека
    LPTHREAD_START_ROUTINE lpStartAddress,        // функция потока
    LPVOID lpParameter,                           // параметр потока
    DWORD dwCreationFlags,                        // опции создания
    LPDWORD lpThreadId                            // идентификатор потока
);

      Функция CreateThread создает поток, который выполняется в пределах
виртуального адресного пространства вызывающего процесса. Чтобы создавать
поток, который запускается в виртуальном адресном пространстве другого
процесса, используется функция CreateRemoteThread.
      Параметры:
lpThreadAttributes – указатель на структуру SECURITY_ATTRIBUTES, которая
обуславливает, может ли возвращенный дескриптор быть унаследован дочерними
процессами. Если lpThreadAttributes является значением NULL, дескриптор не
может быть унаследован.
dwStackSize – начальный размер стека, в байтах. Система округляет это значение до
самой близкой страницы памяти. Если это значение нулевое, новый поток
использует по умолчанию размер стека исполняемой программы.
lpStartAddress – указатель на определяемую программой функцию типа
LPTHREAD_START_ROUTINE, код которой исполняется потоком и обозначает
начальный адрес потока. Для получения дополнительной информации о функции
потока, см. ThreadProc.
lpParameter – указатель на переменную, которая передается в поток.

                                                                              48