Какой режим работы процессоров intel и amd не имеет программного доступа

Работа по теме: Принципы работы компьютера[11-20]. Глава: 19. Режимы работы (реальный, защищенный, виртуальный).. ВУЗ: БГУ.
article placeholder

РЕЖИМЫ
РАБОТЫ ПРОЦЕССОРА

Процессоры
могут работать в различных режимах. Под
термином «режим» подразумевается
способы, которым процессор создает (и
обеспечивает) для себя рабочую среду.
Режим работы процессора задает способ
адресации к оперативной памяти и способ
управления отдельными задачами.
Процессоры персональных компьютеров
могут работать в трех режимах: реальном,
защищенном и виртуальном режимах.

Реальный
режим

Первоначально
персональные компьютеры фирмы IBM могли
адресовать только 1 Мбайт оперативной
памяти. Это решение, принятое в начале
развития персональных компьютеров,
продолжало соблюдаться и в последующее
время — в каждом компьютере следующего
поколения процессор должен был уметь
работать в режиме совместимости с
процессором Intel 8086. Этот режим назвали
реальным. Когда процессор работает в
реальном режиме, он может обращаться к
памяти только в пределах 1 Мбайт (как и
процессор Intel 8086), и не может использовать
32-разрядные и 64-разрядные операции.
Процессор попадает в реальный режим
сразу же после запуска. В реальном режиме
работают операционные системы DOS и
стандартные DOS-приложения.

Защищенный
режим

Начиная
с процессоров Intel 80286 и компьютеров типа
IBM PC/AT, появляется защищенный режим. Это
более мощный режим работы процессора
по сравнению с реальным режимом. Он
используется в современных многозадачных
операционных системах. Защищенный режим
имеет много преимуществ:

■ В
защищенном режиме доступна вся системная
память (не существует предела 1 Мбайт).

■ В
защищенном режиме операционная система
может организовать одновременное
выполнение нескольких задач
(многозадачность).

■ В
защищенном режиме поддерживается
виртуальная память — операционная
система при необходимости может
использовать жесткий диск в качестве
расширения оперативной памяти.

■ В
защищенном режиме осуществляется
быстрый (32/64-разрядный) доступ к памяти
и поддерживается работа 32-х разрядных
операций ввода-вывода.

Каждая
выполняемая на компьютере программа
имеет свою собственную область памяти,
которая защищена от доступа со стороны
других программ. Когда какая-либо
программа пытается обратиться по
неразрешенному для нее адресу памяти,
генерируется ошибка защиты памяти. Все
современные операционные системы
используют защищенный режим, включая
Windows 98/Ме, Windows NT/2000/XP, OS/2 и Linux. Даже
операционная система DOS (обычно работающая
в реальном режиме) может использовать
доступ к памяти защищенного режима с
помощью программного интерфейса DPMI
(DOS Protected Mode Interface — интерфейс защищенного
режима операционной системы DOS). Этот
интерфейс используется компьютерными
играми и другими программами под DOS для
того, чтобы преодолеть барьер в 640 Кбайт
основной памяти DOS. С появлением процессора
Intel 386 защищенный режим был усовершенствован:
увеличено максимально доступное адресное
пространство, расширена система команд.
Поэтому он иногда называется
усовершенствованным защищенным режимом.

Процессоры
получили возможность переключаться из
реального режима работы в защищенный
и обратно (для возврата из защищенного
режима в компьютерах на базе процессора
80286 использовались специальные аппаратные
решения). Именно с появлением процессоров
семейства 386 защищенный режим стал
широко использоваться в операционных
системах.

Виртуальный
режим

Защищенный
режим используют графические многозадачные
операционные системы, такие как Windows.
Иногда возникает необходимость выполнения
DOS-программ в среде операционной системы
Windows. Но DOS-программы работают в реальном
режиме, а не в защищенном. Для решения
этой проблемы был разработан виртуальный
режим или режим виртуального процессора
8086. Этот режим эмулирует (имитирует)
реальныйрежим, необходимый для работы
DOS-программ, внутри защищенного режима.
Операционные системы защищенного режима
(такие как Windows) могут создавать несколько
машин виртуального режима — при этом
каждая из них будет работать так, как
будто она одна использует все ресурсы
персонального компьютера. Каждая
виртуальная машина получает в свое
распоряжение 1 Мбайтное адресное
пространство, образ реальных программ
BIOS и т.п. Виртуальный режим используется
при работе в DOS-окне или при запуске
DOS-игр в операционной системе Windows 98/Ме.
При запуске на компьютере DOS-приложения
операционная система Windows создает
виртуальную DOS-машину, в которой
выполняется это приложение.

 

В 1976 году фирма Intel закончила разработку 16-разрядного микропроцессора i8086. Он имел разрядность регистров 16 бит и системной шины адреса 20 бит, за счет чего мог адресовать до 1 Мбайт оперативной памяти.

В 1982 году был создан i80286. Этот микропроцессор представлял собой улучшенный вариант i8086. Он поддерживал уже несколько режимов работы: реальный, когда формирование адреса производилось по правилам i8086, и защищенный, который аппаратно реализовывал многозадачность и управление виртуальной памятью, i80286 имел также большую разрядность шины адреса — 24 разряда против 20 у i8086, и поэтому он мог адресовать до 16 Мбайт оперативной памяти. Первые компьютеры на базе этого микропроцессора появились в 1984 году.

В 1985 году фирма Intel представила первый 32-разрядный микропроцессор i80386, аппаратно совместимый снизу вверх со всеми предыдущими микропроцессорами этой фирмы. Он был гораздо мощнее своих предшественников, имел 32-разрядную архитектуру и мог прямо адресовать до 4 Гбайт оперативной памяти. Микропроцессор i386 стал поддерживать новый режим работы — режим виртуального i8086, который обеспечил не только большую эффективность работу программ, разработанных для i8086, но и позволил осуществлять параллельную работу нескольких таких программ.

В настоящее время микропроцессор с 32-битной Intel-архитектурой может работать в одном из четырех режимов:

  • реальный режим
  • системный режим
  • защищенный режим
  • режим виртуального i8086
Реальный режим (Real Mode)

После инициализации (системного сброса) центральный процессор находится в реальном режиме. В реальном режиме центральный процессор работает как очень быстрый i8086 с возможностью использования 32-битных расширений. Механизм адресации, размеры памяти и обработка прерываний (с их последовательными ограничениями) микропроцессор 8086 полностью совпадают с аналогичными функциями других микропроцессоров с 32-битной Intel архитектурой в реальном режиме.

Режим системного управления (System Management Mode).

В новых поколениях микропроцессоров Intel появился режим системного управления. Он предназначен для выполнения некоторых действий с возможностью их полной изоляции от прикладного программного обеспечения и даже от операционной системы. Микропроцессор переходит в этот режим только аппаратно. Никакой программный способ не предусмотрен для перехода в этот режим. Микропроцессор возвращается из режима системного управления в тот режим, при работе в котором был получен соответствующий сигнал по команде RSM. Эта команда работает только в режиме системного управления и в других режимах не распознается, генерируя исключение #6 (недействительный код операции).

Защищенный режим (Protected Mode)

Защищенный режим является основным режимом работы микропроцессора. Ключевые особенности защищенного режима: виртуальное адресное пространство, защита и многозадачность. В защищенном режиме программа оперирует с адресами, которые могут относиться к физически отсутствующим ячейкам памяти, поэтому такое адресное пространство называется виртуальным. Размер виртуального адресного пространства программы может превышать емкость физической памяти и достигать 64Тбайт.

Виртуальный режим i8086 (V86)

В режим V86 процессор может перейти из защищённого режима, если установить в регистре флагов EFLAGS бит виртуального режима (VM-бит, бит 17). Когда процессор находится в виртуальном режиме, его поведение во многом напоминает поведение процессора i8086. В частности, для адресации памяти используется схема <сегмент:смещение>, размер сегмента составляет 64 килобайта, а размер адресуемой в этом режиме памяти — 1 мегабайт.  Виртуальный режим предназначен для работы программ, ориентированных на процессор i8086 (или i8088). Но виртуальный режим – это не реальный режим процессора i8086, имеются существенные отличия. Процессор фактически продолжает использовать схему преобразования адресов памяти и средства мультизадачности защищённого режима.

В виртуальном режиме используется трансляция страниц памяти. Это позволяет в мультизадачной операционной системе создавать несколько задач, работающих в виртуальном режиме. Каждая из этих задач может иметь собственное адресное пространство, каждое размером в 1 мегабайт.
Все задачи виртуального режима обычно выполняются в третьем, наименее привилегированном кольце защиты. Когда в такой задаче возникает прерывание, процессор автоматически переключается из виртуального режима в защищённый. Поэтому все прерывания отображаются в операционную систему, работающую в защищённом режиме.

Обработчики прерываний защищённого режима могут моделировать функции соответствующих прерываний реального режима, что необходимо для правильной работы программ, ориентированных на реальный режим операционной системы MS-DOS.

Назад

Назад: Язык ассемблера

Процессоры

Режимы процессора

Подробности
Родительская категория: Процессоры
Категория: Принципиальное устройство процессора

Режимы процессора

Все 32-разрядные и более поздние процессоры Intel, начиная с 386-го, а также совместимые с ними могут выполнять программы в нескольких режимах. Режимы процессора предназначены для выполнения программ в различных средах; в разных режимах возможности чипа неодинаковы, потому что команды выполняются по разному. В зависимости от режима процессора изменяется схема управления памятью системы и задачами. Процессоры могут работать в трех режимах.

  • Реальный режим (16-разрядное программное обеспечение).
  • Режим IA-32:
    • защищенный режим (32-разрядное программное обеспечение);
    • виртуальный реальный режим (16-разрядное программное обеспечение в 32-разрядной среде).
  • Расширенный 64-разрядный режим IA-32e (также называемый AMD64, x86-64 и EM64T):
    • 64-разрядный режим (64-разрядное программное обеспечение);
    • режим совместимости (32-разрядное программное обеспечение).

режимы процессора

Реальный режим

Реальный режим иногда называют режимом 8086, поскольку он основан на инструкциях процессоров 8086 и 8088. В первом IBM PC использовался процессор 8088, который мог выполнять 16-разрядные команды, применяя 16-разрядные внутренние регистры, и адресовать только 1 Мбайт памяти, используя для адреса 20 разрядов. Все программное обеспечение PC первоначально было предназначено для этого процессора; оно было разработано на основе 16-разрядной системы команд и модели памяти объемом 1 Мбайт. Например, операционные системы DOS и Windows от 1.x до 3.x, а также все приложения для этих ОС написаны в расчете на 16-разрядные команды. Эти 16-разрядные операционные системы и приложения были разработаны для выполнения на первоначальном процессоре 8088.

Более поздние процессоры, например 286, также могли выполнять те же самые 16-разрядные команды, что и первоначальный 8088, но намного быстрее. Другими словами, процессор 286 был полностью совместим с первоначальным 8088 и мог выполнять все 16-разрядные программы точно так же, как 8088, только значительно быстрее. 16-разрядный режим, в котором выполнялись команды процессоров 8088 и 286, был назван реальным режимом. Все программы, выполняемые в реальном режиме, должны использовать только 16-разрядные команды, 20-разрядные адреса и поддерживаться архитектурой памяти, рассчитанной на емкость до 1 Мбайт. Для программного обеспечения этого типа обычно используется однозадачный режим, т.е. одновременно может выполняться только одна программа. Нет никакой встроенной защиты для предотвращения перезаписи ячеек памяти одной программы или даже операционной системы другой программой; это означает, что при выполнении нескольких программ вполне могут быть испорчены данные или код одной из них, что может привести всю систему к краху (или останову).

Режим IA»32 (32″разрядный)

Первым 32-разрядным процессором, предназначенным для PC, был 386-й. Этот чип мог выполнять абсолютно новую 32-разрядную систему команд. Чтобы полностью использовать преимущество 32-разрядной системы команд, были необходимы 32-разрядная операционная система и 32-разрядные приложения. Этот новый режим назывался защищенным, так как выполняемые в нем программы защищены от перезаписи своих областей памяти другими программами. Такая защита делает систему более надежной, поскольку ни одна программа с ошибками уже не сможет так легко повредить другие программы или операционную систему. Кроме того, программу, “потерпевшую крах”, можно довольно просто завершить без ущерба для всей системы.

Зная, что для разработки новых операционных систем и приложений, использующих преимущества 32-разрядного защищенного режима, потребуется некоторое время, Intel предусмотрела в процессоре 386 обратно совместимый реальный режим. Благодаря этому процессор 386 мог выполнять немодифицированные 16-разрядные приложения, причем намного быстрее, чем на любом процессоре предыдущего поколения. Для большинства пользователей этого было достаточно; им не требовалось все 32-разрядное программное обеспечение — достаточно было того, что имевшиеся у них 16-разрядные программы работали быстрее. К сожалению, из-за этого процессор никогда не работал в 32-разрядном защищенном режиме и все возможности защищенного режима не использовались.

Когда высокопроизводительный процессор, подобный Pentium 4, работает в DOS (т.е. в реальном режиме), он напоминает “Turbo 8088”. Слово “Turbo” означает, что процессор имеет преимущество в быстродействии при выполнении 16-разрядных программ, хотя он может выполнять только 16-разрядные команды и обращаться к памяти в пределах все того же 1 Мбайт, предусмотренного картой памяти процессора 8088. Поэтому, даже если у вас система с Pentium 4 или Athlon XP и оперативной памятью емкостью 256 Мбайт, при работе в Windows 3.x или DOS в действительности используется только первый мегабайт памяти. В связи с этим потребовались новые операционные системы и приложения, которые могли бы использовать все преимущества современных процессоров в 32-разрядном защищенном режиме. Однако некоторые пользователи поначалу сопротивлялись переходу к 32-разрядной среде. Сообщество пользователей оказалось весьма устойчивым в своих привязанностях и не желало изменять привычек. Признаюсь честно: я был одним из них.

Из-за сопротивления пользователей 32-разрядные операционные системы, такие как Unix и ее разновидности (например, Linux), OS/2 и даже Windows NT/2000/XP, распространялись на рынке ПК довольно вяло. Из перечисленных систем Windows XP стала по настоящему широко распространенным программным продуктом во многом благодаря огромной популярности Windows 95/98/Me (смешанные 16/32-разрядные системы). Последней полностью 16-разрядной операционной системой была Windows серии 3.x, так как на самом деле она работала в качестве надстройки DOS.

Такие 64-разрядные процессоры, как Itanium, AMD Opteron и EM64T-совместимый процессор Xeon, привнесли возможность работы 64-разрядных программ в серверных системах, в то время как процессоры Athlon 64, EM64T-совместимый Pentium 4, а также Pentium D и Core 2 создавались непосредственно для настольных систем. Оба процессора совместимы со всем существующим 32-разрядным программным обеспечением. Но для того, чтобы воспользоваться возможностями процессора в полном объеме, потребуются полноценные 64-разрядные операционные системы и приложения. Microsoft уже выпустила 64-разрядные версии Windows XP и Vista, в то время как различными компаниями создаются 64-разрядные приложения для серверов и рабочих станций.

Примечание

В процессорах Itanium и AMD Athlon 64 реализованы различные 64-разрядные архитектуры. Таким образом, 64-разрядное программное обеспечение, созданное для одной платформы, будет несовместимо с другой и потребует отдельной перекомпиляции со стороны поставщика продукта. Одним словом, специально созданные программы для 64-разрядных процессоров Intel нельзя будет запустить на компьютере с 64-разрядным процессором Athlon и наоборот.

Виртуальный реальный режим IA-32

Для обратной совместимости 32-разрядная система Windows использует третий режим в процессоре — виртуальный реальный режим. По существу, это режим выполнения 16-разрядной среды (реальный режим), реализованный внутри 32-разрядного защищенного режима (т.е. виртуально, а не реально). Выполняя команды в окне командной строки DOS системы Windows, вы создаете виртуальный сеанс реального режима. Поскольку защищенный режим является подлинно многозадачным, фактически можно выполнять несколько сеансов реального режима, причем в каждом сеансе собственное программное обеспечение работает на виртуальном компьютере. И все эти приложения могут выполняться одновременно, даже во время работы других 32-разрядных программ.

Учтите, что любая программа, выполняемая в виртуальном окне реального режима, может обращаться только к памяти объемом до 1 Мбайт, причем для каждой такой программы это будет первый и единственный мегабайт памяти в системе. Другими словами, если вы выполняете приложение DOS в виртуальном реальном окне, ему будет доступна память только объемом до 640 Кбайт. Так происходит потому, что в 16-разрядной среде имеется только 1 Мбайт общей оперативной памяти, при этом верхние 384 Кбайт зарезервированы для системы. Виртуальное реальное окно полностью имитирует среду процессора 8088, и, если не учитывать быстродействие, программное обеспечение будет выполняться точно так, как оно выполнялось первым PC в реальном режиме. Каждая виртуальная машина получает собственный 1 Мбайт адресного пространства и собственный экземпляр реальных аппаратных подпрограмм управления аппаратурой (базовую систему ввода-вывода), причем при этом эмулируются все регистры и возможности реального режима.

Виртуальный реальный режим используется при выполнении 16-разрядных программ в окне DOS. При запуске приложения DOS операционная система Windows создает виртуальную машину DOS, на которой это приложение может выполняться.

Важно отметить, что все Intel-совместимые процессоры (в частности, AMD и Cyrix) при включении питания начинают работать в реальном режиме. При загрузке 32-разрядная операционная система автоматически переключает процессор в 32-разрядный режим и управляет им в этом режиме.

Также важно заметить, что некоторые приложения DOS и Windows 3.x в 32-разрядной среде ведут себя неадекватно, т.е. делают то, что не поддерживается даже в виртуальном реальном режиме.

Диагностическое программное обеспечение — прекрасный тому пример: оно не будет корректно работать в окне реального режима (виртуального реального) под управлением Windows. Чтобы на Pentium 4 запустить такое программное обеспечение в первоначальном упрощенном режиме, необходимо прервать процесс начальной загрузки системы и просто загрузить DOS. Это можно выполнить в Windows 9x (исключая Windows Me), нажимая клавишу <F8>, когда на экране появляется подсказка Starting Windows. Затем, когда появится загрузочное меню, в нем нужно выбрать команду загрузки простой 16-разрядной операционной системы реального режима DOS. Для запуска программ диагностики, которые невозможно запустить обычным образом в защищенном режиме, рекомендуется выбирать режим с поддержкой командной строки. Учитывая, что промежуток времени, в который Windows ожидает нажатия <F8>, очень короткий (порядка 2 с), лучше нажимать <F8> несколько раз подряд. Операционная система Windows Me создавалась, как вы знаете, на основе Windows 98. Пытаясь отучить пользователей от 16-разрядного режима работы, Microsoft удалила опцию загрузочного меню (Startup). Операционные системы Windows NT/2000/XP также лишены возможности прервать загрузку подобным образом. Для запуска компьютера в режиме DOS придется создать загрузочный диск, который и будет затем использоваться для загрузки системы в реальном режиме. Как правило, этот режим требуется для некоторых процедур технического обслуживания, в частности для выполнения аппаратной диагностики и непосредственного редактирования секторов диска.

Хотя реальный режим используется DOS и “стандартными” приложениями DOS, есть специальные программы, которые “расширяют” DOS и открывают доступ к дополнительной памяти XMS (сверх 1 Мбайт). Они иногда называются расширителями DOS и обычно включаются как часть программного обеспечения DOS или Windows 3.x, в котором используются. Протокол, описывающий, как выполнять DOS в защищенном режиме, называется DPMI (DOS Protected Mode Interface — интерфейс защищенного режима DOS).

Этот протокол использовался в Windows 3.x для обращения к дополнительной памяти XMS при работе приложений для Windows 3.x. Он позволял 16-разрядным приложениям использовать память, превышающую 1 Мбайт. Расширители DOS особенно часто применяются в играх DOS; именно благодаря им игровая программа может использовать объем памяти, намного превышающий стандартный (1 Мбайт), который могут адресовать большинство программ, работающих в реальном режиме. Эти расширители DOS переключают процессор в реальный режим и обратно, а в случае запуска под управлением Windows применяют интерфейс DPMI, встроенный в Windows, и тем самым позволяют другим программам совместно использовать часть дополнительной памяти XMS системы.

Есть еще одно исключение: первые 64 Кбайт дополнительной памяти в реальном режиме доступны программам. Это результат ошибки в первом компьютере IBM AT, связанной с 21-й линией адреса памяти (A20, поскольку A0 — первая строка адреса). Управляя сигналом на линии A20, программное обеспечение реального режима может получать доступ к первым 64 Кбайт дополнительной памяти — это первые 64 Кбайт памяти, следующие за первым мегабайтом. Эта область памяти называется областью верхних адресов памяти (high memory area — HMA).

64″разрядный расширенный режим IA»32e (AMD64, x86″64, EM64T)

Этот режим процессора является расширением архитектуры IA-32, разработанным компанией AMD и в дальнейшем поддержанным Intel. Процессоры, поддерживающие 64-разрядные расширения, могут работать в реальном режиме (8086), режиме IA-32 или IA-32e. При использовании режима IA-32 процессор может работать в защищенном или виртуальном реальном режиме. Режим IA-32e позволяет работать в 64-разрядном режиме или в режиме совместимости, что подразумевает возможность одновременного выполнения 64- и 32-разрядных приложений. Режим IA-32e включает в себя два подрежима.

  • 64-разрядный режим. Позволяет 64-разрядной операционной системе выполнять 64-разрядные приложения.
  • Режим совместимости. Позволяет 64-разрядной операционной системе выполнять 32-разрядные приложения.

Первый подрежим активизируется после загрузки 64-разрядной операционной системы и используется 64-разрядными приложениями. В 64-разрядном подрежиме доступно несколько новых функций:

  • 64-разрядная линейная адресация памяти;
  • Поддержка физической памяти объемом более 4 Гбайт (определенные ограничения накладываются процессором);
  • 8 новых регистров общего назначения GPR (General-Purpose Register);
  • 8 новых регистров для поточных расширений SIMD (MMX, SSE, SSE2 и SSE3);
  • 64-разрядные регистры GPR и указатели инструкций.
    Режим совместимости IE-32e позволяет запускать 32- и 16-разрядные приложения под управлением 64-разрядной операционной системы. К сожалению, старые 16-разрядные программы, работающие в виртуальном реальном режиме (например, приложения DOS), не поддерживаются, а значит, их выполнение невозможно. Данное ограничение наверняка будет представлять наибольшую проблему для пользователей. Подобно 64-разрядному режиму, режим совместимости активизируется операционной системой для отдельных приложений, благодаря чему становится возможным одновременное выполнение 64- и 32-разрядных приложений.

Для того чтобы все эти приложения работали, необходима 64-разрядная операционная система и, что гораздо важнее, 64-разрядные драйверы для всех устройств, предназначенные именно для этой операционной системы. В настоящее время существуют три 64-разрядные версии Windows:

  • Windows XP 64-bit Edition for Itanium;
  • Windows XP Professional x64 Edition;
  • Windows Vista 64-bit (несколько вариантов).

Первая из них, предназначенная для процессоров с архитектурой IA-64, таких как Itanium и Itanium 2, была представлена еще в 2001 году. Последние две предназначены для процессоров архитектуры IA-32e, поддерживающих 64-разрядные расширения, в частности Athlon 64, Opteron, некоторые модели Sempron, Core 2, Pentium D, Pentium Extreme Edition, а также некоторые модели Xeon и Pentium 4. Обратите внимание, что Microsoft использует термин x64применительно к процессорам, поддерживающим расширения AMD64 или EM64T, так как расширения стандартной архитектуры IA-32, разработанные AMD и Intel, практически идентичны и поддерживаются одной версией Windows.

Примечание

В первых версиях процессоров с технологией EM64T от компании Intel отсутствовала поддержка инструкций IAHF и SAHF набора команд AMD64. В то же время процессоры Pentium 4 и Xeon полностью поддерживают эти инструкции, однако требуется обновление BIOS. Новые многоядерные процессоры также поддерживают эти инструкции.

Ограничения физической памяти для 32- и 64-разрядной версии редакций систем Windows XP и Vista представлены в таблице ниже .

режимы процессора

Основное различие между 32- и 64-разрядной версиями Windows — поддерживаемый объем памяти, поскольку 32-разрядные версии не поддерживают более 4 Гбайт физической памяти, а также больше 2 Гбайт выделенной памяти на процесс. В то же время 64-разрядные версии Windows поддерживают до 128 Гбайт физической памяти (при выделении до 4 Гбайт на каждый 32-разрядный процесс, или до 8 Гбайт на каждый 64-разрядный процесс). Поддержка больших объемов памяти означает, что приложения могут загружать больше информации в память, а значит, процессор может быстрее обращаться к данным.

Следует отметить, что 64-разрядные версии Windows позволяют запустить без каких либо проблем 32-разрядные Windows-приложения, но не поддерживают приложения DOS и другие программы, работающие в виртуальном реальном режиме. Достаточно серьезная проблема связана и с драйверами: 32-разрядные процессы не могут загружать 64-разрядные динамически подключаемые библиотеки DLL, а 64-разрядные процессы, в свою очередь, не могут загружать 32-разрядные библиотеки DLL. Следовательно, для всех устройств, подключенных к системе, необходимы как 32-, так и 64-разрядные драйверы. Поиск 64-разрядных драйверов для старых устройств крайне сложен. Найти драйверы для устройств, выпуск которых давно прекращен, чаще всего просто невозможно. Даже для новых устройств может пройти пару лет, прежде чем их производители начнут поставлять 64-разрядные версии драйверов. Хочется верить, что в обозримом будущем все производители оборудования начнут выпускать драйверы для 64-разрядных систем. Прежде чем устанавливать 64-разрядную версию Windows, убедитесь в наличии 64-разрядных версий драйверов для всех имеющихся в компьютерной системе внутренних и внешних устройств. Не забывайте, что драйверы для Itanium-совместимых версий операционных систем не подходят для операционных систем с x64-совместимыми процессорами.

Рассматривая возможность перехода от 32- к 64-разрядной технологии, следует принимать во внимание поддерживаемый объем памяти, доступность драйверов и совместимость программного обеспечения. Как уже отмечалось, переход от 16-разрядных вычислений к 32-разрядным продолжался 16 лет. Конечно, переход от 32-разрядных вычислений к 64-разрядным не будет столько длиться, но 2–3 года на это все же уйдет.

2.1. Процессор.

Самый
основной элемент компьютера, это, конечно, процессор. Давайте подробней его
рассмотрим. Упрощённая структура процессора (рис. 4):

4

Рис.
4. Упрощённая структура процессора

Основные
элементы процессора:

·        
Регистры – это специальные ячейки памяти,
физически расположенные внутри процессора. В отличие от ОЗУ, где для обращения
к данным требуется использовать шину адреса, к регистрам процессор может
обращаться напрямую. Это существенно ускорят работу с данными.

·        
Арифметико-логическое
устройство

выполняет арифметические операции, такие как сложение, вычитание, а также
логические операции.

·        
Блок
управления

определяет последовательность микрокоманд, выполняемых при обработке машинных
кодов (команд).

·        
Тактовый
генератор
, или генератор
тактовых импульсов
, задаёт рабочую частоту процессора.

2.2. Режимы работы процессора.

Процессор
архитектуры x86 может работать в одном из пяти режимов и переключаться между
ними очень быстро:

1.       
Реальный
(незащищенный) режим (real address mode) — режим, в котором работал процессор 8086.
В современных процессорах этот режим поддерживается в основном для совместимости
с древним  программным обеспечением (DOS-программами).

2.       
Защищенный
режим (protected mode) — режим, который впервые был реализован в 80286  процессоре. Все современные операционные системы
(Windows, Linux и пр.) работают в защищенном режиме. Программы реального режима
не могут функционировать в защищенном режиме.

3.       
Режим
виртуального процессора 8086 (virtual-8086 mode, V86) — в этот режим можно
перейти только из защищенного режима. Служит для обеспечения
функционирования  программ  реального 
режима,  причем дает возможность
одновременной работы нескольких таких программ, что в реальном  режиме невозможно. Режим V86 предоставляет
аппаратные средства для формирования виртуальной  машины, эмулирующей процессор8086. Виртуальная
машина формируется программными 
средствами  операционной  системы. 
В Windows такая виртуальная машина называется VDM (Virtual DOS Machine —
виртуальная машина DOS). VDM перехватывает и обрабатывает системные вызовы  от работающих DOS-приложений.

4.       
Нереальный
режим (unreal mode, он же big real mode) — аналогичен реальному режиму, только
позволяет получать доступ ко всей физической памяти, что невозможно в реальном
режиме.

5.       
Режим
системного управления System Management Mode (SMM) используется в служебных и
отладочных целях.

При
загрузке компьютера процессор всегда находится в реальном режиме, в этом
режиме  работали  первые 
операционные системы, например MS-DOS, однако современные операционные системы,
такие  как Windows и Linux переводят
процессор в защищенный режим. Вам, наверное, интересно, что защищает процессор в
защищенном режиме? В защищенном режиме процессор защищает выполняемые программы
в памяти от взаимного влияния (умышленно или по ошибке) друг на друга, что
легко может произойти в реальном режиме. Поэтому защищенный режим и назвали
защищенным.

2.3. Регистры процессора
(программная модель процессора).

Для
понимания работы команд ассемблера необходимо четко представлять, как
выполняется адресация данных, какие регистры процессора и как могут
использоваться при выполнении инструкций. Рассмотрим базовую программную модель
процессоров Intel 80386, в которую входят:

·        
8
регистров общего назначения, служащих для хранения данных и указателей;

·        
регистры
сегментов — они хранят 6 селекторов сегментов;

·        
регистр
управления и контроля EFLAGS, который позволяет управлять состоянием выполнения
программы и состоянием (на уровне приложения) процессора;

·        
регистр-указатель
EIP выполняемой следующей инструкции процессора;

·        
система
команд (инструкций) процессора;

·        
режимы
адресации данных в командах процессора.

Начнем
с описания базовых регистров процессора Intel 80386.

Базовые
регистры процессора Intel 80386 являются основой для разработки программ и
позволяют решать основные задачи по обработке данных. Все они показаны на рис.
5.

5

Рис.
5. Базовые регистры процессора Intel 80386

Среди
базового набора регистров выделим отдельные группы и рассмотрим их назначение.

2.4. Регистры общего назначения.

32-битные
регистры ЕАХ (аккумулятор), ЕВХ (база), ЕСХ (счетчик), EDX (регистр данных)
могут использоваться без ограничений для любых целей – временного хранения
данных, аргументов или результатов различных операций. Названия регистров
происходят от того, что некоторые команды применяют их специальным образом:
так, аккумулятор часто необходим для хранения результата действий, выполняемых
над двумя операндами, регистр данных в этих случаях получает старшую часть
результата, если он не умещается в аккумулятор, регистр-счетчик работает как
счетчик в циклах и строковых операциях, а регистр-база – при так называемой
адресации по базе. Младшие 16 бит каждого из этих регистров применяются как
самостоятельные регистры с именами АХ, ВХ, СХ, DX. На самом деле в процессорах
8086 – 80286 все регистры были 16-битными и назывались именно так, а 32-битные
ЕАХ – EDX появились с введением 32-битной архитектуры в 80386. Кроме этого,
отдельные байты в 16-битных регистрах АХ – DX тоже могут использоваться как
8-битные регистры и иметь свои имена. Старшие байты этих регистров называются
АН, ВН, СН, DH, а младшие — AL, BL, CL, DL (см.    рис.4.1).

Остальные
четыре регистра – ESI (индекс источника), EDI (индекс приемника), ЕВР (указатель
базы), ESP (указатель стека) – имеют более конкретное назначение и применяются
для хранения всевозможных временных переменных. Регистры ESI и EDI необходимы в
строковых операциях, ЕВР и ESP – при работе со стеком. Так же как и в случае с
регистрами ЕАХ — EDX, младшие половины этих четырех регистров называются SI,
DI, BP и SP соответственно, и в процессорах до 80386 только они и
присутствовали.

2.5. Сегментные регистры.

При
использовании сегментированных моделей памяти для формирования любого адреса нужны
два числа – адрес начала сегмента и смещение искомого байта относительно этого
начала (в бессегментной модели памяти flat адреса начал всех сегментов равны).
Операционные системы (кроме DOS) могут размещать сегменты, с которыми работает
программа пользователя, в разных местах памяти и даже временно записывать их на
диск, если памяти не хватает. Так как сегменты способны оказаться где угодно,
программа обращается к ним, применяя вместо настоящего адреса начала сегмента
16-битное число, называемое селектором. В процессорах Intel предусмотрено шесть
16-битных регистров — CS, DS, ES, FS, GS, SS , где хранятся селекторы.
(Регистры FS и GS отсутствовали в 8086, но появились уже в 80286.) Это
означает, что в любой момент можно изменить параметры, записанные в этих
регистрах.

В
отличие от DS, ES, GS, FS, которые называются регистрами сегментов данных, CS и
SS отвечают за сегменты двух особенных типов – сегмент кода и сегмент стека.
Первый содержит программу, исполняющуюся в данный момент, следовательно, запись
нового селектора в этот регистр приводит к тому, что далее будет исполнена не
следующая по тексту программы команда, а команда из кода, находящегося в другом
сегменте, с тем же смещением. Смещение очередной выполняемой команды всегда
хранится в специальном регистре EIP (указатель инструкции, 16-битная форма IP),
запись в который так же приведет к тому, что далее будет исполнена какая-нибудь
другая команда. На самом деле все команды передачи управления – перехода,
условного перехода, цикла, вызова подпрограммы и т.п. – и осуществляют эту
самую запись в CS и EIP.

2.6. Регистр флагов.

Еще
один важный регистр, использующийся при выполнении большинства команд, —
регистр флагов. Как и раньше, его младшие 16 бит, представлявшие собой весь
этот регистр до процессора 80386, называются FLAGS. В EFLAGS каждый бит
является флагом, то есть устанавливается в 1 при определенных условиях или
установка его в 1 изменяет поведение процессора. Все флаги, расположенные в
старшем слове регистра, имеют отношение к управлению защищенным режимом,
поэтому здесь рассмотрен только регистр FLAGS (см. рис. 6):

6

Рис. 6. Регистр флагов FLAGS.

CF – флаг переноса. Устанавливается в 1,
если результат предыдущей операции не уместился в приемнике и произошел перенос
из старшего бита или если требуется заем (при вычитании), в противном случае –
в 0. Например, после сложения слова 0
FFFFh и 1, если регистр, в который надо
поместить результат, – слово, в него будет записано 0000
h и флаг CF = 1.

PF – флаг четности. Устанавливается в 1,
если младший байт результата предыдущей команды содержит четное число битов,
равных 1, и в 0, если нечетное. Это не то же самое, что делимость на два. Число
делится на два без остатка, если его самый младший бит равен нулю, и не
делится, когда он равен 1.

AF – флаг полупереноса или
вспомогательного переноса. Устанавливается в 1, если в результате предыдущей
операции произошел перенос (или заем) из третьего бита в четвертый. Этот флаг
используется автоматически командами двоично-десятичной коррекции.

ZF – флаг нуля. Устанавливается в
1, если результат предыдущей команды – ноль.

SF – флаг знака. Он всегда равен старшему
биту результата.

TF – флаг ловушки. Он был
предусмотрен для работы отладчиков, не использующих защищенный режим. Установка
его в 1 приводит к тому, что после выполнения каждой программной команды
управление временно передается отладчику.

IF – флаг прерываний. Сброс этого флага в 0
приводит к тому, что процессор перестает обрабатывать прерывания от внешних
устройств. Обычно его сбрасывают на короткое время для выполнения критических
участков кода.

DF
– флаг
направления. Он контролирует поведение команд обработки строк: когда он
установлен в 1, строки обрабатываются в сторону уменьшения адресов, когда
DF=0 – наоборот.

OF – флаг переполнения. Он
устанавливается в 1, если результат предыдущей арифметической операции над
числами со знаком выходит за допустимые для них пределы. Например, если при
сложении двух положительных чисел получается число со старшим битом, равным
единице, то есть отрицательное, и наоборот.

Флаги
IOPL (уровень привилегий ввода-вывода) и NT (вложенная задача) применяются в
защищенном режиме.

2.7. Цикл выполнения команды

Программа
состоит из машинных команд. Программа загружается в оперативную память
компьютера. Затем программа начинает выполняться, то есть процессор выполняет
машинные команды в той последовательности, в какой они записаны в программе.

Для
того чтобы процессор знал, какую команду нужно выполнять в определённый момент,
существует счётчик команд – специальный регистр, в котором хранится
адрес команды, которая должна быть выполнена после выполнения текущей команды.
То есть при запуске программы в этом регистре хранится адрес первой команды. В
процессорах Intel в качестве счётчика команд (его ещё называют указатель
команды
) используется регистр EIP (или IP в 16-разрядных программах).

Счётчик
команд работает со сверхоперативной памятью, которая находится внутри
процессора. Эта память носит название очередь команд, куда помещается
одна или несколько команд непосредственно перед их выполнением. То есть в
счётчике команд хранится адрес команды в очереди команд, а не адрес оперативной
памяти.

Цикл
выполнения команды

– это последовательность действий, которая совершается процессором при
выполнении одной машинной команды. При выполнении каждой машинной команды
процессор должен выполнить как минимум три действия: выборку, декодирование и
выполнение. Если в команде используется операнд, расположенный в оперативной
памяти, то процессору придётся выполнить ещё две операции: выборку операнда из
памяти и запись результата в память. Ниже описаны эти пять операций.

  • Выборка команды. Блок управления извлекает
    команду из памяти (из очереди команд), копирует её во внутреннюю память
    процессора и увеличивает значение счётчика команд на длину этой команды
    (разные команды могут иметь разный размер).
  • Декодирование команды. Блок управления определяет
    тип выполняемой команды, пересылает указанные в ней операнды в АЛУ и
    генерирует электрические сигналы управления АЛУ, которые соответствуют
    типу выполняемой операции.
  • Выборка операндов. Если в команде используется
    операнд, расположенный в оперативной памяти, то блок управления начинает
    операцию по его выборке из памяти.
  • Выполнение команды. АЛУ выполняет указанную в
    команде операцию, сохраняет полученный результат в заданном месте и
    обновляет состояние флагов, по значению которых программа может судить о
    результате выполнения команды.
  • Запись результата в память. Если результат выполнения
    команды должен быть сохранён в памяти, блок управления начинает операцию
    сохранения данных в памяти.

Суммируем
полученные знания и составим цикл выполнения команды:

  1. Выбрать из очереди команд команду,
    на которую указывает счётчик команд.
  2. Определить адрес следующей команды в
    очереди команд и записать адрес следующей команды в счётчик команд.
  3. Декодировать команду.
  4. Если в команде есть операнды,
    находящиеся в памяти, то выбрать операнды.
  5. Выполнить команду и установить
    флаги.
  6. Записать результат в память (по
    необходимости).
  7. Начать выполнение следующей команды
    с п.1.

Это
упрощённый цикл выполнения команды. К тому же действия могут отличаться в
зависимости от процессора. Однако это даёт общее представление о том, как
процессор выполняет одну машинную команду, а значит и программу в целом.

Обновлено: 01.03.2023

Режим работы процессора (англ. CPU mode ) — состояние процессора, определяющее его поведение при выполнении различных команд и возможность доступа к различным данным.

По способу адресации памяти (на примере x86):

    : обращение к оперативной памяти происходит по реальным (действительным) адресам. Набор доступных операций не ограничен, защита памяти не используется. : обращение к памяти происходит по виртуальным адресам с использованием механизмов защиты памяти. Набор доступных операций определяется уровнем привилегий.

По уровню привилегий:

    (прикладной): минимальный уровень привилегий, разрешены только операции с данными и переходы в пределах адресного пространства пользователя. Все остальные операции либо игнорируются, либо с помощью механизма обработки исключений вызывают переключение в привилегированный режим и передачу управления ядру операционной системы для выполнения специальных функций (например, отображения данных на дисплее) или аварийного завершения потока управления.

  • Привилегированный режим (режим ядра): наравне с операциями режима пользователя, разрешены дополнительные операции — запрет или разрешение прерываний, доступ к портам ввода-вывода, специальным регистрам процессора (например, для настройки блока управления памятью).

После включения процессор всегда начинает работу в реальном привилегированном режиме.

Переключение с понижением уровня привилегий (из режима ядра в режим пользователя) возможно с продолжением работы в любой конфигурации и с любого адреса. Обратное переключение (с повышением уровня привилегий) возможно лишь в определенные конфигурации и адреса в коде, заранее установленные в привилегированном режиме, за счет чего обеспечивается полный контроль ядра за повышением привилегий исполняемого кода.

В 1976 году фирма Intel закончила разработку 16-разрядного микропроцессора i8086. Он имел разрядность регистров 16 бит и системной шины адреса 20 бит, за счет чего мог адресовать до 1 Мбайт оперативной памяти.

В 1982 году был создан i80286. Этот микропроцессор представлял собой улучшенный вариант i8086. Он поддерживал уже несколько режимов работы: реальный, когда формирование адреса производилось по правилам i8086, и защищенный, который аппаратно реализовывал многозадачность и управление виртуальной памятью, i80286 имел также большую разрядность шины адреса — 24 разряда против 20 у i8086, и поэтому он мог адресовать до 16 Мбайт оперативной памяти. Первые компьютеры на базе этого микропроцессора появились в 1984 году.

В 1985 году фирма Intel представила первый 32-разрядный микропроцессор i80386, аппаратно совместимый снизу вверх со всеми предыдущими микропроцессорами этой фирмы. Он был гораздо мощнее своих предшественников, имел 32-разрядную архитектуру и мог прямо адресовать до 4 Гбайт оперативной памяти. Микропроцессор i386 стал поддерживать новый режим работы — режим виртуального i8086, который обеспечил не только большую эффективность работу программ, разработанных для i8086, но и позволил осуществлять параллельную работу нескольких таких программ.

В настоящее время микропроцессор с 32-битной Intel-архитектурой может работать в одном из четырех режимов:

  • реальный режим
  • системный режим
  • защищенный режим
  • режим виртуального i8086
Реальный режим (Real Mode)

После инициализации (системного сброса) центральный процессор находится в реальном режиме. В реальном режиме центральный процессор работает как очень быстрый i8086 с возможностью использования 32-битных расширений. Механизм адресации, размеры памяти и обработка прерываний (с их последовательными ограничениями) микропроцессор 8086 полностью совпадают с аналогичными функциями других микропроцессоров с 32-битной Intel архитектурой в реальном режиме.

Режим системного управления (System Management Mode).
Защищенный режим (Protected Mode)

Защищенный режим является основным режимом работы микропроцессора. Ключевые особенности защищенного режима: виртуальное адресное пространство, защита и многозадачность. В защищенном режиме программа оперирует с адресами, которые могут относиться к физически отсутствующим ячейкам памяти, поэтому такое адресное пространство называется виртуальным . Размер виртуального адресного пространства программы может превышать емкость физической памяти и достигать 64Тбайт.

Виртуальный режим i8086 (V86)

В режим V86 процессор может перейти из защищённого режима, если установить в регистре флагов EFLAGS бит виртуального режима (VM-бит, бит 17). Когда процессор находится в виртуальном режиме, его поведение во многом напоминает поведение процессора i8086. В частности, для адресации памяти используется схема , размер сегмента составляет 64 килобайта, а размер адресуемой в этом режиме памяти — 1 мегабайт. Виртуальный режим предназначен для работы программ, ориентированных на процессор i8086 (или i8088). Но виртуальный режим – это не реальный режим процессора i8086, имеются существенные отличия. Процессор фактически продолжает использовать схему преобразования адресов памяти и средства мультизадачности защищённого режима.

В виртуальном режиме используется трансляция страниц памяти. Это позволяет в мультизадачной операционной системе создавать несколько задач, работающих в виртуальном режиме. Каждая из этих задач может иметь собственное адресное пространство, каждое размером в 1 мегабайт.
Все задачи виртуального режима обычно выполняются в третьем, наименее привилегированном кольце защиты. Когда в такой задаче возникает прерывание, процессор автоматически переключается из виртуального режима в защищённый. Поэтому все прерывания отображаются в операционную систему, работающую в защищённом режиме.

Обработчики прерываний защищённого режима могут моделировать функции соответствующих прерываний реального режима, что необходимо для правильной работы программ, ориентированных на реальный режим операционной системы MS-DOS.

Режимы работы процессора

Все 32-разрядные процессоры Intel (и совместимые с ними) начиная с 80386-го могут выполнять программы в нескольких режимах. Режимы процессора предназначены для выполнения программ в различных средах; в разных режимах возможности МП неодинаковы, потому что команды выполняются по-разному.

Режимы процессора.

В зависимости от режима процессора изменяется схема управления памятью системы и задачами. Процессоры могут работать в трех режимах:

  • Реальный режим (16-разрядное программное обеспечение).
  • Режим IA-32:
  • • защищенный режим (32-разрядное программное обеспечение);
  • • виртуальный реальный режим (16-разрядное программное обеспечение в 32-разрядной среде).
  • Расширенный 64-разрядный режим IA-32e (также называемый AMD64, x86-64 и EM64T):
  • • 64-разрядный режим (64-разрядное программное обеспечение);
  • • режим совместимости (32-разрядное программное обеспечение).

Реальный режим. В первоначальном IBM PC использовался процессор i8086, который мог выполнять 16-разрядные команды, применяя 16-разрядные внутренние регистры, и адресовать только 1 Мбайт (220 байт) памяти, используя 20 разрядов для адреса. Все программное обеспечение PC первоначально было предназначено для этого процессора; оно было разработано на основе 16-разрядной системы команд и модели памяти объемом 1 Мбайт. Например, DOS, все программное обеспечение DOS, Windows от 1.x до 3.x и все приложения для Windows от 1.x до 3.x написаны в расчете на 16-разрядные команды. Эти 16-разрядные операционные системы и приложения были разработаны для выполнения на процессоре i8086.

Более поздние процессоры, например i80286, могли также выполнять те же самые 16-разрядные команды, что и первоначальный i8086, но намного быстрее. Другими словами, процессор i80286 был полностью совместим с первоначальным i8086. Шестнадцатиразрядный режим, в котором выполнялись команды процессоров i8086 и i80286, был назван реальным режимом. Все программы, выполняющиеся в реальном режиме, должны использовать только 16-разрядные команды, 20-разрядные адреса и поддерживаться архитектурой памяти, рассчитанной на емкость до 1 Мбайт.

Для программного обеспечения этого типа обычно используется однозадачный режим, т. е. одновременно может выполняться только одна программа. Нет никакой встроенной защиты для предотвращения перезаписи ячеек памяти одной программы или даже операционной системы другой программой; это означает, что при выполнении нескольких программ вполне могут быть испорчены данные или код одной из них, а это может привести всю систему к краху (или останову).

Защищенный режим. Несмотря на то, что процессор i80286, как и i8086, является 16-разрядным, он (в отличие от последнего) может работать в новом — защищенном — режиме и имеет аппаратурную поддержку многозадачных операционных систем, значительно ускоряющую и упрощающую процесс переключения задач. Эта поддержка активно используется всеми мультизадачными операционными системами и оболочками, разработанными для компьютера IBM PC.

Адресная шина i80286 была увеличена с 20 до 24 разрядов, что привело к расширению адресного пространства с 1 до 16 Мбайт (224 байт). Новый метод адресации памяти позволил изолировать адресные пространства отдельных задач друг от друга. При этом прикладная программа, работающая в среде операционной системы, использующей защищенный режим, не может случайно или намеренно разрушить целостность самой операционной системы.

В защищенном режиме программа может записывать данные только в те области памяти, которые выделены ей операционной системой. Это повышает надежность работы мультизадачных и, в частности, мультипользовательских операционных систем. В последнем случае изолирование адресных пространств задач, принадлежащих отдельным пользователям, в хорошо спроектированной мультипользовательской операционной системе полностью исключает такую ситуацию, когда после запуска одним пользователем недостаточно отлаженной программы приходится перезапускать всю систему.

Следующие модели процессоров фирмы Intel — i80386, i80486 и i80586 (Pentium) были 32-разрядными. Помимо расширения адресного пространства до величины в 4 Гбайта (232 байт) в них реализована концепция страничной виртуальной памяти, возможной только в защищенном режиме.

Механизм страничной виртуальной памяти позволяет разместить часть оперативной памяти на диске. При этом размер виртуальной памяти, предоставляемой программам, ограничивается размером свободного пространства на диске.

Перечислим кратко основные преимущества, которые получает программа, работающая в защищенном режиме процессора:

· возможность непосредственной адресации памяти за пределами первого мегабайта;

· для процессоров i80x86 реализован механизм страничной виртуальной памяти, позволяющий программам работать с памятью, размер которой может быть много больше физической оперативной памяти, установленной в компьютере;

· аппаратная поддержка мультизадачности позволяет создавать на основе процессоров, работающих в защищенном режиме, высокопроизводительные мультизадачные и мультипользовательские системы.

Виртуальный реальный режим. Помимо страничной виртуальной памяти в процессорах i80386 и более поздних реализован так называемый режим виртуального процессора i8086 или просто виртуальный режим. Этот режим реализуется в рамках защищенного режима (процессор может переключиться в виртуальный режим только из защищенного режима). В виртуальном режиме процессор способен выполнять программы, составленные для процессора i8086, находясь в защищенном режиме и используя аппаратные средства защищенного режима: мультизадачность, изолирование адресных пространств отдельных задач друг от друга, страничная виртуальная память.

Реальный режим процессора 80х86. Это режим генерирования адресов, используемый процессором 8086. В этом режиме не может быть использована виртуальная память. Можно адресовать лишь до 1 Мбайт (220 байт) оперативной памяти, так как у процессора 8086 20-разрядная шина адреса. Так как все регистры процессора 8086 являются 16-разрядными, для представления 20-разрядного физического адреса памяти используется содержимое нескольких 16-разрядных регистров.

Оперативную память при работе в этом режиме можно разбить на логические блоки по 64 Кбайт, называемые сегментами, причем каждый сегмент может начинаться с адреса, кратного 16 байт. Таким образом, первый сегмент имеет начальный адрес 0, второй находится по адресу 16 (или 10 в шестнадцатеричной системе) и т. д. Несколько близко расположенных сегментов могут перекрываться. Это удобно при организации совместного доступа к командам и данным разными программами. Доступ к каждой ячейке в памяти происходит путем указания значения регистра сегмента (см. далее), определяющего блок размером 64 Кбайт, и положения, или смеще¬ния, этого адреса внутри этого блока.

Микропроцессор использует четыре регистра сегмента, при этом каждый регистр имеет размер, равный одному слову (16 бит):

· регистр сегмента команд CS (Code Segment), указывающий на сегмент, содержащий текущую исполняемую программу;

· регистр сегмента данных DS (Data Segment), указывающий на данные;

· регистр дополнительного сегмента ES (Extra Segment), указывающий на дополнительные данные;

· регистр сегмента стека SS (Stack Segment), указывающий на стек.

У процессора 80386 и старше есть еще два сегментных регистра — FS и GS.

Содержимое каждого из этих регистров однозначно связано с местом в памяти соответствующего сегмента. Его адрес получается приписыванием справа четырех двоичных нулей к значению сегмента, что соответствует умножению на 16 (или на 10 по основанию 16). Полученное 20-битовое значение представляет собой адрес начала (или базовый адрес) сегмента в физической памяти. Для определения реального адреса команды или данных процессор добавляет затем значение смещения к базовому адресу.

Например, команда, подлежащая исполнению процессором в каждый данный момент времени, определяется из значений двух регистров: регистра CS, значение которого, будучи умножено на 16, дает адрес начала сегмента команд, и регистра указателя команд IP (instruction Pointer), указывающего положение соответствующей команды относительно начала сегмента команд.

В реальном режиме не существует никакого механизма защиты, так что любая программа может обратиться к произвольной ячейке памяти в пределах 1 Мбайт, включая область экрана или область расположения операционной системы.

Выделим два основных недостатка схемы адресации памяти реального режима:

· ограниченное адресное пространство (до 1 Мбайта и еще примерно 64 Кбайта старшей области памяти для процессоров 80286 и старше);

· свободный доступ любых программ к любым областям данных, что представляет потенциальную опасность для целостности операционной системы.

Рассмотрим работу в защищенном режиме процессоров 80286, 80386 и более старших моделей.

Адресация в защищенном режиме 16-разрядного МП 80286

В этом режиме механизм адресации отличается от механизма адресации в реальном режиме. За счет использования 24-битной адресной шины процессора 80286 физическое адресное пространство достигает 16 Мбайт (224 байт).

В данном режиме для определения адресов также необходимы два регистра, однако содержимое каждого регистра сегмента не соответствует непосредственно какому-либо участку оперативной памяти. Регистр сегмента, который в защищенном режиме называют селектором, в действительности становится индексом, указывающим на элемент таблицы, называемой таблицей дескрипторов (Descriptor Table). Каждый элемент этой таблицы (называемый дескриптором) характеризует один сегмент команд или один сегмент данных. Сегмент стека относят при этом к сегментам данных, поскольку он не содержит исполняемых команд.

Вы здесь: Главная Процессоры Принципиальное устройство процессора Режимы процессора

Архитектура ЭВМ

Компоненты ПК

Интерфейсы

Мини блог

Самое читаемое

  • Арифметико логическое устройство (АЛУ)
  • Страничный механизм в процессорах 386+. Механизм трансляции страниц
  • Организация разделов на диске
  • Диск Picture CD
  • White Book/Super Video CD
  • Прямой доступ к памяти, эмуляция ISA DMA (PC/PCI, DDMA)
  • Карты PCMCIA: интерфейсы PC Card, CardBus
  • Таблица дескрипторов прерываний
  • Разъемы процессоров
  • Интерфейс Slot A

Режимы процессора

Режимы процессора

Все 32-разрядные и более поздние процессоры Intel, начиная с 386-го, а также совместимые с ними могут выполнять программы в нескольких режимах. Режимы процессора предназначены для выполнения программ в различных средах; в разных режимах возможности чипа неодинаковы, потому что команды выполняются по разному. В зависимости от режима процессора изменяется схема управления памятью системы и задачами. Процессоры могут работать в трех режимах.

  • Реальный режим (16-разрядное программное обеспечение).
  • Режим IA-32:
    • защищенный режим (32-разрядное программное обеспечение);
    • виртуальный реальный режим (16-разрядное программное обеспечение в 32-разрядной среде).
  • Расширенный 64-разрядный режим IA-32e (также называемый AMD64, x86-64 и EM64T):
    • 64-разрядный режим (64-разрядное программное обеспечение);
    • режим совместимости (32-разрядное программное обеспечение).

режимы процессора

Реальный режим

Реальный режим иногда называют режимом 8086, поскольку он основан на инструкциях процессоров 8086 и 8088. В первом IBM PC использовался процессор 8088, который мог выполнять 16-разрядные команды, применяя 16-разрядные внутренние регистры, и адресовать только 1 Мбайт памяти, используя для адреса 20 разрядов. Все программное обеспечение PC первоначально было предназначено для этого процессора; оно было разработано на основе 16-разрядной системы команд и модели памяти объемом 1 Мбайт. Например, операционные системы DOS и Windows от 1.x до 3.x, а также все приложения для этих ОС написаны в расчете на 16-разрядные команды. Эти 16-разрядные операционные системы и приложения были разработаны для выполнения на первоначальном процессоре 8088.

Более поздние процессоры, например 286, также могли выполнять те же самые 16-разрядные команды, что и первоначальный 8088, но намного быстрее. Другими словами, процессор 286 был полностью совместим с первоначальным 8088 и мог выполнять все 16-разрядные программы точно так же, как 8088, только значительно быстрее. 16-разрядный режим, в котором выполнялись команды процессоров 8088 и 286, был назван реальным режимом. Все программы, выполняемые в реальном режиме, должны использовать только 16-разрядные команды, 20-разрядные адреса и поддерживаться архитектурой памяти, рассчитанной на емкость до 1 Мбайт. Для программного обеспечения этого типа обычно используется однозадачный режим, т.е. одновременно может выполняться только одна программа. Нет никакой встроенной защиты для предотвращения перезаписи ячеек памяти одной программы или даже операционной системы другой программой; это означает, что при выполнении нескольких программ вполне могут быть испорчены данные или код одной из них, что может привести всю систему к краху (или останову).

Режим IA»32 (32″разрядный)

Первым 32-разрядным процессором, предназначенным для PC, был 386-й. Этот чип мог выполнять абсолютно новую 32-разрядную систему команд. Чтобы полностью использовать преимущество 32-разрядной системы команд, были необходимы 32-разрядная операционная система и 32-разрядные приложения. Этот новый режим назывался защищенным, так как выполняемые в нем программы защищены от перезаписи своих областей памяти другими программами. Такая защита делает систему более надежной, поскольку ни одна программа с ошибками уже не сможет так легко повредить другие программы или операционную систему. Кроме того, программу, “потерпевшую крах”, можно довольно просто завершить без ущерба для всей системы.

Зная, что для разработки новых операционных систем и приложений, использующих преимущества 32-разрядного защищенного режима, потребуется некоторое время, Intel предусмотрела в процессоре 386 обратно совместимый реальный режим. Благодаря этому процессор 386 мог выполнять немодифицированные 16-разрядные приложения, причем намного быстрее, чем на любом процессоре предыдущего поколения. Для большинства пользователей этого было достаточно; им не требовалось все 32-разрядное программное обеспечение — достаточно было того, что имевшиеся у них 16-разрядные программы работали быстрее. К сожалению, из-за этого процессор никогда не работал в 32-разрядном защищенном режиме и все возможности защищенного режима не использовались.

Когда высокопроизводительный процессор, подобный Pentium 4, работает в DOS (т.е. в реальном режиме), он напоминает “Turbo 8088”. Слово “Turbo” означает, что процессор имеет преимущество в быстродействии при выполнении 16-разрядных программ, хотя он может выполнять только 16-разрядные команды и обращаться к памяти в пределах все того же 1 Мбайт, предусмотренного картой памяти процессора 8088. Поэтому, даже если у вас система с Pentium 4 или Athlon XP и оперативной памятью емкостью 256 Мбайт, при работе в Windows 3.x или DOS в действительности используется только первый мегабайт памяти. В связи с этим потребовались новые операционные системы и приложения, которые могли бы использовать все преимущества современных процессоров в 32-разрядном защищенном режиме. Однако некоторые пользователи поначалу сопротивлялись переходу к 32-разрядной среде. Сообщество пользователей оказалось весьма устойчивым в своих привязанностях и не желало изменять привычек. Признаюсь честно: я был одним из них.

Из-за сопротивления пользователей 32-разрядные операционные системы, такие как Unix и ее разновидности (например, Linux), OS/2 и даже Windows NT/2000/XP, распространялись на рынке ПК довольно вяло. Из перечисленных систем Windows XP стала по настоящему широко распространенным программным продуктом во многом благодаря огромной популярности Windows 95/98/Me (смешанные 16/32-разрядные системы). Последней полностью 16-разрядной операционной системой была Windows серии 3.x, так как на самом деле она работала в качестве надстройки DOS.

Такие 64-разрядные процессоры, как Itanium, AMD Opteron и EM64T-совместимый процессор Xeon, привнесли возможность работы 64-разрядных программ в серверных системах, в то время как процессоры Athlon 64, EM64T-совместимый Pentium 4, а также Pentium D и Core 2 создавались непосредственно для настольных систем. Оба процессора совместимы со всем существующим 32-разрядным программным обеспечением. Но для того, чтобы воспользоваться возможностями процессора в полном объеме, потребуются полноценные 64-разрядные операционные системы и приложения. Microsoft уже выпустила 64-разрядные версии Windows XP и Vista, в то время как различными компаниями создаются 64-разрядные приложения для серверов и рабочих станций.

Примечание

Виртуальный реальный режим IA-32

Для обратной совместимости 32-разрядная система Windows использует третий режим в процессоре — виртуальный реальный режим. По существу, это режим выполнения 16-разрядной среды (реальный режим), реализованный внутри 32-разрядного защищенного режима (т.е. виртуально, а не реально). Выполняя команды в окне командной строки DOS системы Windows, вы создаете виртуальный сеанс реального режима. Поскольку защищенный режим является подлинно многозадачным, фактически можно выполнять несколько сеансов реального режима, причем в каждом сеансе собственное программное обеспечение работает на виртуальном компьютере. И все эти приложения могут выполняться одновременно, даже во время работы других 32-разрядных программ.

Учтите, что любая программа, выполняемая в виртуальном окне реального режима, может обращаться только к памяти объемом до 1 Мбайт, причем для каждой такой программы это будет первый и единственный мегабайт памяти в системе. Другими словами, если вы выполняете приложение DOS в виртуальном реальном окне, ему будет доступна память только объемом до 640 Кбайт. Так происходит потому, что в 16-разрядной среде имеется только 1 Мбайт общей оперативной памяти, при этом верхние 384 Кбайт зарезервированы для системы. Виртуальное реальное окно полностью имитирует среду процессора 8088, и, если не учитывать быстродействие, программное обеспечение будет выполняться точно так, как оно выполнялось первым PC в реальном режиме. Каждая виртуальная машина получает собственный 1 Мбайт адресного пространства и собственный экземпляр реальных аппаратных подпрограмм управления аппаратурой (базовую систему ввода-вывода), причем при этом эмулируются все регистры и возможности реального режима.

Виртуальный реальный режим используется при выполнении 16-разрядных программ в окне DOS. При запуске приложения DOS операционная система Windows создает виртуальную машину DOS, на которой это приложение может выполняться.

Важно отметить, что все Intel-совместимые процессоры (в частности, AMD и Cyrix) при включении питания начинают работать в реальном режиме. При загрузке 32-разрядная операционная система автоматически переключает процессор в 32-разрядный режим и управляет им в этом режиме.

Также важно заметить, что некоторые приложения DOS и Windows 3.x в 32-разрядной среде ведут себя неадекватно, т.е. делают то, что не поддерживается даже в виртуальном реальном режиме.

Диагностическое программное обеспечение — прекрасный тому пример: оно не будет корректно работать в окне реального режима (виртуального реального) под управлением Windows. Чтобы на Pentium 4 запустить такое программное обеспечение в первоначальном упрощенном режиме, необходимо прервать процесс начальной загрузки системы и просто загрузить DOS. Это можно выполнить в Windows 9x (исключая Windows Me), нажимая клавишу , когда на экране появляется подсказка Starting Windows. Затем, когда появится загрузочное меню, в нем нужно выбрать команду загрузки простой 16-разрядной операционной системы реального режима DOS. Для запуска программ диагностики, которые невозможно запустить обычным образом в защищенном режиме, рекомендуется выбирать режим с поддержкой командной строки. Учитывая, что промежуток времени, в который Windows ожидает нажатия , очень короткий (порядка 2 с), лучше нажимать несколько раз подряд. Операционная система Windows Me создавалась, как вы знаете, на основе Windows 98. Пытаясь отучить пользователей от 16-разрядного режима работы, Microsoft удалила опцию загрузочного меню (Startup). Операционные системы Windows NT/2000/XP также лишены возможности прервать загрузку подобным образом. Для запуска компьютера в режиме DOS придется создать загрузочный диск, который и будет затем использоваться для загрузки системы в реальном режиме. Как правило, этот режим требуется для некоторых процедур технического обслуживания, в частности для выполнения аппаратной диагностики и непосредственного редактирования секторов диска.

Хотя реальный режим используется DOS и “стандартными” приложениями DOS, есть специальные программы, которые “расширяют” DOS и открывают доступ к дополнительной памяти XMS (сверх 1 Мбайт). Они иногда называются расширителями DOS и обычно включаются как часть программного обеспечения DOS или Windows 3.x, в котором используются. Протокол, описывающий, как выполнять DOS в защищенном режиме, называется DPMI (DOS Protected Mode Interface — интерфейс защищенного режима DOS).

Этот протокол использовался в Windows 3.x для обращения к дополнительной памяти XMS при работе приложений для Windows 3.x. Он позволял 16-разрядным приложениям использовать память, превышающую 1 Мбайт. Расширители DOS особенно часто применяются в играх DOS; именно благодаря им игровая программа может использовать объем памяти, намного превышающий стандартный (1 Мбайт), который могут адресовать большинство программ, работающих в реальном режиме. Эти расширители DOS переключают процессор в реальный режим и обратно, а в случае запуска под управлением Windows применяют интерфейс DPMI, встроенный в Windows, и тем самым позволяют другим программам совместно использовать часть дополнительной памяти XMS системы.

Есть еще одно исключение: первые 64 Кбайт дополнительной памяти в реальном режиме доступны программам. Это результат ошибки в первом компьютере IBM AT, связанной с 21-й линией адреса памяти (A20, поскольку A0 — первая строка адреса). Управляя сигналом на линии A20, программное обеспечение реального режима может получать доступ к первым 64 Кбайт дополнительной памяти — это первые 64 Кбайт памяти, следующие за первым мегабайтом. Эта область памяти называется областью верхних адресов памяти (high memory area — HMA).

64″разрядный расширенный режим IA»32e (AMD64, x86″64, EM64T)

Этот режим процессора является расширением архитектуры IA-32, разработанным компанией AMD и в дальнейшем поддержанным Intel. Процессоры, поддерживающие 64-разрядные расширения, могут работать в реальном режиме (8086), режиме IA-32 или IA-32e. При использовании режима IA-32 процессор может работать в защищенном или виртуальном реальном режиме. Режим IA-32e позволяет работать в 64-разрядном режиме или в режиме совместимости, что подразумевает возможность одновременного выполнения 64- и 32-разрядных приложений. Режим IA-32e включает в себя два подрежима.

  • 64-разрядный режим. Позволяет 64-разрядной операционной системе выполнять 64-разрядные приложения.
  • Режим совместимости. Позволяет 64-разрядной операционной системе выполнять 32-разрядные приложения.

Первый подрежим активизируется после загрузки 64-разрядной операционной системы и используется 64-разрядными приложениями. В 64-разрядном подрежиме доступно несколько новых функций:

  • 64-разрядная линейная адресация памяти;
  • Поддержка физической памяти объемом более 4 Гбайт (определенные ограничения накладываются процессором);
  • 8 новых регистров общего назначения GPR (General-Purpose Register);
  • 8 новых регистров для поточных расширений SIMD (MMX, SSE, SSE2 и SSE3);
  • 64-разрядные регистры GPR и указатели инструкций.
    Режим совместимости IE-32e позволяет запускать 32- и 16-разрядные приложения под управлением 64-разрядной операционной системы. К сожалению, старые 16-разрядные программы, работающие в виртуальном реальном режиме (например, приложения DOS), не поддерживаются, а значит, их выполнение невозможно. Данное ограничение наверняка будет представлять наибольшую проблему для пользователей. Подобно 64-разрядному режиму, режим совместимости активизируется операционной системой для отдельных приложений, благодаря чему становится возможным одновременное выполнение 64- и 32-разрядных приложений.

Для того чтобы все эти приложения работали, необходима 64-разрядная операционная система и, что гораздо важнее, 64-разрядные драйверы для всех устройств, предназначенные именно для этой операционной системы. В настоящее время существуют три 64-разрядные версии Windows:

  • Windows XP 64-bit Edition for Itanium;
  • Windows XP Professional x64 Edition;
  • Windows Vista 64-bit (несколько вариантов).

Первая из них, предназначенная для процессоров с архитектурой IA-64, таких как Itanium и Itanium 2, была представлена еще в 2001 году. Последние две предназначены для процессоров архитектуры IA-32e, поддерживающих 64-разрядные расширения, в частности Athlon 64, Opteron, некоторые модели Sempron, Core 2, Pentium D, Pentium Extreme Edition, а также некоторые модели Xeon и Pentium 4. Обратите внимание, что Microsoft использует термин x64применительно к процессорам, поддерживающим расширения AMD64 или EM64T, так как расширения стандартной архитектуры IA-32, разработанные AMD и Intel, практически идентичны и поддерживаются одной версией Windows.

Примечание

Ограничения физической памяти для 32- и 64-разрядной версии редакций систем Windows XP и Vista представлены в таблице ниже .

режимы процессора

Основное различие между 32- и 64-разрядной версиями Windows — поддерживаемый объем памяти, поскольку 32-разрядные версии не поддерживают более 4 Гбайт физической памяти, а также больше 2 Гбайт выделенной памяти на процесс. В то же время 64-разрядные версии Windows поддерживают до 128 Гбайт физической памяти (при выделении до 4 Гбайт на каждый 32-разрядный процесс, или до 8 Гбайт на каждый 64-разрядный процесс). Поддержка больших объемов памяти означает, что приложения могут загружать больше информации в память, а значит, процессор может быстрее обращаться к данным.

Следует отметить, что 64-разрядные версии Windows позволяют запустить без каких либо проблем 32-разрядные Windows-приложения, но не поддерживают приложения DOS и другие программы, работающие в виртуальном реальном режиме. Достаточно серьезная проблема связана и с драйверами: 32-разрядные процессы не могут загружать 64-разрядные динамически подключаемые библиотеки DLL, а 64-разрядные процессы, в свою очередь, не могут загружать 32-разрядные библиотеки DLL. Следовательно, для всех устройств, подключенных к системе, необходимы как 32-, так и 64-разрядные драйверы. Поиск 64-разрядных драйверов для старых устройств крайне сложен. Найти драйверы для устройств, выпуск которых давно прекращен, чаще всего просто невозможно. Даже для новых устройств может пройти пару лет, прежде чем их производители начнут поставлять 64-разрядные версии драйверов. Хочется верить, что в обозримом будущем все производители оборудования начнут выпускать драйверы для 64-разрядных систем. Прежде чем устанавливать 64-разрядную версию Windows, убедитесь в наличии 64-разрядных версий драйверов для всех имеющихся в компьютерной системе внутренних и внешних устройств. Не забывайте, что драйверы для Itanium-совместимых версий операционных систем не подходят для операционных систем с x64-совместимыми процессорами.

Рассматривая возможность перехода от 32- к 64-разрядной технологии, следует принимать во внимание поддерживаемый объем памяти, доступность драйверов и совместимость программного обеспечения. Как уже отмечалось, переход от 16-разрядных вычислений к 32-разрядным продолжался 16 лет. Конечно, переход от 32-разрядных вычислений к 64-разрядным не будет столько длиться, но 2–3 года на это все же уйдет.

Читайте также:

      

  • Роль выборов в политическом процессе кратко
  •   

  • Зарубежные рассказы в школьной программе
  •   

  • Московские школы закрывают на дистанционное обучение
  •   

  • Бактериологические методы исследования кратко
  •   

  • Школа 4 чапаевск психолог волкова

Чтобы приложения не могли прочитать или изменить данные операционной системы, были предусмотрены разные режимы доступа к процессору.

Режимы доступа к процессору

Приложения, которые запускает пользователь в системе, выполняются в пользовательском режиме. А системные службы и драйверы работают в режиме ядра. Такое разделение необходимо, чтобы пользовательские приложения не могли нарушить работу системы. Плохое приложение не должно сломать вам всю систему.

Хотя каждый процесс обладает собственным закрытым адресным пространством, всё что работает в режиме ядра использует единое адресное пространство. К адресному пространству ядра можно получить доступ только из режима ядра. Но к памяти пользовательского процесса можно получить доступ из любого режима. Дополнительно стоит отметить память, которая доступна только для чтения. Такая память недоступна на запись для кода из любого режима.

Память ядра и процессов

Память ядра и процессов

В режиме ядра работает часть операционной системы и драйверы. И все они могут вмешиваться в работу друг друга. И очень важно чтобы все компоненты работающие в этом режиме были тщательно спроектированы и протестированы. Любой некорректно написанный драйвер может повредить всю систему.

Именно по этой причине в Windows 2000 появился механизм цифровой подписи драйверов. Этот механизм запрещал установку не подписанных драйверов, но только для Plug and Play устройств.

Ужесточение политики работы со сторонними драйверами

В Windows 8.1 политика подписывания кода режима ядра требует, чтобы все драйверы устройств (а не только Plug and Play) подписывались криптографическим ключом, выданным одним из ведущих центров сертификации. Пользователям запретили установку не подписанных драйверов, даже с правами администратора. Но такое ограничение можно отключить вручную. В этом случае драйверы самоподписываются, а на обоях рабочего стола выводится надпись “Тестовый режим“.

windows 10 тестовый режим

windows 10 тестовый режим

В Windows 10 ещё сильнее ужесточили правила подписывания драйверов. Теперь все новые драйверы должны подписываться только двумя возможными центрами сертификации с сертификатом SHA-2 Extended Validation (EV) вместо обычного файлового сертификата SHA-1 и его 20 центрами сертификации. Но это ещё не все, после подписания драйвер нужно отправить в Microsoft через портал SysDev для аттестации. И только после аттестации драйвер получит цифровую подпись Microsoft. Соответственно, ядро принимает только драйверы с подписью Microsoft без каких-либо исключений, кроме “Тестового режима“.

В Windows Server 2016 операционная система действует еще радикальнее. Кроме требований EV простого аттестационного подписывания недостаточно. Чтобы драйвер загружался в серверной системе, он должен пройти жесткий процесс сертификации WHQL (Windows Hardware Quality Labs) в составе НСК (Hardware Compatibility Kit). Только драйверам с подписью WHQL разрешается загрузка в таких системах.

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

Переключение из одного режима в другой

Пользовательские приложения могут переключаться из пользовательского режима в режим ядра используя специальные системные функции. Таким образом, для пользовательского потока нормально проводить часть времени в пользовательском режиме, а часть времени в режиме ядра. Более того, поскольку большая часть графической системы выполняется в режиме ядра, процессы приложений, интенсивно работающих с графикой, могут проводить в режиме ядра больше времени, чем в пользовательском режиме. Чтобы убедиться в этом, запустите Paint и понаблюдайте за распределением времени между пользовательским режимом и режимом ядра с помощью Process Explorer:

Process Explorer - Kernel time и User time

Process Explorer – Kernel time и User time

Наблюдение за переключениями в Системном мониторе

Запустите “Системный монитор“:

Устройство Windows. Режим ядра и пользовательский режим, изображение №2

Удалите счетчик “по умолчанию” и добавьте следующие счетчики: объект «Процесс», два счетчика «% работы в пользовательском режиме» и «% работы в привилегированном режиме». Далее выберите процесс mspaint.

Устройство Windows. Режим ядра и пользовательский режим, изображение №3

Порисовав немного в Paint увидим следующее:

Устройство Windows. Режим ядра и пользовательский режим, изображение №4

Более современные приложения могут использовать новые технологии, например Direct2D и DirectComposition. Они выполняют большие объемы вычислений в пользовательском режиме и передают ядру только низкоуровневые данные. Таким образом сокращается время, расходуемое на переключение между пользовательским режимом и режимом ядра.


Вернуться к оглавлению

Сводка

Режимы доступа к процессору: режим ядра и пользовательский

Имя статьи

Режимы доступа к процессору: режим ядра и пользовательский

Описание

В Windows предусмотрели разные режимы доступа к процессору: режим ядра (Kernel mode) и пользовательский режим (User mode). Я покажу, как это работает

Понравилась статья? Поделить с друзьями:
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Какой режим работы оперативной памяти лучше
  • Какой режим работы нефтяных пластов наиболее эффективен
  • Какой режим работы налоговой