Когда Android телефон имеет So C с 6 ядрами, что это означает с точки зрения разработчика приложения? - PullRequest
0 голосов
/ 16 января 2020

У меня телефон с Мобильной платформой Snapdragon 632 и несколько случайных Android приложений, которые показывают, что у вас внутри телефона (показывает ОЗУ, So C, датчики, плотность экрана и c.) он имеет 8 ядер.

Что это означает с точки зрения Android разработчика приложений?

Так что я могу (теоретически) запустить до 8 независимых процессов который может работать параллельно? Или это связано с темой Java ? Или нет, найди что-нибудь еще для изучения :)?

1 Ответ

0 голосов
/ 16 января 2020

Q : ... до 8 независимых процессов, которые могут работать в параллельно ?

Ну, нет .
Выполнение на основе процесса true- [PARALLEL] намного сложнее, чем просто - [CONCURRENT] оркестровка процессов (хорошо известна каждому серьезному разработчику многозадачных / многопроцессорных O / S).

Q : Что это означает от Android приложение перспектива для разработчика?

8-ядерный процессор So C с 1,8 [ГГц], сообщаемый вашей системой, просто один класс ресурсов, которым O / S должен координировать работу всех процессов - следующим является RAM, запоминающее устройство, RT-1129 * -изображение (я), (случайный) источник случайности, датчик освещенности, гиродатчик (s), et c.

Все это совместное использование ресурсов является признаком просто - [CONCURRENT] оркестровка процессов, где возможность c планирования позволяет процессу go для Вард, как только какой-то запрошенный ресурс (процессорное ядро, ОЗУ, хранилище и т. д.) становится бесплатным для использования, а планировщик разрешает следующий, ожидающий выполнения небольшой части своей работы, и освобождает и возвращает все такие ресурсы обратно, как только квота времени истекает, приходит сигнал-запрос или какое-то асинхронное ожидание c заставляет такой процесс ждать некоторого внешнего, независимо синхронизированного по времени события (да, операции по сети являются типичным случаем этого) или было заказано go и спать (так, зачем блокировать других, которым не нужно ждать ... и может работать в течение этого времени или "спать").

O / S может дополнительно ограничить процессы , чтобы можно использовать, но некоторые из ядер ЦП - таким образом, такое планирование может показать, что физически 8-ядерный ЦП может быть представлен как 6-ядерный ЦП из некоторых процессов, в то время как другие 2-ядерные были близки - сопоставлены так, что ни один пользовательский процесс никогда не коснется их, поэтому они ни при каких обстоятельствах остаются свободными / готовыми служить фоновым процессам, а не вмешиваться Вместе с другими узкими местами обработки на уровне пользователя, которые могут возникнуть на оставшихся, менее ограниченных 6-ядерных системах, где процессы как на уровне системы, так и на уровне пользователя могут быть запланированы для выполнения там.

Вкл уровень процессора , дальнейшие детали имеют значение. Некоторые процессоры имеют SIMD-инструкции, которые могут обрабатывать много данных, если они должным образом предварительно выровнены в SIMD-регистры, за один и единственный шаг инструкций CPU. Напротив, некоторые 8+ ядерных процессоров должны совместно использовать только 2 физических модуля FMA-uop, которые могут многократно добавлять, тратя лишь пару циклов CPU-CLK. Так что, если все 8+ ядер запрашивают одну и ту же инструкцию uOP, ну, «Хьюстон, у нас небольшая проблема ...» - таким образом, CPU-дизайн CIS C -CPU ввели (RIS C - имеют совершенно иную философию, чтобы избежать этого) суперскалярный конвейер с переупорядочением команд в неупорядоченном порядке, поэтому 2-FMA обрабатывают каждый шаг, но пара таких пакет из 8 запрошенных FMA-uops, чередуя их на уровне CPU-uops с другими (юридически переупорядоченными инструкциями) работой. Здесь вы можете увидеть, что более глубокий L evel- o f- D etail может удивить во время исполнения, поэтому разработчики систем HP C и hard-RealTime следует обратить внимание даже на этот порядок LoD, если тестируемая система должна доказать, что она обладает максимальной надежностью для развертывания в полевых условиях.

