Приложение выполняемое в пользовательском режиме процессора не может

Обновлено: 04.07.2024

Описание слайда:

Архитектура операционной системы

Описание слайда:

Ядро и вспомогательные модули операционной системы
При функциональной декомпозиции ОС модули разделяются на две группы:
ядро – модули, выполняющие основные функции ОС;
модули, выполняющие вспомогательные функции ОС.

Описание слайда:

Модули ядра ОС
Модули ядра ОС выполняют следующие базовые функции ОС:
управление процессами
управление памятью
управление устройствами ввода-вывода
Ядро обеспечивает решение задачи организации вычислительного процесса: переключение контекстов, загрузка/выгрузка страниц, обработка прерываний и т.п.
Другая задача – поддержка приложений, создание для них прикладной программной среды. Приложения обращаются к ядру с запросами (системными вызовами) для выполнения базовых операций (открытие и чтение файла, вывод информации на дисплей и т.п.)
Функции выполняемые ядром ОС требуют высокой скорости выполнения и для этого размещаются постоянно в оперативной памяти (резидентные модули).

Описание слайда:

Вспомогательные модули операционной системы
Вспомогательные модули выполняют полезные, но менее обязательные функции. Например:
архивирование информации;
дефрагментация данных на диске;
поиск необходимого файла и т.п.
Вспомогательные модули часто оформляются как обычные приложения и провести границу между ними и обычными приложениями сложно.
Деление на основные и вспомогательные модули ОС условно. Некоторые программы переходят из разряда вспомогательных модулей в основные и наоборот.

Описание слайда:

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

Описание слайда:

Ядро и вспомогательные модули операционной системы
Ядро ОС
утилиты
Системные обрабатывающие программы
пользовательские приложения

Описание слайда:

Привилегированный режим процессора
Для надежного управления работой приложений ядро ОС должно обладать некоторыми привилегиями по отношению к остальным приложениям.
Обеспечивается привилегированный режим специальными средствами аппаратной поддержкой. Процессор компьютера поддерживает как минимум два режима работы – пользовательский (user mode) и привилегированный (kernel mode).
Приложения в пользовательском режиме не могут выполнять некоторые критичные команды (переключение процессора с задачи на задачу, доступ к механизму выделения и защиты областей памяти и т.п.).

Описание слайда:

Привилегированный режим работы
Между числом привилегий, поддерживаемых аппаратурой и операционной системой нет однозначного соответствия:
процессор Intel поддерживает 4 режима работы процессора – операционные системы Windows используют два из них.
Для реализации привилегированного режима достаточно поддержки двух режимов работы
Повышение устойчивости ОС, обеспечивающееся использованием работы в привилегированном режиме, достигается за счет некоторого замедления, вызванного необходимостью переключения работы ядра.
Архитектура ОС, основанная на разделении привилегированного режима для ядра и пользовательского режима для приложений – стала классической.

Описание слайда:

Многослойная структура ОС
Вычислительная система под управлением ОС можно рассматривать как состоящую из нескольких слоев:
Нижний слой – аппаратура;
Средний – ядро ОС;
Верхний – утилиты, приложения и т.п.

Описание слайда:

Детализация структуры ядра
Ядро, являясь структурным элементом ОС, может быть логически разложен на ряд слоев:
Средства аппаратной поддержки ОС
Машинно-зависимые компоненты ОС (включает модули, отражающие специфику аппаратной платформы компьютера)
Базовые механизмы ядра (включает наиболее примитивные операции ядра – переключение контекстов процессов, диспетчеризация прерываний), модули выполняют решения принятые на более высоких уровнях
Менеджеры ресурсов (реализует задачи стратегического управления), включает менеджеры – диспетчеры процессов, ввода-вывода и т.п.
Интерфейсы системных вызовов (включает модули взаимодействия с приложениями и системными утилитами, функции API.

Описание слайда:

Аппаратная зависимость ОС
Операционная система в процессе работы взаимодействует с аппаратными средствами компьютера:
Средства поддержки привилегированного режима
Средства трансляции адресов
Средства переключения процессов
Защита областей памяти
Система прерываний
Системный таймер
Это делает ОС привязанной к определенной аппаратной платформе

Описание слайда:

Переносимость операционной системы
Под переносимостью операционной системы понимается способность использования ОС на различных аппаратных платформах с минимальными изменениями в ее структуре. Для уменьшения числа машинно-зависимых модулей разработчики ОС ограничивают универсальность машинно-независимых модулей. Например, Windows разработана для нескольких типов процессоров и для многопроцессорных систем используются собственные модули.
Для обеспечения переносимости следуют следующим правилам:
Большая часть кода написана на языке, трансляторы которого существуют для всех планируемых платформ;
Объем машино-зависимых частей кода должен быть минимизирован;
Аппаратно-зависимый код должен быть изолирован в нескольких модулях
В идеале машино-зависимые модули ядра полностью экранируют остальную часть ОС от конкретных деталей аппаратной платформы (кэши, контроллеры прерываний и т.п.).

Описание слайда:
Описание слайда:

Микроядерная архитектура
Привилегированный режим
Пользовательский режим
Микроядро
Сервер процессов
Сервер безопасности
Файловый сервер
Приложения пользователей

Описание слайда:

Достоинства микроядерной архитектуры
Операционные системы, основанные на микроядерной архитектуре обладают рядом преимуществ, предъявляемых к современным ОС:
Переносимость (обусловлена малым числом модулей в аппаратно-зависимом микроядре)
Расширяемость (добавление новых функций связано с включением новых серверов ОС)
Надежность (обусловлена изолированностью процессов)
Поддержка распределенных вычислений (используется механизм взаимодействия приложений аналогичный взаимодействию в распределенных системах)
Недостаток
Производительность (обладают меньшей производительностью)

Описание слайда:

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

Описание слайда:

Прикладные программные среды
Прикладная программная среда – совокупность средств ОС, предназначенная для организации выполнения приложений, использующих определенную систему машинных команд, определенный тип API.
Каждая ОС создает хотя бы одну программную среду.
Для обеспечения совместимости различных программных сред используются решения:
эмуляция двоичного кода,
трансляция API.

Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

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

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

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

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

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

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

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

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

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

В 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 увидим следующее:

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

Правильные ответы выделены зелёным цветом.
Все ответы: В курсе рассматриваются операционные системы семейства Windows: история, архитектура, принципы управления процессами, памятью, устройствами ввода|вывода, алгоритмы распределения процессорного времени, способы обеспечения безопасности, а также структура файловой системы NTFS.

Какие компоненты включает подсистема ввода-вывода в Windows?

(1) комплекс программ, предоставляющий пользователю удобную среду для работы с компьютерным оборудованием

(2) устройство, предназначенное для автоматизации процесса обработки информации

(3) программно-аппаратный комплекс, предназначенный для автоматического решения задач

Какие виды процессов работают в пользовательском режиме?

Размер виртуального адресного пространства в 32 разрядных Windows составляет …

(1) вызов удаленной компьютерной системы по сетевому интерфейсу

(2) обращение процессора к устройству на системной плате для выполнения определенной операции

(3) вызов программой специальной системной команды процессора

(4) запрос программы к операционной системе для выполнения определенных действий

(1) осуществляет процесс входа в систему и выхода из нее

(2) проверяет правильность введенных имени пользователя и пароля

Выберите правильное утверждение относительно многозадачной операционной системы

(1) операционная система умеет запускать в одно и то же время несколько потоков

(2) операционная система умеет запускать в одно и то же время несколько процессов

(3) операционная система поддерживает использование нескольких объектов

(4) операционная система поддерживает одновременный вход нескольких пользователей

Как называется размер блока виртуальной памяти, с которым работает операционная система?

В структуре DRIVER_OBJECT в поле DriverInit содержится …

(2) программа, осуществляющая сбор информации об аппаратном обеспечении

(3) аппаратный модуль, предназначенный для взаимодействия с внешней памятью

(4) компонент вычислительной системы, отвечающий за интерактивность

Укажите правильное определение понятия "служба" ("сервис") в Windows.

(1) приложение, работающее в фоновом режиме и не требующее взаимодействия с пользователем

(2) программный модуль, управляющий внешним устройством

(3) процесс, отвечающий за взаимодействие с пользователем

(4) компонент операционной системы, обеспечивающий выполнение системных вызовов

(2) UniqueProcessId – уникальный идентификатор процесса

Из каких частей состоит виртуальное адресное пространство?

(1) пользовательское виртуальное адресное пространство

Процесс чтения данных с устройства ввода-вывода описывается следующей последовательностью операций:

(1) создание IRP – помещение IRP в очередь потока – вызов драйвера

(2) создание объекта DRIVER_OBJECT – создание объекта DEVICE_OBJECT – чтение объекта DEVICE_OBJECT

(3) создание объекта DEVICE_OBJECT – создание IRP – чтение драйвера

(4) загрузка драйвера – создание объекта DRIVER_OBJECT – чтение IRP

В состав какого семейства входит операционная система Windows CE?

(4) семейство встроенных операционных систем реального времени

Что представляет собой интерфейс прикладного программирования Windows (Windows API)?

(1) способ взаимодействия процессов пользовательского режима с модулями режима ядра

(2) способ написания программ с графическим интерфейсом пользователя

(3) специальный язык программирования, встроенный в Windows

(4) программа, имеющая возможность взаимодействия с пользователем

В ходе создания процесса выполняются следующие этапы:

(4) расширять виртуальное адресное пространство процесса

(1) способ организации данных в виде файлов на устройствах внешней памяти

(2) способ хранения системных данных в оперативной памяти

(3) система организации доступа к зашифрованным файлам

(4) вид операционной системы, в основе которой лежит работа с файлами

Какие требования предъявлялись при разработке к операционной системе Windows NT 3.1?

(3) возможность работы в качестве систем реального времени

(1) При реализации вытесняющего алгоритма планирования потоков операционная система может переключить процессор на другой поток

(2) При реализации вытесняющего алгоритма планирования потоков поток не может сам прервать свое выполнение

(3) При реализации невытесняющего алгоритма планирования потоков только сам поток может передать управление операционной системе

(4) При реализации невытесняющего алгоритма планирования потоков операционная система может переключить процессор на другой поток

Укажите требования к безопасности операционной системы:

(1) блок данных фиксированного размера на диске; наименьшая единица информации для диска

(2) логический блок данных на диске, включающий один или несколько кластеров

(3) непрерывная часть жесткого диска, формируемая в процессе высокоуровневого форматирования

(4) совокупность байтов, расположенных на разных разделах одного и того же диска

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

Самый основной элемент компьютера, это, конечно, процессор. Давайте подробней его рассмотрим. Упрощённая структура процессора (рис. 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. Базовые регистры процессора Intel 80386

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

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

Остальные четыре регистра – 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. Регистр флагов 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.

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

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