Потоки и csrss
От: garmanbozia  
Дата: 07.01.10 10:43
Оценка:
Коллеги, доброго времени суток !

У меня вопрос такой. Работа заставила заняться изучением Windows API (до того специализировался на UNIX/POSIX/Sys V системах), в ходе этого процесса запнулся об один вопрос, ответа на который не могу найти. Изучая подноготную метода CreateProcess обратил внимание вот на какую, с моей точки зрения, странность. (далее в соответствии с тем что написано у Руссиновича и Jeffrey Richter, Programming Applications for Microsoft Windows). На определенном этапе подготовки процесса к началу работы исполнительная система (Executive) отправляет процессу csrss сообщение (каким образом ? LPC ?) о новом процессе, csrss создает СВОЙ объект процесс (собственно и Executive и ядро уже создали к этому времени EPROCESS и KPROCESS, причем один является частью другого и это логично, потому как планировщик ядра , как я понял, интересует только PCB). Далее создается первичный тред процесса, в создании которого так же участвует Windows Environment Subsystem (насколько я понимаю в этом участвует именно csrss). Для чего такая сложная схема ? Каким образом userspace процесс csrss КОНКРЕТНО участвует в создании процесса и треда и почему создание "легковестной" структуры, которая по идее должна управляться ядром, настолько усложнено ? К сожалению из открытых источников (как и из вышеперчисленных книг) не могу найти ответа на этот вопрос, кроме общих фраз о том что csrss занимается управлением потоками в системе Windows, что , конечно, "ни о чем".

Заранее спасибо за ответ.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.