Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Топ:
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Интересное:
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Дисциплины:
2017-06-19 | 384 |
5.00
из
|
Заказать работу |
|
|
В качестве потока запускается подпрограмма MyThread.
Практическая часть
//Практическое занятие № 24
//Группа xxxxxx Терминал N ФИО
#include "stdafx.h"
#include "windows.h" // win32 API
#include <locale.h> // подключение Русского языка
#include <iostream> // инструкции c++ std,cout,cin …
using namespace std; // пространство стандартных имен */
DWORD WINAPI MyThread(LPVOID lpParam) { //Поток MyThread
cout << "Parameter = " << *(DWORD*)lpParam << endl;
return 0;
}
VOID main() {
DWORD ThreadId, ThreadParameter = 10;
HANDLE hThread;
hThread = CreateThread(//Создание потока MyThread
NULL, // атрибуты безопасности по умолчанию
Размер стека по умолчанию
MyThread, // указатель на процедуру создаваемого потока
&ThreadParameter, // аргумент, передаваемый функции потока
Флаги создания по умолчанию
&ThreadId); // возвращаемый идентификатор потока
if (hThread == NULL) cout << "CreateThread failed." << endl;
getchar();
cout << "ThreadId="<<ThreadId<< endl;
CloseHandle(hThread);
}
/* При выполнении данной практической работы я освоил
*/
Практическое занятие №25
1. Краткие теоретические сведения:
Программа запускает два потока. Первый поток First Thread запускается главной программой main, второй поток SecondThread запускается системной функцией CreateThread. Оба потока выполняют подпрограмму длинного счета Calculations(). У потока SecondThread меняется приоритет с помощью системной функции SetThreadPriority и констант THREAD_PRIORITY_ABOVE_NORMAL (увеличить приоритет на единицу) или THREAD_PRIORITY_LOWEST (понизить приоритет на 2 единицы). В зависимости от приоритета поток SecondThread должен заканчиваться раньше или позже чем First Thread. В программе также использованы системные функции SuspendThread и ResumeThread для останова и запуска процесса SecondThread.
Практическая часть
//Практическое занятие № 25
//Группа xxxxxx Терминал N ФИО
|
#include "stdafx.h"
#include "windows.h" // win32 API
#include <locale.h> // подключение Русского языка
#include <iostream> // инструкции c++ std,cout,cin …
using namespace std; // пространство стандартных имен */
//Подпрограмма длинного счета
void Calculations() {
int i,N=50000000;
double a,b;
for (i = 0; i<N; i++) {
b=(double)i / (double)N;
a=sin(b); }
}
//Поток SecondThread
DWORD WINAPI SecondThread(LPVOID lpParam) {
cout<<endl<<"Begin of Second Thread"<<endl;
Calculations();//Длинный расчет
cout<<"End of Second Thread"<<endl;
return 0;
}
VOID main() {
DWORD dwThreadId, dwThrdParam=0;
HANDLE hThread;
hThread = CreateThread(//Создание потока SecondThread
NULL,
0,
SecondThrea d,
&dwThrdParam,
0,
&dwThreadId);
if (hThread == NULL)
{
cout<<"CreateThread failed" <<endl;
return;
}
//Повышение или понижение приоритета потока
SetThreadPriority(hThread, THREAD_PRIORITY_ABOVE_NORMAL);
//SetThreadPriority(hThread, THREAD_PRIORITY_LOWEST);
SuspendThread(hThread); //Останов потока
cout<<"Get some symbol"<<endl;
getchar();
ResumeThread(hThread); //Запуск потока
cout<<"Begin of First Thread "<<endl;
Calculations(); //длинный расчет
cout<<"End of First Thread"<<endl;
getchar();
}
/* При выполнении данной практической работы я освоил
*/
Лекция 11. Межпроцессный обмен
К основным способам межпроцессного обмена традиционно относят каналы и разделяемую память.
Введение
Из курса ОС известно, что для выполнения таких задач, как совместное использование данных, построение интегрированных многофункциональных приложений и т.д., различным процессам (а также различным потокам) необходимо взаимодействовать между собой. Поскольку процессы изначально задумывались как обособленные сущности, для обеспечения корректного взаимодействия процессов требуются специальные средства и действия операционной системы.
В основе межпроцессного (Inter Process Communications, IPC) обмена обычно находится разделяемый ресурс (например, канал или сегмент разделяемой памяти). Обычно такой ресурс может быть доступен всем процессам, которые знают его имя и имеют необходимые привилегии.
Кроме того, организация связи между процессами всегда предполагает установления таких ее характеристик, как:
|
· направление связи. Связь бывает однонаправленная (симплексная) и двунаправленная (полудуплексная для поочередной передачи информации и дуплексная с возможностью одновременной передачи данных в разных направлениях);
· тип адресации. В случае прямой адресации информация посылается непосредственно получателю, например, процессу P-Send (P, message). В случае непрямой или косвенной адресации информация помещается в некоторый промежуточный объект, например, в почтовый ящик;
· используемая модель передачи данных - потоковая или модель сообщений (см. ниже);
· объем передаваемой информации;
· синхронность обмена данными. Если отправитель сообщения блокируется до получения этого сообщения адресатом, то обмен считается синхронным, в противном случае - асинхронным.
Кроме перечисленных у каждой связи есть еще ряд особенностей.
|
|
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!