Модераторы: powerfox, ZeeLax

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ядро Linux 
:(
    Опции темы
GrayCardinal
Дата 25.9.2010, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 18
Всего: 58



А вообще, ежели учесть, что Haiku только первые альфа версии (ежели я правильно понял), то очень даже ничего smile 
Вот бы они прикрутили портеж бубунты... smile Да написали пару примеров как юзать Be лайбу... smile


--------------------
PM MAIL WWW   Вверх
powerfox
Дата 25.9.2010, 14:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 20
Всего: 97



Цитата(bilbobagginz @  23.9.2010,  15:20 Найти цитируемый пост)
насчет статьи - согласен с Zeelax. 

+1. Только добавлю, что человек явно слаб в техническом плане.

Цитата(djamshud @  23.9.2010,  11:22 Найти цитируемый пост)
Исходники миникса столь малы только потому, что он может запуститься только на компе проф. Таненбаума.

Работает нормально на всех x86-совместимых системах. И на Pentium 2 (заявлено, что и на 386/486 — но ни у кого такого железа нет), и на i5. 

Цитата(djamshud @  23.9.2010,  11:22 Найти цитируемый пост)
Благодаря монолитности ядро шустрое, микроядра на практике очень сильно тупят. 

Можно пример того, как тупят? Задержка на IPC составляет порядка 500 нс (в MINIX 3), а это ерунда в сравнении со временем выполнения большинства операций ввода-вывода. Для микроядер считается, что потеря производительности составляет 5-10%. На современных машинах куча ядер, 3 GHz, дешёвая оперативная память.
Кроме того, написание и отладка серверов/драйверов для микроядра мало чем отличается от написания обычных пользовательских программ: используешь нужный API, дебажишь обычные user-space процессы. Это значительно улучшает читабельность и качество кода. Сравните реализацию любой ФС под MINIX и под Linux/FreeBSD.

Добавлено через 1 минуту и 22 секунды
Цитата(GrayCardinal @  25.9.2010,  13:08 Найти цитируемый пост)
А вообще, ежели учесть, что Haiku только первые альфа версии (ежели я правильно понял), то очень даже ничего smile 

GrayCardinal, я не понимаю, как можно сравнивать ОС, глядя на софт, который под них портирован? Речь о том, что под капотом.


--------------------
user posted image
PM WWW   Вверх
djamshud
Дата 25.9.2010, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: нет
Всего: 39



powerfox,

>Работает нормально на всех x86-совместимых системах. И на Pentium 2 (заявлено, что и на 386/486 — но ни у кого такого железа нет), и на i5.

Я утрировал, если это вдруг было непонятно. А x86 она и на втором пне, и на корке и5 x86. И речь шла не столько о поддерживаемых архитектурах (я хз, насколько это чудо техники легко портировать на amd64 или arm), сколько о поддерживаемой переферии (видеокарты, сетевухи, вайфаи и т.д.).

>Можно пример того, как тупят?

Примеров у меня нет. Насколько я знаю, основной косяк в том, что модуль микрояда выполняет все задачи в очереди, многопроцессность в монолитных ядрах позволяет нескольким процессам "одновременно" получать доступ к чему-нибудь, за что в микроядре отвечал бы соответствующий модуль. Емнип, Торвальдс то ли в джаст фо фане, то ли в своем сраче с Таненбаумом приводил пример с ФС: в микроядре задачи на чтение/запись выстраиваются в очередь, в результате чего последние в очереди курят, пока полностью выполнятся заявки предыдущих. Потому, с другой стороны, и реализация в монолите сложнее.

>Для микроядер считается, что потеря производительности составляет 5-10%

Всего-то? Жалкие десять процентов! А я бы нашел им применение!

>На современных машинах куча ядер, 3 GHz

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


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
powerfox
Дата 3.10.2010, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 20
Всего: 97



Цитата(djamshud @  25.9.2010,  19:27 Найти цитируемый пост)
На мультисовременных это может и так, а у просто современных это нифига не так. К тому же тенденция по набору гигагерц приостановилась. 

Производительность всё равно растёт. И никто никогда не разрабатывает серьёзное ПО для того, что есть. Пишут для того, что будет. Что сингулярити, что миникс ориентированы на будущее.

Цитата(djamshud @  25.9.2010,  19:27 Найти цитируемый пост)
в микроядре задачи на чтение/запись выстраиваются в очередь, в результате чего последние в очереди курят, пока полностью выполнятся заявки предыдущих.

Процессы тоже составляют «очередь», только никто для них не использует FIFO/LIFO — и всё почти нормально (хотя голодание всё равно возникает).

Цитата(djamshud @  25.9.2010,  19:27 Найти цитируемый пост)
сколько о поддерживаемой переферии (видеокарты, сетевухи, вайфаи и т.д.).

Этот вопрос никак не связан с плюсами/минусами идеи микроядра. MINIX 3 является исследовательской платформой, на примере которой собираются продемонстрировать реализацию отказоустойчивости. Если начнут использовать в production, то будет поддерживаться и переферия.

Цитата(djamshud @  25.9.2010,  19:27 Найти цитируемый пост)
Всего-то? Жалкие десять процентов! А я бы нашел им применение!

У меня запущены браузер, konsole, vim, mplayer, ktorrent, kopete. Раньше я работал на Celeron 1.6M и не испытывал дискомфорта, сейчас у меня i5-660 (купил только из-за наличия виртуализации, для работы использовал VMWare) — как думаешь, какая разница в производительности? 10% точно не жалко.

С другой стороны, я не помню, чтобы линукс помирал, а если и помрёт, то мне не критично. Но есть системы, где это критично.

Добавлено через 10 минут и 54 секунды
Цитата(djamshud @  25.9.2010,  19:27 Найти цитируемый пост)
модуль микрояда выполняет все задачи в очереди, многопроцессность в монолитных ядрах позволяет нескольким процессам "одновременно" получать доступ к чему-нибудь, за что в микроядре отвечал бы соответствующий модуль.

Немного не так. В монолитном ядре процесс А выполняет системный вызов, который обрабатывается ФС. Мы переходим в режим ядра, где выполняется этот вызов. В это время нас никто не может прервать, по сути, мы монополизируем ФС. Когда мы выходим из режима ядра, диспетчер может запустить процесс B.
В микроядре системный вызов процесса А преобразуется в сообщение, которое будет обработано, когда управление перейдёт процессу ФС (за это время может придти запрос от B). Если процесс ФС не успеет за отведённое ему время обработать запрос, то произойдёт переключение, например, на C. "С" тоже может захотеть поработать с ФС. При этом во встроенных системах может оказаться так, что запрос от С нужно обработать в первую очередь, микроядро позволяет прервать обработку запроса от А и обработать С, а уже потом снова вернуться к А. В монолитном, на сколько я знаю, это невозможно. У всего есть свои плюсы и минусы.
Замечу, что разница c монолитным обычно равна лишь цене переключений пользователь-ядро (при «умном» планировнии процессов).


--------------------
user posted image
PM WWW   Вверх
bilbobagginz
Дата 3.10.2010, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 14
Всего: 317



Цитата(djamshud @  25.9.2010,  17:27 Найти цитируемый пост)
Всего-то? Жалкие десять процентов! А я бы нашел им применение!

торгуемся... вот такой вот базарчик smile
идея была незрелой во время первых дискуссий Торвалдса с Таненбаумом.
Сегодня есть несколько производственных систем на микроядрах, которые свои задачи выполняют.
Цитата(powerfox @  3.10.2010,  10:48 Найти цитируемый пост)
В монолитном, на сколько я знаю, это невозможно.

ты про preemption или о чем? есть она в линухе.

действительно открытый вопрос - насколько хорошо работает микроядро с множеством вычислительных единиц (см. "ядер"), и множеством устройств ввода/вывода, т.е. в условиях параллелизьма.
думаю, что усложнение схем связи между элементами системы как раз проявляется в таких условиях, и является тем, кто отвечает за эти потери в 5-10%. хотя я не совсем знаю о чем я говорю smile, надо код читать, а нет на это сейчас желания.



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
powerfox
Дата 3.10.2010, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 20
Всего: 97



Цитата(bilbobagginz @  3.10.2010,  13:09 Найти цитируемый пост)
думаю, что усложнение схем связи между элементами системы как раз проявляется в таких условиях, и является тем, кто отвечает за эти потери в 5-10%. хотя я не совсем знаю о чем я говорю smile

5-10 на одноядерных/однопроцессорных системах.

Цитата(bilbobagginz @  3.10.2010,  13:09 Найти цитируемый пост)
действительно открытый вопрос - насколько хорошо работает микроядро с множеством вычислительных единиц (см. "ядер"), и множеством устройств ввода/вывода, т.е. в условиях параллелизьма.

Таненбаум на FOSDEM 2010 обозначил это как одно из направлений исследований.

Цитата(bilbobagginz @  3.10.2010,  13:09 Найти цитируемый пост)
ты про preemption или о чем? есть она в линухе.

Если честно, не знал. В «Understanding the linux kernel» было написано, что ядро является nonpreemptive, не думал, что изменили.



--------------------
user posted image
PM WWW   Вверх
bilbobagginz
Дата 3.10.2010, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 14
Всего: 317



Цитата(powerfox @  3.10.2010,  16:44 Найти цитируемый пост)
В «Understanding the linux kernel» было написано

какого издания ?

Добавлено через 2 минуты и 23 секунды
Цитата(powerfox @  3.10.2010,  16:44 Найти цитируемый пост)
Если честно, не знал.

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



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
powerfox
Дата 5.10.2010, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 20
Всего: 97



Цитата(bilbobagginz @  3.10.2010,  22:19 Найти цитируемый пост)
есть несколько алгоритмов шедулера.
обычно десктопная система и стандартная серверная - не нуждаются в этом.
но есть несколько направлений - напр. работа над аудио приложениями, и маленькие (встроенные) системы, где при сборке их ядра можно выбрать другой алгоритм.

Так шедулер, в принципе, здесь не при чём. 


--------------------
user posted image
PM WWW   Вверх
bilbobagginz
Дата 5.10.2010, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 14
Всего: 317



Цитата(powerfox @  5.10.2010,  17:39 Найти цитируемый пост)
Так шедулер, в принципе, здесь не при чём.  

алгоритм шедулера определяет в каком порядке будет перетасовываться очередь процессов (определением их свойств - приоритетов, и т.д.), и коим образом (т.е. будет ли даваться процессу привилегия добежать до конца QUANTUMа или нет).

кто же отвечает за эти аспекты ОС как не шедулер ?





--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
powerfox
Дата 10.10.2010, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 20
Всего: 97



Цитата(bilbobagginz @  5.10.2010,  19:59 Найти цитируемый пост)
алгоритм шедулера определяет в каком порядке будет перетасовываться очередь процессов (определением их свойств - приоритетов, и т.д.), и коим образом (т.е. будет ли даваться процессу привилегия добежать до конца QUANTUMа или нет).

кто же отвечает за эти аспекты ОС как не шедулер ?

За эти — шедулер. А вот за преемтиновсть — не он. Поскольку ядро не является процессом, шедулер ничего о нём не знает. Обработчик прерывания может снова включить прерывания, а может и не включать. Он выставляет флаг, что мы находимся в режиме ядра, что влияет на сохранение контекста.


--------------------
user posted image
PM WWW   Вверх
mihanik
Дата 10.10.2010, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 1
Всего: 109



 smile 
Блин!
Класс!!!
Всё интересно, с примерами, аргументированно!!!
Нравится мне задавать вопрос и затем следить за тем, что потом с обсуждением происходит.
 smile 


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
MAKCim
Дата 11.10.2010, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 4
Всего: 207



Цитата(powerfox @  10.10.2010,  13:30 Найти цитируемый пост)
За эти — шедулер. А вот за преемтиновсть — не он. Поскольку ядро не является процессом, шедулер ничего о нём не знает. Обработчик прерывания может снова включить прерывания, а может и не включать. Он выставляет флаг, что мы находимся в режиме ядра, что влияет на сохранение контекста.

дополню

в x86/entry_64.S есть функция common_interrupt, которая вызывается из idt-обработчика прерывания, т. е. для _любого_ прерывания
преемптивность (вытеснение процесса, работающего в режиме ядра) определяется действиями, выполняемыми после вызова do_IRQ в ее контексте, т. е. тут

retint_kernel в зависимости от CONFIG_PREEMPT определена или тут, или тут
т. е. преемптивность в принципе возможна только при установленном CONFIG_PREEMPT, а он прямо _не связан_ с шедулером
шедулер определяет когда процесс должен быть вытеснен, а само вытеснение возможно, когда процесс к этому готов, а это не регулируется шедулером


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
bilbobagginz
Дата 12.10.2010, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 14
Всего: 317



что то я проржавел. почему-то думалось, что именно шедулер это делает.

MAKCim, 
powerfox, 

ok врубиссимо! надо перечитать часть одной книжины, и немного поковырять ведро.
а то совсем уже расслабился.





--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Клуб юнуксоидов"
powerfox
ZeeLax
nickless

Что такое клуб юнуксоидов?

Это место более свободного общения специалистов и любителей *NIX систем.


Новичкам: Этот раздел предназначен в основном именно для общения а не решения проблем.


Правила всего раздела Linux/UNIX сюда не распространяются, но здесь имеются свои правила:


  • Оскорбления запрещены.
  • Holy wars разрешены, но в небольших размерах. Если вы создаёте что-то уровня Windows vs. Linux, то постите это в Религиозных войнах, пожалуйста.
  • Если вы хотите выставить здесь какое-либо своё творение - милости просим.
  • За интересные новости, интересные статьи, высказывания и юмор (в тему) + в репу.

Короче, по репе получите по полной программе ;-) Happy hacking!



Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Клуб юнуксоидов | Следующая тема »


 




[ Время генерации скрипта: 0.1124 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.