Какое оптимальное количество потоков в двухъядерной системе для чтения и шифрования файла с жесткого диска? - PullRequest
0 голосов
/ 11 июня 2018

Что является оптимальным числом потоков в двухъядерной системе, если предположить, что он должен: 1) прочитать файл с жесткого диска 2) зашифровать файл, скопировав его байты с секретным ключом 3) передать зашифрованный файлв сети

Я думаю, что 2) может быть сделано параллельно, 3) может быть сделано параллельно, но, как я понимаю, 1) не может быть сделано параллельно, поэтому система должна использовать только 1 ядро ​​для чтенияфайл в оперативную память, затем 2) и 3) может быть сделано с использованием 2 ядер.Я прав?

1 Ответ

0 голосов
/ 12 июня 2018

Смотрите, чтение файла не является процессом, связанным с процессором, его процессом, связанным с вводом-выводом.Таким образом, он обрабатывается только контроллерами DMA.В любом случае все эти файловые операции должны выполняться только в однопоточном режиме.

Вы можете парализовать операцию xoring после чтения содержимого файла отдельным потоком.Даже вы можете поместить свои файловые блоки в одну очередь, и многопоточный поток x-oring будет считывать содержимое из очереди, выполнять свою работу и отправлять результат обратно в сеть.Если вы используете асинхронный сокет-канал, он не будет блокировать вас, чтобы каждый x-oring поток мог поместить свое содержимое в этот канал.

Вот так.

...