Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Паралельна обробка однозв'язних кільцевих списків в пам'яті ОС Windows

Реферат Паралельна обробка однозв'язних кільцевих списків в пам'яті ОС Windows





бінацію цих прапорів. Другий параметр функції HeapCreate - dwInitiallSize - визначає кількість байтів, спочатку переданих купі. При необхідності функція округлює це значення до найближчої більшої величини, кратною розміру сторінок. І останній параметр, dwMaximumSize, вказує максимальний обсяг, до якого може розширюватися купа (граничний обсяг адресного простору, зарезервованого під купу). Якщо він більше 0, ви створите купу саме такого розміру і нс зможете його збільшити. А якщо цей параметр дорівнює 0, система резервує регіон і, якщо треба, розширює його до максимально можливого обсягу. При успішному створенні купи HeapCreate повертає описувач, що ідентифікує нову купу. У своїй програмі цією функцією я створювала купу для об'єкта структури кільцевого списку.

HeapAlloc. Виділяє блок пам'яті з купи. Я використовувала цю функцію при створенні нового елемента списку. Приймає 3 параметри: параметр hHeap ідентифікує описувач купи, з якої виділяється пам'ять. Параметр dwBytes визначає число виділюваних в купі байтів. Параметр fdwFlags дозволяє вказувати прапори, що впливають на характер виділення пам'яті. В даний час підтримується тільки три прапори: HEAP_ZERO_MEMORY, HEAP_GENERATE_EXCEPTIONS і HEAP_NO_SERIALIZE. br/>

Примітка. Для виділення великих блоків пам'яті (від 1 Мб) рекомендується використовувати функцію VirtualAlloc, а не функції, які оперують з купами. br/>

- HeapFree. Служить для звільнення блоку пам'яті. У реалізованій програмі використовується при видаленні елемента. Приймає 3 параметри: параметр hHeap ідентифікує купу, а параметр pvMem повідомляє адресу блоку. Параметр fdwFlags приймає два значення: 0 або HEAP_NO_SERIALIZE.

- HeapDestroy. Знищує купу разом з усіма даними, які в ній зберігаються. Тому при її використанні необхідно упевнитися, що жоден з процесів більше не буде використовувати ці дані. В іншому випадку буде викинуто виключення або програма закінчиться некоректно. Приймає всього 1 параметр hHeap, який ідентифікує купу.

Наступні дві функції - HeapLock і HeapUnlock - використовуються парно. Вони призначені для синхронізації потоків. Після успішного виклику HeapLock потік, який викликав цю функцію, стає власником зазначеної купи. Якщо інший потік звертається до цій купі, вказуючи той же описувач купи, система призупиняє його виконання до тих пір, поки купа не буде розблокована викликом HeapUnlock. Функції HeapAlloc, HeapSize, HeapFree та інші - всі звертаються до HeapLock і HeapUnlock, щоб забезпечити послідовний доступ до купи. Тому явно в коді вони можуть бути не прописані. br/>

.3 Засоби створення потоків


Створення потоку здійснюється за допомогою наступної функції:


uintptr_t _beginthread ((* start_address) (voi...


Назад | сторінка 3 з 10 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Докладне вивчення роботи фінансової функції ДАТАКУПОНДО, яка повертає число ...
  • Реферат на тему: Аналіз конструкцій сепараторів для видалення домішок з купи картоплі
  • Реферат на тему: Розробка термогенератора, який буде використовувати тепло двигуна для заряд ...
  • Реферат на тему: Створення НКВС СРСР і його функції
  • Реферат на тему: Програма для створення двозв'язних кільцевих списків