Как работает многозадачность? Разбор
Во времена далекие, тяжелые, междоусобные, жил на руси князь галицкий Ярослав Владимирович. Премудрости ему было не занимать. Поэтому величали его Ярослав Осмомысл. Восемь мыслей он в голове мог держать. Всё он одновременно делал, и бояр окаянных усмирял, и икры баклажанную ложкой зачерпывал, и бастарда на трон сажал. Но то всё сказки. А в жизни слухи о многозадачности человеческого мозга сильно преувеличены. Все, кто пробовал решать какую-то задачу и одновременно переписываться в тысячах рабочих чатов знают, что любые попытки выполнить миллион дел за раз, приводят к интерференции мыслительных задач. Что буквально делает нас глупее, отнимает много сил и многократно снижают эффективность.
Исследователи из Университета Сассекса выяснили, что у людей с высокой степенью многозадачности плотность мозгового вещества в передней поясной коре ниже. Эта область отвечает за эмпатию, а также за когнитивный и эмоциональный контроль.
Иными словами, люди по своей природе — однозадачные. А вот современные компьютеры и операционные системы по-настоящему многозадачным. Но так было не всегда! Поэтому сегодня мы выясним, как компьютеры стали многозадачными и причем тут многоядерные процессоры AMD?
Узнаем какие операционные системы наиболее многозадачны? А главное, правда ли что на смартфонах многозадачность не настоящая?
Зачем нужна многозадачность?
Как говориться, к хорошему быстро привыкаешь. Работая за компьютером мы открываем кучу вкладок в Google Chrome или любом другом браузере, переписываемся в тысячах рабочих и не только чатов, работаем с документами и параллельно смотрим YouTube.
Сейчас с таким уровнем многозадачности легко справляются корпоративные ультрабуки, которые, собственно, и являются основным инструментом для работы. Но как они это делают?
Однозадачные ОС
Итак, в компьютерах наличие или отсутствие многозадачности в первую очередь зависит от операционной системы. Изначально все ОС были однозначными. В таких системах задачи выполнялись последовательно, то есть одна за другой. Например, старый добренький MS-DOS — это однозадачная ОС.
Такие простые операционные системы по-прежнему активно используются в различных бытовых приборах: холодильниках, кофемашинах, ну или на простейших кнопочных телефонах, которыми мы раньше пользовались. Да, старые-добрые телефоны Nokia были однозначными.
Но подождите! Ведь Nokia много чего умела! Например, за секунду до мирового рекорда в змейку вполне могла позвонить мама, и, естественно, надо было ответить. И при этом ничего страшного не происходило, можно было спокойно принять вызов, а потом продолжить играть с того же места.
Разве это не многозадачность? Нет! В этот момент система просто прерывала один процесс, переключалась на другой, а потом возвращалась обратно. Прямо как человеческий мозг. Так что знайте, наш мозг чем-то похож на старую Nokia.
А вот настоящие многозадачные ОС могут выполнять несколько процессов параллельно, ну или псевдопараллельно. О чем мы сейчас и поговорим.
Типы многозадачности
Все современные многозадачные ОС, по своей сути, делают тоже самое, что и однозадачные, они точно также прерывают одну задачу, чтобы запустить вторую, а потом третью и так далее, но это переключение происходит настолько быстро, что создается иллюзия, будто всё происходит одновременно. Но чем тогда отличаются многозадачные и однозадачные ОС?
А тем, что многозадачные системы способны прервать выполняемую задачу практически в любой момент и передать управление ожидающей задаче. Такие системы как жесткий генерал держат процессы под строгим контролем и сами решают какая из задач в данный момент может претендовать на процессорное время. Причем делают они это очень быстро, миллиарды раз в секунду. И, кстати, такой тип многозадачности называется преимущественным или вытесняющим.
Preemptive multitasking — преимущественная, или вытесняющая, многозадачность.
А какую задачу вытеснить и какой отдать преимущество определяет планировщик операционной системы. Но это не всё! На самом деле современные ОС — не просто многозадачные, они многопоточные. В чём разница?
В многозадачных ОС, минимальная единица, которой может управлять планировщик — это программа. Одна программа = один процесс, и всё что мы можем делать — это переключаться между процессами.
А в многопоточных ОС, каждая программа может иметь несколько потоков, то есть подзадач. Поэтому планировщик может переключаться между потоками, что позволяет уменьшить задержки, и куда рациональнее распределять ресурсы.
Именно такое свойство быстро переключаться между потоками позволяет вам одновременно использовать кучу приложений и мгновенно переключаться между ними.
Многопоточность в Google Chrome
Хороший пример программы, которая по максимуму использует возможности многозадачности и многопоточности — это наш родной прожорливый браузер Google Chrome. Каждая вкладка в Chrome — это отдельный процесс, с несколькими потоками. Это хорошо заметно если открыть диспетчер задач: кучка маленьких Chrome занимают ваш процессор пока вы серфите в Интернете.
Более того, что каждый процесс может попросить операционную систему развернуть другой процесс для выполнения различных задач. И под каждый такой процесс, нужно выделить определенное количество оперативной памяти.
А ведь есть еще плагины, которые также являются процессами и всякие сервисы и прочие штуки, которые нагружают не только центральный процессор, но и графический.
Короче Chrome — это настоящий монстр. У него даже есть свой диспетчер задач. Чтобы его открыть нажмите Shift + Esc в Windows, а в Mac его можно открыть из меню Window.
Для выполнения каждого из этих процессов требуется свой логический процессор. Скажем, у AMD Ryzen 7 5700U имеется 8 физических ядер, каждое из которых может работать как два виртуальных потока. Итого мы получаем 16 одновременно выполняемых потоков, часть которых может выполняться быстро и на малых частотах, а самым требовательным можно ненадолго увеличить рабочую частоту до 4,33 ГГц.
Теперь понимаете, почему Chrome жрёт столько оперативки и сажает батарейку на ноутбуках с неэффективным распределением ресурсов процессора? Для эффективного выполнения сотен мелких процессов нет ничего лучше множества ядер с эффективным управлением их мощностью. У современных процессоров AMD для этого каждое ядро может работать как производительное, либо как энергоэффективное.
Кстати, в борьбе с Google Chrome есть и другие методы снизить нагрузку на железо.
Проверяли мы все на бизнес-ноутбуке 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 году.
Ну и они со своей архитектурой 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, без которой сегодня трудно представить актуальный ультрабук для бизнеса. И шторка для веб-камеры тоже есть, это ж корпоративный продукт и приватность гарантирует.
В общем, Ryzen 5700U — это просто бомба для своего сегмента. Благодаря 8-миядерной конфигурации с 16 потоками, сотни фоновых процессов выполняются играючи, без подтормаживаний и затупов. Но стоит дать реальную нагрузку этому процессору, и вся мощь Архитектуры ZEN мигом переключится на частоту 4,3 гигагерц. Также ноутбук LENOVO V14 может похвастаться отличной автономностью — до 21 часа использования — небольшими габаритами с весом всего 1,5 килограмма и столь же конкурентной ценой. Для образцового многозадачного ноутбука получается весьма приличная колода из козырей.
Многозадачные ОС
Но какая операционная система самая-самая многозадачная? Самая эффективная, самая распределенно-параллельно вычисляющая?
На самом деле все популярные ОС — это всё многозадачные, многопоточные, многопроцессорные, вытесняющие операционные системы. К таким системам относится и Windows, и UNIX, и Linux. Ну и соответственно туда же входят MacOS и iOS, которые основаны на UNIX. И Android, который основан на Linux. Но почему тогда многозадачность в смартфонах и планшетах считается неполноценной? А вот почему.
Многозадачность на смартфонах
Несмотря на то, что iOS и Android на уровне ядра позволяют реализовать полноценную многозадачность, такую же как на взрослых операционных, Google и Apple блокируют эту возможность. Почему?
На самом деле очень простой причине: многозадачность очень ресурсоемкая вещь, которая сильно нагружает процессор и жрет аккумулятор. При этом на маленьких экранах полноценная многозадачность просто не нужна. Поэтому? чтобы ваш смартфон не разряжался за пару часов, а интерфейс был плавным, в мобильных ОС используют чуть другой подход к многозадачности. И работает это так — каждое приложение может находиться в 4-х состояниях:
- Нерабочее
- Активное
- Фоновое
- Приостановленное
До запуска, приложение находится в нерабочем состоянии. Но после нажатия на иконку, приложение загружается в ОЗУ и переходит в активное состояние. В этот момент оно полноценно работает и потребляет системные ресурсы.
Но как только вы свернули приложение, оно сразу переключается из активного состояния в фоновое, то есть приложение не видно, но оно также работает. А через несколько секунд приложение приостанавливается. Оно всё также висит в памяти, но не исполняет код.
Такой подход: с одной стороны, мгновенно запускать приостановленные приложения, когда вы к ним возвращаетесь, с другой — не сжигать лишние ресурсы в фоне.
И отвечая на вопрос, нужно ли вручную закрывать все эти приостановление приложения? Ответ — однозначно нет. Такие приложения, не съедают батарейку, они просто временно висят в оперативной памяти. Но если оперативка закончится система сама их оттуда выгрузит. И это справедливо и для iOS, и для Android.
Тем не менее бывают исключения. Некоторым приложения, позволено висеть в фоновом состоянии сколько угодно. Например, музыкальным проигрывателям, навигации, почтовым клиентам, мессенджерам. В этом случае действительно, будет тратиться какое-то количество ресурсов. Поэтому в iOS сторонним приложения очень сложно получить привилегии фоновой активности.
А вот на Android чуть попроще. В отличие от iOS в Андроиде есть понятие “сервисы”, которые могут работать в фоне, поэтому на Android гораздо проще реализовать фоновую активность приложения. Этим Android больше поход на взрослые ОС, со всеми вытекающими плюсами и минусами.
Если понравился бизнес-ноутбук LENOVO V14 GEN2 на базе AMD Ryzen, то ныряйте по ссылке, чтобы забрать ноутбук по хорошей цене! А у нас на сегодня все.
Post Views: 148