Найти тему
Droider

Как работает многозадачность? Разбор

Оглавление

Во времена далекие, тяжелые, междоусобные, жил на руси князь галицкий Ярослав Владимирович. Премудрости ему было не занимать. Поэтому величали его Ярослав Осмомысл. Восемь мыслей он в голове мог держать. Всё он одновременно делал, и бояр окаянных усмирял, и икры баклажанную ложкой зачерпывал, и бастарда на трон сажал. Но то всё сказки. А в жизни слухи о многозадачности человеческого мозга сильно преувеличены. Все, кто пробовал решать какую-то задачу и одновременно переписываться в тысячах рабочих чатов знают, что любые попытки выполнить миллион дел за раз, приводят к интерференции мыслительных задач. Что буквально делает нас глупее, отнимает много сил и многократно снижают эффективность.

Исследователи из Университета Сассекса выяснили, что у людей с высокой степенью многозадачности плотность мозгового вещества в передней поясной коре ниже. Эта область отвечает за эмпатию, а также за когнитивный и эмоциональный контроль.

Иными словами, люди по своей природе - однозадачные. А вот современные компьютеры и операционные системы по-настоящему многозадачным. Но так было не всегда! Поэтому сегодня мы выясним, как компьютеры стали многозадачными и причем тут многоядерные процессоры AMD?

Узнаем какие операционные системы наиболее многозадачны? А главное, правда ли что на смартфонах многозадачность не настоящая?

Зачем нужна многозадачность?

Как говориться, к хорошему быстро привыкаешь. Работая за компьютером мы открываем кучу вкладок в Google Chrome или любом другом браузере, переписываемся в тысячах рабочих и не только чатов, работаем с документами и параллельно смотрим YouTube.

Сейчас с таким уровнем многозадачности легко справляются корпоративные ультрабуки, которые, собственно, и являются основным инструментом для работы. Но как они это делают?

Однозадачные ОС

Итак, в компьютерах наличие или отсутствие многозадачности в первую очередь зависит от операционной системы. Изначально все ОС были однозначными. В таких системах задачи выполнялись последовательно, то есть одна за другой. Например, старый добренький MS-DOS - это однозадачная ОС.

Такие простые операционные системы по-прежнему активно используются в различных бытовых приборах: холодильниках, кофемашинах, ну или на простейших кнопочных телефонах, которыми мы раньше пользовались. Да, старые-добрые телефоны Nokia были однозначными.

-2

Но подождите! Ведь Nokia много чего умела! Например, за секунду до мирового рекорда в змейку вполне могла позвонить мама, и, естественно, надо было ответить. И при этом ничего страшного не происходило, можно было спокойно принять вызов, а потом продолжить играть с того же места.

Разве это не многозадачность? Нет! В этот момент система просто прерывала один процесс, переключалась на другой, а потом возвращалась обратно. Прямо как человеческий мозг. Так что знайте, наш мозг чем-то похож на старую Nokia.

А вот настоящие многозадачные ОС могут выполнять несколько процессов параллельно, ну или псевдопараллельно. О чем мы сейчас и поговорим.

Типы многозадачности

Все современные многозадачные ОС, по своей сути, делают тоже самое, что и однозадачные, они точно также прерывают одну задачу, чтобы запустить вторую, а потом третью и так далее, но это переключение происходит настолько быстро, что создается иллюзия, будто всё происходит одновременно. Но чем тогда отличаются многозадачные и однозадачные ОС?

А тем, что многозадачные системы способны прервать выполняемую задачу практически в любой момент и передать управление ожидающей задаче. Такие системы как жесткий генерал держат процессы под строгим контролем и сами решают какая из задач в данный момент может претендовать на процессорное время. Причем делают они это очень быстро, миллиарды раз в секунду. И, кстати, такой тип многозадачности называется преимущественным или вытесняющим.

Preemptive multitasking - преимущественная, или вытесняющая, многозадачность.

А какую задачу вытеснить и какой отдать преимущество определяет планировщик операционной системы. Но это не всё! На самом деле современные ОС - не просто многозадачные, они многопоточные. В чём разница?

В многозадачных ОС, минимальная единица, которой может управлять планировщик - это программа. Одна программа = один процесс, и всё что мы можем делать - это переключаться между процессами.

