Написать пост

dimonline

программирование на колесах или откуда берутся пробки!

Наверняка многие из вас слышали про конкурс компании Intel, в котором нужно объяснить сугубо программистские термины понятными простым людям словами.

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






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

Во-первых, проблема в том, что не все пользуются общественным транспортом. А кто в этом виноват? Виноваты его создатели, которые плохо рассчитали размер Thread Pool'а. Те, кому не нравится ждать, когда же наконец появится место в автобусе, пользуются личным автотранспортом . А как нам известно, тогда на каждого человека требуется гораздо больше дорожных (читай системных) ресурсов.

Во-вторых, они бывают из-за светофоров. Вот представьте себе едет поток машин через перекресток и тут вдруг бац и загорается желтый. Начинается процесс Context Switching'а. Сначала один поток тормозит, потом другой начинает разгоняться и как только он успеет разогнаться, опять произойдет смена контекста…

Казалось бы из этого можно сделать вывод, что светофоры - зло? Нет, вы просто не сталкивались с регулировщиками! Когда на перекрестке стоят светофоры - это MIMD - для каждого потока свой светофор, а когда на нем стоит регулировщик он один управляет всем перекрестком (SIMD). Надо сказать у него это не всегда хорошо получается!

Бывают еще один тип пробок - пробки из-за декомпозиции данных! Обычно дороги делятся по принципу функциональной декомпозиции (дорога оттуда сюда или дорога отсюда туда). Но бывает, что по какой-то дороге должен проехать определенный тип (необязательно данных) и тогда эта дорога становится временно неприменимой для остальных сущностей.

Кстати, еще бывают дороги, которые поддерживают многопоточность, но не поддерживают многозадачность - они многополосные, но все едут в одну сторону!

А еще бывают пробки из-за тех, кто заснул при выезде из двора и из активно ожидающего освобождения главной дороги (busy-waiting thread) стал пассивно ожидающем того, что его обругают и обсигналят (sleeping thread)
16 комментариев нравится избранное
  • verwolfdotss
    23 июл 2009 в 23:07
    повеселило)
    но думаю не все поймут)
    (хотя многие сюда с хабра попали)
  • ilyxa
    23 июл 2009 в 23:19
    ооотлично :)
  • Marlboro
    23 июл 2009 в 23:53
    Есть мнение, что если грамотно настроить iptables и настроить rules'ы (запрет движения по встречке, обочине) в соответствии с ПДД — это уже существенно разгрузило бы проблему пробок.
    Кстати, на физическом уровне требуются также многочисленные fix'ы и анализ bug reports'ов. :)
  • dimonline
    24 июл 2009 в 00:04
    @Marlboro А у вас неплохо получается! Может сочините для Intel'a свой вариант трактовок терминов?)
  • dimonline
    24 июл 2009 в 00:04
    @ilyxa спасибо)
    может жюри конкурса тоже оценит :-[
  • Marlboro
    24 июл 2009 в 00:10
    @dimonline Спасибо, но программирование — не мой конек.
    Сети,«железо» и Fedora — наше все! :))
  • dimonline
    24 июл 2009 в 00:11
    @Marlboro Ну, каждому свое)
  • dinosavr
    24 июл 2009 в 04:01
    Я понял, что у них те же проблемы, но больше ни фига не понял ))
    Скорее это текст, как программистам объяснить, что такое пробки и кто такой регулировщик.
    У них там функции сотрудника ГИБДД нет?
  • Marlboro
    24 июл 2009 в 07:23
    @dinosavr Есть. Firewall называется. :D
  • derfur
    24 июл 2009 в 11:00
    @Marlboro Согласен про исправление всего физического уровня данной системы. Она давно не справляется с существющими объемами данных :) Распаралеливание запросов(стоительство дополнительных дорог и развязок) и переписывание хранимых процедур(дорожные службы и т д) спасет нас! :)
  • derfur
    24 июл 2009 в 11:04
    @Marlboro Переходите на Соляру. Федора — как наши ПДД и КоАП(куча разных идей взятых из разных источников с поверхностной подгонкой друг к другу зачастую противоречащих друг другу) :) это не холивар :)
  • alexstar
    24 июл 2009 в 15:04
    идея конкурса прикольная и понятная, ну и приз достойный.
    только вот, боюсь, половина Автокадабры нифига не понимает в программировании :)
  • dimonline
    24 июл 2009 в 15:11
    @alexstar ну, я как бы это не чтобы конкурс пропиарить написал, а чтобы народ мой вариант ответа прокомментировал)
  • Kamikaze
    24 июл 2009 в 16:22
    Извиняюсь за придирку: switching наверное имелось в виду.
    Спасибо, интересно =)
  • dimonline
    24 июл 2009 в 16:55
    @Kamikaze ой, правда не заметил очепятку…
    а на форуме интела уже не исправишь =(
  • Rageous
    25 июл 2009 в 12:32
    каждый раз о чем-то подобном думал пока на машине на работу ездил :)
Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста, или зарегистрируйтесь.