- •Министерство образования и науки российской федерации
- •«Самарский государственный технический университет»
- •Ю. В. Калмыков, а. В. Тараканов
- •Введение
- •1. Содержание и объем курсовой работы
- •2. Оформление курсовой работы
- •3. Распараллеливание обработки
- •4. Потоковая обработка информации
- •4.1. Организация потоковой обработки информации
- •4 14 .2. Построение программ коммутации
- •Программа коммутации
- •5. Организация параллельных
- •6. Пример создания мультипоточного
- •В качестве альтернативного способа достижения высокой скорости вычислений является написание программного кода на языке ассемблера.
- •7. Определение временных
- •Первоначально необходимо установить настройки среды программирования, как показано на рис. 7.1 – 7.3.
- •8. Порядок выполнения работы
- •9. Содержание расчетно-пояснительной
- •Сызрань 2010 Приложение п2
- •1) Функция изменения состояния синхронизирующего объекта события, устанавливающая его в состояние “Включено”.
- •Продолжение прил. П2
- •Продолжение прил. П2
- •Продолжение прил. П2
- •Окончание прил. П2
- •Продолжение прил. П3
- •Продолжение прил. П3
- •Продолжение прил. П3
- •Продолжение прил. П3
- •Продолжение прил. П3
- •Окончание прил. П3
- •Приложение п5
- •Продолжение прил. П5
- •Продолжение прил. П5
- •Окончание прил. П5
- •Приложение п6
- •Библиографический список
- •Оглавление
- •Системное программное обеспечение
- •443100, Г. Самара, ул. Молодогвардейская, 244. Главный корпус
- •446001, Г. Сызрань, ул. Советская, 45
Продолжение прил. П2
Msg – сообщение, которое необходимо отправить;
wParam, lParam – дополнительные параметры.
9) Функция создания треда.
HANDLE CreateThread(LPSECURITY_ATTRIBUTES
lpThreadAttributes, SIZE_T dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress, LPVOID
lpParametr, DWORD dwCreationFlags, LPDWORD
lpThreadId)
lpThreadAttributes – указатель на атрибуты безопасности;
dwStackSize – размер стека треда в байтах;
lpStartAddress – указатель на адрес функции треда;
lpParametr – параметр передаваемый функции треда;
dwCreationFlags – дополнительный флаг управления созданием треда;
lpThreadId – идентификатор треда.
10) Функция установки приоритета треда.
BOOL SetThreadPriority(HANDLE hThread, int nPriority)
hThread – хендл треда;
nPriority – уровень приоритета треда.
11) Функция немедленного прерывания треда.
BOOL TerminateThread(HANDLE hThread, DWORD
dwExitCode)
hThread – хендл прерываемого треда;
dwExitCode – код выхода.
12) Функция, отправляющая определенное сообщение окну или окнам.
LRESULT SendMessage(HWND hWnd, UINT Msg,
WPARAM wParam, LPARAM lParam)
hWnd – хендл окна назначения;
Msg – отправляемое сообщение;
wParam, lParam – дополнительные параметры.
Продолжение прил. П2
13) Функция закрытия диалогового окна.
BOOL EndDialog(HWND hDlg, INT_PTR nResult)
hDlg – хендл диалогового окна;
nResult – возвращаемое значение.
14) Функция создания синхронизирующего объекта события.
HANDLE CreateEvent(LPSECURITY_ATTRIBUTES
lpEventAttributes, BOOL bManualReset, BOOL
bInitialState, LPCTSTR lpName)
lpEventAttributes – атрибуты безопасности;
bManualReset – состояние объекта события, устанавливаемое Windows автоматически выключено (false), или включено (true);
bInitialState - состояние объекта события при создании выключено (false), или включено (true);
lpName – указатель на строку, содержащую имя объекта события.
15) Функция обработки сообщений диалогового окна.
LRESULT CALLBACK DlgProc(HWND hDlg, UINT uMsg,
WPARAM wParam, LPARAM lParam)
hDlg – хендл диалогового окна;
uMsg – сообщение, посылаемое диалоговому окну;
wParam, lParam - дополнительные параметры.
16) Функция создания диалогового окна.
INT_PTR DialogBoxParam(HINSTANCE hInstance,
LPCTSTR lpTemplateName, HWND hWndParent,
DLGPROC lpDialogFunc, LPARAM dwInitParam)
hInstance – хендл приложения;
lpTemplateName – шаблон диалогового окна;
hWndParent – хендл окна, которому принадлежит диалог;
lpDialogFunc – указатель на процедуру обработки диалогового окна;
dwInitParam – определенное значение, передаваемое диалоговому окну.
Окончание прил. П2
17) Функция, вызываемая системой и являющаяся точкой входа в Windows-приложениях.
int WinMain(HINSTANCE hInstance, HINSTANCE
hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
hInstance – хендл текущего приложения;
hPrevInstance – хендл предыдущего приложения;
lpCmdLine – указатель на командную строку приложения;
nCmdShow – параметр, определяемый видимость окна.
18) Функция, загружающая иконку-ресурс.
HICON LoadIcon(HINSTANCE hInstance, LPCTSTR
lpIconName)
hInstance – хендл приложения;
lpIconName – имя строки или идентификатор ресурса.
19) Функция, помещающая строку и значения переменной в буфер.
int wsprintf(LPTSTR lpOut, LPCTSTR lpFmt, …)
lpOut – указатель на буфер, куда будет помещена строка и значение переменной;
lpFmt – строка, помещаемая в буфер;
Далее следуют выборочные параметры (в листинге примера это имя переменной).
20) Функция, возвращающая длину строки в байтах или символах.
int lstrlen(LPCTSTR lpString)
lpString – указатель на строку
Приложение П3
//Директивой препроцессора подключаются
//заголовочные файлы
#include <windows.h>
#include <math.h>
#include "main.h"
#include "resource.h"
//Объявление глобальных переменных
DWORD input_var[13]; // Массив входных переменных
HANDLE event_obj[6]; // Массив хендлов объектов //синхронизации
HANDLE hThread[4]; // Массив хендлов тредов
//Массив указателей на функции тредов
LPTHREAD_START_ROUTINE pThread[4] = { (LPTHREAD_START_ROUTINE)Thread1,
(LPTHREAD_START_ROUTINE)Thread2,
(LPTHREAD_START_ROUTINE)Thread3,
(LPTHREAD_START_ROUTINE)Thread4
};
//Хендл диалогового окна
HWND hMainDlg;
//Функция - первый тред
void Thread1() {
char buf[20];
//Функцией addstr в ListBox выводится текст (см.
//main.h)
addstr(#1: Starting thread ...);
addstr(#1: a = a + b ...);
//Ассемблерная вставка, для подсчета суммы a
//b
__asm {
mov eax, input_var[B]
add input_var[A], eax
}
addstr(#1: Set event S12 ...);
//Функция установки объекта события
SetEvent(event_obj[S12]);
addstr(#1: m = sqrt(m) ...);
input_var[M] = (DWORD)sqrt((double)input_var[M]);
addstr(#1: l = l - m ...);
input_var[L] -= input_var[M];
