Форум программистов, компьютерный форум CyberForum.ru

Параллельное исполнение программы - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 00:22     Параллельное исполнение программы #1
Здорова господа!
Я от новую задачку делаю, полностью на новую тему, наверно интересную, в общем сразу условие приведу:
Понятия потока, задачи и процесса составляют основные понятия параллельного исполнения программ на вашем компьютере. Разберитесь подробнее в этих механизмах. Для предотвращения одновременного доступа двух задач к одной области памяти применяется блокировка. Реализуйте класс блокировки, опираясь на системный механизм блокировок на вашей машине.

Все новое для меня. Понятие потока? Да хз что это такое. Задачи и процессы тоже хз. Ну что такое блокировка, есть в определении задачи, но что это за класс блокировки и как его реализовать тоже хз.
Не понятная задачка.
Просветите новичка!!!!!!

Добавлено через 1 минуту
Я не знаю с чего ее начинать, то делать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2013, 00:22     Параллельное исполнение программы
Посмотрите здесь:

Исполнение кода из текстовой переменной. C++
Исполнение команды в винде C++
параллельное программирование C++
C++ Параллельное программирование
C++ Исполнение .cmd через вызов CreateProcess()
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
15.06.2013, 01:20     Параллельное исполнение программы #2
Цитата Сообщение от ninja2 Посмотреть сообщение
Все новое для меня. Понятие потока? Да хз что это такое. Задачи и процессы тоже хз.
Ну так для начала возьми книжку по теории ОС и почитай соответствующие главы; ИМХО это проще, чем ждать, пока кто-нибудь тебе лекцию на форуме прочтёт.
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 03:19  [ТС]     Параллельное исполнение программы #3
gray_fox, нет мне бы лучше если б кто подсказал. Ну я виндовс хорошо знаю.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
15.06.2013, 03:27     Параллельное исполнение программы #4
Цитата Сообщение от ninja2 Посмотреть сообщение
gray_fox, нет мне бы лучше если б кто подсказал. Ну я виндовс хорошо знаю.
Ну тогда можешь подождать, пока кто-нибудь тебе всё по полочкам разложит) Просто проще самому узнать; оновные понятия (если они тебя интересуют - процессы\потоки и пр.) от платформы не зависят...
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 04:51  [ТС]     Параллельное исполнение программы #5
gray_fox, Мне б конкретно по делу задачку решить, что такое процесс я тоже как бы знаю, это фигня что в диспетчере устройств запускается, каждая программа занимает один процесс.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
15.06.2013, 06:10     Параллельное исполнение программы #6
Брать книжку и читать... Перепечатывать несколько глав сюда никто не будет, а в поверхностных объяснениях смысла немного. В личку отправляю пару заданий на лабораторные работы... Мб поможет.
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 10:47  [ТС]     Параллельное исполнение программы #7
Цитата Сообщение от 0x10 Посмотреть сообщение
Брать книжку и читать... Перепечатывать несколько глав сюда никто не будет, а в поверхностных объяснениях смысла немного. В личку отправляю пару заданий на лабораторные работы... Мб поможет.
А какие книги, то хоть читать? По винапи? Где эта тема будет разобрана? По С++ эту тему вроде не разбираем. Мб литературу кто подскажет!
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
15.06.2013, 11:01     Параллельное исполнение программы #8
"Энтони Уильямс - Параллельное программирование на С++ в действии"
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
15.06.2013, 11:03     Параллельное исполнение программы #9
Книги по системному программированию в unix. Что-нибудь такое:
http://www.ozon.ru/context/detail/id/2419365/
http://www.ozon.ru/context/detail/id/3406745/
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 11:18  [ТС]     Параллельное исполнение программы #10
Наверно я пропущу эту задачку, а то на разбор много времени потрачу щас, потом просто эту книгу прочитаю http://www.ozon.ru/context/detail/id/17636939/ и мб потом решу ее.

А мб кто конкретно код может скинуть с примером?

Ну эта задачка конечно сложная с оценкой (*3) , поэтому я сильно не надеюсь что кто то поможет.
Desu_Is_A_Lie
 Аватар для Desu_Is_A_Lie
62 / 62 / 3
Регистрация: 26.02.2012
Сообщений: 114
15.06.2013, 11:43     Параллельное исполнение программы #11
Под Win смотреть сюда: http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

Если же не
Цитата Сообщение от ninja2 Посмотреть сообщение
опираясь на системный механизм блокировок на вашей машине
то проще сделать на основе http://en.cppreference.com/w/cpp/thread/mutex
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 11:52  [ТС]     Параллельное исполнение программы #12
Ладно с литературой, давайте все же попытаемся конкретно задачу разобрать!
От я так думаю нам нужно написать программку которая будет запускать два процесса и из этих процессов будет обращаться к одной области памяти. А что бы они не смогли этого сделать будет класс блокировки. От нужно что то приметивное токо в виде кода написать. Кто сможет это сделать в виде кода? Мб есть щарящие люди?
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
15.06.2013, 12:12     Параллельное исполнение программы #13
Для потоков я раньше использовал библиотеку POSIX Thread

