Re[12]: Собеседование в Логике
От: serg_joker Украина  
Дата: 26.09.07 01:01
Оценка:
Здравствуйте, Andrew S, Вы писали:

_>>>>2. Не могу согласиться. Да, если ресурс не может быть занят сразу, то в случае однопроцессорной машины спин-блокировки не происходит и сразу будет переход в режим ядра. Но, если ресурс свободен, то перехода в режим ядра не будет, потому как незачем. В таком случае имеем выигрыш.


AS>>>Спин-блокировка это совсем не то, что вы думаете. Быстрая проверка на занятость есть и для однопроцессорной критической секции, а спинлок — это совершенно другое. Почитайте еще вот тут — http://www.rsdn.ru/article/baseserv/critsec.xml
Автор(ы): Павел Блудов
Дата: 14.03.2005
В статье рассматриваются аспекты работы с критическими секциями, их внутреннее устройство и способы отладки
.

_>>И тут почитаю тоже.
_>>Вопрос вот в чем: если все-таки у однопроцессорной критической секции есть быстрая проверка на занятость, то не будет ли в случае незанятого ресурса захват критической секции быстрее, чем объекта ядра ?
_>>Спасибо.

AS>Будет. Но тут говорилось про другое — предназначение спинлока в критической секции. Смысл в том, что на однопроцессорной машине он бесполезен (а точнее, вреден). Поэтому однопроцессорные и многопроцессорные машины помимо разных HAL имеют еще и как минимум разный native рантайм.

ОК. Резюмирую так:
1. Спин-блокировка на многопроцессорной машине дает преимущество, на однопроцессорной бесполезна.
2. Критические секции могут быть эффективнее объектов ядра как на многопроцессорных машинах, так и на однопроцессорных.
Согласны?
Re[4]: Собеседование в Логике
От: landerhigh Пират  
Дата: 26.09.07 03:35
Оценка: +1 :)
Здравствуйте, ZergIII, Вы писали:

ZII>Уважаемый, мы брейнбенч-подобные вопросы используем только для предварительной фильтрации и не требуем 100% правильных ответов. Просто экономия времени. Мне кажется, что если человек из 20 вопросов по С++ правильно отвечает только на 10 (причем уверяю вас, мы не задаем супер сложные вопросы или вопросы с подковырками) то это говорит либо о том, что он только недавно начал учить С++, либо (если у него опыт на С++ 5 лет), что его желание развиваться и поднимать свой технический уровень под большим вопросом.

К слову сказать, я вот сеньор.
Только.. ну, как бы сказать, чтобы не обидеть.
Контора, которая выдает браинбенч-подобные вопросы в лоб (не важно, для фильтрации ли или в каких других целях) моментально перемещается в мой собственный черный список.
Так что смотрите, как бы чего лишнего не "отфильтровать"
Re[4]: Собеседование в Логике
От: minorlogic Украина  
Дата: 26.09.07 04:29
Оценка:
Здравствуйте, serg_joker, Вы писали:

_>Прикольно, но реализация sort, соответствующая стандарту, должна гарантировать сложность алгоритма n*log(n). Очевидно, что используя advance, таких гарантий дать нельзя. Кроме того, по стандарту sort таки требует RandomAccessIterator. См. ISO/IEC 14882:2003 — пп. 25.3.1.1


_>PS: Привет, Миша


Ради твоей регистрации можно было разводить провокаци !!! Даже Сергей. Л. появился
Привет!
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: Собеседование в Логике
От: Awaken Украина  
Дата: 26.09.07 07:58
Оценка: +1
A>>-чем функтор лучше функции (в частности, эффективнее ли)
A>>-в каких случаях функцтор или функция не инлайнится?

DC>Хм.. Насколько я понимаю сильно от компилятора зависит. Кроме того это вроде как рекомендация компилятору, но функтор встроится вероятнее. Наличие >ссылок на функию может повлиять, хотя — хз я не разработчик компиляторов.


инлайн это такая необязательная штука, которую компилятор может выполнять, а может и нет.
например в VC++ целых три режима оптимизации, связанных только с инлайнами (+ __forceinline)
имхо такие вопросы стоит задавать только разработчикам компиляторов, если хотите услышать внятный ответ. у остальных ответ будет
носить характер домыслов
Re[13]: Собеседование в Логике
От: Andrew S Россия http://alchemy-lab.com
Дата: 26.09.07 08:01
Оценка:
AS>>Будет. Но тут говорилось про другое — предназначение спинлока в критической секции. Смысл в том, что на однопроцессорной машине он бесполезен (а точнее, вреден). Поэтому однопроцессорные и многопроцессорные машины помимо разных HAL имеют еще и как минимум разный native рантайм.
_>ОК. Резюмирую так:
_>1. Спин-блокировка на многопроцессорной машине дает преимущество, на однопроцессорной бесполезна.
_>2. Критические секции могут быть эффективнее объектов ядра как на многопроцессорных машинах, так и на однопроцессорных.
_>Согласны?

