Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
1

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

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

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

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

Добавлено через 1 минуту
Я не знаю с чего ее начинать, то делать.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.06.2013, 00:22
Ответы с готовыми решениями:

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

Запуск файла на исполнение
Нужна функция (или кусок кода позволяющий это делать). Проблема такова, необходимо запускать...

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

Повторить исполнение кода
Разработал такой супер-код, подскажите, как сделать, чтобы после последнего...

28
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
15.06.2013, 01:20 2
Цитата Сообщение от ninja2 Посмотреть сообщение
Все новое для меня. Понятие потока? Да хз что это такое. Задачи и процессы тоже хз.
Ну так для начала возьми книжку по теории ОС и почитай соответствующие главы; ИМХО это проще, чем ждать, пока кто-нибудь тебе лекцию на форуме прочтёт.
1
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
15.06.2013, 03:19  [ТС] 3
gray_fox, нет мне бы лучше если б кто подсказал. Ну я виндовс хорошо знаю.
0
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
15.06.2013, 03:27 4
Цитата Сообщение от ninja2 Посмотреть сообщение
gray_fox, нет мне бы лучше если б кто подсказал. Ну я виндовс хорошо знаю.
Ну тогда можешь подождать, пока кто-нибудь тебе всё по полочкам разложит) Просто проще самому узнать; оновные понятия (если они тебя интересуют - процессы\потоки и пр.) от платформы не зависят...
1
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
15.06.2013, 04:51  [ТС] 5
gray_fox, Мне б конкретно по делу задачку решить, что такое процесс я тоже как бы знаю, это фигня что в диспетчере устройств запускается, каждая программа занимает один процесс.
0
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
15.06.2013, 06:10 6
Брать книжку и читать... Перепечатывать несколько глав сюда никто не будет, а в поверхностных объяснениях смысла немного. В личку отправляю пару заданий на лабораторные работы... Мб поможет.
1
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
15.06.2013, 10:47  [ТС] 7
Цитата Сообщение от 0x10 Посмотреть сообщение
Брать книжку и читать... Перепечатывать несколько глав сюда никто не будет, а в поверхностных объяснениях смысла немного. В личку отправляю пару заданий на лабораторные работы... Мб поможет.
А какие книги, то хоть читать? По винапи? Где эта тема будет разобрана? По С++ эту тему вроде не разбираем. Мб литературу кто подскажет!
0
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
15.06.2013, 11:01 8
"Энтони Уильямс - Параллельное программирование на С++ в действии"
1
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
15.06.2013, 11:03 9
Книги по системному программированию в unix. Что-нибудь такое:
http://www.ozon.ru/context/detail/id/2419365/
http://www.ozon.ru/context/detail/id/3406745/
1
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
15.06.2013, 11:18  [ТС] 10
Наверно я пропущу эту задачку, а то на разбор много времени потрачу щас, потом просто эту книгу прочитаю http://www.ozon.ru/context/detail/id/17636939/ и мб потом решу ее.

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

Ну эта задачка конечно сложная с оценкой (*3) , поэтому я сильно не надеюсь что кто то поможет.
0
216 / 63 / 16
Регистрация: 26.02.2012
Сообщений: 114
15.06.2013, 11:43 11
Под Win смотреть сюда: http://msdn.microsoft.com/en-u... s.85).aspx

Если же не
Цитата Сообщение от ninja2 Посмотреть сообщение
опираясь на системный механизм блокировок на вашей машине
то проще сделать на основе http://en.cppreference.com/w/cpp/thread/mutex
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
15.06.2013, 11:52  [ТС] 12
Ладно с литературой, давайте все же попытаемся конкретно задачу разобрать!
От я так думаю нам нужно написать программку которая будет запускать два процесса и из этих процессов будет обращаться к одной области памяти. А что бы они не смогли этого сделать будет класс блокировки. От нужно что то приметивное токо в виде кода написать. Кто сможет это сделать в виде кода? Мб есть щарящие люди?
0
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
15.06.2013, 12:12 13
Для потоков я раньше использовал библиотеку POSIX Thread

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

Не по теме:


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



но я от вас по использованию потоков не очень далеко ушёл, поэтому вместе придётся разбираться.
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
15.06.2013, 12:20  [ТС] 14
Цитата Сообщение от XRuZzz Посмотреть сообщение
Как насчёт написания кода под ОС Linux?
Да нет под линукс нет.
Цитата Сообщение от XRuZzz Посмотреть сообщение
Для потоков я раньше использовал библиотеку POSIX Thread, а вам можно использовать только API ОС?
Да нет так как в условии записано, то и использовать.

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

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

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

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

Добавлено через 4 минуты
Desu_Is_A_Lie, И литературу желательно на русском, не все английский знают.
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
15.06.2013, 12:24 15
Цитата Сообщение от ninja2 Посмотреть сообщение
Да нет так как в условии записано, то и использовать.
В условии не написано что использовать.
Цитата Сообщение от ninja2 Посмотреть сообщение
Мб есть щарящие люди?
Какому шарящему интересно решать задачу для не шарящего?
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
15.06.2013, 12:26  [ТС] 16
Цитата Сообщение от lazybiz Посмотреть сообщение
В условии не написано что использовать.
Значит что знаешь то и используй.
Цитата Сообщение от lazybiz Посмотреть сообщение
Какому шарящему интересно решать задачу для не шарящего?
А не шарящему, интересней? Просто шарящему это не составит труда.
0
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
15.06.2013, 12:26 17
Цитата Сообщение от ninja2 Посмотреть сообщение
Да нет под линукс нет.
Тогда сами разбирайтесь (так как Linux самая стандартная ОС в мире )

Цитата Сообщение от ninja2 Посмотреть сообщение
Все ж просто Гуру где вы? Ау!!!!
Так это же вы!
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
15.06.2013, 12:28 18
Цитата Сообщение от ninja2 Посмотреть сообщение
Значит что знаешь то и используй.
Спасибо за совет, я так всегда и делаю)
0
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
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.
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
15.06.2013, 12:34  [ТС] 20
Цитата Сообщение от XRuZzz Посмотреть сообщение
Тогда сами разбирайтесь (так как Linux самая стандартная ОС в мире )
Я думаю виндовс стандарт. Да какая разница, там что диспетчер устройств разные? Да они вроде как одинаковые, ну я сильно разници не заметил, что там если что виснет снимаешь процес, что и в виндовс.
Цитата Сообщение от lazybiz Посмотреть сообщение
Спасибо за совет, я так всегда и делаю)
Да не за что, всегда рад помочь!

Добавлено через 1 минуту
0x10, Можно просто догадаться или сделать предположение что там происходит, глядя на поведение программы. Так что ничего страшного, главное что хоть какой то примерчик кода есть.
0
15.06.2013, 12:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2013, 12:34
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru