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

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

Войти
Регистрация
Восстановить пароль
 
IvanPryamoy
247 / 1 / 1
Регистрация: 02.01.2013
Сообщений: 31
#1

Менеджмент жесткого диска при многопоточности - C++

05.01.2013, 20:49. Просмотров 425. Ответов 3
Метки нет (Все метки)

Пусть у меня 4-ех ядерный процессор, и запущено 4 рабочих потока (в одном процессе). Казалось бы, что все хорошо, но диск-то у меня один!

Есть какие- нибудь паттерны программирования многопоточных приложений, пытающихся "развести" потоки так, чтобы они одновременно не работали с жестким диском (или другими комплектующими)? Например, одинаковые потоки можно запускать со сдвигом по времени (только размер этого сдвига надо определять динамически на стадии выполнения программы). Или что-то типа "ленивых записей/чтений", которые выполняются, когда диск свободен...

?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2013, 20:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Менеджмент жесткого диска при многопоточности (C++):

Стратегии обслуживания жесткого диска - C++
Здравствуйте, пробую разобраться с темой обслуживания на примере стратегии N-SCAN; нашел для примера код, но в нем есть не совсем...

Какой апи функцией можно получить номер жесткого диска (не тома) - C++
То есть хотелось бы вытащить из жесткого диска его биос-номер но не номер тома

Windows-приложение для мониторинга состояния SMART регистров жесткого диска - C++
Доброго времени суток дорогие ребята! Возможно кто-то уже сталкивался с такой задачей.Не составить ли вам труда помочь студенту. Буду...

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

Как правильно передать объект в функцию при использовании многопоточности - C++
Добрый день, форум! Возникла вот такая задача: Есть два класса: класс А, реализующий интегрирование функции, и класс В, реализующий...

О многопоточности - C++
Интересно, стало, а сколько всего потоков я могу открыть в своем проекте, существуют ли какие нибудь ограничения? и от чего зависит...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Nick Alte
Эксперт С++
1638 / 1010 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
05.01.2013, 22:50 #2
Например, отдельный поток чтения-записи, которому остальные потоки передают заявки на такие операции. Иногда можно даже не ждать результатов, сразу бежать дальше.
1
IvanPryamoy
247 / 1 / 1
Регистрация: 02.01.2013
Сообщений: 31
06.01.2013, 10:02  [ТС] #3
Цитата Сообщение от Nick Alte Посмотреть сообщение
Например, отдельный поток чтения-записи, которому остальные потоки передают заявки на такие операции. Иногда можно даже не ждать результатов, сразу бежать дальше.
Похоже параллельность действительно еще даже теоретически не обмозгована. Ведь если задумываться, то надо параллелить каждый вид устройства (не только процессор) и по количеству элементов этого устройства создавать необходимое количество потоков. Например, 4 потока для процессора, 2 потока для видеокарты, 1 поток для жесткого диска, 2 потока консоли (если два монитора). Каждое устройство образует свой пул потоков. А потом писать программу так, чтобы каждый пул устройства (состоящий из разного количества потоков), оптимально взаимодействовал с другими пулами устройств. "Межустройственое" взаимодействие, так сказать...

Не видел я еще размышлений на тему: как 4 потока одного устройства оптимально поделить между 2 потоками другого устройства...
0
Nick Alte
Эксперт С++
1638 / 1010 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
06.01.2013, 11:34 #4
Цитата Сообщение от IvanPryamoy Посмотреть сообщение
Похоже параллельность действительно еще даже теоретически не обмозгована.
Ещё как обмозгована-то.
Цитата Сообщение от IvanPryamoy Посмотреть сообщение
по количеству элементов этого устройства создавать необходимое количество потоков
Это далеко не единственный фактор, который надо учитывать при планировании потоков.
Цитата Сообщение от IvanPryamoy Посмотреть сообщение
2 потока для видеокарты
В видеокартах счёт идёт на сотни и тысячи, и механизмы управления и планирования там уже другие. Читаем про CUDA, OpenCL и вообще GPGPU.
Цитата Сообщение от IvanPryamoy Посмотреть сообщение
Не видел я еще размышлений на тему: как 4 потока одного устройства оптимально поделить между 2 потоками другого устройства...
Это ещё не значит, что оно "даже теоретически ещё не обмозговано". Надо знакомиться с результатами таких мозгований. Например, thread pool.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2013, 11:34
Привет! Вот еще темы с ответами:

изучение многопоточности - C++
с чего стоит начать изучение многопоточности? есть базовые знания по С++, основы ООП. пытался читать Назарр К., Рихтер Дж. - Windows via...

Производительность многопоточности - C++
Доброго времени суток. Решил заняться многопоточностью, и натолкнулся на непонимание с производиельность Есть код в 2 потока: ...

Синхронизации многопоточности - C++
добрый день, пытаюсь сделать синхронизацию потом на примере producer\consumer, но что-то не выходит, я в consumere сделал ожидания...

Сравнение многопоточности С++11 и WinAPI - C++
У меня скорее теоретический вопрос, чем практический. Есть ли разница работы с многопоточностью в С++11, и, например в WinAPI?...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.01.2013, 11:34
Ответ Создать тему
Опции темы

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