Являются ли критические блокировки раздела возможными, отключив прерывания в Windows? Если это так, то поток не может быть выгружен, пока он находится в середине критического раздела.Можно ли вырезать поток в середине критической секции?
Но если бы это было так, то есть, если поток не может быть вытеснена во время выполнения критической секции, то, что бы весь смысл пульсирует монитор несколько менее важно, чем это было бы, если поток может быть попросил эвакуировать процессор, даже когда он находился в середине критического раздела.
Итак, мой вопрос (ы):
Как мониторы реализованы в Windows?
Можно ли вырезать нить, пока она находится в середине критической секции?
Большое спасибо. Конечно, то, что вы говорите, имеет большой смысл. То, что я ошибочно предполагал, заключалось в том, что * при приобретении и выпуске блокировки *, процедура переходила бы в режим ядра, точно так же, как это делает, когда код пользователя создает «CreateThread» или «ThreadFork» в любом OS API. Хотя он запускает поток в пользовательском режиме, он должен добраться до * корня потока * и скопировать материал из стека в регистры. –
Но понятно, что даже если он попал в ядро для приобретения и освобождения блокировки, он все равно не исключил бы возможность того, что злоумышленник забудет освободить блокировку или исключение, возникающее во время выполнения критического раздела, что потенциально как вы заметили, подвергая опасности безопасность всей системы. –
Я прочитаю документацию, с которой вы связались, но не могли бы вы быстро удовлетворить мое любопытство по поводу следующего вопроса? Является ли покупка блокировки в Windows запущена в пользовательском режиме? –