<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.8.4" -->
<rss version="0.92">
<channel>
	<title>Win 32-эфффективная разработка приложений</title>
	<link>http://efrazrabotka.ru</link>
	<description>Программирования для Windows на языке С/С++ с применением Win32</description>
	<lastBuildDate>Thu, 28 Oct 2010 15:29:05 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>Взаимодействие потоков через глобальную переменную</title>
		<description>Как только вы разобьете приложение на несколько потоков, вам придется решать проблемы, о существовании которых вы даже не подозревали, занимаясь программированием в однопоточном режиме.
Например, простая операция считывания и записи в общую глобальную переменную из нескольких потоков без должной синхронизации, может быть источником ошибок в работе программы.
Первичный поток создает с помощью ...</description>
		<link>http://efrazrabotka.ru/262/</link>
			</item>
	<item>
		<title>Синхронизация</title>
		<description>Кроме проблем, связанных с использованием общих глобальных переменных, у потоков могут быть также проблемы доступа к общим системным ресурсам. Потоки должны взаимодействовать друг с другом в двух основных случаях:
   совместно используя разделяемый ресурс (чтобы не разрушить его);
  когда нужно уведомить другие потоки о завершении каких-либо операций.
Примитив синхронизации ...</description>
		<link>http://efrazrabotka.ru/263/</link>
			</item>
	<item>
		<title>Атомарный доступ и семейство Interlocked-функций</title>
		<description>Большая часть синхронизации потоков связана с атомарным доступом (atomic access) — монопольным захватом ресурса обращающимся к нему потоком. Win32 API предоставляет несколько функций для реализации взаимно блокированных операций. Все Interlocked-функций работают корректно только при условии, что их аргументы выровнены по границе двойного слова (DWORD).
Функция Interlockedlncrement, имеющая прототип
LONG InterlockedIncrement(LPLONG IpAddend); инкрементирует ...</description>
		<link>http://efrazrabotka.ru/264/</link>
			</item>
	<item>
		<title>Критические секции</title>
		<description>Критическая секция (critical section) — это небольшой участок кода, который должен использоваться только одним потоком одновременно. Если в одно время несколько потоков попытаются получить доступ к критическому участку, то контроль над ним будет предоставлен только одному из потоков, а все остальные будут переведены в состояние ожидания до тех пор, пока ...</description>
		<link>http://efrazrabotka.ru/265/</link>
			</item>
	<item>
		<title>Побочные эффекты успешного ожидания</title>
		<description>Успешный вызов функции WaitForSingleObject или WaitForMuttipleObjects на самом деле меняет состояние некоторых объектов ядра. Успешным считается такой вызов, который завершается освобождением соответствующего объекта или объектов. При этом функция возвращает значение WAIT_OBJECT_0 или значение, являющееся смещением относительно WAIT_OBJECT_0. Вызов считается неудачным, если возвращается значение WAIT_TIMEOUT или WAIT_FAILED. В этом случае состояние ...</description>
		<link>http://efrazrabotka.ru/267/</link>
			</item>
	<item>
		<title>Wait-функции</title>
		<description>Многие объекты ядра могут находиться либо в свободном {signaled state), либо
в занятом состоянии (nonsignaled state). К таким объектам относятся:
 процессы;
  потоки;
  задания;
 файлы;
  консольный ввод;
уведомления об изменении файлов;
   события;
   ожидаемые таймеры;
   семафоры;
   мьютексы.
Wait-функции позволяют потоку в любой момент приостановиться ...</description>
		<link>http://efrazrabotka.ru/266/</link>
			</item>
	<item>
		<title>Обмен данными между процессами</title>
		<description>Потоки одного процесса не имеют доступа к адресному пространству другого процесса. Однако существуют специализированные механизмы для передачи данных между процессами. Вообще обмен данными между процессами (Interprocess Communication, IPC) в свое время начинался в виде процедуры перемещения перфокарт из выходного отверстия одного вычислительного устройства в устройство чтения другого вычислительного устройства. Позже, ...</description>
		<link>http://efrazrabotka.ru/269/</link>
			</item>
	<item>
		<title>Физическая память и страничный файл</title>
		<description>Так как на современных компьютерах оперативная память RAM имеет размеры, по крайней мере, на порядок меньше 4 Гбайт, то система имитирует задекларированную память за счет дискового пространства. При этом на диске создается страничный файл (page file), который вместе с физической памятью RAM образует виртуальную память, доступную всем процессам. Другое название ...</description>
		<link>http://efrazrabotka.ru/271/</link>
			</item>
	<item>
		<title>Архитектура интерфейсов (API) управления памятью</title>
		<description>Диспетчер виртуальной памяти (Virtual Memory Manager — VMM) является составной частью ядра операционной системы. Он отображает виртуальные адреса на физические, используя механизм подкачки страниц памяти (page swapping). Кроме того, он предоставляет прикладным программам различные интерфейсы (API) для работы с виртуальной памятью:
   Virtual Memory API — набор функций, позволяющих ...</description>
		<link>http://efrazrabotka.ru/272/</link>
			</item>
	<item>
		<title>Файлы данных, проецируемые в память</title>
		<description>Проецирование файла данных в адресное пространство процесса предоставляет разработчику мощный механизм работы с файлами. Спроецировав файл на адресное пространство процесса, программа получает возможность работать с ним, как с массивом. Это очень удобно при манипуляциях с большими потоками данных. Для проецирования файла в память необходимо выполнить три операции:
1.   Создать ...</description>
		<link>http://efrazrabotka.ru/273/</link>
			</item>
</channel>
</rss>

