Лабораторная работа: Динамически загружаемые библиотеки

Цель работы

Изучить связывание процесса с динамически загружаемыми библиотеками на этапе загрузки и на этапе выполнения.

Список используемых системных вызовов

LoadLibrary, FreeLibrary, FreeLibraryAndExitThread, GetModuleHandle, GetProcAddress, DllMain.

Лабораторная работа: Передача данных с использованием почтовых ящиков и ждущих таймеров

Цель работы

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

Список используемых системных вызовов

CreateMailslot, CreateFile, GetMailslotInfo, SetMailslotInfo, ReadFile, ReadFileEx, WriteFile, WriteFileEx, CreateWaitableTimer, OpenWaitableTimer, SetWaitableTimer, TimerAPCProc, CancelWaitableTimer, SleepEx, WaitForSingleObjectEx,

Лабораторная работа: Работа с разделяемой памятью

Цель работы

Изучение способов работы с разделяемой памятью на основе файлов, проецируемых в память. Изучение способов синхронизации процессов и нитей с использованием мьютексов (mutex) и семафоров.

Список используемых системных вызовов

CreateFileMapping, OpenFileMapping, MapViewOfFile, UnmapViewOfFile, CloseHandle, CreateMutex, OpenMutex, CreateSemaphore, OpenSemaphore, ReleaseMutex, ReleaseSemaphore, WaitForSingleObject, WaitForMultipleObjects.

Лабораторная работа: Работа с файлами в асинхронном режиме

Цель работы

Изучение способов работы с файлами в Win32 API. Изучение асинхронного режима работы с файлами.

Список используемых системных вызовов

CreateFile, CloseHandle, ReadFile, WriteFile, CancelIo, WaitForSingleObject, WaitForMultipleObjects, GetFilePointer, SetFilePointer, FindFirstFile, FindNextFile, FindClose, SearchFile.

Лабораторная работа: Синхронизация нитей с использованием событий и Interlocked-функций

Цель работы

Изучение способа организации критических секций с использованием группы Interlocked-функций. Изучение способа синхронизации процессов и нитей с использованием событий (Events).

Список используемых системных вызовов

CreateEvent, SetEvent, ResetEvent, PulseEvent, CloseHandle, InterlockedExchange, InterlockedIncrement, InterlockedDecrement, InterlockedCompareExchange, InterlockedExchangeAdd, InitializeCriticalSection, EnterCriticalSection, TryEnterCriticalSection, LeaveCriticalSection, DeleteCriticalSection, WaitForSingleObject, WaitForMultipleObjects.