|
|
|
Вытесняющая многозадачность и многопоточность
|
|||
|---|---|---|---|
|
#18+
По идее, в вытесняющей многозадачности вообще синхронизация потоков не нужна, т. к. по определению не возникает состоянии конкуренции за ресурсы между потоками? Ведь в одно и то же время только один поток выполняется. Всё зло от многопроцессорности, да? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 04:27 |
|
||
|
Вытесняющая многозадачность и многопоточность
|
|||
|---|---|---|---|
|
#18+
Если речь о синхронизации доступа к разделяемым ресурсам, то она нужна независимо от количества процов. Например надо прочитать глобальную переменную, изменить и записать обратно. Даже с одним процом поток может быть прерван после "прочитать" и запущен другой поток, который внесет свои изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 07:07 |
|
||
|
Вытесняющая многозадачность и многопоточность
|
|||
|---|---|---|---|
|
#18+
Лучше концепции однопоточного апартамента никто еще ничего не придумал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 11:47 |
|
||
|
Вытесняющая многозадачность и многопоточность
|
|||
|---|---|---|---|
|
#18+
Rock AmadeusПо идее, в вытесняющей многозадачности вообще синхронизация потоков не нужна Ты путаешь вытесняющую многозадачность с кооперативной. При вытесняющей код не может предсказать в каком месте его выполнение прервётся, поскольку кончился квант времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 14:53 |
|
||
|
Вытесняющая многозадачность и многопоточность
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovRock AmadeusПо идее, в вытесняющей многозадачности вообще синхронизация потоков не нужна Ты путаешь вытесняющую многозадачность с кооперативной. При вытесняющей код не может предсказать в каком месте его выполнение прервётся, поскольку кончился квант времени. Я имею ввиду такую многозадачность, при которой у любых потоков одной программы не может возникнуть состояния конкуренции за данные. Если взять одно ядно без гипертрединга, то сколько потоков на нём ни запускай, а в одно и то же время будет выполняться только один поток. Так? Т. е. при таких условиях можно писать многопоточный код не заботясь о блокировках потоков, так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 18:24 |
|
||
|
Вытесняющая многозадачность и многопоточность
|
|||
|---|---|---|---|
|
#18+
Rock AmadeusВсё зло от многопроцессорности, да? Правильно читать - от многоядерности и гипертрединга. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 18:26 |
|
||
|
Вытесняющая многозадачность и многопоточность
|
|||
|---|---|---|---|
|
#18+
Rock AmadeusRock AmadeusВсё зло от многопроцессорности, да? Правильно читать - от многоядерности и гипертрединга. бредятина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 19:34 |
|
||
|
Вытесняющая многозадачность и многопоточность
|
|||
|---|---|---|---|
|
#18+
ИзопропилRock Amadeusпропущено... Правильно читать - от многоядерности и гипертрединга. бредятина. Т. е. на одном ядре без гипертрединга может возникнуть конкуренция за данные в многопоточном приложении? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 19:51 |
|
||
|
Вытесняющая многозадачность и многопоточность
|
|||
|---|---|---|---|
|
#18+
Rock AmadeusТ. е. на одном ядре без гипертрединга может возникнуть конкуренция за данные в многопоточном приложении? да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 19:59 |
|
||
|
Вытесняющая многозадачность и многопоточность
|
|||
|---|---|---|---|
|
#18+
Rock Amadeus, кстати, задолго до появления гипертрединговых и многоядерных микропроцессоров (и вообще до появления микропроцессоров) существовали многопроцессорные системы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 20:24 |
|
||
|
Вытесняющая многозадачность и многопоточность
|
|||
|---|---|---|---|
|
#18+
ИзопропилRock Amadeus, кстати, задолго до появления гипертрединговых и многоядерных микропроцессоров (и вообще до появления микропроцессоров) существовали многопроцессорные системы Я имел ввиду, что прямо вообще среда, в которой чисто физически только один поток одновременно исполняется. Один процессор, одно ядро, нет гипертрединга. Как при таких условиях может возникнуть гонка за ресурсы? Разве что какая-то виртуальная, где в какой-нибудь виртуальной среде виртуально считается, что код выполняется одновременно, хотя чисто физически это невозможно. А... Или погоди... Вот в чём дело. Кажется, я понял. Скажем, в один квант времени начал исполняться один поток, но он не закончил за этот квант выполнять какой-то блок кода, где находятся данные, за которые может быть конкуренция. В другой квант времени начал выполняться другой поток по тому же самому блоку кода, и он начал менять данные, которые юзал прежний поток. Вот тогда да - в следующий свой квант времени первый поток получит изменённые данные. А вот если бы была гарантия, что будет выделено достаточно квантов времени, чтобы выполнить блок кода полностью... Хотя, есть же данные, которые расшарены среди многих классов и блоков кода - тут уже недостаточно выделять кванты для одного блока... Вобщем, понятно, я был неправ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2017, 04:05 |
|
||
|
Вытесняющая многозадачность и многопоточность
|
|||
|---|---|---|---|
|
#18+
Rock Amadeus...в один квант времени...вот если бы была гарантия... если вообще глобально - то вы правы = одна задача на голом железе => нет проблем. Но...(куда же без них то! :) ) 1) Сам софт, на любой железке, стараются разделить логически и физически. Более того - изолировать. Более того - иметь возможность параллелить разработку. (см. понимание ядро, процесс, программа). 2) Существуют вещи напрямую или косвенно уходящие в обработку внешних источников сигналов для железки. как правило это система прерываний. (см. драйвера, обработка прерываний, реал-тайм определение) Посему не важно сколько у Вас ядер или алу. Если есть вероятность асинхронности - то обязательно(!) надо позаботиться о синхронизации доступа к разделяемым данным. удачи Вам (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2017, 13:33 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39415347&tid=1340469]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
232ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
3ms |
| others: | 229ms |
| total: | 585ms |

| 0 / 0 |
