Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«1.Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ устройство Windows (Π³Π». 1-4)Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 51

Автор ΠœΠ°Ρ€ΠΊ Руссинович

B Windows XP ΠΈ Windows Server 2003 диспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅Ρ†ΠΈΡ€ΡƒΠ΅Ρ‚ части куста Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² доступС ΠΊ Π½ΠΈΠΌ. ΠŸΡ€ΠΈ этом ΠΎΠ½ обращаСтся ΠΊ функциям проСцирования Ρ„Π°ΠΉΠ»ΠΎΠ² Π² диспСтчСрС кэша для отобраТСния 16-ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π½Ρ‹Ρ… прСдставлСний Π½Π° Ρ„Π°ΠΉΠ»Ρ‹ кустов (ΠΎ диспСтчСрС кэша см. Π³Π»Π°Π²Ρƒ 10). Π§Ρ‚ΠΎΠ±Ρ‹ проСкция куста Π½Π΅ заняла вСсь адрСсный Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ диспСтчСра кэша, диспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ пытаСтся Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 256 прСдставлСний куста Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, отмСняя ΠΏΡ€ΠΎΠ΅Ρ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠ΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… прСдставлСний ΠΏΠΎ достиТСнии этого ΠΏΡ€Π΅Π΄Π΅Π»Π°. ДиспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡƒΠ» для хранСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π² Π½Π΅ΠΌ лишь ΠΌΠ°Π»ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Windows 2000.


ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π• B Windows XP ΠΈ Windows Server 2003 диспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сохраняСт Π±Π»ΠΎΠΊ Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠΌ ΠΏΡƒΠ»Π΅ вмСсто Π΅Π³ΠΎ проСцирования, Ссли Ρ€Π°Π·ΠΌΠ΅Ρ€ этого Π±Π»ΠΎΠΊΠ° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 256 Кб.


Если Π±Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€ кустов Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ увСличивался, диспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ Π±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΊΠΎΠΏΠΈΠ΅ΠΉ рССстра Π² памяти, ΠΊΠ°ΠΊ с ΠΎΠ±Ρ‹ΠΊΠ½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ. Зная индСкс ячСйки, диспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ Π±Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π΅Π΅ адрСс Π² памяти, просто слоТив индСкс ячСйки, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ смСщСниС Π² Ρ„Π°ΠΉΠ»Π΅ куста, с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ адрСсом ΠΊΠΎΠΏΠΈΠΈ куста Π² памяти. ИмСнно Ρ‚Π°ΠΊ ΠΈ поступаСт Ntldr с кустом SYSTEM Π½Π° Ρ€Π°Π½Π½ΠΈΡ… этапах Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ: ΠΎΠ½ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ считываСт Π΅Π³ΠΎ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΊΠ°ΠΊ нСизмСняСмый ΠΈ для поиска Π½ΡƒΠΆΠ½Ρ‹Ρ… ячССк суммируСт ΠΈΡ… индСксы с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ адрСсом ΠΊΠΎΠΏΠΈΠΈ куста Π² памяти. K соТалСнию, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ появлСния Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² кусты Ρ€Π°Π·Ρ€Π°ΡΡ‚Π°ΡŽΡ‚ΡΡ, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ систСма Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡƒΠ»Π° для хранСния Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΎΠ² с добавляСмыми Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌΠΈ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ рССстра Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ хранятся Π² Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ области ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ памяти.


Π­ΠšΠ‘ΠŸΠ•Π Π˜ΠœΠ•ΠΠ’: наблюдСниС Π·Π° использованиСм ΠΏΡƒΠ»Π° ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ памяти для кустов рССстра

Административных ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈ Π±Ρ‹ объСм памяти ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡƒΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ кустами рССстра вмСстС с профилями ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π² Windows 2000 Π½Π΅Ρ‚. Однако ΠΊΠΎΠΌΠ°Π½Π΄Π° !reg dump-pool ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° ядра сообщаСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ число страниц, задСйствованных ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌ кустом, Π½ΠΎ ΠΈ количСство страниц, занятых постоянными ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. B ΠΊΠΎΠ½Ρ†Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ суммарный объСм памяти, занятой кустами рССстра, (Π£Ρ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ лишь послСдниС 32 символа Π² ΠΈΠΌΠ΅Π½ΠΈ куста.)


Π­ΠšΠ‘ΠŸΠ•Π Π˜ΠœΠ•ΠΠ’: наблюдСниС Π·Π° использованиСм памяти кустами

B Windows XP ΠΈ Windows Server 2003 статистику ΠΏΠΎ использованию памяти кустами рССстра ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ /reg hivelist. Π’Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ постоянных (сохраняСмых Π½Π° дискС) ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, число Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… прСдставлСний ΠΈ количСство прСдставлСний, Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² памяти:


Π—Π΄Π΅ΡΡŒ куст профиля для ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Administrator (ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ, \Documents and Settings\Administrator\ntuser.dat, Π² Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΎΠ±Ρ€Π΅Π·Π°Π½) ΠΈΠΌΠ΅Π΅Ρ‚ 116 спроСцированных прСдставлСний ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠΎΠ»ΠΎ 4 Мб (0Ρ…3f000 Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅). Команда /reg viewlist ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ спроСцированныС прСдставлСния Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ куста. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит Π²Ρ‹Π²ΠΎΠ΄ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΈ Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ кусту UsrClass.dat, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ куст Π² Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ /reg hivelist:


B этом Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ адрСса Π΄Π²ΡƒΡ… прСдставлСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° hivelist сообщила для куста Π² столбцС ViewAddress. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ db ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° ядра для получСния содСрТимого памяти ΠΏΠΎ адрСсу ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ прСдставлСния, Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ это проСкция Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° куста Π“ΠΎΠ½Π° распознаСтся ΠΏΠΎ сигнатуоС regf):

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с дискрСтными адрСсами, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ Π½Π° Π΄Π°Π½Π½Ρ‹Π΅ кустов Π² памяти, диспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ примСняСмой диспСтчСром памяти Windows для проСцирования Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… адрСсов памяти Π½Π° физичСскиС. ДвухуровнСвая схСма, принятая для диспСтчСра ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° рис. 4–7. Ha Π²Ρ…ΠΎΠ΄Π΅ принимаСтся индСкс ячСйки (Ρ‚. Π΅. смСщСниС Π² Ρ„Π°ΠΉΠ»Π΅ куста), Π° Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ возвращаСтся адрСс Π±Π»ΠΎΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ индСкс Π΄Π°Π½Π½ΠΎΠΉ ячСйки, ΠΈ адрСс Π±Π»ΠΎΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится указанная ячСйка. ВспомнитС, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, Π° куст разрастаСтся Π·Π° счСт увСличСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΎΠ². Π’Π²ΠΈΠ΄Ρƒ этого Windows всСгда ΠΎΡ‚Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ΄ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, ΠΈ всС Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠΈ находятся Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ прСдставлСнии, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΌ диспСтчСру кэша (Π² Windows XP ΠΈ Windows Server 2003), ΠΈΠ»ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ части ΠΏΡƒΠ»Π° ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ памяти.

ДиспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΎΠ΅Ρ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, разбивая индСкс ячСйки Π½Π° логичСскиС поля, β€” Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ поступаСт ΠΈ диспСтчСр памяти с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ адрСсами. Windows ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ индСкса ячСйки ΠΊΠ°ΠΊ индСкс ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΊΠ°Ρ€Ρ‚Ρ‹ ячССк куста. B ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ ячССк имССтся 1024 элСмСнта, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ссылаСтся Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΊΠ°Ρ€Ρ‚Ρ‹ ячССк, Π° каТдая Ρ‚Π°Π±Π»ΠΈΡ†Π° Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ содСрТит 512 элСмСнтов. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ ячССк опрСдСляСтся Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠΎΠ»Π΅ΠΌ индСкса ячСйки. B этом элСмСнтС содСрТатся адрСса ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° ΠΈ Π±Π»ΠΎΠΊΠΎΠ² с ячСйкой Π² памяти. B Windows XP ΠΈ Windows Server 2003 Π½Π΅ всС ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΅Ρ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΈ, Ссли поиск ячСйки Π΄Π°Π΅Ρ‚ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ адрСс, диспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅Ρ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΏΡ€ΠΈ нСобходимости отмСняя ΠΏΡ€ΠΎΠ΅Ρ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° ΠΈΠ· своСго списка.

Ha Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰Π΅ΠΌ этапС процСсса проСцирования диспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ послСднСС ΠΏΠΎΠ»Π΅ индСкса ячСйки ΠΊΠ°ΠΊ смСщСниС Π² Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ для опрСдСлСния Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ мСстонахоТдСния ячСйки Π² памяти. ΠŸΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ куста диспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ динамичСски создаСт Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ сопоставлСний с записями для всСх Π±Π»ΠΎΠΊΠΎΠ² куста, Π° Π² дальнСйшСм добавляСт ΠΈ удаляСт Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ячССк ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° куста.


ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ рССстра

Для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ пространства ΠΈΠΌΠ΅Π½ рССстра с ΠΎΠ±Ρ‰ΠΈΠΌ пространством ΠΈΠΌΠ΅Π½ ядра диспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ опрСдСляСт Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Β«Ρ€Π°Π·Π΄Π΅Π» рССстра». Он ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Registry Π² ΠΊΠΎΡ€Π΅Π½ΡŒ пространства ΠΈΠΌΠ΅Π½ Windows ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° Π² рССстр. Regedit ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π° Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² Π² Π²ΠΈΠ΄Π΅ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet, Π½ΠΎ подсистСма Windows транслируСт эти ΠΈΠΌΠ΅Π½Π° Π² соотвСтствии с пространством ΠΈΠΌΠ΅Π½ своих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, \Registry\Machine\System\CurrentControlSet). ДиспСтчСр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², анализируя ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ имя, распознаСт ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Registry ΠΈ Ρ‚ΡƒΡ‚ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΈ диспСтчСру ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ПослСдний Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя дальнСйший Ρ€Π°Π·Π±ΠΎΡ€ ΠΈΠΌΠ΅Π½ΠΈ, просматривая своС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ куста для поиска Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π° ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий ΠΏΡ€ΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с рССстром, Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Β«Ρ€Π°Π·Π΄Π΅Π» рССстра» ΠΈ Π±Π»ΠΎΠΊΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅-ния Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ (key control blocks). Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° создаСт ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π» рССстра, диспСтчСр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π΅ΠΉ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ для ссылки Π½Π° этот Ρ€Π°Π·Π΄Π΅Π». ΠžΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ соотвСтствуСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Β«Ρ€Π°Π·Π΄Π΅Π» рССстра», созданному диспСтчСром ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с участиСм диспСтчСра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠžΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° диспСтчСр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², диспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ всС прСдоставляСмыС ΠΈΠΌ прСимущСства Π² Π·Π°Ρ‰ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΡƒΡ‡Π΅Ρ‚Π΅ ссылок.

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π° рССстра диспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ создаСт Π±Π»ΠΎΠΊ управлСния Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ. B Ρ‚Π°ΠΊΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ хранится ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π°, индСкс ячСйки ΡƒΠ·Π»Π° Ρ€Π°Π·Π΄Π΅Π»Π°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ относится Π΄Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ, ΠΈ Ρ„Π»Π°Π³, ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡŽΡ‰ΠΈΠΉ диспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π½Π°Π΄ΠΎ Π»ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ячСйку Ρ€Π°Π·Π΄Π΅Π»Π° (Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ссылаСтся Π΄Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ) послС закрытия послСднСго описатСля Ρ€Π°Π·Π΄Π΅Π»Π°. Windows ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ всС Π±Π»ΠΎΠΊΠΈ управлСния Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌΠΈ Π² Ρ…ΡΡˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Ρ‡Ρ‚ΠΎ обСспСчиваСт быстрый поиск Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Β«Ρ€Π°Π·Π΄Π΅Π» рССстра» ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ управлСния, ΠΈ, Ссли Π΄Π²Π° прилоТСния ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π°Π·Π΄Π΅Π» рССстра, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ свой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° ΠΎΠ±Ρ‰ΠΈΠΉ Π±Π»ΠΎΠΊ управлСния.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, открывая ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π΄Π΅Π» рССстра, Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ сообщаСт Π΅Π³ΠΎ имя API-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ рССстра, которая Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΈΠΌΠ΅Π½ΠΈ, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΡƒΡŽ диспСтчСру ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Найдя Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Β«Ρ€Π°Π·Π΄Π΅Π» рССстра» Π² пространствС ΠΈΠΌΠ΅Π½ диспСтчСра ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, диспСтчСр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅ΠΌΡƒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ. ДиспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ структуры Π΄Π°Π½Π½Ρ‹Ρ… куста, содСрТащиСся Π² памяти, ΠΈΡ‰Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» срСди всСх Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ². Если ΠΎΠ½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ячСйку Ρ€Π°Π·Π΄Π΅Π»Π°, поиск продолТаСтся Π² Π΄Π΅Ρ€Π΅Π²Π΅ Π±Π»ΠΎΠΊΠΎΠ² управлСния Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ позволяСт ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Π»ΠΈ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» (Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ). ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° поиска ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ поиск всСгда начинался с блиТайшСго ΠΏΡ€Π΅Π΄ΠΊΠ° с ΡƒΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ управлСния. НапримСр, Ссли ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ \Registry\Machine\ Keyl\Subkey2 Π² Ρ‚ΠΎ врСмя, ΠΊΠ°ΠΊ \Registry\Machine ΡƒΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚, Ρ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Ρ€Π°Π·Π±ΠΎΡ€Π° Π² качСствС ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±Π»ΠΎΠΊ управлСния Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ \Registry\Machine. Если Ρ€Π°Π·Π΄Π΅Π» ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚, диспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ счСтчик ссылок Π² Π±Π»ΠΎΠΊΠ΅ управлСния этим Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ. B ΠΈΠ½ΠΎΠΌ случаС диспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ создаСт Π½ΠΎΠ²Ρ‹ΠΉ Π±Π»ΠΎΠΊ управлСния ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ Π² Π΄Π΅Ρ€Π΅Π²ΠΎ. Π”Π°Π»Π΅Π΅ диспСтчСр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Β«Ρ€Π°Π·Π΄Π΅Π» рССстра», ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π½Π΅Π³ΠΎ Π±Π»ΠΎΠΊΡƒ управлСния Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ диспСтчСру ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ.