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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
#1

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

15.06.2013, 00:22. Просмотров 1128. Ответов 28
Метки нет (Все метки)

Здорова господа!
Я от новую задачку делаю, полностью на новую тему, наверно интересную, в общем сразу условие приведу:
Понятия потока, задачи и процесса составляют основные понятия параллельного исполнения программ на вашем компьютере. Разберитесь подробнее в этих механизмах. Для предотвращения одновременного доступа двух задач к одной области памяти применяется блокировка. Реализуйте класс блокировки, опираясь на системный механизм блокировок на вашей машине.

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

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

ГУИ как посмотреть исполнение программы? - C++
Здорова! Как сделать чтобы было удобно в mfc просматривать что выводится на экран так же как в консольном приложении? Например я каждый раз...

Повторить исполнение кода - C++
Разработал такой супер-код, подскажите, как сделать, чтобы после последнего "mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); " сделать, чтобы...

Программа не запускается на исполнение - C++
Доброй ночи. Возникла такая проблема: написал программу, должно быть правильно, компилятор никаких ошибок не выдает. Но при запуске...

Исполнение команды в винде - C++
Кто-нибудь делал екзешник для винды, который запускает исполнение команды: java -jar SomeJarFile.jar Или любой другой. Как это...

Исполнение кода из текстовой переменной. - C++
Есть текстовая переменная. (конкретно массив TCHAR) В ней находится кусок кода. Можно ли отправить этот код на выполнение, не занимаясь...