А в многопоточных ОС, каждая программа может иметь несколько потоков, то есть подзадач. Поэтому планировщик может переключаться между потоками, что позволяет уменьшить задержки, и куда рациональнее распределять ресурсы.

-3

Именно такое свойство быстро переключаться между потоками позволяет вам одновременно использовать кучу приложений и мгновенно переключаться между ними.

Многопоточность в Google Chrome

Хороший пример программы, которая по максимуму использует возможности многозадачности и многопоточности - это наш родной прожорливый браузер Google Chrome. Каждая вкладка в Chrome - это отдельный процесс, с несколькими потоками. Это хорошо заметно если открыть диспетчер задач: кучка маленьких Chrome занимают ваш процессор пока вы серфите в Интернете.

-4
-5

Более того, что каждый процесс может попросить операционную систему развернуть другой процесс для выполнения различных задач. И под каждый такой процесс, нужно выделить определенное количество оперативной памяти.

-6

А ведь есть еще плагины, которые также являются процессами и всякие сервисы и прочие штуки, которые нагружают не только центральный процессор, но и графический.

-7

Короче Chrome - это настоящий монстр. У него даже есть свой диспетчер задач. Чтобы его открыть нажмите Shift + Esc в Windows, а в Mac его можно открыть из меню Window.

Для выполнения каждого из этих процессов требуется свой логический процессор. Скажем, у AMD Ryzen 7 5700U имеется 8 физических ядер, каждое из которых может работать как два виртуальных потока. Итого мы получаем 16 одновременно выполняемых потоков, часть которых может выполняться быстро и на малых частотах, а самым требовательным можно ненадолго увеличить рабочую частоту до 4,33 ГГц.

Теперь понимаете, почему Chrome жрёт столько оперативки и сажает батарейку на ноутбуках с неэффективным распределением ресурсов процессора? Для эффективного выполнения сотен мелких процессов нет ничего лучше множества ядер с эффективным управлением их мощностью. У современных процессоров AMD для этого каждое ядро может работать как производительное, либо как энергоэффективное.

Кстати, в борьбе с Google Chrome есть и другие методы снизить нагрузку на железо.

-8

Проверяли мы все на бизнес-ноутбуке LENOVO V14 GEN2 с процессором AMD Ryzen 7 5700U и 8 ГБ оперативной памяти. Вот его спецификации:

Lenovo V14 GEN2

  • Дисплей 14" FHD 60Гц
  • Процессор - AMD Ryzen 7 5700U (1,8-4,3 ГГц)
  • TDP - 15Вт
  • ОЗУ - 8ГБ
  • SSD - 256ГБ

Современные ОС многозадачные и многопоточные, а потому, что они еще и многопроцессорные. Это значит, что ОС поддерживают работу с несколькими процессорами одновременно. Правда за редкими случаями такой необходимости нет, так как большинство современных процессоров многоядерные, а каждое ядро, это считайте отдельный процессор. И чем больше ядер, тем лучше для многозадачности!

А многоядерность - это фишка AMD. Они в принципе выпустили первый двухядерный проц для ПК, это был Athlon 64 X2 в 2005 году.

-9

Ну и они со своей архитектурой ZEN, cмогли сделать по-настоящему крутые 8-ядерные процессоры для ультрабуков. Например, в нашем LENOVO V14 GEN2 установлен AMD Ryzen 7 5700U. Это 8-ядерный и 16-поточный процессор. Это значит, что он может обрабатывать 16 потоков одновременно, то есть параллельно без всяких там приставок “псевдо”. Что делает этот ноутбук супер-отзывчивым. Приложения быстро грузятся, переключение между запущенными программами происходит мгновенно. Работа с несколькими рабочими столами - также без проблем.

Что очень круто для корпоративного ультрабука. Но еще круче то, что все 8 ядер могут в определенный момент заработать на полную, и тогда все 16 потоков будут выполняться на предельной тактовой частоте 4,3 ГГц. А затем также быстро перейти в энергоэффективный режим, снижая общий показатель тепловыделения ниже 15 Ватт.

ПРИМЕЧАНИЕ: В штатном режиме на ноутбуке все ядра не смогут работать на максимальной частоте; она обычно достижима для одного-двух ядер.

С процессорами AMD Ryzen поколения ZEN 2 эффективность распределения процессов на потоки легко спутать с магией. Настолько быстро и незаметно все выполняется в большинстве повседневных рабочих задач. Более того, тут еще стоит довольно мощная встроенная графика AMD Radeon.

