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

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

Войти
Регистрация
Восстановить пароль
 
mcpetters
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 11
#1

Многозадачность в Unix - C++

22.11.2013, 17:36. Просмотров 442. Ответов 3
Метки нет (Все метки)

Написать систему из нескольких независимых процессов, вычисляющих гипотенузу по двум катетам. Процессы должны отображать на экране ход своего выполнения в виде отладочных сообщений. Система должна состоять из: главного процесса, принимающего с клавиатуры исходные данные и выводящего на экран результат; нескольких служебных процессов, способных по отдельности выполнять элементарные арифметические действия - сложение, вычитание, умножение, деление, вычисление квадратного корня и т.п. При этом использовать способ синхронизации - мьютексы и способ передачи данных между процессами - разделяемая память.
Ребята, хелп!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2013, 17:36     Многозадачность в Unix
Посмотрите здесь:

Поиск шаблона в файле под Unix C++
Количество месяцев с начала эпохи Unix C++
С++ и UNIX-команды? Инструменты для общения с консолью. C++
Эмуляция ОС Unix в Windows C++
Программирование под Unix C++
C++ Fflush(stdin) по-разному работают в unix и windows
Литература - unix Профессиональное программирование C++
C++ Преобразование даты в Unix-time
Реализация команд Unix в ОС Windows C++
Human Time to Unix Timestamp C++
Запуск функции в отдельном потоке unix C++
C++ Нужен аналог функции getch() для Unix

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6471 / 2246 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.11.2013, 17:42     Многозадачность в Unix #2
Цитата Сообщение от mcpetters Посмотреть сообщение
Ребята, хелп!
Хелп-то хелп, а вопрос где?
Добавлено через 3 минуты
Цитата Сообщение от mcpetters Посмотреть сообщение
и способ передачи данных между процессами - разделяемая память.

Не по теме:

ммм, надо было дочитать

programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
22.11.2013, 20:40     Многозадачность в Unix #3
Не знаю, правильно или нет, это моя первая попытка написать многопоточное приложение.

C++
    // c++ mtx.cpp -omtx -lpthread -std=c++11
 
    #include <iostream>
    #include <thread>
    #include <mutex>
    #include <cmath>
    #include <unistd.h>
    using namespace std;
 
    mutex mtx;
    float kat1, kat2, gip;
    int bk = 0;
 
    // считаем квадрат катета
    void foo(int k, float &kat)
    {
        mtx.lock(); 
        cout << "вычисляется квадрат катета...\n";
        kat = k * k;
        bk++;
        mtx.unlock();
    }
 
    // считаем гипотенузу
    void goo()
    {
        while(bk != 2) // ждем когда катеты подсчитаются
            usleep(100);
            
        mtx.lock();
        cout << "вычисляется гипотенуза...\n";
        gip = pow(kat1 + kat2, 0.5);
        mtx.unlock();
    } 
 
 
 
    int main()
    {
        cout << "Введите первый катет (целое число): ";
        cin >> kat1;
        cout << "Введите второй катет (целое число): ";
        cin >> kat2;
        
        thread th1( foo, kat1, ref(kat1) );
        thread th2( foo, kat2, ref(kat2) );
        thread th3( goo );
        
        th1.join();
        th2.join();
        th3.join();
        
        cout << "Гипотенуза равна " << gip << endl;
    }
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1241 / 990 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
22.11.2013, 23:23     Многозадачность в Unix #4
Цитата Сообщение от mcpetters Посмотреть сообщение
Ребята, хелп!
Окей.

Не по теме:

Я толстый и зелёный, да.


Цитата Сообщение от mcpetters Посмотреть сообщение
нескольких независимых процессов
man 2 fork
Цитата Сообщение от mcpetters Посмотреть сообщение
способ синхронизации - мьютексы
man 3 pthread_mutexattr_setpshared
Цитата Сообщение от mcpetters Посмотреть сообщение
разделяемая память
man 3 shm_open
man 2 mmap
Yandex
Объявления
22.11.2013, 23:23     Многозадачность в Unix
Ответ Создать тему
Опции темы

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