Ну а кто другое говорил? Это очевидно любому, кто прочитал хотя бы Рихтера
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re[14]: Собеседование в Логике
От: serg_joker Украина  
Дата: 26.09.07 08:12
Оценка: +1
Здравствуйте, Andrew S, Вы писали:

AS>>>Будет. Но тут говорилось про другое — предназначение спинлока в критической секции. Смысл в том, что на однопроцессорной машине он бесполезен (а точнее, вреден). Поэтому однопроцессорные и многопроцессорные машины помимо разных HAL имеют еще и как минимум разный native рантайм.

_>>ОК. Резюмирую так:
_>>1. Спин-блокировка на многопроцессорной машине дает преимущество, на однопроцессорной бесполезна.
_>>2. Критические секции могут быть эффективнее объектов ядра как на многопроцессорных машинах, так и на однопроцессорных.
_>>Согласны?

AS>Ну а кто другое говорил? Это очевидно любому, кто прочитал хотя бы Рихтера


Привожу цитату от постов выше по теме:
CC>>А толку. В винде в критической секции используется семафор, который используется если критическая секция уже захвачена.
>Но в начале могут быть спинлоки. Дает бонус на многопроцессорной машине
Лично у меня сложилось впечатление, что автор считает, что бонус от критической секции есть только на многопроцессорной машине. Возможно, я не правильно воспринял или автор не до конца высказал мысль.
Re[3]: Собеседование в Логике
От: dr.Chaos Россия Украшения HandMade
Дата: 26.09.07 10:10
Оценка:
Здравствуйте, AntZ, Вы писали:

A>>>-что такое синглтон (попросили написать код)

A>>>-как избежать рейс кондишена при инициализации синглтона

DC>>Я бы ответил: не использовать сингтон . Уж лучше за собой через параметры функций таскать, чем иметь потом секс с трудноуловимой и трудно воспроизводимой ошибкой.


AZ>Это ответ из серии лечения перхоти при помощи гильотины. Очень помогает. Да элементарно, надо в MySingletonClass::GetInstance() встроить критическую секцию или мьютекс, после лока мьютекса проверять, а не создан ли уже объект в соседнем треде.


Понимаешь, мне еще толком не приходилось ковыряться с многозадачностью. Но тут есть 2 момента которые я точно знаю: 1. В С++ нет нормальных примитивов, они дай бог придут в С++х0; 2. Синглтон достаточно простой механизм и в некоторых случаях он не только решает поставленную задачу, но еще и создает море трудностей. Исходя из этого я делаю заключение, что использовать синглтона в многопоточной среде не самое хорошее архитектурное решение, мало того если еще это критично по скорости, то локи могут еще и не подойти.

A>>>пришлось объяснять про double-checked locking,

A>>>попутно возникли вопросы про блокировку и мьютексы

AZ>Абсолютно логично, против рейсов помогают правильные локи.


Я в этой теме не очень, но знаю что тут надо бороться с компилятором, чтоб он не дай бог не переупорядочил операции в ходе оптимизаций.

DC>>Вот не пойму, каким боком качества управленца к сеньору . Такие вопросы ИМХО даже тим лида не особо беспокоят, это скорее уровень ПМа.


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


Да хоть в 30 раз, причем тут чисто управленческие качества? Это ведь к программированию не имеет никакого отношения. Это все равно что спросить как правильно построить выкройку и какую ткань лучше использовать для конкретной вещи. Ну что слабо ответить на эту тему? ИМХО это абсурд, этих вопросов можно было ожидать для ПМа, ну, накрайняк, для тимлида.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[4]: Собеседование в Логике
От: Sergey Россия  
Дата: 26.09.07 15:03
Оценка:
> A>>>пришлось объяснять про double-checked locking,
> A>>>попутно возникли вопросы про блокировку и мьютексы
>
> AZ>Абсолютно логично, против рейсов помогают правильные локи.
>
> Я в этой теме не очень, но знаю что тут надо бороться с компилятором, чтоб он не дай бог не переупорядочил операции в ходе оптимизаций.

