Программное обеспечение вычислительной системы

Вид материалаПрограмма

Содержание


Базовый уровень
Системный уровень
Служебный уровень
Прикладной уровень
Системное программное обеспечение
Основными функциями
Система программирования
Основные понятия теории операционных систем
Архитектура аппаратных и программных средств персонального компьютера
Шина данных
Шиной адреса
Порты – специальные аппаратные регистры, используемые для управления аппаратными средствами ПК. Каждый порт имеет свой уникальны
Регистр флагов
Формирование физического адреса
Немаскируемые прерывания.
Программные прерывания.
Особенности архитектуры микропроцессоров i80x86
16-битовые сегментные регистры CS, SS, DS, ES, FS, GS
16-битовый регистр-указатель на локальную таблицу сегментов текущей задачи – LDTR
16-битовый регистр-указатель задачи TR
...
Полное содержание
Подобный материал:
  1   2   3   4   5


Программное обеспечение вычислительной системы


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




Рис.1. Уровни программного обеспечения вычислительной системы


^ Базовый уровень

Самый низкий уровень ПО. Оно отвечает за взаимодействие с базовыми аппаратными средствами и, как правило, входит в состав базового оборудования и хранится в микросхемах, называемых постоянными запоминающими устройствами: ПЗУ – ROM (Read Only Memory). В тех случаях, когда изменение базовых программных средств во время эксплуатации является технически целесообразным, вместо микросхем ПЗУ применяют перепрограммируемые ПЗУ: ППЗУ – ERROM. Изменение содержания ПЗУ можно выполнять либо непосредственно в составе вычислительной системы (флэш-технология), либо вне ее, с помощью программаторов.


^ Системный уровень

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

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


^ Служебный уровень

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


^ Прикладной уровень

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

Можно назвать следующие виды прикладного ПО:
  1. Текстовые редакторы – ввод и редактирование текстовых данных.
  2. Текстовые процессоры – позволяют форматировать (оформлять) текст.
  3. Графические редакторы – создание и обработка графических изображений. Бывают растровые, векторные и 3D-редакторы.
  4. Системы управления базами данных – создание, заполнение, доступ к данным, а также поиск и фильтрация данных.
  5. Электронные таблицы – для хранения и обработки числовых данных.
  6. Системы автоматизированного проектирования – для автоматизации проектно-конструкторских работ.
  7. Настольные издательские системы – для автоматизации процесса верстки полиграфических изданий.
  8. Экспертные системы – для анализа данных, содержащихся в базах знаний, и выдачи рекомендаций по запросу пользователя.
  9. Web-редакторы – для создания и редактирования Web-страниц Интернета.
  10. Браузеры – для просмотра Web-документов.
  11. Интегрированные системы делопроизводства – для автоматизации рабочего места руководителя.
  12. Финансовые аналитические системы – используются в банковских и биржевых структурах.
  13. Геоинформационные системы – для автоматизации картографических и геодезических работ.
  14. и.т.д.


^ Системное программное обеспечение


Системное программное обеспечение (System Software) – программы и комплексы программ, являющиеся общими для всех, кто совместно использует технические средства компьютера, и применяемые как для автоматизации создания новых программ, так и для организации выполнения программ существующих. С этих позиций системное ПО может быть разделено на следующие пять групп:
  1. Операционные системы.
  2. Системы управления файлами.
  3. Интерфейсные оболочки для взаимодействия пользователя с ОС и программные среды..
  4. Системы программирования.
  5. Утилиты.


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


^ Основными функциями, которые выполняет ОС являются следующие:
  • прием от пользователя заданий или команд;
  • прием и исполнение программных запросов на запуск, приостановку, остановку других программ;
  • загрузка в оперативную память подлежащих исполнению программ;
  • инициация программы (передача ей управления для исполнения процессором этой программы);
  • идентификация всех программ и данных;
  • обеспечение работы систем управлений файлами;
  • обеспечение режима мультипрограммирования (выполнение двух или более программ на одном процессоре);
  • обеспечение функций по организации и управлению операциями ввода/вывода;
  • удовлетворение жестким ограничениям на время ответа в режиме реального времени;
  • распределение реальной памяти и организация виртуальной памяти;
  • планирование и диспетчеризация задач, в соответствии с заданными стратегиями и дисциплинами обслуживания;
  • организация механизмов обмена сообщениями и данными между выполняющимися программами;
  • предоставление услуг на случай частичного сбоя системы;
  • обеспечение работы систем программирования.


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

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

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

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


