Организация ввода-вывода. Драйверы WDM. Рощин А.В. - 5 стр.

UptoLike

Составители: 

5
1.1 Назначение драйвера
В Windows NT5 существует четкое разграничение двух областей в
оперативной памяти и режимов процессора для исполняемого кода [1]:
область исполняемого кода в непривилегированном режиме работы
процессора (пользовательском режиме) для приложений пользователя и
части компонентов операционной системы, и
область исполняемого кода операционной системы в привилегированном
режиме процессора (режиме ядра).
Под областью исполняемого кода надо понимать области загрузки
(диапазон адресов) в оперативной памяти вычислительной системы. Windows
2000/XP — 32-разрядная операционная система (64-разрядную версию этой
операционной системы в данном пособии не рассматриваем), и поэтому всем
приложениям доступно до 4 Гбайт линейного адресного пространства. Часто в
системе установлен меньший объем физической памяти, но, тем не менее, для
работающих программ это незаметно. Специальные системные механизмы
обеспечивают возможность виртуального присутствия 4 Гбайт памяти в системе
[4]. Деление 4 Гбайт виртуального (или не виртуального, если вы можете себе это
позволить) адресного пространства между пользовательскими приложениями и
системными программами осуществляется поровну: первые 2 Гбайт
пользовательские, остальноесистемное адресное пространство.
Исполняемый код в пользовательском режиме имеет ограничения на доступ
к системным ресурсам, в частности, на прямой доступ к оборудованию. Это
связано с желанием обеспечить более устойчивое функционирование системы при
наличии ошибок в программах пользователей. Надо учитывать, что Windows
проектировалась как многозадачная и многопользовательская система, поэтому
крах одного приложения не должен приводить к краху операционной системы и,
следовательно, к краху других пользовательских приложений, запущенных на
исполнение в этой системе. Приложения операционной системы и другие
программы, исполняющиеся в режиме ядра, имеют полный доступ ко всем
     1.1 Назначение драйвера
     В Windows NT5 существует четкое разграничение двух областей в
оперативной памяти и режимов процессора для исполняемого кода [1]:
     − область исполняемого кода в непривилегированном режиме работы
        процессора (пользовательском режиме) для приложений пользователя и
        части компонентов операционной системы, и
     − область исполняемого кода операционной системы в привилегированном
        режиме процессора (режиме ядра).
     Под областью исполняемого кода надо понимать области загрузки
(диапазон адресов) в оперативной памяти вычислительной системы. Windows
2000/XP — 32-разрядная операционная система (64-разрядную версию этой
операционной системы в данном пособии не рассматриваем), и поэтому всем
приложениям доступно до 4 Гбайт линейного адресного пространства. Часто в
системе установлен меньший объем физической памяти, но, тем не менее, для
работающих программ это незаметно. Специальные системные механизмы
обеспечивают возможность виртуального присутствия 4 Гбайт памяти в системе
[4]. Деление 4 Гбайт виртуального (или не виртуального, если вы можете себе это
позволить) адресного пространства между пользовательскими приложениями и
системными    программами      осуществляется   поровну:   первые    2   Гбайт
пользовательские, остальное — системное адресное пространство.
     Исполняемый код в пользовательском режиме имеет ограничения на доступ
к системным ресурсам, в частности, на прямой доступ к оборудованию. Это
связано с желанием обеспечить более устойчивое функционирование системы при
наличии ошибок в программах пользователей. Надо учитывать, что Windows
проектировалась как многозадачная и многопользовательская система, поэтому
крах одного приложения не должен приводить к краху операционной системы и,
следовательно, к краху других пользовательских приложений, запущенных на
исполнение в этой системе. Приложения операционной системы и другие
программы, исполняющиеся в режиме ядра, имеют полный доступ ко всем



                                      5