Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Программирование под Unix - C++
Посоветйте литаратуру для программированию под Unix написанную на простом языке.

Эмуляция ОС Unix в Windows - C++
Если честно, не знал, в какой раздел поместить тему. Поместил сюда. Подскажите, как написать эмулятор Unix (командную строку), чтобы он...

Human Time to Unix Timestamp - C++
Запутался с переводом времени /* Перевод времени из формата %d.%m.%y %H:%M:%S (UTC) * в метку времени Unix Timestamp */ ...

Литература - unix Профессиональное программирование - C++
Есть вариант приобрести UNIX Профессиональное программирование У. Ричард Стивенс, Стивен А. Раго. , но немного смущает, что это 2-е...

Реализация команд Unix в ОС Windows - C++
Здравствуйте, уважаемые пользователи. Столкнулся вот с такой задачей: "Написать эмулятор команд ОС Unix в Windows". Суть такова: ввожу...

Преобразование даты в Unix-time - C++
Нужна формула или функция для преобразование даты в Unix-time. Например: На вход дата: Sun Apr 26 00:06:00 2015 На выход...

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

Не по теме:

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

0
programina
1916 / 601 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
22.11.2013, 20:40 #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;
    }
0
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
22.11.2013, 23:23 #4
Цитата Сообщение от mcpetters Посмотреть сообщение
Ребята, хелп!
Окей.

Не по теме:

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


Цитата Сообщение от mcpetters Посмотреть сообщение
нескольких независимых процессов
man 2 fork
Цитата Сообщение от mcpetters Посмотреть сообщение
способ синхронизации - мьютексы
man 3 pthread_mutexattr_setpshared
Цитата Сообщение от mcpetters Посмотреть сообщение
разделяемая память
man 3 shm_open
man 2 mmap
0
22.11.2013, 23:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2013, 23:23
Привет! Вот еще темы с ответами:

получить из DateTimePicker UNIX-время - C++
Добрый день! Никак не могу получить время в Unix-формате. Для текущего времени и даты все вроде-бы довольно просто: time_t ltime =...

Запуск функции в отдельном потоке unix - C++
Доброго времени суток! Скажите пожалуйста, как можно в Unix запустить функцию в отдельном потоке? Нечто сродни сишарповскому ......

Перевод UNIX числа в обычную дату - C++
Доброго времени суток. Хотел спросить, как можно определенное unix число преобразовать в обычную дату, число-месяц-год-время? В инете...

Поиск шаблона в файле под Unix - C++
помогите написать(или вдруг у кого есть) программу с использованием системных вызовов, осуществляющую поиск заданного...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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