Студопедия

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника



Системные вызовы. Выполнение системного вызова.




Читайте также:
  1. VII. Выполнение задания на развитие внимания, смекалки.
  2. А.Объединение системного и эволюционного подходов.
  3. Азиатская - в которой формированию государства способствовали климатические условия, повлиявшие на выполнение ирригационных и строительных работ.
  4. Алгоритм регулирования ВЭД и администрирования таможенной деятельности с позиции системного анализа.
  5. Аппарат прерываний (виды прерываний). Понятие системного вызова.
  6. Бюджетные системные компакты
  7. Внутрисистемные коммуникации
  8. Время на выполнение норматива или задачи определяется с момента команды «К работе — ПРИСТУПИТЬ» и до доклада обучаемого (проверяемого) «Задачу выполнил».
  9. Выполнение
  10. Выполнение

Системные вызовы (system calls) - механизм, позволяющий пользовательским программам обращаться к услугам ядра ОС, то есть это интерфейс между операционной системой и пользовательской программой. Концептуально системный вызов похож на обычный вызов подпрограммы. Основное отличие состоит в том, что при системном вызове выполнение программы осуществляется в привилегированном режиме или режиме ядра. Поэтому системные вызовы иногда еще называют программными прерываниями, в отличие от аппаратных прерываний, которые чаще называют просто прерываниями. В большинстве операционных систем системный вызов является результатом выполнения команды программного прерывания (INT). Таким образом, системный вызов - это синхронное событие.

По соглашению, код пользовательского режима должен поместить в региср EBX указатель на блок параметров в стеке пользовательского режима. Тогда функция KeSystemService может просто скопировать требуемое число байтов из стека пользовательского режима в стек режима ядра перед вызовом системной функции. Рисунок 4 иллюстрирует это.

Как системный вызов вызывается?

Поскольку все системные вызовы Windows NT используют одно и тоже программное прерывание 'int 2e' для переключения в режим ядра, как код пользовательского режима информирует код ядра какую именно системную функцию нужно выполнить? Ответ заключается в том, что индекс помещается в регистр EAX перед вызовом инструкции int 2e. В режиме ядра ISR считывает значение регистра EAX и вызывает указанную системную функцию, если все переданные параметры проходят предварительную проверку. Параметры системного вызова (к примеру, те что были переданы в функцию OpenFile) передаются функции ядра в теле ISR.

Возврат из системного вызова: Когда работа системного вызова завершается, исполняется инструкция iret. Исполняя эту инструкцию, процессор восстанавливает из стека значения сохраненные значения регистров пользовательского режима и продолжает исполнение с инструкции следующей за инструкцией 'int 2e'.


Дата добавления: 2015-01-29; просмотров: 12; Нарушение авторских прав







lektsii.com - Лекции.Ком - 2014-2021 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты