18Aug

Зашто нема ИД-ова Виндовс процесних бројева?

click fraud protection

Ако волите тинкеринг са Виндовсом и учење док идете, можда сте приметили да су Виндовс процес и ИД-ови нитова чак и бројчани и четири пута виши.Зашто је то?Данашњи СуперУсер К & амп; Пост има одговоре на чудна питања читаоца.

Данашње питање & амп;Сесија одговора долази нам захваљујући СуперУсер-у подскупу Стацк Екцханге-а, групације К & ама;

Питање

читач СуперУсер-а Петер Хахндорф жели да зна зашто не постоје идентификациони процеси оперативног система Виндовс са подацима:

Постоји много начина да погледате ИД-ове процеса у Виндовс-у.Коришћење ПоверСхелл-а:

Добићете овај резултат:

Као што видите, сви ИД-ови процеса су чак и бројчани, а не само они, већ су бројни број четири.Можете изгледати тако тешко колико желите и никада нећете наћи неовисан број процеса, барем не на било којој верзији која је заснована на оперативном систему Виндовс НТ.Који је разлог за то?

Зашто не постоје идентификациони процеси оперативног система Виндовс са нумеричким бројевима?

instagram viewer

Одговорност

СуперУсер допринос ДавидПостилл има одговор за нас:

Зашто не постоје идентификациони ИД-ови са Виндовс програмерима?

Исти код који алоцира ручке језгре се такође користи за додјелу процеса и ИД-а нитова.Пошто су ручке кернела вишеструке од четири, тако су процесне и нитске.

Зашто су процесни и нитни идентификатори више од четири?

У оперативним системима заснованим на оперативном систему Виндовс НТ, процес и идентификација ИД-ова су увијек вишеструки од четири.Да ли је то само случајност?

Да, то је само случајност и не би требало да се ослањате на њега, јер то није део програмског уговора.На пример, Виндовс 95 процес и ИД-ови тхреада нису увек били вишеструки од четири.Поређења ради, разлог због којег се руководи кернелом увек је више од четири је дио спецификације и биће гарантован у догледној будућности.

Процесни и нитни ИД су вишеструки од четири као нежељени ефекат поновне употребе кода.Иста шифра која додјељује ручке језгре се такођер користи за додјелу процеса и ИД-а нитова.С обзиром на то да су ручке кернела вишеструке од четири, то су процесне и нитне везе.Ово је детаљ имплементације, зато не напишите код који се ослања на њега.Само вам кажем да задовољите вашу радозналост.

Извор: Зашто су идентификациони процеси и тхреадови вишеструки од четири?

Зашто се кернел ручно држи више од четири?

Нешто што није добро познато је да су дна два бита ручица кернела увек нула;Другим ријечима, њихова нумеричка вриједност је увек вишеструка од четири.Имајте на уму да се ово односи само на ручке кернела;не односи се на псеудо-ручке или на било који други тип ручке( ручице УСЕР, ГДИ ручке, мултимедијалне ручице итд.).Руке кернела су ствари које можете пренијети функцији ЦлосеХандле.

То што је барем доњи део ручица кернела увек је нула имплицира функција ГетКуеуедЦомплетионСтатус, што указује на то да можете подесити доњи део ручице догађаја да потисне обавештење о завршетку порта.Да би ово функционисало, доњи бит мора обично бити нула.

Ова информација није корисна за већину писаца апликација, што би требало наставити да третира ручке као непрозирне вредности.Људи који би били заинтересовани за таг битове су они који имплементирају библиотеке класе ниског нивоа или обављају објекте кернела унутар већег оквира.

Извор: Зашто се кернел ручно држи више од четири?

Даље читање

Стара нова ствар: Практични развој у току еволуције Виндовса од Раимонд Цхена( главни инжењер дизајна софтвера на Мицрософт )

Да ли желите нешто додати објашњењу?Звучи у коментарима.Желите да прочитате више одговора од других корисничких корисника Стацк Екцханге?Овде погледајте комплетну тему.