|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Igor Sysoev 2:5020/400 15 Feb 2002 14:30:11 To : Andrey Rudyavsky Subject : Re: pthread -------------------------------------------------------------------------------- Andrey Rudyavsky <Andrey.Rudyavsky@p28.f163.n5030.z2.fidonet.org> wrote: > > Hello Igor! > > 13 Feb 30 13:08, Igor Sysoev wrote to All: > > IS> Смысл сего - синхронизация и шедулинг без участия > IS> ядра, нет проблем с блокирующими вызовами и возможность > IS> работы на нескольких процессорах. Если всё это > IS> получится, будет интересно посмотреть. > Что-то очень сильно напоминает вин3.11, DesQView и пpочую компанию... Win 3.11, DesQView и прочую компанию это не напоминает ни разу по двух простым причинам - это должно работать на нескольких процессорах и тем, что процессы защищены друг от друга. Или вы полагаете, что ядерный шедулинг защищает трэды друг от друга в пределах одного процесса ? > Я чем ядpо тогда будет заниматься? Может оно и не нужно больше? Ядро в данном контексте должно шедулить KSE. В одном процессе может быть несколько KSE. KSE - это некоторый аналог LWP Соляриса. Кроме того, ядро должно помогать user-level диспетчеру шедулить трэды на user-level. Зачем всё это нужно ? Хороший шедулинг в ядре должен учитывать кучу параметров, которые не нужны при шедулинге трэдов на уровне одного приложения. Для приложения это оверхэд, особенно, если шедулинг должен часто исполняться. При синхронизации, если трэд будет заблокирован, необходим шедулинг. При разблокировании ресурса нужно проверить, нет ли более приоритеных трэдов в очереди - необходим шедулинг. Я не понимаю, что криминального в том, что диспетчер вынесен в user-level ? Он шедулит трэды одного процесса и если эти трэды ill-bahaved, то ядерный шедулинг им в рамках одного этого процесса всё равно не поможет. Всё это не имеет значения при малом количестве трэдов или малой нагрузке. Всё это становится заметным при большом количестве трэдов, порядка нескольких тысяч. Вот поэтому MSSQL 7.0 использует fibers. Вот поэтому в NT и AIX появились completion ports. Хотя последнее не имеет отношение к user-level трэдам, это просто способ ограничить число runnable трэдов в процессе до количества CPU. -- Игорь Сысоев Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/648813f41d2a.html, оценка из 5, голосов 10
|