Все гораздо хуже. Если инструкции не переупорядочил компилятор, это вполне может сделать процессор. Причем когда первый раз это проявится, будешь долго смотреть в отладчик и недоумевать, как оно в этом безобидном double-checked lock'е могло упасть
Posted via RSDN NNTP Server 2.1 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[5]: Собеседование в Логике
От: Awaken Украина  
Дата: 26.09.07 15:12
Оценка: +1
S>Все гораздо хуже. Если инструкции не переупорядочил компилятор, это вполне может сделать процессор. Причем когда первый раз это проявится, будешь >долго смотреть в отладчик и недоумевать, как оно в этом безобидном double-checked lock'е могло упасть

переупорядочивание подавляется с помощью memory barriers
Re[6]: Собеседование в Логике
От: Awaken Украина  
Дата: 26.09.07 18:58
Оценка:
N>Возможно. Я уже в B.

и где тебя там найти? (комната?)
Re[15]: Собеседование в Логике
От: Andrew S Россия http://alchemy-lab.com
Дата: 26.09.07 21:50
Оценка:
AS>>>>Будет. Но тут говорилось про другое — предназначение спинлока в критической секции. Смысл в том, что на однопроцессорной машине он бесполезен (а точнее, вреден). Поэтому однопроцессорные и многопроцессорные машины помимо разных HAL имеют еще и как минимум разный native рантайм.
_>>>ОК. Резюмирую так:
_>>>1. Спин-блокировка на многопроцессорной машине дает преимущество, на однопроцессорной бесполезна.
_>>>2. Критические секции могут быть эффективнее объектов ядра как на многопроцессорных машинах, так и на однопроцессорных.
_>>>Согласны?

AS>>Ну а кто другое говорил? Это очевидно любому, кто прочитал хотя бы Рихтера


_>Привожу цитату от постов выше по теме:

CC>>>А толку. В винде в критической секции используется семафор, который используется если критическая секция уже захвачена.
>>Но в начале могут быть спинлоки. Дает бонус на многопроцессорной машине
_>Лично у меня сложилось впечатление, что автор считает, что бонус от критической секции есть только на многопроцессорной машине. Возможно, я не правильно воспринял или автор не до конца высказал мысль.

Именно в приведенной цитате очевидно, о чем говорится. Нужное выделено. Трактовать это как либо еще (и тем более уж где тут сравнение скорости критической секции и объекта ядра) — довольно сложно.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re[6]: Собеседование в Логике
От: Sergey Россия  
Дата: 27.09.07 09:09
Оценка:
>S>Все гораздо хуже. Если инструкции не переупорядочил компилятор, это вполне может сделать процессор. Причем когда первый раз это проявится, будешь >долго смотреть в отладчик и недоумевать, как оно в этом безобидном double-checked lock'е могло упасть
>
> переупорядочивание подавляется с помощью memory barriers

Я вообще-то в курсе
Posted via RSDN NNTP Server 2.1 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[16]: Собеседование в Логике
От: serg_joker Украина  
Дата: 27.09.07 12:47
Оценка:
Здравствуйте, Andrew S, Вы писали:

AS>>>>>Будет. Но тут говорилось про другое — предназначение спинлока в критической секции. Смысл в том, что на однопроцессорной машине он бесполезен (а точнее, вреден). Поэтому однопроцессорные и многопроцессорные машины помимо разных HAL имеют еще и как минимум разный native рантайм.

_>>>>ОК. Резюмирую так:
_>>>>1. Спин-блокировка на многопроцессорной машине дает преимущество, на однопроцессорной бесполезна.
_>>>>2. Критические секции могут быть эффективнее объектов ядра как на многопроцессорных машинах, так и на однопроцессорных.
_>>>>Согласны?

AS>>>Ну а кто другое говорил? Это очевидно любому, кто прочитал хотя бы Рихтера


_>>Привожу цитату от постов выше по теме:

CC>>>>А толку. В винде в критической секции используется семафор, который используется если критическая секция уже захвачена.
>>>Но в начале могут быть спинлоки. Дает бонус на многопроцессорной машине
_>>Лично у меня сложилось впечатление, что автор считает, что бонус от критической секции есть только на многопроцессорной машине. Возможно, я не правильно воспринял или автор не до конца высказал мысль.

AS>Именно в приведенной цитате очевидно, о чем говорится. Нужное выделено. Трактовать это как либо еще (и тем более уж где тут сравнение скорости критической секции и объекта ядра) — довольно сложно.

Прошу прощения, я был невнимателен.
Re: Собеседование в Логике
От: Deff  
Дата: 25.10.07 00:16
Оценка:
Здравствуйте, Awaken, Вы писали:

A>Сходил в компанию, знаменитую своими сложными собеседованиями.

