Процессоры Intel в защищенном режиме
Переключение контекста, сегмент состояния задачи. Сегментная организация памяти, дескрипторные таблицы. Защита по привилегиям, уровни привилегий. Селектор сегмента и образование линейного адреса. Функции управления виртуальной памятью в среде Windows.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 19.05.2015 |
Размер файла | 949,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
unit:
in al, instat
fost al, 4
jnz unit
……
; занесение числа байтов и начального адреса
mov ax, byte_size
out bc_reg, ax
lea ax, buffer
out add_reg, ax
…
; установить биты направления и разрешения в управляющем байте и ;вывести их в dmacon и intcon
mov al, dmac
or al, 0ah ; (в 1 и 3 биты)
out dmacon, al
…
…
mov al, intc
or al, 05
out intcon, al
8. Логический уровень управления I/O. Драйверы
Программируемый I/O на физическом уровне требует программиста высокой квалификации. Для упрощения программирования в ОС введены специальные средства управления вв/в на логическом уровне. Если в программе требуется вв/в в результате прерывания, управление передается монитору вместе с кодом функции, определяющим операции I/O, и параметр, необходимый для выполнения этих операций.
Схема организации I/O на логическом уровне:
Размещено на http://www.allbest.ru/
а) монитор
анализирует код функции и распознает операцию I/O;
диспетчирует код функции SV I/O;
б) SV I/O
определяет участвующие в операции I/O устройства;
инициирует соответствующий драйвер;
осуществляет обмен данными между процессором и буфером;
Замечание: в некоторых ОС, таких как MS-DOS, Windows, функции SV I/O выполняет базовая система I/O - BIOS, основная часть которой составляет драйверы.
в) драйвер - специальная программа управления конкретным устройством, содержит машинные команды для выполнения I/O, поэтому пользователь освобождается от необходимости знать принципы работы устройств. Различают:
резидентные, находящиеся в ПЗУ и формируемые BIOS;
загружаемые, которые разрабатываются по мере появления новых устройств и входят в модуль расширения BIOS.
Структура драйвера
Размещено на http://www.allbest.ru/
Заголовок устройства именует устройство и содержит информацию об остальных частях драйвера, имеет следующий формат:
Размещено на http://www.allbest.ru/
указатель на следующий драйвер ->-1, который заменяется при передаче управления драйвера на адрес следующего драйвера, что дает возможность подключать новые драйверы. Если -1 сохраняется-> конец списка или другой, предназначенный для одного устройства.
атрибуты содержат информацию о типе устройства. Различают 2 типа устройств
символьные, которым приписываются имена и которые предназначены для передачи данных через последовательный интерфейс
RC_232C (V = 9600 Вольт)
CON:, COM1:, COM2:, LPT1: LPT2: KBD:, VIO:, NULL: и т.д., PRN:
Каждое последовательное устройство обслуживает одно логическое устройство. Их можно открывать как файлы, либо создавать каналы.
блочные устройства - устройства произвольного доступа (диски) им не задаются имена, а приписываются символы. Они могут обслуживать одновременно несколько логических устройств.
A:, B:, C:, D:…
В байте атрибут обычно устанавливается 15 бит
Размещено на http://www.allbest.ru/
Заголовок устройства может иметь следующий вид:
…
next_in dd -1
attribute dw 8000h ; 15 бит->1
dw strategy
dw interrupt
db `prn ` ; имя символьного устройства
Процедура стратегии
Содержит информацию о блоке данных, создаваемой операционной системой, при передаче управления драйверу и именуемой заголовком запроса. Адрес заголовка запроса помещается в ES:BX. Единственное задание этого процесса- сохранить адрес заголовка запроса в локальной переменной. Запросы состоят из 2 секций:
1-ая - заголовок запроса (стандартный для всех драйверов);
2-ая - информация, которая используется затем драйвером.
Заголовок запроса имеет следующий стандартный формат:
Размещено на http://www.allbest.ru/
код операции или тип функции, содержит номер типа функции, который может принимать значение о 0 до 24, такие как функция инициализации, которая служит для загрузки драйвера и вызывается только 1 раз при его загрузке, функция проверки диска, построении блока параметров BIOS, запись, чтение, проверка состояния записи и чтения, открытие или закрытие устройства.
статус или слово состояния, заполняется программой прерываний. Программа стратегий имеет следующий вид:
…
keep_es dw ?
keep_bx dw ?
…
strategy:
mov cs:keep_es, es
mov cs:keep_bx, bx
ret
Программа прерываний
Вызывается сразу же после программы стратегий. Состоит из 2 частей:
1 - сохраняет содержимое регистров;
2 - осуществляет вызов процедуры выполнения операции.
При выполнении программы прерываний выполняется следующая последовательность действий:
Сохраняется содержимое регистров.
Восстанавливается содержимое регистров ES:BX для определения адреса заголовка запроса
Mov ax, cs:keep_es
Mov es, ax
Mov bx, cs:keep_bx
Осуществляется чтение кода функции из заголовка запроса
Mov al, es:[bx]+2 ; смещение
Осуществляется передача управления процедуре, выполняющей функцию, которая указана в 3-ем поле заголовка запроса.
После выполнения процедуры заполняется поле статуса в заголовке запроса
Or es:word_ptr[bx]+3, xxxxh
Если выполнение процедуры завершается успешно, то устанавливается в 1 8-ой бит, при аварийном завершении в 1 устанавливается 15 бит, при этом в биты с 0 по 7 заносится код ошибки.
осуществляется передача процесса через BIOS и монитор.
Управление файлами
Функции программы управления являются промежуточным звеном между процессом и SV I/O.
Размещено на http://www.allbest.ru/
2. Процесс выдает с помощью имен файлов, ключей и прочее, логический запрос, например, прочитать следующую запись.
Программа управления файлами (ПУФ) реализует метод доступа (сочетание доступа со способом организации - метод доступа), транслируя логический запрос в физический и передавая управления SV I/O.
ПУФ реализует ряд базовых функций, основными из которых являются такие как открытые и закрытие файла, запись, чтение, создание/уничтожение и т.д.
а) открытие файла
цель функции открытия файла сообщить системе о намерении использовать файл с определенными функциями доступа, создание буфера вв/в для хранения блоков данных.
основными параметрами при открытии файла являются:
имя файла;
способ доступа (запись, чтение, выполнение);
способ организации (последовательный, прямой, индексно- прямой, библиотечный и т.д.);
длина записи, блока, размер буферов.
при открытии файла выполняется следующие основные действия:
подготовка к пересылке данных, для этого система управления файлами должна иметь информацию о местонахождении файла, если файл находится в каталоге, то происходит обращение к каталогу, в противном случае, выдается сообщение;
копирование учетной информации из каталога и дескрипторов в некоторую структуру данных, расположенную в основной памяти, что ускоряет работу при неоднократном обращении к файлу;
создание буферов вв/в;
загрузка системных программ, реализующих метод доступа.
б) закрытие файла
цель - запретить последующий доступ к файлу, разорвать логическую связь между файлом и процессом;
при закрытии освобождается область памяти, выделенная под буфер вв/в и под системные программы.
в) операции чтения или записи. Различают 2 способа ЗП/ЧТ:
синхронный, возможен для файлов, имеющих последовательную структуру. При выдаче запроса на вв/в, процесс принудительно переводится файловой системой в состояние ожидания, до тех пор, пока не закончится обмен данными между процессом и файлом.
асинхронный, при котором после выдачи процессом запроса на вв/в, файловая система передает управление процессу, выдавшему запрос. Этот способ - одно из основных преимуществ Win32.
г) создание - выделить имя и, в случае необходимости, файловое пространство.
Для преобразования логического запроса в физический, необходимо иметь информацию о структуре данных и их местоположении, которую ПУФ получает из каталога и дескрипторов.
а) каталог устанавливает соответствие между логическим именем файла и его физическим расположением. Основное требование к каталогу - фиксация месторасположения каталога (элемента каталога);
б) дескриптор содержит дополнительную информацию о файлах (длину записи, ее формат). Определяется при просмотре каталога - файловые информационные таблицы.
Расположение информации на диске, т.е. физическая структура файла, чаще всего отличается от его логической упорядоченности. Для преобразования логической структуры в физическую необходимо узнать о распределении внешней памяти и некоторую связующую информацию, располагающуюся в дескрипторе. К алгоритмам распределения внешней памяти предъявляются такие требования, как:
рациональное использование внешней памяти;
легкость доступа. На практике, распределение внешней памяти осуществляется точно также как в основной памяти, отличие заключается в следующем: при связывании свободных участков в список, указатели на свободные участки помещаются в таблицу. Это ускоряет поиск свободных участков;
в оперативной памяти, при связывании свободных участков, указатели на свободные участки входят в состав самих свободных участков, т.е. каждый свободный участок имеет ссылку на следующий. Такой подход не преемлен для внешней памяти, т.к. поиск i-го свободного участка требовал бы прохождения i-1 -го участка.
в алгоритмах распределения внешней памяти все пространство разбивается на блоки различной фиксированной длины -64, 128, 256, 512, 1024 б. Каждому блоку присваивается номер.
выделение памяти под файл осуществляется следующими 2-мя способами:
в виде последовательности смежных блоков. Достоинство: простота в реализации. Недостатки:
если при работе с файлом вводятся изменения, то этот файл необходимо переписать в другое место. Это связано с тем, что каждый блок ограничен соседними блоками.
явление фрагментации, поэтому необходимо периодически проводить уплотнения информации на диске.
Произвольным образом расположенные свободные блоки. Достоинство: снимается необходимость расширения файла. Недостатки: усложняется алгоритм выделения и поиска информации, что влечет к увеличению времени поиска информации.
Особенности физической организации файлов и каталогов
Под дорожками понимается концентрические окружности, на которых находятся данные. Они нумеруются с нулевой, самой близкой к периферии (краю) диска.
Цилиндр - объединение дорожек с одним и тем же номером, расположенных на различных поверхностях диска. Каждая дорожка длится на секторы. Сектор- -512 б для DOS. Кластер - минимальная единица памяти, выделенная под файл (кратен 2^n). Формат информации (на дорожке) универсален: как для жестких, так и для гибких дисков дорожка делится на секторы, каждый сектор состоит из 2 частей - служебного поля и поля данных. Служебное поле представляет собой идентификатор сектора, который уникален для каждого сектора диска. Поиск и обнаружение сектора осуществляется с помощью идентификатора.
Табличное представление диска:
Размещено на http://www.allbest.ru/
Самый первый сектор диска содержит главную корневую запись, которая загружается в память под управлением BIOS и выполняет загрузку ОС. Последняя часть этого сектора содержит таблицу разделов: 4-элементные таблицы с 16-байтными элементами.
Таблица разделов:
Смещение |
Длина |
Содержимое |
|
+0 |
1beh |
Код загрузки |
|
+1beh |
10h |
Эл-т раздела №1 |
|
+1ceh |
10h |
… №2 |
|
+1deh |
10h |
… №3 |
|
+1eeh |
10h |
… №4 |
|
+1feh |
2 |
55 | AA |
Размещено на http://www.allbest.ru/
Блок параметров BIOS
Блок параметров BOIS представляет из себя подмножества данных, содержащихся в загрузочном секторе. Длина его составляет 13 байт:
смещение |
длина |
содержимое |
|
+0 |
2 |
Байт на сектор |
|
+2 |
1 |
Секторов на кластер |
|
+3 |
2 |
Корневых и резервных секторов. Max число 32 б элементов корневого оглавления |
|
+5 |
1 |
||
+6 |
2 |
Число таблиц FAT |
|
+8 |
2 |
Общее число секторов на носителе |
|
+0ah |
1 |
Дескриптор носителя |
|
+0bh |
2 |
Число секторов в FAT |
Дескриптор носителя - первый байт таблицы FAT.
FAT состоит из 16 битных элементов. Чтобы прочитать любой из элементов FAT, следуя по цепочке FAT, сначала следует считать память всего FAT и получить из оглавления начальный номер кластера. 1-ый байт FAT называется дескриптором носителя, остальная часть FAT состоит из 16-битных элементов, каждый из которых представляет собой один кластер и может содержать одно из следующих значений:
000h - доступный кластер
fff0h - fff7h - зарезервированный кластер (уже содержит информацию, относящуюся какому-то файлу)
fff7h - плохой (bad)
fff8h - ffffh -конец цепочки распределения
0002h - ffefh - номер кластера, следующего элемента в цепочке
Получив начальный номер кластера для файла из элемента оглавления, можно обратиться к реальному сектору диска, для этого надо преобразовать номер кластера в номер сектора. Корневой каталог состоит из элементов, описывающих данные, которые хранятся в области данных диска, включая файлы подкаталогов (подоглавлений). Элемент корневого оглавления содержит имя файла, атрибут файла, время создания или обновления, дату создания или обновления.
Под атрибутом файла понимается 1 байт битовых флажков, связанных с каждым файлом и находящийся в элементе оглавления файла.
Формат времени создания/обновления
Дата создания/обновления
Под годом понимается количество лет, происшедших с 1980 года.
Размещено на Allbest.ru
Подобные документы
Распределение виртуальной памяти. Страничная и сегментная организации виртуальной памяти. Сегментно-страничная организация виртуальной памяти. Преобразование виртуального адреса в физический. Упрощение адресации памяти клиентским программным обеспечением.
курсовая работа [440,7 K], добавлен 04.03.2014Архитектура компьютеров и возможности операционной системы по управлению памятью. Суть концепции виртуальной памяти. Аппаратно-независимые и аппаратно-зависимые средства управления виртуальной памятью. Сегментно-страничная организации виртуальной памяти.
презентация [355,2 K], добавлен 27.12.2010- Управление памятью. Страничная организация памяти. Сегментная организация памяти. Виртуальная память
Как осуществляется трансляция адресов при страничной организации. Что такое компактировка и как с ее помощью избавиться от внешней фрагментации. Что такое регистр таблицы страниц, сегментация. Методы распределения памяти в виде отдельных сегментов.
контрольная работа [236,2 K], добавлен 23.12.2016 Элементы процессора, аппаратный уровень. Устройство управления, микропрограммный автомат. Процессор Intel 8086, сегментная организация памяти. Команды, главные особенности их кодирования. Результат дизассемблирования программы отладчиком TurboDebugger.
лекция [1,1 M], добавлен 14.12.2013Организация памяти компьютера и простые схемы управления ею. Принципы связывания адресов. Динамическое распределение и свопинг. Сегментная и сегментно-страничная организация памяти. Выталкивание редко используемой страницы. Описание работы с программой.
курсовая работа [3,1 M], добавлен 19.01.2016Функциональная схема микропроцессора Intel 8086 (i8086). Формирование физического адреса памяти, выборка команд из памяти и запись их в очередь команд. Система команд процессора. Суть защищенного режима, переход из защищенного режима в реальный режим.
практическая работа [93,3 K], добавлен 24.03.2013История развития корпорации Intel, ее финансовые показатели и планы на будущее. Основные программные продукты: C++ Compiler for Linux и for Windows, Visual Fortran Compiler for Windows, VTune Performance Analyzer. Защита информации Intel Anti-Theft.
реферат [20,6 K], добавлен 02.04.2010Характеристика процессоров линейки Intel. Знакомство с особенностями микропроцессора, предназначенного для настольных систем с поддержкой симметричной многопроцессорности. Pentium Pro как процессор Intel шестого поколения, совместимый с архитектурой x86.
реферат [57,6 K], добавлен 25.07.2013Проектирование ОС Windows 2000, ее архитектура. Процессы и потоки. Уровни запросов на прерывания. Менеджер объектов. Распределение виртуальной памяти. Трансляция виртуальных адресов в физические. Локальный вызов процедуры. Структура сообщения LPC.
презентация [1,5 M], добавлен 24.01.2014Последовательность загрузки значений регистров базовых адресов и регистров прав доступа для системного режима. Методы и средства защиты памяти, преобразования логического адреса в физический, реализованных в УУП процессора. Режим работы процессора.
лабораторная работа [1,5 M], добавлен 23.07.2012