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

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





d *), stack_size, * arglist

);

Перший аргумент це покажчик на функцію, яка є точкою входу для самого потоку. Сама функція повинна виглядати як:

myThread (void * pParams)

{

. . . p align="justify">}


Ім'я звичайно ж може бути будь-яке. Другий аргумент це початковий розмір стека. Майже в будь-якому випадку його можна вказати як 0. Тоді розмір стека буде дорівнює тому ж, що і у головного завдання процесу. З третім все ще легше, це аргументи функції потоку, які цілком можуть бути як NULL. Або ж виглядати як (void *) (pParam) у випадку з першою функцією. Для коректної роботи вищеописаних функцій потрібне підключення бібліотеки . br/>

.4 Порядок роботи програми


Основний потік програми створює список і ініціалізує його. Після чого запускаються 4 потоку. Перший намагається по черзі додати до списку елементи від 1 до 9, другий - видалити аналогічні вузли, третій - змінити аналогічні елементи шляхом додавання до них 1000, а четвертий - вивести на екран вміст списку (10 спроб). Всі потоки використовують відповідні функції роботи зі списком. У силу особливостей роботи багатопоточних додатків, при кожному його запуску результати роботи різні, тому що потоки виконуються абсолютно довільно, тому і послідовність дій непередбачувана. br/>

2.5 Набір тестів для налагодження програми та скріншоти результатів


При виконанні програми виникають такі тестові ситуації, як спроба роздрукувати порожній список, спроба змінити або видалити неіснуючого елемента або елемента порожнього списку. Також показовими з точки зору коректності роботи програми є моменти видалення/зміни останнього або першого елементів. Звичайно ж, основним моментом тестування є виняток перекриття потоків. На всі ці тести успішно відповідає лише багаторазовий запуск програми. Чому багаторазовий - тому що в силу особливостей роботи багатопоточних додатків, при кожному його запуску результати роботи різні, тому що потоки виконуються абсолютно довільно, тому і послідовність дій непередбачувана. p align="justify"> Отже ось скріншоти результатів 3 запусків програми, які говорять про коректність її роботи:


В 

Малюнок 1. Результат роботи програми


Як видно з рисунка 1, першою справою потік 1 додав до списку вузол із значенням 1. Після чого потік 3 змінив його на вузол 1001. Решта спроби змінити вузли списку не увінчалися успіхом, оскільки елементи 2-9 до списку додані НЕ були. На наступному етапі програми критичну секцію захопив потік 4 і 10 разів вивів вміст списку на екран. Подальші 10 спроб потоку 2 видалити елементи успішними були, так як таких вузлів у списку немає (вузол 1 був змінений на 1001, решта ще не були додані). Далі управління знову передалося потоку 1 і він додав інш...


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





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

  • Реферат на тему: Розробка програми, що реалізує алгоритм двусвязного списку
  • Реферат на тему: Розробка програми для зберігання і виведення списку співробітників і їхні з ...
  • Реферат на тему: Створення програми для роботи з послідовностями
  • Реферат на тему: Розробка програми для роботи з масивами
  • Реферат на тему: Створення програми для роботи з послідовностями