Многозадачность

Материал из Posmotrelisu
Версия от 16:44, 20 июня 2024; ЗаяцВолк (обсуждение | вклад) (Новая страница: «{{q|Говорят, что Юлий Цезарь делал много дел одновременно. Да, поездил бы он в нашей маршрутке и посмотрел на водителя.|Задорнов}} …Место для вашей аннотации… == Биологическая сторона вопроса == В некоторой степени многозадачность есть у всех людей. Чел...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску
« Говорят, что Юлий Цезарь делал много дел одновременно. Да, поездил бы он в нашей маршрутке и посмотрел на водителя. »
Задорнов

…Место для вашей аннотации…

Биологическая сторона вопроса

В некоторой степени многозадачность есть у всех людей. Человек может, например, одновременно:

  • идти;
  • есть;
  • дышать;
  • выполнять простейшие физ. упражнения;
  • думать.

Такая многозадачность возможна благодаря нашему подсознанию, которое специально обучено выполнять типовые задачи — ту же самую ходьбу, приём пищи и пр.

Но большинству, вероятно, интересно а можно ли такой финт выкатить с умственными задачами…

Что ж, ответ нет — человек не может выполнять несколько умственных задач одновременно.

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

  • Повышается риск совершения ошибок.
  • Мозг начинает жрать много энергии просто на переключение с одной задачи на другую Комментарий: у некоторых технических реализаций многозадачности также.
  • Стресс.
  • Усталость.

Техническая сторона вопроса

Ладно, разобрали как с этим у кожаных мешочков, рассмотрим как с многозадачностью у железа и программ.

Прежде всего следует понимать, что у человека один «процессор[1]», а у компьютера их… ну… существенно больше.

Поэтому компьютер может выполнять задачи одновременно тупо их-за своей многоядерности и это не считая специальных архитектурных решений[2]

Но есть же ещё и программы, которые сводят это преимущество на нет. Возможные причины:

  • Программа написана так, что исполняется одним процессом, что сильно сказывается на производительности, если программа требует много расчётов.
  • Программа использует многозадачность, только вот написана криво, что приводит к различным болячками (например, состоянию гонки, взаимной блокировке и пр.)
  • В программе слишком много общих данных, с которыми «задачам» приходится работать. Из-за этого плюсы многозадачности могут нивелироваться затратами на актуализацию данных.

Казалось бы, всё просто: просто программы нужно писать хорошо, а плохо писать не нужно. Но и с этим уйма сложностей, начиная, например, с архитектуры приложения, самого языка программирования и т. п.

Именно поэтому некоторые игры-песочницы плохо оптимизируются. Dwarf Fortress[3], RimWorld[4], Stellaris грустно кивают в сторонке.

Примеры

Тут помню тут не помню.jpgДа миллион раз же было!
Автор этой статьи уверен, что неоднократно видел примеры этого тропа, но не может вспомнить достаточное их количество. Может быть, вам придёт на ум ещё хотя бы парочка?

Фольклор

Литература

  • Цикл «Ник» от Анджея Ясинского — заглавный герой получил такую фичу. Сам он её описывает как этакую шизофрению, когда в голове два голоса думают одновременно.

Комиксы

  • Неуязвимый — Робот/Руди после возвращения на Землю от флексианцев знатно прокачался на этом поприще. Управлять одновременно несколькими отрядами роботов, несколькими командами супергероев в разных частях планеты, играя при этом в видеоигру? Как два пальца.

Аниме, манга, ранобэ

  • Да, я паук и что с того? — навык «параллельные сознания» у героини. Одно дерётся телом, другое продумывает стратегию, третье кастует магию и пр.

Видеоигры

  • Stellaris — один из признаков у разогнанных обеспечивает сабж. В тело пропихивается куча мозгов, которые и решают задачи. Согласно описанию могут спорить друг с другом.

Примечания

  1. Хотя некоторые работы говорят, что это не так.
  2. Например, инструкции процессора о параллельных вычислениях (MMX, SSE в интеле).
  3. Всё же добавили немного параллелизма.
  4. Всё же добавили немного параллелизма.