Как насчёт написания кода под ОС Linux?

Не по теме:


Может если помогу Гуру С++, тоже стану гуру



но я от вас по использованию потоков не очень далеко ушёл, поэтому вместе придётся разбираться.
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 12:20  [ТС]     Параллельное исполнение программы #14
Цитата Сообщение от XRuZzz Посмотреть сообщение
Как насчёт написания кода под ОС Linux?
Да нет под линукс нет.
Цитата Сообщение от XRuZzz Посмотреть сообщение
Для потоков я раньше использовал библиотеку POSIX Thread, а вам можно использовать только API ОС?
Да нет так как в условии записано, то и использовать.

Цитата Сообщение от XRuZzz Посмотреть сообщение
но я от вас по использованию потоков не очень далеко ушёл, поэтому вместе придётся разбираться.
Да мб хоть кто примерчик просто приведет.

Господа ну что вы так затихли все? Давайте я вам конкретную задачку приведу что нужно сделать. Нужно создать два процесса и параллельно в одном допустим что то посчитать, и в другом тоже что то мелкое, а потом вывести результаты на экран. Ладно уже без обращения к одной ячейки памяти, без использования блокировки, либо стандартная блокировка будет использоваться, либо с помощью уже средств стл. Просто же рабочий пример с двумя процессами или задачами. Все ж просто Гуру где вы? Ау!!!!

В моей задачке я так понимаю что то нужно свое сделать. Ок, давайте хоть напишем пример уже стандартными средствами.

Ну я мб тут напутал с терминами и с тем что делать, так как не в теме.

Добавлено через 4 минуты
Desu_Is_A_Lie, И литературу желательно на русском, не все английский знают.
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
15.06.2013, 12:24     Параллельное исполнение программы #15
Цитата Сообщение от ninja2 Посмотреть сообщение
Да нет так как в условии записано, то и использовать.
В условии не написано что использовать.
Цитата Сообщение от ninja2 Посмотреть сообщение
Мб есть щарящие люди?
Какому шарящему интересно решать задачу для не шарящего?
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 12:26  [ТС]     Параллельное исполнение программы #16
Цитата Сообщение от lazybiz Посмотреть сообщение
В условии не написано что использовать.
Значит что знаешь то и используй.
Цитата Сообщение от lazybiz Посмотреть сообщение
Какому шарящему интересно решать задачу для не шарящего?
А не шарящему, интересней? Просто шарящему это не составит труда.
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
15.06.2013, 12:26     Параллельное исполнение программы #17
Цитата Сообщение от ninja2 Посмотреть сообщение
Да нет под линукс нет.
Тогда сами разбирайтесь (так как Linux самая стандартная ОС в мире )

Цитата Сообщение от ninja2 Посмотреть сообщение
Все ж просто Гуру где вы? Ау!!!!
Так это же вы!
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
15.06.2013, 12:28     Параллельное исполнение программы #18
Цитата Сообщение от ninja2 Посмотреть сообщение
Значит что знаешь то и используй.
Спасибо за совет, я так всегда и делаю)
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
15.06.2013, 12:31     Параллельное исполнение программы #19
ninja2, три строчки, порождение дочернего процесса.
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
#include <stdio.h>
#include <unistd.h>
 
int main()
{
    pid_t pid = fork();
 
    if (pid < 0)
    {
        perror("fork");
        return 1;
    }
 
    if (pid == 0)
    {
        printf("Child process: %d, parent is %d\n", getpid(), getppid());
    }
    else
    {
        printf("Parent process: %d\n", getpid());
    }
 
    return 0;
}
Объяснение что тут происходит равносильно перепечатыванию книги. Документация - man fork http://linux.die.net/man/2/fork, man getpid http://linux.die.net/man/2/getpid.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2013, 12:34     Параллельное исполнение программы
Еще ссылки по теме:

Повторить исполнение кода C++
Программа не запускается на исполнение C++
C++ ГУИ как посмотреть исполнение программы?

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

Или воспользуйтесь поиском по форуму:
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 12:34  [ТС]     Параллельное исполнение программы #20
Цитата Сообщение от XRuZzz Посмотреть сообщение
Тогда сами разбирайтесь (так как Linux самая стандартная ОС в мире )
Я думаю виндовс стандарт. Да какая разница, там что диспетчер устройств разные? Да они вроде как одинаковые, ну я сильно разници не заметил, что там если что виснет снимаешь процес, что и в виндовс.
Цитата Сообщение от lazybiz Посмотреть сообщение
Спасибо за совет, я так всегда и делаю)
Да не за что, всегда рад помочь!

Добавлено через 1 минуту
0x10, Можно просто догадаться или сделать предположение что там происходит, глядя на поведение программы. Так что ничего страшного, главное что хоть какой то примерчик кода есть.
Yandex
Объявления
15.06.2013, 12:34     Параллельное исполнение программы
Ответ Создать тему
Опции темы

Текущее время: 17:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru