|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Alexander Gordeyev 2:5020/1089 23 Jul 2001 16:47:40 To : All Subject : Re: Что бы это значило? -------------------------------------------------------------------------------- > Именно нити (в Win32) и работают в рамках одного процесса, и переключение > между ними требует значительно меньше тактов процессора, чем переключение > между процессами. - процесс как объект шедулинга в NT отсутствует, ибо NT шедулит нити; - процессу в NT при старте отводится нить и он существует до тех пор, пока есть хоть одна нить. > А еще в NT есть такая штука, как волокна (fibers), так те > еще легковеснее нитей. нет такой штуки. ps. топик вылазит с завидной регулярностью и уже поддостал. итак: - для создания нити в NT существует вызов CreateThread, который по семантике напоминает вызов clone(CLONE_VM) за тем лишь отличием, что clone не возвращает tid (пока). вызов считается тяжелым, вплоть до того, что в приложениях, активно создающих и уничтожающих нити используется thread pool; - для создания процесса в NT существует вызов CreateProcess, по семантике - пара fork/execve. очень тормозной. - clone/fork в Linux реализует один и тот же код, и в этом смысле разницы между ними нет никакой. операция создания нового процесса/нити в Linux быстрее не то что CreateThread, но и вообще самая быстрая среди юнихов афайр. - с точки зрения шедулера Linux, процесс и нить - одно и то же. шедулер NT, как я уже упоминал, манаджит нити. т.о. в этом NT и Linux не отличаются. pps. вопросы с наследованием объектов ядра - совсем другая песня. -- With best regards, Alexander Gordeyev AGAVA Software Company, http://www.agava.com --- Gnus/5.0808 (Gnus v5.8.8) Emacs/20.5 * Origin: AGAVA Software (2:5020/1089@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/6679909a819f.html, оценка из 5, голосов 10
|