Поэтому ноутбук можно спокойно использовать не только для типичных офисных задач задач, типа работы документами и почтой, но и работать:

  • С тяжелыми приложениями
  • С 2D, 3D графикой
  • С внешними 4К дисплеями
  • Стримить видео без тормозов
  • Проводить конференции со спец.эффектами типа замены фона и кучей участников, что особенно важно на удаленке.

Что еще важно? Безопасность. Архитектура Zen, в процессорах Ryzen, сама по себе не так подвержена уязвимостям в силу новизны, особенно на фоне устаревающих архитектурных решений у многих конкурентов.

Вдобавок тут есть встроенный модуль безопасности TPM 2.0, который шифрует всё и вся по стандартам корпоративной безопасности бизнес-инфраструктуры. Ну и конечно он нужен для установки Windows 11, без которой сегодня трудно представить актуальный ультрабук для бизнеса. И шторка для веб-камеры тоже есть, это ж корпоративный продукт и приватность гарантирует.

-10

В общем, Ryzen 5700U - это просто бомба для своего сегмента. Благодаря 8-миядерной конфигурации с 16 потоками, сотни фоновых процессов выполняются играючи, без подтормаживаний и затупов. Но стоит дать реальную нагрузку этому процессору, и вся мощь Архитектуры ZEN мигом переключится на частоту 4,3 гигагерц. Также ноутбук LENOVO V14 может похвастаться отличной автономностью - до 21 часа использования - небольшими габаритами с весом всего 1,5 килограмма и столь же конкурентной ценой. Для образцового многозадачного ноутбука получается весьма приличная колода из козырей.

Многозадачные ОС

Но какая операционная система самая-самая многозадачная? Самая эффективная, самая распределенно-параллельно вычисляющая?

-11

На самом деле все популярные ОС - это всё многозадачные, многопоточные, многопроцессорные, вытесняющие операционные системы. К таким системам относится и Windows, и UNIX, и Linux. Ну и соответственно туда же входят MacOS и iOS, которые основаны на UNIX. И Android, который основан на Linux. Но почему тогда многозадачность в смартфонах и планшетах считается неполноценной? А вот почему.

Многозадачность на смартфонах

Несмотря на то, что iOS и  Android на уровне ядра позволяют реализовать полноценную многозадачность, такую же как на взрослых операционных, Google и Apple блокируют эту возможность. Почему?

На самом деле очень простой причине: многозадачность очень ресурсоемкая вещь, которая сильно нагружает процессор и жрет аккумулятор. При этом на маленьких экранах полноценная многозадачность просто не нужна. Поэтому? чтобы ваш смартфон не разряжался за пару часов, а интерфейс был плавным, в мобильных ОС используют чуть другой подход к многозадачности. И работает это так - каждое приложение может находиться в 4-х состояниях:

  1. Нерабочее
  2. Активное
  3. Фоновое
  4. Приостановленное

До запуска, приложение находится в нерабочем состоянии. Но после нажатия на иконку, приложение загружается в ОЗУ и переходит в активное состояние. В этот момент оно полноценно работает и потребляет системные ресурсы.

Но как только вы свернули приложение, оно сразу переключается из активного состояния в фоновое, то есть приложение не видно, но оно также работает. А через несколько секунд приложение приостанавливается. Оно всё также висит в памяти, но не исполняет код.

Такой подход: с одной стороны, мгновенно запускать приостановленные приложения, когда вы к ним возвращаетесь, с другой - не сжигать лишние ресурсы в фоне.

И отвечая на вопрос, нужно ли вручную закрывать все эти приостановление приложения? Ответ - однозначно нет. Такие приложения, не съедают батарейку, они просто временно висят в оперативной памяти. Но если оперативка закончится система сама их оттуда выгрузит. И это справедливо и для iOS, и для Android.

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

А вот на Android чуть попроще. В отличие от iOS в Андроиде есть понятие “сервисы”, которые могут работать в фоне, поэтому на Android гораздо проще реализовать фоновую активность приложения. Этим Android больше поход на взрослые ОС, со всеми вытекающими плюсами и минусами.

-12

Если понравился бизнес-ноутбук LENOVO V14 GEN2 на базе AMD Ryzen, то ныряйте по ссылке, чтобы забрать ноутбук по хорошей цене! А у нас на сегодня все.