Потоки в принципе легче, чем полностью Отлаженный процесс O / S, так что его легче поместить / освободить из ядра ЦП (см. переключение контекста), поэтому они обычно используются для внутрипроцессного выполнения кода [CONCURRENT] (потоки обычно совместно используют доставленные O / S квота совместного использования времени ЦП - т.е. когда многие процессы O / S внутри очереди планировщика O / S ожидают своего времени для выполнения на shared-CPU (ядрах), все их соответствующие потоки также ожидают (никаких признаков независимости потока от него материнский процесс). Аналогичная логика планирования c применима к случаям, когда 8-ядерный ЦП должен выполнять 888 потоков, порожденных одним процессом O / S, и все это среди других 999 системных процессов, ожидающих в очереди планировщика turn) Кроме того, управление памятью гораздо проще для потоков, так как они «совместно используют» одно и то же адресное пространство, унаследованное от их материнского процесса, и могут свободно обращаться к этому адресному пространству, в соответствии с однородной политикой доступа к памяти (и ограничения - не будет обрабатывать sh других процессов O / S, но может опустошить состояние собственной памяти ... см. проблемы с безопасностью потоков)

Q : ... что-то еще для изучения :)?

Итак, вы попробовали целостность StackOverflow, задав этот вопрос - политика S / O настоятельно не рекомендует членам сообщества спрашивать совета о том, где и что читать Минус голосов - явная мера этого.

Тем не менее, лучшее место, где можно учиться у мастеров, это погрузиться в практику проектирования O / S - лучшее проектирование происходит из систем реального времени, все же это во многом зависит от вашего уровня выносливости и опыта, от того, насколько легко или сложно вам будет следовать и учиться.

Неблокирующие, независимые процессы могут работать по-настоящему - [PARALLEL] fashion, при условии отсутствия блокировки ресурсов и результатов, определяемых c in TimeDOMAIN - все start + all execute + all fini sh - одновременно. Как и оркестр, исполняющий пьесу В.А.Мозарта.

Если бы для одного и того же музыкального произведения было разрешено всего лишь [CONCURRENT] оркестровка, скрипки могли бы начать играть только после того, как они смогли позаимствовать некоторые или все фиддлстики от альтистов, которые, возможно, ждали в подвале концертного зала, поскольку еще не была их очередь даже попасть в гримерку, солист фортепиано все еще был заблокирован в центре города, в пробке траффи c и не будет быть в состоянии закончить sh свою часть Concerto Grosso примерно через 3 часа, в то время как басисты очень быстро поиграли со всеми своими нотами, так как никто не нуждался в их сверхдлинных палках для скрипки, и они почти готовы к покиньте концертный зал и перейдите к игре на другой «вечеринке» в соседнем городе, как обещал там их начальник ...

Да, это будет просто - [CONCURRENT] оркестровка, где результирующая " производительность " всегда зависит от многих локальных - [состояний, параметров ] а также в значительной степени на внешних эффектах - (наличие такси, фактический трафик c пробка и ее динамика, ситуации, подобные некоторому ресурсу {under | over} - заказ)

Все, что делает просто - [CONCURRENT] способ выполнения проще в исполнении (не требуется строгая координация ресурсов - «наилучшее усилие» - «Делай, если и когда кто-то может») обычно достаточно), но не детерминировано c в порядке упорядочения результатов.

Вольфганг Амадей Моцарт определенно проектировал свои произведения искусства в истинно-[PARALLEL] стиле как организовать его исполнение - вот почему мы все любим Амадея, и никто никогда не мечтает о том, чтобы он был исполнен просто - [CONCURRENT] способом: о) никто никогда не обнаружит, сегодняшнее произведение недетерминированной пьесы было таким же, как было выполнено, при различном внешнем наборе внешних и других условий, прошлой ночью или на прошлой неделе, поэтому никто не мог сказать, было ли это произведение Моцарта или нет вообще ... Перейти d bless true- [PARALLEL] оркестровка никогда не позволяет опустошать такие прекрасные произведения искусства и действует так, как каждый раз (почти гарантированно) получается один и тот же результат ...

...