^ Основные понятия теории операционных систем


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


Параллельное существование терминов «операционная система» и «операционная среда» вызвано тем, что ОС может в общем случае поддерживать несколько операционных сред. Можно сказать , что операционная среда – это то системное программное окружение, котором могут выполняться программы, созданные по правилам работы этой среды.


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

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

Определение концепции процесса необходимо для выработки механизмов распределения и управления ресурсами. Понятие ресурса – это также основное понятие ОС. Ресурсом называется всякий объект, который может распределяться внутри системы.

Ресурсы бывают:
  1. Делимые:
    1. используемые одновременно;
    2. используемые параллельно.
      1. Неделимые.


При разработке первых ОС ресурсами считались:
        • процессорное время;

        • Системные ресурсы
          память;
        • каналы ввода/вывода;
        • периферийные устройства.


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

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

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


Ресурс может быть выделен задаче, обратившейся к супервизору ОС, если:
  • он свободен и в системе нет запросов от задач более высокого приоритета к этому же ресурсу;
  • текущий запрос и ранее выданные запросы допускают совместное использование ресурсов;
  • ресурс используется задачей низшего приоритета и может быть временно отобран.


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

Активный процесс, в свою очередь, может быть в одном из следующих состояний:
  • выполнения (running) – все затребованные процессом ресурсы выделены. В таком состоянии в однопроцессорной вычислительной системе находиться только один процесс;
  • готовности к выполнению (ready) – ресурсы могут быть предоставлены, тогда процесс перейдет в состояние выполнения;
  • ожидания (блокирования – blocked) – затребованные ресурсы не могут быть предоставлены, или не завершена операция ввода/вывода.



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




Рис. 2. Граф состояний процесса


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

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


Из состояния выполнения процесс может выйти по одной из следующих причин:
  • процесс сообщает супервизору ОС о своем завершении. Супервизор либо переводит его в список бездействующих процессов, либо уничтожает;
  • процесс переводится супервизором ОС в состояние готовности в связи с появлением более приоритетной задачи или в связи с окончанием выделенного ему кванта времени;
  • процесс блокируется либо вследствие запроса операции ввода/вывода, либо в силу невозможности предоставить запрошенный ресурс.


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

Таким образом, движущей силой, меняющей состояние процессов, являются события. Один из основных видов событий – это прерывания.


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

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


Прерывания


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

Механизм прерываний реализуется аппаратно-программными средствами и включает следующие элементы:
  1. Прием сигнала на прерывание и его идентификация.
  2. Запоминание состояния прерванного процесса.
  3. Управление аппаратно передается подпрограмме обработки прерывания.
  4. Обработка прерывания с помощью ISR.
  5. Восстановление информации, относящейся к прерванному процессу.
  6. Возврат в прерванную программу.

Рис.3. иллюстрирует, что происходит при возникновении запроса на прерывание.



Рис.3. Обработка прерывания


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

Внешние прерывания вызываются асинхронными событиями, которые происходят вне прерываемого процесса, например:
  • прерывания от таймера;
  • прерывания по вводу/выводу;
  • прерывания по нарушению питания.


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


Существуют, наконец, собственно программные прерывания, происходящие по соответствующей команде прерывания: INT(«номер прерывания»).

Сигналы, вызывающие прерывания, формируются вне процессора или в самом процессоре; они могут возникать одновременно. Выбор одного из них для обработки осуществляется на основе приоритетов (рис.4).




Рис.4. Распределение прерываний по уровням приоритета


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


Для полного понимания принципов создания и механизмов реализации современных ОС необходимо знать архитектуру 32-разрядных микропроцессоров i80×86, применяемых в персональных компьютерах.


Классификация операционных систем


Для ОС давно сформировалось небольшое количество классификаций:
  • по назначению;
  • по режиму обработки задач;
  • по способу взаимодействия с системой;
  • по способам построения.


Различают ОС общего и специального назначения. Последние подразделяются: для переносных микрокомпьютеров и различных встроенных систем, организации и веления баз данных, решения задач реального времени.

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

При организации работы с вычислительной системой в диалоговом режиме можно говорить об однопользовательских (однотерминальных) и мультитерминальных ОС. Например, мультитерминальной ОС для ПК является Linux. Очевидно, что для организации мультитерминального доступа необходимо обеспечить мультипрограммный режим работы. Однопрограммной и однопользовательской является OS MS-DOS.

Основной особенностью операционных систем реального времени (ОСРВ) является обеспечение обработки поступающих заданий в течении заданных интервалов времени, которые нельзя превышать. Одной из наиболее известных ОСРВ для ПК является OS QNX.

Для организации совместного использования информационного пространства и общих ресурсов используются сетевые ОС. В качестве примера можно назвать UNIX, Windows NT.

По основному архитектурному принципу ОС разделяются на микроядерные и монолитные. Микроядерной является OS QNX, а монолитной – Windows 95/98. Ядро OS Windows мы не можем изменить, исходные коды нам не доступны и нет программы для сборки ядра. В OS Linux мы можем сами собрать ядро, включив в него необходимые нам программные модули и драйверы.


^ Архитектура аппаратных и программных средств персонального компьютера


В самом общем виде аппаратные средства персонального компьютера можно представить в виде нескольких блоков (рис.1).




Рис.1. Аппаратные средства персонального компьютера


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

^ Шиной адреса управляет микропроцессор.

Память может быть односторонней (чтение) – ПЗУ (ROM) хранит программы и данные, образующие в совокупности базовую систему ввода/вывода BIOS и двухсторонней (чтение и запись) – оперативная память (RAM).

^ Порты – специальные аппаратные регистры, используемые для управления аппаратными средствами ПК. Каждый порт имеет свой уникальный номер.

На шине управления микропроцессор выставляет команды управления узлами системы и получает ответные сигналы состояния узлов и подтверждение выполнения команды.

Ширина шины данных и ширина шины адреса являются важнейшими характеристиками микропроцессора. Микропроцессоры Intel 8086/88 имеют 20-разрядную шину адреса и 16/8-разрядную шину данных. Ширина шины адреса устанавливает для ПК IBM PS XT, основанного на микропроцессоре i8088, ограничение на объем адресуемой памяти в 1 Мбайт (220 байт).

Микропроцессоры Intel 8086/88 работают в реальном режиме (real mode):
  • адрес памяти, формируемый микропроцессором, является физически адресом;
  • все машинные команды системы команд микропроцессора разрешены для исполнения любой программой;
  • объем адресуемой памяти ≤ 1Мбайт.


Регистры микропроцессоров Intel 8086/88


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


  1. регистры общего назначения (РОН) – AX, BX, CX, DX – 16-разрядные;
  2. регистры-указатели: DI, SI, BP, SP, IP – 16-разрядные;
  3. сегментные регистры: CS, DS, ES, SS – 16- разрядные.


15

0

8



Рис.2. Регистры общего назначения микропроцессора Intel 8086/88


РОН микропроцессора Intel 8088 – 8-разрядные, позволяют обращаться к целому слову (два байта) в регистре AX, BX, CX, DX или к отдельным байтам (AH, BH, CH, DH – к старшему байту, AL, BL, CL, DL – к младшему байту). РОН микропроцессора Intel 8086 – только 16-разрядные (рис.2).

РОН используются для промежуточного хранения операндов.

Регистры-указатели допускают доступ только к целому слову в регистре.

Регистр IP в паре с регистром CS задает физический адрес в памяти следующей машинной команды: (CS:IP).


^ Регистр флагов или слово состояния процессора (PSW) содержит 16 бит, из которых используется только 9 (рис.3).


15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0


× × × × OF DF IF TF SF ZF × AF × PF × CF





Рис.3. Регистр флагов микропроцессоров Intel 8086/88

Флаги условий устанавливаются аппаратурой арифметико-логического устройства микропроцессора по результатам выполнения машинной команды:
  • CF – флаг переноса;
  • PF – флаг паритета;
  • AF – флаг дополнительного переноса;
  • ZF –флаг нуля;
  • SF – флаг знака;
  • OF – флаг переполнения;

Флаги управления влияют на функционирование аппаратуры процессора:
  • TF – флаг трассировки;
  • DF – флаг направления;
  • IF – флаг управления маскируемыми прерываниями (1- процессор реагирует на прерывания, генерируемые внешними устройствами, 0 – не реагирует).


^ Формирование физического адреса


Так как внутренние регистры – 16-разрядные (216 = 64 Кбайт), а шина адреса имеет ширину 20 бит (220 = 1Мбайт), то для формирования 20-разрядного физического адреса памяти используются: сегмент адреса и смещение адреса. Физический адрес записывается парой этих значений, разделенных двоеточием, и образуется следующим образом (рис.4):
  • значение сегмента адреса, берущегося из регистра, CS сдвигается на 4 бита влево с заполнением разрядов справа нулями;
  • к образовавшемуся 20-битовому значению прибавляется значение смещения адреса из регистра IP. При возникновении переполнения берется только пять 16-ричных цифр результата.

Например, адрес 40:1Ch соответствует физическому адресу 0041Ch.


Значение регистра CS



















































00

00

00

00
Регистр CS

15 0

















































+

Регистр IP

= 15 0




























































Физический

адрес

19 0


Рис.4. Схема определения физического адреса для микропроцессоров 8086/88


Прерывания


Микропроцессоры Intel 8086/88 поддерживают 256 прерываний. Каждое из них имеет свой номер и ISR. Адрес точки входа в ISR называется вектором прерываний и хранится в специальной таблице, называемой таблицей векторов прерывания (ТВП). Код ISR может располагаться в любом месте памяти. Поэтому вектор прерывания занимает 4 байта:
  • 2 байта отводится на значение сегмента адреса – значение регистра CS;
  • 2 байта – на значение смещения, устанавливаемое в регистре IP.


Вся ТВП занимает 256*4 = 1024 байта и хранится в оперативной памяти, начиная с адреса 0000:0000.

При возникновении прерывания процессор помещает в стек 6 байт:
  • текущее значение регистра CS;
  • текущее значение регистра IP;
  • 2 байта флагов процессора;
  • в CS и IP устанавливаются значения из ТВП, задающие начальный адрес ISR.

Прерыванию «0» соответствует вектор прерывания по адресу 0000:0000.

Прерыванию «1» соответствует вектор прерывания по адресу 0000:0004h.

Прерыванию «2» соответствует вектор прерывания по адресу 0000:00008h.

…………………………………………………………………………………..

В процессе функционирования ПК могут встретиться 4 типа прерываний:


  1. Аппаратные.

Они возникают как результат внешних событий, и их генерирует специальная микросхема ПК i8259A – программируемый контроллер прерываний (PIC). Она рассчитана на 8 входов запросов прерываний (IR – Interrupt Request). Сигналы на ней возбуждают внешние устройства: таймер, клавиатура, дисководы и т.д. Выход этой микросхемы подается на специальный вход процессора INTR. Этот вход является маскируемым: если флаг IF равен 1, то процессор реагирует на прерывания по этой линии, флаг IF сброшен в 0, то – нет;
  1. ^ Немаскируемые прерывания.

Процессор, кроме входа INTR, имеет вход немаскируемых прерываний NMI. Сигнал по этому входу не может быть блокирован программным образом и вызывает прерывание с номером «2». Это прерывание имеет более высокий приоритет, чем по входу INTR и используется для организации реакции процессора на критические ситуации.
  1. ^ Программные прерывания.

Осуществляется по программной инструкции INT(«номер прерывания»).
  1. Исключительные ситуации.

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

^ Особенности архитектуры микропроцессоров i80x86


Под обозначением i80x86 будем понимать любые 32-битовые микропроцессоры, имеющие такой основной набор команд, как и в первом 32-битовом микропроцессоре Intel 80386.

  1. Реальный и защищенный режимы работы процессора


Первым микропроцессором, на базе которого была создана IBM PC, был 16-ти разрядный микропроцессор Intel 8088. Он отличается от первого 16-битового микропроцессора Intel 8086 тем, что у него была 8-битовая шина данных, а не 16-ти битовая как у 8088. Эти микропроцессоры были предназначены для работы в однозадачном режиме, специальных аппаратных средств для поддержки мультипрограммных ОС в них не было. Поэтому для совместимости с первыми компьютерами (программных продуктов было создано уже много) в последующих версиях микропроцессоров была реализована возможность использовать их в двух режимах – реальном (real mode – так назвали режим работы первых 16-битовых микропроцессоров) и защищенном (protected mode – означает, что параллельные вычисления могут быть защищены аппаратно-программными механизмами)

В 16-ти битовых микропроцессорах i80x86 обращение к памяти в 1 Мбайт производилось посредством механизма сегментной адресации. Этот механизм увеличивал количество разрядов, участвующих в указании адреса ячейки памяти, с 16 до 20 и тем самым увеличивал объем адресуемой памяти от 64 Кбайт (216) до 1 Мбайт (220).

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

  1. Новые системные регистры микропроцессоров i80х86



  1. 32-битовый указатель команды EIP , младшие 16 разрядов есть регистр IP микропроцессора i8086/88;
  2. 32-битовый регистр флагов EFLAGS, младшие 16 разрядов есть регистр FLAGS микропроцессора i8086/88;
  3. 32-битовые регистры общего назначения EAX, EBX, ECX, EDX, а также ESP, EBP, ESI, EDI, а их младшие 16 разрядов есть регистры микропроцессора i8086/88: AX, BX, CX, DX, SP, BP, SI, DI;
  4. ^ 16-битовые сегментные регистры CS, SS, DS, ES, FS, GS. При каждом из этих регистров есть недоступные никому, кроме собственно микропроцессора, 64-битовые регистры, в которые загружаются дескрипторы соответствующих сегментов;
  5. ^ 16-битовый регистр-указатель на локальную таблицу сегментов текущей задачи – LDTR. При нем также имеется «теневой» (скрытый от программиста) 64-битовый регистр, в который микропроцессор заносит дескриптор, указывающий на таблицу дескрипторов сегментов задачи, описывающих ее локальное виртуальное адресное пространство;
  6. ^ 16-битовый регистр-указатель задачи TR (task register). Указывает на дескриптор в глобальной таблице дескрипторов, позволяющий получить доступ к дескриптору задачи TSS – информационной структуре, которая поддерживает микропроцессор для управления задачами;
  7. ^ 48-битовый регистр GDTR глобальной таблицы GDT (global descriptor table), содержащий как дескрипторы общих сегментов, так и специальные системные дескрипторы;
  8. 48-битовый регистр IDTR таблицы дескрипторов прерываний. Сдержит информацию, необходимую для доступа к таблице прерываний IDT.
  9. ^ 32-битовые управляющие регистры CRO, CR1, CR2, CR3. Регистр CR0 содержит флаги, определяющие режим работы микропроцессора. Регистр CR1 предназначен для размещения в нем адреса подпрограммы обработки страничного исключения. Регистр CR3 содержит номер физической страницы, в которой располагается таблица каталогов таблиц страниц текущей задачи.



  1. ^ Адресация в 32-разрядных микропроцессорах i80х86 при работе в защищенном режиме


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

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

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


Старшее двойное слово дескриптора

31 23 19 15 11 7 0


База сегмента

(биты 31-24)

G

D

0

0

Биты 19-16 поля Limit

P

DPL

S

Type

A

База сегмента

(биты 23-16)

Базовый адрес сегмента (биты 15-0)

Байт прав доступа

Limit-размер (предел) сегмента (биты 15-0)

31 15 0

Первое (младшее) двойное слово дескриптора