Исполнение функции-члена в отдельном потоке - C++
Здравствуйте, форум! Вот такой вот пример: Имеется класс, в котором есть 3 перегрузки одной функции. class A { public: ...

Исполнение .cmd через вызов CreateProcess() - C++
Привет. Заранее извините, если написал не туда. Есть .cmd файл, который надо запустить ТОЛЬКО при помощи CreateProcess() (ShellExecute в...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
1411 / 1140 / 55
Регистрация: 21.04.2012
Сообщений: 2,362
Завершенные тесты: 3
15.06.2013, 01:20     Параллельное исполнение программы #2
Цитата Сообщение от ninja2 Посмотреть сообщение
Все новое для меня. Понятие потока? Да хз что это такое. Задачи и процессы тоже хз.
Ну так для начала возьми книжку по теории ОС и почитай соответствующие главы; ИМХО это проще, чем ждать, пока кто-нибудь тебе лекцию на форуме прочтёт.
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 03:19  [ТС]     Параллельное исполнение программы #3
gray_fox, нет мне бы лучше если б кто подсказал. Ну я виндовс хорошо знаю.
gray_fox
What a waste!
1411 / 1140 / 55
Регистрация: 21.04.2012
Сообщений: 2,362
Завершенные тесты: 3
15.06.2013, 03:27     Параллельное исполнение программы #4
Цитата Сообщение от ninja2 Посмотреть сообщение
gray_fox, нет мне бы лучше если б кто подсказал. Ну я виндовс хорошо знаю.
Ну тогда можешь подождать, пока кто-нибудь тебе всё по полочкам разложит) Просто проще самому узнать; оновные понятия (если они тебя интересуют - процессы\потоки и пр.) от платформы не зависят...
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 04:51  [ТС]     Параллельное исполнение программы #5
gray_fox, Мне б конкретно по делу задачку решить, что такое процесс я тоже как бы знаю, это фигня что в диспетчере устройств запускается, каждая программа занимает один процесс.
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,009
15.06.2013, 06:10     Параллельное исполнение программы #6
Брать книжку и читать... Перепечатывать несколько глав сюда никто не будет, а в поверхностных объяснениях смысла немного. В личку отправляю пару заданий на лабораторные работы... Мб поможет.
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 10:47  [ТС]     Параллельное исполнение программы #7
Цитата Сообщение от 0x10 Посмотреть сообщение
Брать книжку и читать... Перепечатывать несколько глав сюда никто не будет, а в поверхностных объяснениях смысла немного. В личку отправляю пару заданий на лабораторные работы... Мб поможет.
А какие книги, то хоть читать? По винапи? Где эта тема будет разобрана? По С++ эту тему вроде не разбираем. Мб литературу кто подскажет!
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
15.06.2013, 11:01     Параллельное исполнение программы #8
"Энтони Уильямс - Параллельное программирование на С++ в действии"
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,009
15.06.2013, 11:03     Параллельное исполнение программы #9
Книги по системному программированию в unix. Что-нибудь такое:
http://www.ozon.ru/context/detail/id/2419365/
http://www.ozon.ru/context/detail/id/3406745/
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
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
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 11:52  [ТС]     Параллельное исполнение программы #12
Ладно с литературой, давайте все же попытаемся конкретно задачу разобрать!
От я так думаю нам нужно написать программку которая будет запускать два процесса и из этих процессов будет обращаться к одной области памяти. А что бы они не смогли этого сделать будет класс блокировки. От нужно что то приметивное токо в виде кода написать. Кто сможет это сделать в виде кода? Мб есть щарящие люди?
XRuZzz
Антикодер
649 / 550 / 27
Регистрация: 15.09.2012
Сообщений: 2,497
15.06.2013, 12:12     Параллельное исполнение программы #13
Для потоков я раньше использовал библиотеку POSIX Thread

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

Не по теме:


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



но я от вас по использованию потоков не очень далеко ушёл, поэтому вместе придётся разбираться.
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
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
15.06.2013, 12:24     Параллельное исполнение программы #15
Цитата Сообщение от ninja2 Посмотреть сообщение
Да нет так как в условии записано, то и использовать.
В условии не написано что использовать.
Цитата Сообщение от ninja2 Посмотреть сообщение
Мб есть щарящие люди?
Какому шарящему интересно решать задачу для не шарящего?
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
15.06.2013, 12:26  [ТС]     Параллельное исполнение программы #16
Цитата Сообщение от lazybiz Посмотреть сообщение
В условии не написано что использовать.
Значит что знаешь то и используй.
Цитата Сообщение от lazybiz Посмотреть сообщение
Какому шарящему интересно решать задачу для не шарящего?
А не шарящему, интересней? Просто шарящему это не составит труда.
XRuZzz
Антикодер
649 / 550 / 27
Регистрация: 15.09.2012
Сообщений: 2,497
15.06.2013, 12:26     Параллельное исполнение программы #17
Цитата Сообщение от ninja2 Посмотреть сообщение
Да нет под линукс нет.
Тогда сами разбирайтесь (так как Linux самая стандартная ОС в мире )

Цитата Сообщение от ninja2 Посмотреть сообщение
Все ж просто Гуру где вы? Ау!!!!
Так это же вы!
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
15.06.2013, 12:28     Параллельное исполнение программы #18
Цитата Сообщение от ninja2 Посмотреть сообщение
Значит что знаешь то и используй.
Спасибо за совет, я так всегда и делаю)
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,009
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++
То есть, если пишу exit(1); , то консоль закрывается, но там есть информация о ошибке, которую должен увидеть пользователь. Какие есть...

Программа на исполнение запускается, но пишет, что проект окончился крахом - C++
В этом коде выдает такую ошибку: #include &quot;widget.h&quot; #include &quot;ui_widget.h&quot; #include &lt;QColor&gt; #include &lt;QImage&gt; #include...

Параллельное программирвоание - C++
Всем привет! Не знал в какую тему писать вопрос. решил сюда ибо в этом деле новичок. Начали изучать курс параллельного...

Параллельное программирование на C++ - C++
Вот например происходит какое то действие, это действие длится 5 минут. И вот я запускаю это действие и жду, жду, жду, и тут мне надоело...

параллельное выполнение - C++
приветствую вас. есть проблема.. написал программку в c builder. Там есть цикл, который крутит выполнение некоторых операций - сканирует...


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

Или воспользуйтесь поиском по форуму:
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     Параллельное исполнение программы
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru