Рубрика «многозадачность»

Когда я предложил перевести на русский мою последнюю статью Easy Concurrency with Python Shared Objects на английском, поступило предложение "написать в несколько раз короче и понятнее". Просьба более чем обоснована. Поскольку я уже порядка десяти лет пишу многопоточку и БД, то описываемые мной логические связи выглядели самоочевидно, и я ошибочно расчитывал на аудиторию из трех с половиной человек, которые сидят сейчас где-то в яндексе или гугле. Судя по всему, они там и сидят, но тема им не интересна, поскольку в питоне нет настоящих потоков, а значит для этих людей такого языка программирования не существует. Потому я немножко снижаю планку и делаю общий обзор проблематики параллельных вычислений для людей, которые в них разбираются, но не являются экспертами в области.

Из-за чего весь сыр-бор? Читать полностью »

Введение

Доброго времени суток, сегодня хотелось бы затронуть достаточно простую тему, которая почти никем из обычных программистов неизвестна, но каждый из вас, скорее всего, ей пользовался.
Речь пойдет о симметричной мультипроцессорности(в народе — SMP) — архитектура, которая встречается во всех многозадачных операционных системах, и конечно же, является неотъемлемой их частью. Каждый знает, что чем больше ядер у процессора — тем мощнее будет процессор, да, это так, но как ОС может использовать несколько ядер одновременно? Некоторые программисты не спускаются до такого уровня абстракции — им это попросту не надо, но думаю, всем будет интересно то, как же SMP работает.
Читать полностью »

image

Сегодня мы поговорим о такой актуальной теме, как таймеры и организация многозадачности на Arduino. Поводом для написания этой статьи послужили лекции Олега Артамонова @olartamonov для студентов МИРЭА в рамках IoT Академии Samsung, а точнее, высказывание Олега, цитата (2-я лекция, 1:13:08):

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

Судя по высказываниям Олега, у него весьма превратное представление об Arduino вообще и об «ардуинщиках» в частности. Мигание пятью светодиодами в означенных им режимах это абсолютно тривиальная задача для Arduino, а для Arduino Mega Server это вообще не задача, а сущее недоразумение — его штатными средствами организуется многозадачность, которая легко управляет сотнями различных сущностей (светодиодов, сервоприводов, шаговых моторов и т. д.) в реальном времени.

Давайте вместе разберёмся как организовать многозадачность на Arduino, а заодно поможем студентам МИРЭА избавится от навязанных им стереотипов восприятия по отношению к социо-культурному и технологическому феномену нашего времени под названием Arduino.
Читать полностью »

Подразумевается, что мы будем писать прошивку под «голое железо». В противном случае применение protothreads смысла не имеет, т.к. мультизадачность должна обеспечиваться средствами ОС. Подразумевается также, что нам необходимо реализовать несколько более-менее сложных алгоритмов, связанных с операциями ввода-вывода. Ну и, как всегда в микроконтроллерах, очевидные требования по экономии RAM и энергопотребления.
Читать полностью »

Да здравствует единственный монитор

Почему я отказался от нескольких мониторов - 1
Нужен всего один монитор с высоким DPI — и зачастую для специалистов в сфере ИТ это действительно лучше, чем несколько мониторов.

Многие разработчики считают, что использование нескольких мониторов повышает производительность — ведь это подтверждается исследованиями, да? Только следует иметь в виду, что многие исследования проводились производителями мониторов — компаниями Dell, NEC и другими.

Безусловно, если поставить на рабочем месте несколько мониторов, окружающие будут думать, что вы тот еще хакер… но пару лет назад я все же продал свои мониторы и оставил один. Оказывается, в этом я не одинок.

И сейчас я расскажу, почему.

Переведено в Alconost
Читать полностью »

Многозадачность. Как справиться с призраками посторонних дел - 1 Автор иллюстрации: John Kenn

Многозадачность мешает сосредоточиться, довести начатое дело до конца, вызывает беспокойство и усталость, постоянное ощущение спешки, чувство неудовлетворенности, при этом эффективность работы падает.

О многозадачности, а точнее о том как с ней справиться, в статье и пойдет речь.
Читать полностью »

Андрей Смирнов

Анатомия веб-сервиса

Андрей Смирнов

Я попытаюсь залезть в «потроха» и «кишки» бэкенда веб-сервиса и расскажу, как это внутреннее устройство влияет на эффективность сервиса, а также на продукт, его характеристики, и как бы мы могли этим воспользоваться, чтобы наше приложение выдерживало большую нагрузку или работало бы быстрее.

Какую часть я называю веб-сервисом, бэкендом, application-сервером? В классической архитектуре это то, что стоит за http rеverse proxy или load-балансировщиком, а с другой стороны у него находятся база данных, memcached и др. Вот только об этом бэкенде и будет идти речь.

Читать полностью »

Люди, одновременно выполняющие несколько дел, кажутся нам просто гуру эффективности. Но иногда бывает как в анекдоте: «Да, я печатаю 300 знаков в минуту. Правда, такая ерунда получается». Вы хотите быть эффективным или слыть им?
Homo Multitaskingus: человек многозадачный - 1"
Читать полностью »

Нейробиологи предупреждают: многозадачность истощает энергетические резервы вашего мозга - 1
Постоянная проверка телефона снижает производительность

И вот опять — каждодневная утренняя суета: проверить электронную почту, просмотреть Фейсбук, быстренько выпить чашечку кофе, прогуглить, направляясь к поезду, одну последнюю идею, проверить уведомления, ещё кофе, пролистать рабочую электронную почту … — уф! Бесчисленное множество дел переполняет ваше утро, и постоянное переключение между ними, похоже, заметно утомляет вас.

Когда мы пытаемся заниматься несколькими делами одновременно, мы фактически не делаем больше одного дела сразу, а просто быстро переключаемся между ними. И такое переключение истощает. Оно расходует насыщенную кислородом глюкозу в головном мозге, потребляя то же топливо, которое требуется для сосредоточения на задаче.
Читать полностью »

См. две другие статьи этой группы — Делаем многозадачность и Преемптивность: как отнять процессор.

Сразу просьба к строгим читателям. Если вы не поняли какой-либо термин из применённых — спросите, я подскажу, что я имел в виду. А если вам нравится другое написание или перевод этого термина — укажите его в комментарии. Я применяю те, которые нравятся мне.

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

Как я уже говорил, шедулер — это просто функция, которая отвечает на вопрос: какую нить и на сколько времени поставить на процессор.

Кстати, в SMP системе шедулер ничем не отличается от однопроцессорного. Вообще, чтобы проще понимать структуру взаимодействия сущностей на одном и нескольких процессорах, проще всего представить себе следующую модель: для каждого процессора есть нить «простоя» (которая работает, если вообще больше некому и просто останавливае процессор до прерывания), которая постоянно пытается «отдать» процессор (которым она как бы владеет) другим нитям, выбирая нить с помощью шедулера.

Говоря о шедулере нельзя не сказать о приоритетах.

Приоритет — свойство нити (или процесса) влияющее на конкуренцию этой нити с другими нитями за процессор.

Приоритет обычно описывается парой <класс приоритета, значение приоритета внутри класса>.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js