Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
11 / 11 / 1
Регистрация: 22.12.2012
Сообщений: 508

Реализация алгоритма RR (Round Robin)

24.02.2014, 22:11. Показов 3767. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане, на просторах инета мною был найден код реализации алгоритма Round Robin
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include <iostream>
#include <windows.h>
 
using namespace std;
 
const int n = 10;
const int TimeInt = 2;
 
int pars[n];
 
HANDLE hTimer;
LARGE_INTEGER li;
 
struct RR
{
    HANDLE hThread;
    RR* next;
    DWORD dwThread;
};
 
RR *HEAD = NULL,*TAIL = NULL;
 
void DelThread();
 
DWORD WINAPI thread(LPVOID par)
{
    int *k = (int*)par;
 
    for(int i = 0; i < 5 * n; i++ )
    {
        cout<<*k;
        Sleep(1);
    }
 
    cout<<"\nololo\n";
 
    return 0;
}
 
void NewThread(int i)
{
    if (HEAD == NULL)
    {
        HEAD = new RR;
        TAIL = HEAD;
        HEAD->next = HEAD;
    }
    else
    {       
        TAIL->next = new RR;
        TAIL = TAIL->next;
        TAIL->next = HEAD;
    }
    TAIL->hThread = CreateThread(NULL, 0, thread, &pars[i], CREATE_SUSPENDED, &(HEAD->dwThread));
}
 
void DelThread()
{
    CloseHandle(HEAD->hThread);
 
    if (HEAD == TAIL)
    {
        delete HEAD;
        TAIL = NULL;
    }
    else
    {
        HEAD = HEAD->next;
        delete TAIL->next;
        TAIL->next = HEAD;
    }
    
}
 
void main()
{
    HANDLE handles[2];
 
    for(int i = 0; i < n; i++ )
    {
        pars[i] = i;
        NewThread(i);
    }
 
    hTimer = CreateWaitableTimer(NULL, FALSE, NULL); 
 
    li.QuadPart = -1;
 
    SetWaitableTimer(hTimer, &li, TimeInt, NULL, NULL, FALSE);
 
    handles[1] = hTimer;
 
    while(HEAD != NULL)
    {
        handles[0] = HEAD->hThread;
        ResumeThread(HEAD->hThread);
        DWORD dw = WaitForMultipleObjects(2,handles,FALSE, INFINITE); 
        switch(dw)
        {
        case WAIT_OBJECT_0: 
            cout<<"DELETED";
            DelThread();
            break;
        case WAIT_OBJECT_0+1:
            cout<<".";
            SuspendThread(HEAD->hThread);
            HEAD = HEAD->next;
            TAIL = TAIL->next;
            break;
        default: cout<<"ERROR";
            break;
        }
    }
 
    CloseHandle(hTimer);
 
    system("pause");
}
Проблема кода в том что после вывода на экран ololo прога стопарит!
Не могу понять почему, помогите плиз)

Если можно то сегодня.

P.S. Строка cout<<"\nololo\n"; была дописана мною для обнаружения места проблемы.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.02.2014, 22:11
Ответы с готовыми решениями:

Реализация алгоритма Round Robin
Здравствуйте, пользователи сайта cyberforum, хотел бы обратиться с вопросом, был ли у кого-нибудь опыт реализации алгоритма Round Robin с...

Round Robin
Эта программа имитирует ли работу процесса по алгоритму круговое планирование? #include &lt;iostream.h&gt; #include &lt;stdlib.h&gt; ...

Round-robin
Люди, помогите программку доделать. Нам надо реализовать алгоритм round-robin. Есть какое-то количество процессов которое задается с руки....

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.02.2014, 22:11
Помогаю со студенческими работами здесь

Algorithm Round RObin
3дравствуйте подскажите алгоритм. Мне нужно для работы с массивом.Чтобы звять один элемент и менять каждый раз.

Алгоритм round robin 20
ДОбрый день! подскажите пожалуйста кто знает, алгоритм round robin ( где процесс меняется через каждые 20 едениц) и мне надо узнать еще...

Robin Round + FCFS считающий СЛАУ Зейделя
Пытаюсь написать приложение, реализующее алгоритм планирования FCFS и систему планирования Rоbin Rоund при выполнении процессами peшения...

Алгоритм планирования Round Robin с квантом времени (переделать программу)
Если кто знаком с этим - подскажите, будьте любезны!!)) Друзья, есть код программы, который представлен ниже. Реализован в Visual Studio...

Реализация алгоритма
Смотрите, есть функция для рисования сегмента круга: pieslice(int x, int y, int start, int end, int radius) - int start и int ende угол...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru