Въпрос 2 Интерфейсна библиотека

Ntdll.dll е специална библиотека за поддръжка на системата, необходима при използване на DLL на подсистема. Съдържа функции от два вида:

■ изпращания на системни услуги до изпълнителни системни услуги на Windows.

■ функции за вътрешна поддръжка, използвани от подсистемите, DLL на подсистемите и други компоненти на операционната система.

Първата група функции осигурява интерфейс към услугите за изпълнение на Windows, които могат да бъдат извикани от потребителски режим. Има повече от 200 такива функции, например NtCreateFile и др. Повечето от тях са достъпни чрез Windows API (някои от тях обаче са предназначени само за използване в самата операционна система).

За всяка от тези функции има входна точка в Ntdll със същото име. Кодът във функцията съдържа специфична команда за хардуерна архитектура за превключване в режим на ядрото за извикване на системния мениджър на услуги, който след проверка на някои параметри извиква реалната услуга за режим на ядро ​​от Ntoskrnl.exe.

Ntdll включва много функции за поддръжка, като например функции за взаимодействие с процеса на подсистемата на Windows (функции, които започват с Csr). Има и диспечер на APC в потребителски режим (извикване на асинхронна процедура) и диспечер на изключения.

Подсистеми на околната среда

Подсистема на Windows

Тази подсистема се състои от следните основни елементи.

■ Процесът на подсистемата за околната среда (Csrss.exe), осигуряващ:

■ поддръжка за конзолни (текстови) прозорци;

■ поддръжка за създаване и премахване на процеси и нишки;

■ частична поддръжка за 16-битови виртуални DOS процеси­гуми (VDM);

■ много други функции като GetTempFile, DefineDosDevice, както и няколко функции за поддържане на естествен език.

■ Драйвер в режим на ядро ​​(Win32k.sys), който включва:

■ мениджърът на прозорци, който контролира изобразяването и показването на прозорци на екрана, приема входни данни от клавиатурата, мишката и други устройства и предава потребителски съобщения на приложения.

■ Интерфейс на графичното устройство (GDI) - е библиотека­ku функции за графични изходни устройства. GDI включва функции за манипулиране на графики и изчертаване на линии, текст и форми.

■ DLL-модули на подсистеми (Kernel32.dll, Advapi32.dll, User32.dll и Gdi32.dll), които превръщат повикванията на документирани функции на Windows API в извиквания на съответните (и най-вече без документи)­н) услуги в режим на ядро ​​от Ntoskrnl.exe и Win32k.sys.

Преди Windows NT 4, мениджърът на прозорци и графичните услуги бяха част от процеса на подсистема Windows в потребителския режим. В Windows NT 4 по-голямата част от кода, отговорен за работа с прозорци и графики, се пренася.­сено от контекста на процес на подсистема на Windows в набор от извикващи се сървъри­Виза, изпълнена в режим на ядро ​​(във файла Win32k.sys). Този трансфер е направен главно за подобряване на цялостната производителност на системата.­ние Отделен сървърен процес, съдържащ графичната подсистема, изискваше множество превключватели на контекст на нишки и процеси, които отнеха голям брой процесорни цикли и значителни­ресурси на паметта, въпреки че архитектурата на източника е силно оптимизирана­обиколки на тази подсистема.

Например всяка клиентска нишка се обслужва от сдвоена сървърна нишка в процес на подсистема на Windows в очакване на заявки от клиента­небесен поток. За прехвърляне на съобщения между нишки, специални­Специален механизъм за взаимодействие между процесите, така нареченият бърз LPC (fast LPC). За разлика от нормалното превключване на контекста на нишка, прехвърлянето на данни между сдвоени потоци чрез бърз LPC не предизвиква пренасрочване на събития в ядрото, което позволява на сървърния софтуер­токът се изпълнява по време на оставащия отрязък от време на клиентската нишка (извън опашката, дефинирана от планировчика). Освен това, за бързо ne­При изпращане на големи структури от данни като растерни изображения се използват буфери за споделена памет и клиентите имат директен (само за четене) достъп до ключовите структури от данни на сървъра, свеждайки до минимум необходимостта от чести превключвания на контекст между клиенти и сървъри.­вяра Windows.