Укажите в правильной последовательности действия процессора по выполнению программы

Обновлено: 23.11.2024

Прерывания — это сигналы, посылаемые центральному процессору внешними устройствами, обычно устройствами ввода-вывода. Они говорят процессору прекратить текущую деятельность и выполнить соответствующую часть операционной системы.

Существует три типа прерываний:

  1. Аппаратные прерывания генерируются аппаратными устройствами, чтобы сигнализировать о том, что им требуется некоторое внимание со стороны ОС. Возможно, они только что получили некоторые данные (например, нажатия клавиш на клавиатуре или данные с карты Ethernet); или они только что выполнили задачу, которую ранее запрашивала операционная система, например, перенос данных между жестким диском и памятью.
  2. Программные прерывания генерируются программами, когда они хотят запросить системный вызов для выполнения операционной системой.
  3. Ловушки генерируются самим ЦП, чтобы указать, что возникла какая-то ошибка или условие, для устранения которых требуется помощь операционной системы.

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

1.7.2. Режим выполнения ЦП¶

Существует два режима выполнения: пользовательский режим и режим ядра или режим супервизора. Пользовательский режим ограничен тем, что некоторые инструкции не могут быть выполнены, некоторые регистры недоступны, а устройства ввода-вывода недоступны. Режим ядра не имеет ни одного из этих ограничений. Системный вызов установит ЦП в режим ядра, как и ловушки и прерывания. Прикладные программы не могут этого сделать.

Бит режима: режим супервизора или пользователя

  • Режим супервизора
    • Может выполнять все машинные инструкции
    • Может ссылаться на все ячейки памяти
    • Может выполнять только подмножество инструкций
    • Может ссылаться только на подмножество ячеек памяти.

    1.7.3. Ответ процессора на прерывания¶

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

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

    ЦП выполняет следующие действия в ответ на прерывание:

    1. При использовании указателя на текущий блок управления процессом состояние и все значения регистров для процесса сохраняются для использования при последующем перезапуске процесса.
    2. Бит режима ЦП переключается в контрольный режим.
    3. С помощью указателя на таблицу обработчиков прерываний и вектора прерывания определяется местоположение исполняемого кода ядра. Вектор прерывания — это IRQ для аппаратных прерываний (считывается из регистра контроллера прерываний) и аргумент инструкции прерывания на ассемблере для программных прерываний.
    4. Обработка переключается на соответствующую часть ядра.

    ЦП использует таблицу и вектор прерываний, чтобы найти ОС код для выполнения в ответ на прерывания. Здесь показано программное прерывание.

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

    "Программное обеспечение" — это общая категория кода, работающего на оборудовании. Если аппаратное обеспечение — это пианино, то программное обеспечение — это музыка. Обычный случай — это «программа», такая как Firefox — программное обеспечение, которое вы запускаете на своем компьютере для решения конкретной проблемы. Компьютер может запускать несколько программ одновременно и несет ответственность за разделение их памяти.

    ЦП понимает низкоуровневый язык "машинного кода" (также известный как "собственный код"). Язык машинного кода встроен в конструкцию аппаратного обеспечения ЦП; это не то, что можно изменить по желанию. Каждое семейство совместимых процессоров (например,очень популярное семейство процессоров Intel x86) имеет свой собственный уникальный машинный код, несовместимый с машинным кодом других семейств процессоров.

    Что такое программа/приложение?

    • Что такое программа или приложение?
      - напр. Фаерфокс
    • Firefox состоит из миллионов инструкций машинного кода.
      - Запускается сверху вниз (прямо как Javascript!)
      - Появляется окно Firefox (первые 1000 инструкций)
      - Появляются его меню (следующие 1000)
      - Курсор мигает в ожидании ввода
    • Инструкции, при запуске которых выполняются действия "Firefox".
    • Firefox.exe — это файл в файловой системе размером 80 МБ
      («.exe» — это соглашение Windows для названия файла программы)
    • Файл Firefox.exe в основном состоит из инструкций машинного кода.
    • Каждая инструкция имеет размер, скажем, 4 байта
    • Firefox.exe размером 80 МБ содержит около 20 миллионов машинных инструкций.

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

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

    Как работает программа?

    • ЦП запускает «цикл выборки/выполнения»
      -выбирает одну инструкцию в последовательности,
      -выполняет (запускает) эту инструкцию, например выполнить сложение
      -выбрать следующую инструкцию и т. д.
    • Запустить программу = запустить ЦП на его 1-й инструкции
      он прогоняет весь машинный код, запуская программу
      программа будет иметь такие инструкции, как «вернуться к шагу 3», чтобы сохранить ее работает
    • Сверхпростые инструкции машинного кода выполняются со скоростью 2 миллиарда операций в секунду.

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

    Как начинается программа?

    • Файл Firefox.exe содержит свои инструкции (в файловой системе)
    • Чтобы запустить Firefox.exe:
      -Каждая программа получает свою собственную область ОЗУ,
      -Область ОЗУ содержит код программы и данные, с которыми она манипулирует
      - Байты инструкций копируются из хранения в ОЗУ
      -ЦП получает указание начать работу с первой инструкции
      -Теперь программа работает!

    В файловой системе такой файл, как Firefox.exe, просто содержит байты инструкций машинного кода, из которых состоит программа («.exe» — это соглашение Windows, обозначающее файл как программу). Каждая инструкция машинного кода занимает примерно 4 байта, а вся программа представляет собой просто огромную последовательность инструкций.

    Когда пользователь дважды щелкает файл программы, чтобы запустить его, по сути, блок байтов инструкций для программы копируется в ОЗУ, а затем ЦП получает указание начать работу с первой инструкции в этой области ОЗУ.

    Что запускает Firefox? «Операционная система»

    • Как запустить Firefox?
    • "Операционная система"
      -e.g. Windows, Linux, Android, iOS
    • Операционная система = управление
    • Набор управляющих программ, которые управляют компьютером.
    • Операционная система запускается при первом включении компьютера
    • Управление запуском/остановкой программ
    • Управление оперативной памятью
    • Управление постоянным хранилищем
    • Компьютеры могут запускать несколько программ одновременно
    • Операционная система отслеживает информацию для каждой программы и распределяет ресурсы (например, ОЗУ) между программами.

    "Операционная система" компьютера подобна первой управляющей программе, которая начинает работать при первом включении компьютера ("загружается").Операционная система играет невидимую административную и бухгалтерскую роль за кулисами. Когда ноутбук или телефон запускается, операционная система обычно приводит все в порядок, а затем запускает программу «Проводник файлов», которая отображает доступные программы, меню и т. д., которые показывают пользователю, что доступно, позволяя пользователю перемещаться по программам и запускать их.< /p>

    Операционная система поддерживает порядок в фоновом режиме, так что несколько программ могут работать одновременно, что называется "многозадачностью". Операционная система выделяет каждой программе собственную область памяти, поэтому каждая программа обращается только к своим собственным ресурсам... пытаясь ограничить возможности ошибочной или вредоносной программы. Хранение программ отдельно иногда называют «песочницей»... опосредование доступа каждой программы, чтобы она работала независимо, не мешая другим программам или системе в целом. Точно так же каждая программа имеет некоторый доступ к экрану через окно, но эта область вывода отделена от вывода других программ.

    Вспомните, что файл .exe или что-то еще — это, по сути, просто файл с инструкциями машинного кода. Когда вы дважды щелкаете программу, операционная система «запускает» программу, выполняя вспомогательные действия по выделению области памяти в ОЗУ для программы, загружая первый раздел машинного кода программы в эту память и, наконец, направляя CPU для запуска этого кода.

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

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

    • Этот путь соединяет все остальные компоненты на материнской плате. Пути, которые соединяются между собой, называются «автобусами».

    В системе есть внутренние шины и внешние шины.

    •Внутренние шины передают данные внутри компонентов на материнской плате.

    • По внешним шинам данные передаются на другие устройства и периферийные устройства, подключенные к материнской плате.

    Во внутренней шине она соединяет все внутренние компоненты компьютерной системы. Это шина памяти, шина объединительной платы или системная шина в компьютерной системе.

    • Шины процессор-память очень быстрые, но имеют небольшую длину. Они синхронизируются как по времени, так и по ширине с памятью машины, чтобы извлечь максимальную пропускную способность. Дизайн этих автобусов служит очень конкретной цели.

    Внешние шины передают данные на другие устройства:
    • Длина шин ввода-вывода в основном больше длины шин процессора-памяти. Они могут подключаться к устройствам с разной пропускной способностью и совместимостью с другой архитектурой.

    • Третий тип шины называется объединительной платой. Они названы так потому, что интегрированы в корпус машины и служат в качестве одноточечного контакта между процессором, устройствами ввода-вывода и памятью.

    ТРИ РАЗЛИЧНЫХ ТИПА ШИН:
    Есть три типа шин, которые используются для передачи некоторой информации от процессора в память:

    • Шина данных
    • Адресная шина
    • Шина управления

    Эти шины соединяют пути ко всем остальным компонентам на материнской плате.

    Расположение шин в структуре компьютера называется шинной архитектурой.

    Шина данных:
    • Это наиболее распространенный тип шины. Он передает данные вычислительной системы на все остальные компоненты материнской платы.

    • Он передает данные между памятью, ЦП и периферийными устройствами.

    • В таких автобусах это очень распространенный маршрут.

    • На скорость передачи данных влияет количество линий в шине данных.

    • Здесь шина данных является двунаправленной.

    • ЦП может считывать и записывать данные, используя шины данных.

    Адресная шина:
    • Каждый компонент в компьютерной системе имеет свой уникальный идентификатор, называемый адресом
    • Чтобы быстро получить доступ к каждому символу в памяти, компьютер должен иметь к нему доступ.

    •Каждый символ в памяти имеет свой номер адреса.
    Для связи используется адресная шина, указывающая адрес этого компонента.

    • Здесь адрес является однонаправленным.

    • Он передает адрес ячейки памяти из основной памяти в процессор через адресную шину.

    • Шина управления управляет работой компьютерной системы

    • Он передает информацию со скоростью миллиард символов в секунду.

    • Он читает, записывает и выполняет действия, и после выполнения результат будет отправлен обратно в память.

    • Он управляет направлением данных в инструкциях процесса.

    • Здесь шина управления является двунаправленной.

    •Данные распространяются по синхронным шинам.

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

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

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

    • Линии управления определяют работу асинхронных шин.

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

    Автобусный арбитраж можно разделить на четыре основные категории.

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

    <р>2. Централизованный параллельный арбитраж:
    Централизованный посредник выбирает, кто получит шину. Хотя это более всеобъемлющая форма арбитража, в которой каждое устройство получает шанс, она подвержена узким местам из-за вычислений, принимаемых арбитром.

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

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

    • ЦП требуется меньшее количество тактов для выполнения каждой инструкции. Во-вторых, производительность выполнения инструкций измеряется в тактовых циклах (не в секундах).

    • Тактовая частота измеряется в гигагерцах (ГГц). По сути, это количество тактов часов в секунду.

    Основное различие между системными часами и часами шины заключается в следующем:

    Этот обмен данными происходит в следующих форматах.

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

    • Байт содержит 8 бит и, следовательно, может хранить до 2^8 различных значений.

    • Слово представляет собой набор байтов, поэтому длина слова должна быть кратна 8 битам.

    Обычный размер слова – 32 бита (или 4 байта).

    • Байт состоит из 8 бит и, следовательно, может хранить до 2^8 различных значений.

    •Каждый отдельный байт содержит уникальный адрес и может быть адресован байтом

    • Слово представляет собой набор байтов, поэтому длина слова должна быть кратна 8 битам.

    Общий размер – 32 бита (или 4 байта).

    <р>1. Низкоуровневое чередование и

    <р>2. Чередование высокого порядка

    <р>1. Младшее чередование:
    Младшие биты адреса используются для выбора банка. Память с чередованием низкого порядка размещает последовательные адреса памяти в разных моделях памяти. Крайние правые биты используются для определения модуля, а крайние левые выбирают смещение внутри модуля.

    Следовательно, в случае, если у нас есть побайтно-адресуемая память, состоящая из 8 модулей по 2 байта каждый, то есть всего 16 байт памяти, они будут расположены следующим образом:
    (см. прикрепленное изображение) <р>2. Перемежение высокого порядка: используются старшие биты адреса. Этот тип чередования распределяет адрес таким образом, что каждый модуль содержит последовательный адрес. В этом случае крайние левые биты выбирают модуль, а крайние правые — смещение внутри модуля.

    <р>1. Запросы ввода/вывода:
    когда устройство ввода/вывода запрашивает разрешение на чтение или передачу данных в память.

    <р>2. Арифметические ошибки:
    когда выполняются математически недопустимые операции, такие как деление на ноль и квадратный корень из отрицательного числа.

    <р>3. Аппаратная неисправность:
    Отказ любой части системы — это еще одно событие, которое может вызвать прерывание, чтобы сообщить процессору, что конкретное устройство больше не работает.

    События, которые изменяют нормальный поток выполнения в системе, называются прерываниями. В основном классификация прерываний обычно выполняется на основе того, как они инициируются или обрабатываются. И система, и пользователь могут инициировать прерывание.

    • IR (память инструкций):
    содержит следующую инструкцию для выполнения.

    • InREG (регистр ввода):
    содержит данные с устройства ввода.

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

    Каждая инструкция MARIE состоит из 16 бит. Старшие биты (12-15) определяют код операции. Код операции определяет команду, которая должна быть выполнена. Младшие значащие биты (0-11) формируют адрес.

    Формат инструкции МАРИ:
    (см. прикрепленное изображение)

    Каждая инструкция MARIE состоит из 16 бит. Старшие биты (12-15) определяют код операции. Код операции определяет команду, которая должна быть выполнена. младшие значащие биты (0-11) формируют адрес.

    (См. прикрепленное изображение, чтобы увидеть формат инструкции MARIE)

    Набор инструкций MARIE'S состоит из следующих инструкций:

    • Загрузить: Эта инструкция определяется кодом операции 0001. Формат инструкции — ЗАГРУЗИТЬ X. Значение по адресу, указанному X, затем загружается в аккумулятор (AC).

    •Добавить: Эта инструкция определяется кодом операции 0011. Формат инструкции — ДОБАВИТЬ X. Значение по адресу, указанному X, затем добавляется к значению аккумулятора (AC), и результат сохраняется обратно в переменный ток.

    • Subt: Эта инструкция определяется кодом операции 0100. Формат инструкции — SUBT X. Значение по адресу, указанному X, затем добавляется к значению аккумулятора (AC), а результат сохраняется обратно в переменный ток.

    • Ввод: эта инструкция определяется кодом операции 0101. Формат инструкции — ВВОД. Это принимает значение, введенное с клавиатуры, которое загружается в аккумулятор (AC).

    •Вывод: Эта инструкция определяется кодом операции 0110. Формат инструкции — ВЫВОД. Значение аккумулятора (AC) выводится на дисплей.

    • Останов: Эта инструкция определяется кодом операции 0001. Формат инструкции — ЗАГРУЗКА X. Значение по адресу, указанному X, затем загружается в аккумулятор (AC).

    • Skipcond: эта инструкция определяется кодом операции 1000. Формат инструкции — SKIPCOND. следующая инструкция пропускается при условии.

    Компьютер представляет собой сложную систему, состоящую из множества различных компонентов. Но в сердце — или, если хотите, в мозгу — компьютера находится единственный компонент, который выполняет фактические вычисления. Это центральный процессор или центральный процессор. В современном настольном компьютере ЦП представляет собой один «чип» размером порядка одного квадратного дюйма. Работа процессора заключается в выполнении программ.

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

    Когда ЦП выполняет программу, эта программа сохраняется в основной памяти компьютера (также называемой ОЗУ или оперативной памятью). В дополнение к программе в памяти также могут храниться данные, которые используются или обрабатываются программой. Основная память состоит из последовательности ячеек. Эти местоположения пронумерованы, а порядковый номер местоположения называется его адресом. Адрес обеспечивает способ выбора одной конкретной части информации из миллионов, хранящихся в памяти. Когда ЦП необходимо получить доступ к программной инструкции или данным в определенном месте, он отправляет адрес этой информации в качестве сигнала в память; память отвечает, отправляя обратно значение, содержащееся в указанном месте. ЦП также может хранить информацию в памяти, указав информацию, которая должна быть сохранена, и адрес места, где она должна быть сохранена.

    На уровне машинного языка работа ЦП довольно проста (хотя и очень сложна в деталях). ЦП выполняет программу, которая хранится в основной памяти в виде последовательности инструкций машинного языка. Он делает это, многократно считывая или извлекая инструкцию из памяти, а затем выполняя или выполняя эту инструкцию. Этот процесс — выборка инструкции, ее выполнение, выборка другой инструкции, ее выполнение и так далее до бесконечности — называется циклом выборки-и-выполнения.За одним исключением, которое будет рассмотрено в следующем разделе, это все, что когда-либо делал ЦП. (На самом деле все это несколько сложнее в современных компьютерах. Типичный процессорный чип в наши дни содержит несколько «ядер» ЦП, что позволяет ему выполнять несколько инструкций одновременно. А доступ к основной памяти ускоряется за счет «кэшей» памяти, которые могут доступ к ним осуществляется быстрее, чем к основной памяти, и они предназначены для хранения данных и инструкций, которые, вероятно, скоро потребуются ЦП. Однако эти сложности не меняют основной операции.)

    ЦП содержит арифметико-логическое устройство или АЛУ, которое является частью процессора и выполняет такие операции, как сложение и вычитание. Он также содержит небольшое количество регистров, которые представляют собой небольшие блоки памяти, способные хранить одно число. Типичный ЦП может иметь 16 или 32 регистра «общего назначения», в которых хранятся значения данных, которые сразу доступны для обработки, и многие инструкции машинного языка ссылаются на эти регистры. Например, может быть инструкция, которая берет два числа из двух указанных регистров, складывает эти числа (используя АЛУ) и сохраняет результат обратно в регистр. И могут быть инструкции для копирования значения данных из основной памяти в регистр или из регистра в основную память.

    ЦП также включает регистры специального назначения. Наиболее важным из них является счетчик программ, или ПК. ЦП использует ПК, чтобы отслеживать, где он находится в программе, которую он выполняет. ПК просто сохраняет адрес памяти следующей инструкции, которую должен выполнить ЦП. В начале каждого цикла выборки и выполнения ЦП проверяет ПК, чтобы узнать, какую инструкцию он должен получить. В ходе цикла выборки и выполнения число в ПК обновляется, чтобы указать инструкцию, которая должна быть выполнена в следующем цикле. Обычно, но не всегда, это просто инструкция, которая последовательно следует за текущей инструкцией в программе. Некоторые инструкции машинного языка изменяют значение, хранящееся в ПК. Это позволяет компьютеру «прыгать» с одной точки программы на другую, что необходимо для реализации функций программы, известных как циклы и переходы, которые обсуждаются в разделе 1.4.

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

    Инструкции машинного языка выражаются в виде двоичных чисел. Двоичное число состоит всего из двух возможных цифр, нуля и единицы. Каждый ноль или единица называется битом. Итак, инструкция машинного языка — это просто последовательность нулей и единиц. Каждая конкретная последовательность кодирует определенную инструкцию. Данные, которыми манипулирует компьютер, также кодируются в виде двоичных чисел. В современных компьютерах каждая ячейка памяти содержит байт, представляющий собой последовательность из восьми битов. Инструкция машинного языка или часть данных обычно состоит из нескольких байтов, хранящихся в последовательных ячейках памяти. Например, когда ЦП читает инструкцию из памяти, он может фактически прочитать четыре или восемь байтов из четырех или восьми ячеек памяти; адрес памяти инструкции — это адрес первого из этих байтов.

    Компьютер может работать напрямую с двоичными числами, поскольку переключатели могут легко представлять такие числа: включите переключатель, чтобы представить единицу; выключите его, чтобы представить ноль. Инструкции на машинном языке хранятся в памяти в виде комбинаций включенных и выключенных переключателей. Когда инструкция машинного языка загружается в ЦП, все, что происходит, это то, что определенные переключатели включаются или выключаются в шаблоне, кодирующем эту инструкцию. ЦП устроен так, чтобы реагировать на этот шаблон, выполняя закодированную им инструкцию; он делает это просто из-за того, что все остальные переключатели в ЦП соединены вместе.

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

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