Page 1 of 1

системный процесс и карусель потоков

Posted: Sun Mar 05, 2006 8:40 pm
by kiwi_mani_snova
как известно, вся работа, выполняемая ядром ( перерисовка окон, сетевая работа, двигание мышкой и прочее) выполняемся в потоке ядра (в 0-м кольце). который помещается в карусель (очередь потоков) НАРАВНЕ со всеми потоками пользователя....Вопрос первый - если вирус в менуэте начинает создавать потоки циклично и вешать систему в 100% загрузку, то когда будет обработано Ctrl+Alt+del, когда мышка передвинется на кнопку закрытия "вредного" процесса, и как еще определить, какой же процесс вредный....

Posted: Sun Mar 05, 2006 8:42 pm
by kiwi_mani_snova
Вопрос второй - а нельзя ли поменять планировщик выполнения потоков следующим образом - os/idle поток -> первый из очереди потоков пользователя -> os/idle поток -> второй и т.д.

Posted: Sun Mar 05, 2006 8:44 pm
by kiwi_mani_snova
И наконец вопрос третий и самый важный.....Если вся работа выполняется все равно внутри потока os/idle без каких либо временных гарантий (!!!!), то не проще ли все драйверы (сеть, звук, винт, флоппи) перенести в программы 3-го кольца, а порты ввода-вывода резервировать в начале работы драйвера...Плюс в том, что зависший драйвер не повесит полностью ОСь и не перепишет что-то из критически важных переменных...

Posted: Mon Mar 06, 2006 9:44 am
by halyavin
kiwi_mani_snova
А ты пробовал бесконечно запускать потоки в windows? Если это только потоки, то через час иногда еще процесс удается завершить, а если процессы...
Поменять планировщик так, чтобы он вызывал os/idle каждый второй раз можно (могу попробовать написать соотвествующий патч). Но это, думаю, не войдет в официальную версию.
Винт и флоппи работают в вызвавшем потоке, а не в потоке os/idle. Драйвер звука для AC97 и так находится в 3 кольце - в приложении AC97. Проблема с драйверами в 3 кольце в том, что им нужно слишком много привилегий. Предоставлять их всем приложениям не разумно. А плохой драйвер может переписать критически важные переменные даже из 3 кольца - через DMA например (а можно используя USB контроллер).

Posted: Tue Mar 07, 2006 1:56 pm
by VaStaNi
kiwi_mani_snova wrote:И наконец вопрос третий и самый важный.....Если вся работа выполняется все равно внутри потока os/idle без каких либо временных гарантий (!!!!), то не проще ли все драйверы (сеть, звук, винт, флоппи) перенести в программы 3-го кольца, а порты ввода-вывода резервировать в начале работы драйвера...Плюс в том, что зависший драйвер не повесит полностью ОСь и не перепишет что-то из критически важных переменных...
Великолепное направление, только в 3-м пожалуй сами приложения, а драйвера в 1-м и во 2м, как и службц и менеджеры системы + активаторы драверов там же (в зависимости от важности+критерий неубиваемости системы).