Интервью: Интересные вопросы

User avatar
idle0
Уже с Приветом
Posts: 2846
Joined: 28 Jun 2000 09:01
Location: Milwaukee, WI

Re: Интервью: Интересные вопросы

Post by idle0 »

alex_127 wrote: 15 Nov 2021 22:41
idle0 wrote: 14 Nov 2021 19:25 Recent Intel processors include a constant rate TSC (identified by the kern.timecounter.invariant_tsc sysctl on FreeBSD or by the "constant_tsc"
друг, других не осталось. все старьё остальное как минимум 10 летней давности. я просто в этой битве принимал некоторое участие...
Что за битва?
moria# show running-config
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Интервью: Интересные вопросы

Post by valchkou »

idle0 wrote: 15 Nov 2021 22:45
valchkou wrote: 15 Nov 2021 21:14
idle0 wrote: 14 Nov 2021 18:12 Я получил вот такой вопрос, на который честно говоря сам не знаю как ответить

"Напишите программу которая позволяет замерить время context switch в Linux-е"
на какую позицию дают такие вопросы?
UNIX System Administrator
UNIX System Administrator который пишет программы? Интересно где такие мастодонты требуются.
я думал уже все кто умеет кодить превратились в девопсов а кто не умеет в клауд архитекторов.
uncle_Pasha
Уже с Приветом
Posts: 19935
Joined: 30 Aug 2000 09:01
Location: WA

Re: Интервью: Интересные вопросы

Post by uncle_Pasha »

Andriy777 wrote: 14 Nov 2021 18:32 Если взять цикл от 0 до Х. Так, чтобы выполнялся несколько секунд. Не трогать память. Минимальные инструкции инкремента и сравнения с Х. Предположим он бежит время T. Если другие процессы программу не прерывают, то она будет бежать на одном ядре. Дать программе приоритет выше обычного и тогда она будет прерываться меньше.
Скажите сразу, если прилетит interrupt - это будет context switch или нет? И повлияет ли это на время?
User avatar
Komissar
Уже с Приветом
Posts: 64875
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: Интервью: Интересные вопросы

Post by Komissar »

uncle_Pasha wrote: 16 Nov 2021 03:17 Скажите сразу, если прилетит interrupt
это будет нашествие с помойки?
User avatar
idle0
Уже с Приветом
Posts: 2846
Joined: 28 Jun 2000 09:01
Location: Milwaukee, WI

Re: Интервью: Интересные вопросы

Post by idle0 »

А есть ли какое-то прерывание которое работает как NOP?
moria# show running-config
Andriy777
Уже с Приветом
Posts: 1486
Joined: 28 Jan 2002 10:01

Re: Интервью: Интересные вопросы

Post by Andriy777 »

uncle_Pasha wrote: 16 Nov 2021 03:17
Andriy777 wrote: 14 Nov 2021 18:32 Если взять цикл от 0 до Х. Так, чтобы выполнялся несколько секунд. Не трогать память. Минимальные инструкции инкремента и сравнения с Х. Предположим он бежит время T. Если другие процессы программу не прерывают, то она будет бежать на одном ядре. Дать программе приоритет выше обычного и тогда она будет прерываться меньше.
Скажите сразу, если прилетит interrupt - это будет context switch или нет? И повлияет ли это на время?
Память мне говорит, что даже сам context switch сделан на interrupt-е определенного типа. Т.е. если во время моего теста не двигать мышью, не лезть в интернет и пр., применить максимум усилий к уменьшению этих прерываний от периферии, то есть надежда, что останутся в большинстве только те прерывания, которые делают эти context переходы.

Предпшоложим, что уменьшили другие прерывания. Метод посчитает цены всего, что входит в context switch. Т.е. сам interrupt, плюс вся байда для согранения регистров и всего, что нужно для вышибания одного потока и восстановление другого потока на определенное ядро процессора.

Естесственно будет погрешность. Погрешность можно определить и вычесть. Например, при первом запуске с N threads, при 2N threads, при 4N threads можно ожидать, что остальные прерывания от периферии идут с такой же частотой как они были при N-запуске. И прикинуть формулы избавления.

Еще сами прерывания могут быть очень быстрыми и они что-нибудь добавят в queue. А само действие должно будет делаться на потоке с нормальным приоритетом. А мы, ведь, свой приоритет повысим. Может, цена ненужных прерываний и уменьшится.

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

В интернет за помощью не лез и никаких Stack Overflow не читал. Может, как на Windows, так и на Linux есть средства поточнее. Скорее всего, есть какие-нибудь статистики в самом ядре и их можно получить.
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Интервью: Интересные вопросы

Post by valchkou »

Andriy777 wrote: 16 Nov 2021 04:42 Естесственно будет погрешность. Погрешность можно определить и вычесть. Например, при первом запуске с N threads, при 2N threads, при 4N threads можно ожидать, что остальные прерывания от периферии идут с такой же частотой как они были при N-запуске. И прикинуть формулы избавления.
это все очень интересно но непонятно нафига это нужно UNIX System Administrator?
я так понимаю ожидалось решение типа

Code: Select all

find /var/www/my_website -type f -exec chmod 0644 {} \;
uncle_Pasha
Уже с Приветом
Posts: 19935
Joined: 30 Aug 2000 09:01
Location: WA

Re: Интервью: Интересные вопросы

Post by uncle_Pasha »

Andriy777 wrote: 16 Nov 2021 04:42 если во время моего теста не двигать мышью, не лезть в интернет и пр., применить максимум усилий к уменьшению этих прерываний от периферии
Часы тоже отключить?
kostik78
Уже с Приветом
Posts: 3175
Joined: 17 May 2007 14:07

Re: Интервью: Интересные вопросы

Post by kostik78 »

Вопрос дурной ибо для ответа нужно знать ещё какой scheduler используется. В кернеле их несколько :pain1:
User avatar
idle0
Уже с Приветом
Posts: 2846
Joined: 28 Jun 2000 09:01
Location: Milwaukee, WI

Re: Интервью: Интересные вопросы

Post by idle0 »

kostik78 wrote: 16 Nov 2021 06:54 Вопрос дурной ибо для ответа нужно знать ещё какой scheduler используется. В кернеле их несколько :pain1:
Ну время то замерить можно при любом, нет?
moria# show running-config
User avatar
idle0
Уже с Приветом
Posts: 2846
Joined: 28 Jun 2000 09:01
Location: Milwaukee, WI

Re: Интервью: Интересные вопросы

Post by idle0 »

valchkou wrote: 16 Nov 2021 06:14
Andriy777 wrote: 16 Nov 2021 04:42 Естесственно будет погрешность. Погрешность можно определить и вычесть. Например, при первом запуске с N threads, при 2N threads, при 4N threads можно ожидать, что остальные прерывания от периферии идут с такой же частотой как они были при N-запуске. И прикинуть формулы избавления.
это все очень интересно но непонятно нафига это нужно UNIX System Administrator?
я так понимаю ожидалось решение типа

Code: Select all

find /var/www/my_website -type f -exec chmod 0644 {} \;
Не думайте о UNIX System Administrator, это не важно
moria# show running-config
kostik78
Уже с Приветом
Posts: 3175
Joined: 17 May 2007 14:07

Re: Интервью: Интересные вопросы

Post by kostik78 »

idle0 wrote: 16 Nov 2021 06:57
kostik78 wrote: 16 Nov 2021 06:54 Вопрос дурной ибо для ответа нужно знать ещё какой scheduler используется. В кернеле их несколько :pain1:
Ну время то замерить можно при любом, нет?
Замерить нельзя - можно посчитать примерно зная частоту процессора, тип scheduler и скорость second cache. Все остальное - гадание на кофейной гуще. В кернел дебаг тулкит есть модуль на эту тему. Сам я на эту тему лет 8-9 не копался правда
kostik78
Уже с Приветом
Posts: 3175
Joined: 17 May 2007 14:07

Re: Интервью: Интересные вопросы

Post by kostik78 »

Это читали https://eli.thegreenplace.net/2018/meas ... x-threads/ ?
Глянул по диагонали - выглядит на правду
Andriy777
Уже с Приветом
Posts: 1486
Joined: 28 Jan 2002 10:01

Re: Интервью: Интересные вопросы

Post by Andriy777 »

uncle_Pasha wrote: 16 Nov 2021 06:42
Andriy777 wrote: 16 Nov 2021 04:42 если во время моего теста не двигать мышью, не лезть в интернет и пр., применить максимум усилий к уменьшению этих прерываний от периферии
Часы тоже отключить?
Я со временем начинаю понимать, что автор как-то не так понял вопрос. Если это Линукс, можно ли посмотреть исходный код этого перехода? Возможно, там сотня простейших инструкций и можно сложить их стоимость в тактах процессора. Потом по тактовой частоте посчитать. Это если операционка сама не дает статистику.

Но, вот даже в моей попытке померять, я избегал память. Т.е. для алгоритмов, которые чисто выполняют инструкции, стоимость этих контекст переходов мизерная. 20 миллисекунд пробега против сотни инструкций с 2Ггц частотой. Контекст переходы убивают алгоритмы, которые за время простоя потока еще и потеряли свои данные в CPU кешах. Т.е. стоимость переходов зависит от конкретной ситуации. И для администратора, наверное, задача была узнать с помощью всяких инструментов - много ли таких переходов по сравнению со статистически-нормальной, когда процессы используют thread-pool и минимизируют переходы. Если много, то убирать лишние процессы.
nyekimov
Уже с Приветом
Posts: 2761
Joined: 11 Jul 2015 19:01
Location: Chicago

Re: Интервью: Интересные вопросы

Post by nyekimov »

valchkou wrote: 16 Nov 2021 01:15
idle0 wrote: 15 Nov 2021 22:45
valchkou wrote: 15 Nov 2021 21:14
idle0 wrote: 14 Nov 2021 18:12 Я получил вот такой вопрос, на который честно говоря сам не знаю как ответить

"Напишите программу которая позволяет замерить время context switch в Linux-е"
на какую позицию дают такие вопросы?
UNIX System Administrator
UNIX System Administrator который пишет программы? Интересно где такие мастодонты требуются.
я думал уже все кто умеет кодить превратились в девопсов а кто не умеет в клауд архитекторов.
Ох брат, нынче хоть и нехватка спецов но особенно калифорнийские компании идут кто на что горазд. Например на полном серьезе спрашивают на позицию мануал qa задачи с литкод.

Return to “Работа и Карьера в IT”