A>надеюсь вопросы не могут являться тайной, иначе грош цена таким вопросам,
A>если знание ответов заранее дает 100% прохождение собеседования
A>итак, вопросы:
A>C++ и STL:
A>-чем отличаются list и vector
A>-как отсортировать vector по убыванию
A>написал код с функтором переопределяющим сравнение.
A>дальше было вопрос
A>-чем функтор лучше функции (в частности, эффективнее ли)
A>-в каких случаях функцтор или функция не инлайнится?
A>-как отсортировать список?
A>-почему алгоритм sort не примениним к контейнеру list?
A>Design patterns:
A>-что такое синглтон (попросили написать код)
A>-как избежать рейс кондишена при инициализации синглтона
A>пришлось объяснять про double-checked locking,
A>попутно возникли вопросы про блокировку и мьютексы
A>-чем отличается критическая секция от мьютекса
A>(это их любимый вопрос -я до сих пор НЕ ЗНАЮ, как внутри работает критическая секция,
A>знаю только что она быстрее и ее нельзя шарить между процессами)
A>-абстрактная фабрика, когда применять? попросили нарисовать UML диаграмму,
A>и придумать пример из жизни.
A>придумал кодогенератор генерирующий одни и те же конструкции на разных языках программирования :
A>JavaFactory, CSharpFactory, CPlusFactory
A>-паттерн композит, нарисуйте диаграмму
A>-как реализовать глубокое копирование вышеуказанного паттерна, с помощью виртуального конструктора.
A>здесь суть в том что возникает проблема с возможными циклическими ссылками на объекты,
A>и нужно копировать все объекты только один раз. эту задачу я не решил за приемлимое время
A>по моему тут нужно придумать что-то типа раскраски графа, чтоб отмечать вершины которые мы уже посетили.
A>далее были вопросы по менеджерским качествам:
A>-как организовать работу удаленных друг от друга команд
A>-какое взаимодействие когда использовать (почта, телефон, IM)
A>-как организовывать митинги, сколько времени тратить на обсуждения
A>немного поговорили по английски (с этим у меня все ок, на программерские темы могу трындеть сколько угодно,
A>да и просто "о жизни" тоже)
A>итог — я похоже не очень удовлетворил их ожидания. а мне в свою очередь не очень понравилось содержание работы.
A>на том мы и расстались.

ну вот.. в контору взяли — а там шум, рабочие всякие шастают, верно?
ирония судьбы, не иначе.
Re[2]: Собеседование в Логике
От: minorlogic Украина  
Дата: 25.10.07 07:41
Оценка:
Здравствуйте, Deff, Вы писали:

D>ну вот.. в контору взяли — а там шум, рабочие всякие шастают, верно?

D>ирония судьбы, не иначе.

Это вас в Лохику взяли? Раскжите что там сейчас происходит?
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: Собеседование в Логике
От: minorlogic Украина  
Дата: 25.10.07 07:43
Оценка:
Фух ... протупил, не посмотрел в профайл. Привет!

Так о ком речь то ? кого взяли и куда ? И какие рабочие ?
Ищу работу, 3D, SLAM, computer graphics/vision.
Re: Собеседование в Логике
От: Thanatos Украина  
Дата: 25.10.07 09:29
Оценка:
Здравствуйте, Awaken, Вы писали:

A>Сходил в компанию, знаменитую своими сложными собеседованиями.

A>...

Хм...
Если не секрет — какая их зарплатная вилка на эту позицию?
Лучший дар, который мы получили от природы и который лишает нас всякого права жаловаться – это возможность сбежать. /М.Монтень/
Re[3]: Собеседование в Логике
От: Deff  
Дата: 25.10.07 20:20
Оценка:
Привет!
Да я вот, прочитав это сообшение
Автор: Awaken
Дата: 21.09.07
, отловился малехо
Дело в том, что у нас тоже шумно бывает..

Как сам? В твоей команде случаем нет девушки Юли?
Re[4]: Собеседование в Логике
От: minorlogic Украина  
Дата: 25.10.07 20:25
Оценка:
Здравствуйте, Deff, Вы писали:

D>Привет!

D>Да я вот, прочитав это сообшение
Автор: Awaken
Дата: 21.09.07
, отловился малехо

D>Дело в том, что у нас тоже шумно бывает..

D>Как сам? В твоей команде случаем нет девушки Юли?


У меня отлично спасибо!
Неа, если ты про Юлю с мехмата то она в другой команде.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: Собеседование в Логике
От: dmoz  
Дата: 26.10.07 13:31
Оценка: +1 -2
Здравствуйте, ZergIII, Вы писали:

ZII>Wow, прикольно почитать какое у нас сложное собеседование

ZII>А что вы хотели на позицию Senior C++ Developer?

странно и нелогично выглядит появление здесь работодателя, с заявлениями в таком тоне (видно, как вы относитесь к людям в частности).
уж чего, а популярности это никак вам не добавит.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.