Механизмы параллельных вычислений в Windows. Разработка справочной системы
Рефераты >> Программирование и компьютеры >> Механизмы параллельных вычислений в Windows. Разработка справочной системы

Рекомендуемые характеристики:

1. тактовая частота микропроцессора 500 MГц

2. оперативная память - 128 Mб

3. видеокарта – 16 Мб оперативной памяти.

4. монитор – 15 ”, 32 бит цветопередача.

5. операционная система – Windows 2k/ XP/ .NET.

ВЫВОД

Главным критерием качества распараллеливания вычислений является сокращение общего времени решения задачи. На основе параллельных вычислений разработано параллельное программирование, но оно представляет дополнительные источники сложности - необходимо явно управлять работой тысяч процессоров, координировать миллионы межпроцессорных взаимодействий. Решение этих вопросов было рассмотрено в теоретической части курсового проекта.

Во второй (практической) части курсового проекта, была рассмотрена программа для рисования графических примитивов и вызова справки по функциям WinAPI. Данная программа может быть использована в обучающих целях, при рассмотрении задач рисования графических примитивов.

В программе были решены такие задачи:

1. Выбор графических фигур,

2. прорисовки выбранных фигур на экране,

3. вызов справки.

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

1. Саймон Р. Windows 2000 API. Энциклопедия программиста. – К.: ООО "ДиасофтЮП", 2002. – 1085 с.

2. http://parallel.ru/vvv/lec7.html

3. http://www.ccas.ru/paral/prog/comm_msg/intro.html

5. http://osp.admin.tomsk.ru/os/index.htm

6. http://www.csa.ru/~il/pvm_tutor/

7. MSDN

ПРИЛОЖЕНИЕ А

ЛИСТИНГ ПРОГРАММЫ

//Файл Shapes.cpp

#define STRICT

#include <windows.h>

#pragma hdrstop

#include <string.h>

#include <windowsx.h>

#include "shapes.h"

char szAppName[10]; // name of application

HINSTANCE hInst; // hInstance of application

HWND hWndMain; // hWnd of main window

HWND hQryDlgBox; // handle of modeless dialog box

HWND hDlgSelect;

HGLOBAL hdlgr; // handle of dialog resource

FARPROC lpModelessProc; // pointer to proc for modeless box

HDC hdc;

PAINTSTRUCT ps;

HMENU hMenu, hMenuFile, hMenuAvt;

bool flag = false;

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,

LPSTR lpszCmdLine, int cmdShow);

void InitMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,

LPSTR lpszCmdLine, int cmdShow);

LRESULT CALLBACK MainWndProc(HWND hWnd, UINT message,

WPARAM wParam, LPARAM lParam);

void InitMainDlg(HWND hWnd);

BOOL CALLBACK MainDlgBoxProc(HWND hDlg, UINT message,

WPARAM wParam, LPARAM lParam);

LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);

LRESULT CALLBACK Select(HWND, UINT, WPARAM, LPARAM); // диалог выбора фигур

void fillb(HWND hDlg, int ID);

void PaintShapes(HWND hDlg);

//---------------------------------------------------------------------

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,

LPSTR lpszCmdLine, int cmdShow)

{

MSG msg;

// Go init this application.

InitMain(hInstance, hPrevInstance, lpszCmdLine, cmdShow);

// Get and dispatch messages for this applicaton.

while (GetMessage(&msg, NULL, 0, 0))

{

if(!hQryDlgBox || !IsWindow(hQryDlgBox) ||

!IsDialogMessage( hQryDlgBox, &msg))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

}

return(msg.wParam);

}

void InitMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,

LPSTR lpszCmdLine, int cmdShow)

{

WNDCLASS wcMainClass;

// Get string from resource with application name.

LoadString(hInstance, IDS_NAME, (LPSTR)szAppName, 10);

// Define the window class for this application.

wcMainClass.lpszClassName = szAppName;

wcMainClass.hInstance = hInstance;

wcMainClass.lpfnWndProc = MainWndProc;

wcMainClass.hCursor = LoadCursor(NULL, IDC_ARROW);

wcMainClass.hIcon = LoadIcon(hInstance, szAppName);

wcMainClass.lpszMenuName = (LPSTR) NULL;

wcMainClass.hbrBackground = (HBRUSH)(COLOR_APPWORKSPACE);//GetStockObject(WHITE_BRUSH);

wcMainClass.style = CS_HREDRAW | CS_VREDRAW;

wcMainClass.cbClsExtra = 0;

wcMainClass.cbWndExtra = 0;

// Register the class

RegisterClass(&wcMainClass);

hInst = hInstance; // save for use by window procs

// Create applications main window.

hWndMain = CreateWindow(

szAppName,

szAppName,

WS_BORDER |

WS_CAPTION |

WS_SYSMENU |

WS_MINIMIZEBOX,

10,

19,

256,

123,

NULL,

NULL,

hInstance,

NULL

);

// Create a thunk for the main dialog box proc function.

lpModelessProc = MakeProcInstance((FARPROC)MainDlgBoxProc, hInst);

InitMainDlg(hWndMain);

}

//*******************************************************************

// MainWndProc - handles messages for this application

//

// paramaters:

// hWnd - The window handle for this message

// message - The message number

// wParam - The WPARAM parmater for this message

// lParam - The LPARAM parmater for this message

//

// returns:

// depends on message.

//

//*******************************************************************

LRESULT CALLBACK MainWndProc(HWND hWnd, UINT message,

WPARAM wParam, LPARAM lParam)

{

switch (message)

{

case WM_MOVE:

// Move the dialog box on top of our main window every

// time the main window moves.

if (IsWindow(hQryDlgBox))

SendMessage(hQryDlgBox, message, wParam, lParam);

break;

case WM_SETFOCUS:

// Always set the input focus to the dialog box.

if (IsWindow(hQryDlgBox))

SendMessage(hQryDlgBox, message, wParam, lParam);

break;

case WM_CLOSE:

// Tell windows to destroy our window.

DestroyWindow(hWnd);

break;

case WM_QUERYENDSESSION:

// If we return TRUE we are saying it's ok with us to end the

// windows session.

return((long) TRUE); // we agree to end session.

case WM_ENDSESSION:

// If wParam is not zero, it meany every application said ok

// to WM_QUERYENDSESSION messages, so we are really ending.

// if all apps aggreed to end session.

// This is the end. We will not get a

// WM_DESTROY message on end session.

break;

case WM_DESTROY:

// This is the end if we were closed by a DestroyWindow call.

PostQuitMessage(0);

break;

default:

return(DefWindowProc(hWnd, message, wParam, lParam));

}

return(0L);

}

//*******************************************************************

// InitMainDlg - put up modeless dialog box

//

// paramaters:

// hWnd - The window handle of the caller

//

//*******************************************************************


Страница: