Обработка прерываний в защищенном режиме 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Обработка прерываний в защищенном режиме



Также как и в реальном режиме, в защищенном режиме м/п обрабатывает прерывания, которые подразделяются на 3 класса:

1) внешние (аппаратные), которые вырабатываются аппаратурой или внешними устройствами. Часть аппаратных прерываний может временно запрещаться или маскироваться. Для этого используется флаг IF в регистре флагов (1 – прерывания разрешены, 0 – запрещены). Изменяются флаги команд: STI, CLI.

2) Исключающие. Вырабатываются самим м/п при возникновении особых ситуаций в выполняемой программе (деление на 0, переполнение). В защищенном режиме добавляется отсутствующая страница в памяти и т д. Флаг IF на исключения не работает.

3) Программные. Вырабатываются с помощью команд Int n (n – номер прерывания).эВсе прерывания и исключения пронумерованы от 0 до 31. Каждому обрабатываемому в системе прерыванию назначается свой обработчик прерывания. ОС вызывает этот обработчик (программу) в случае возникновения прерывания.

В реальном режиме в младших адресах ОП располагаются так называемые вектора прерываний. (рис)

Каждый вектор содержит 2 16р слова: CS - содержимое регистра сегментов, задающий адрес сегмента и IP – смещение от начала??? сегмента до точки входа в обработчик.

Обработчик прерывания в реальном режиме: сохранение текущей выполняемой программы:

1) IPt – в стек CSt FLAGSt

2) IR<-IPk CS<-CSk

3) Передается управление по адресу CS:IP -???

Каждая обрабатываемая команда должна завершать свою работу командой IRET:

  1. 1) IP ^

2) CS^

3) FLAGS

2. CS:IP<-продолжаются выполняться действия прерванной выполняемой программы.

Вектора прерываний в защищенном режиме хранятся в специальной таблице дескрипторов IDT. Эта таблица содержит шлюзы прерываний или исключений, причем 0й дескриптор содержит шлюз 1 – 1го прерывания. Номер дескриптора в этой таблице соответствует номеру прерывания. Шлюз прерывания используется для запуска??? в режиме запрещенных прерываний. Шлюз исключений вызывает обработчик прерывания в режиме с разрешенными прерываниями. Сам обработчик может прерываться другими прерываниями. Адрес таблицы IDT задается: (рис)

 

Кэширование в м/п Intel

Для слаженной работы в скоростях между процессором и памятью используют быстродействующую память – кэш-память. В Intel используется 4 уровня кэширования:

1. скрытые регистры

2. буфер ассоциативной памяти

3. внутренний кэш м/п

4. внешний кэш м/п

(рис)

1. С каждым сегментным регистром связан 64р регистр, в котором хранится дескриптор сегментов, селектор которого расположен в сегментном регистре??? Они называются скрытыми, т к их видит только м/п.

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

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

Под логическим номером страницы понимается 20 бит старшего разряда линейного адреса (рис)

  1. внутренний кэш м/п L1. Этот называется внутренним потому, что он расположен внутри м/п и в зависимости от модели м/п имеет размер от 10-в до 100-н Кб. В этом кэше (буфере) м/п временно хранит команды и данные перед их использованием в качестве операнда или команд.
  2. внешний кэш м/п L2. Этот кэш расположен на системной плате и его объем в зависимости от модели от нескольких 100-н Кб до нескольких Мб. Этот кэш также используется для промежуточного хранения команд и данных.

Взаимодействие кэшей различных уровней осуществляется по следующей схеме: (рис)

История ОС

1е ЭВМ появились в начале 40х гг, и в качестве элементной базы они использовали электромагнитное реле, поэтому скорость их работы была ничтожна. Начиная с 1945 в качестве элементной базы стали использовать электровакуумные лампы. ЭВМ на этих лампах занимали целые этажи зданий, но могли осуществлять реальные вычисления. Вычислительные машины на базе электровакуумных ламп принято считать 1м поколением ЭВМ(1945-1955). ЭВМ 1го поколения были штучны, для них не было никаких языков программирования. Команды и данные вводились с помощью переключателей, а результаты считались по лампочкам. К концу 40х – началу 50х появились 1е переферийные устройства чтения: перфоленты, перфокарты, печатное устройство в виде электр пищущей машинки.

С 1955г в качестве элемент базы ЭВМ стали использоваться транзисторы – 2е поколение (1955-1965). Использование транзисторов позволило сократить размеры ЭВМ. В 1956 был создан 1й язык Fortran, использующийся для научно-технических расчетов. Появилось разделение труда, и процесс работы с вычислительной машиной состоял из следующих шагов: программист, составив программу, записывал ее на специальные бланки, затем относил в группу подготовки данных, затем колоду перфокарт вводили в, она транслировала шаги, производила расчеты и выводила результаты на печать. Распечатку оператор отдавал программисту и цикл повторялся.

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

(рис)

На 1й маломощной машине оператор переписывал … с перфокарты, затем оператор переносил магнитную ленту 1 на ЭВМ, она выполняла их и результат записывала на магнитную ленту 2 и т д. Затем осуществлялась распечатка. Поскольку на магнитной ленте одновременно находились несколько заданий пользователя, их необходимо было разделять друг от друга и указывать какие же действия необходимо выполнить в том или другом задании. Для этого был разработан язык JCL. Он управлял заданиями, содержал несколько операторов. (JOB, {EXEC, LOAD, DATA}, END)

Для того, чтобы распознавать операторы языка управления заданиями на ЭВМ2 должна была работать специальная программа, которая бы последовательно считывала данные с магнитной ленты, распознавала операторы JCL и выполняла заданные действия. 1я такая программа называлась FMS (Fortran Monitor System), с помощью которой осуществлялось выполнение заданий, созданных на языке Fortran. (FMS – 1я ОС)

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

Следующим этапом развития ЭВМ стало появление интегральных микросхем. Машины, созданные на базе интегральных микросхем принято относить к машинам 3го поколения (1965-1980). В 1965г фирма IBM создала серию вычислительных машин S/360, в которую был внесен ряд новшеств:

1) все машины этой серии были универсальными, т е могли одинаково эффектно использоваться как для научно-технических расчетов, так и для коммерческих вычислений. До 65г вычислительные машины подразделялись на научно-технические и коммерческие.

2) В S/360 впервые появилась двоично-десятичная система счисления.

3) Впервые на этих системах было осуществлено мультипрограммирование

Для этого семейства машин была создана ОС, называемая OS/360. вся память в OS/360 делилась на фиксированное количество фиксированных разделов. Но размер разных разделов мог быть разным.

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

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

Одновременное размещение нескольких программ в памяти потребовало решения нескольких задач:

1) защита программ друг от друга

2) настройка адреса загрузки

1я задача в OS/360 решалась следующим образом: все блоки в памяти, выделяемые в программе, содержали специальный 4битный ключ кода защиты. Все блоки одного раздела имели одинаковый код защиты. Количество разделов ограничивалось 16ю.

В системе имелся специальный регистр PSW, в который ОС записывала текущий код защиты, те код защиты раздела с выполняющейся в данный момент программой. (рис)

Каждый раз при обращении к памяти процессор сравнивал текущий код защиты SPSW с блоком защиты в блоке памяти. Если код защиты не совпадал, то это значило, что делается попытка обращения в другой раздел и доступ запрещается.

Задача настройки адреса загрузки состояла в следующем: (рис)

В OS/360 для этого строились специальные таблицы относительно адресов программы, и в момент загрузки к этим относительным адресам добавлялся адрес начала раздела. (рис)

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

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

Использование фиксированных разделов??? приводило к неэффективности использования памяти. В каждом разделе??? могла выполняться только одна программа. Делать размеры раздела наименьшими тоже не решение, туда нельзя было бы загружать большие программы. Эксплуатация MFI фирмой IBM, разрабатывается новый режим ОС. OS/360 получил название MVT – мультипрограммная с переменным числом задач. В этом режиме разделы создавались динамически при загрузке программы в память, причем размер раздела выбирался в зависимости от размера загруженной программы. Но в MVT используется тот же механизм защиты памяти, поэтому количество разделов не могло превышать 16. В конце 60х гг появились алфавитно-цифровые дисплеи, и пользователям не хотелось бегать с перфокартами. Но система пакетной обработки, в которой запущенная программа выполнялась процессором до тех пор, пока она не завершается или сама не перейдет в ожидание, не подходила для организации интерактивных дисплеев. Фирма IBM предприняла попытки модернизировать систему работы??? над интерактивным дисплеем.??? TSO – с помощью этой надстройки программа, запускается с терминала по очереди на небольшой квант времени. TSO не получила должного внимания по следующим причинам:

1) надстройка над системой пакетной обработки – она сама требовала много ресурсов и замедляла работу

2) система не была многопользовательской и не могла защитить системы??? друг от друга

Параллельно с работой IBM в конце 60х 3 фирмы GE, MIT, Bell Laboratories ввели в разработку многопользовательскую систему разделений MULTIES GE 645. Но в 1969 Bell Laboratories вышла из этого проекта, и ее сотрудник Томпсон на базе уже сделанных наработок решил создать свою ОС для??? по системному программированию и назвал ее Unix на языке Ассемблер Ass PDP 7. В 1972г один из разработчиков языка Си заинтересовался Unix и переписал ее на язык Си. В 1973 правительство США стало оснащать ведущие??? США мощными машинами PDP-11. Для этих машин нужно было многопользовательское разделение во времени. Начиная с 73г большинство выпускников имели работу???, Unix приобрел огромную популярность в мире. Для того, чтобы все направления Unix сделать совместимыми, был разработан специальный стандарт PDSIX???

В начале 70х гг фирма IBM выпустила новую серию машин S/370. Эти машины поддерживали виртуальную память, и для них была разработана система OS/370. Главным событием разработчиков 370 стало создание ОС VM/370. Эта система была разработана фирмой IBM совместно с MIT для организации эффективного режима разделения времени.

???

Система имела следующую архитектуру: (рис)

На аппарате VM работала управляющая программа (Control Program)???, которая выполняла следующие действия:

1) выполнение операций ввода-вывода

2) обработка прерываний от устройств

3) моделирование нескольких виртуальных машин, представляющих из себя точную копию реального оборудования

4) периодические выделения виртуальным машинам квантов времени виртуальных процессов

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

Моделирование реального оборудования оказалось настолько удачным, что на виртуальной машине смогла работать даже реальная OS/370 и VM/370. В дальнейшем эту ОС фирма IBM использовала для своих внутренних целей для разработки и отладки различных ОС.

Появлению ЭВМ 4го поколения способствовало 2 события:

1) разработка больших интегральных схем

2) создание фирмой IBM своего ПК

4е поколение (1980-наши дни)

Когда в конце 70х гг фирма Intel сделала свой 1й м/п 8080, фирма DR присоединила к нему флопик и создала 1ю ОС для м/п, которая называлась CP/M – это была простая однозадачная однопользовательская ОС, которая могла работать с файлами на дискете, считывать программу из файла, загружать в память и передавать ей управление. Фирма DR продавала свою ОС отдельно от м/п.

Когда фирма IBM создала свой 1й ПК PC, у нее возникла проблема???

Билл Гейтс выкупил CP/M и создал MS-DOS, встроил туда Basic и решил продавать.

В начале 80х гг появился 386 процессор. В это время решение этой проблемы пошло по 2м направлениям:

1) IBM&MS стали разрабатывать свою ОС OS/2. Эта система должна была полностью использовать возможности 386-го процессора. Они создали???

2) ряд фирм пытались внедрить на ПК Unix-Xenix

Но вскоре после 1й версии OS/2 MS и IBM поссорились. MS занялась Windows, а IBM продвигала OS/2. К этому времени уже появился Mac.

Билл Гейтс выпустил:

Win 3.0 – надстройка над MS-DOS

Win 3.11 – введены сетевые функции, разделение каталогов, устройства, принтеры

Win 95 – который был заявлен, как многозадачная ОС, хотя таким не являлся. Некоторые модули Win 95 (GD и User) не обеспечивали повторную входимость. Для разделения доступа использовался WinLock, но вскоре его переименовали на WinMux. MS разработал Windows NT – уже точно многозадачную ОС.

Помимо??? в конце 80-90х фирма IBM предложила ряд интереснейших решений по развитию вычислительных систем. К концу 80х гг вычислительные машины IBM серии S/370 физически и морально уже устарели, но за эти годы на них было сделано так много наработок, что перевести их на другую платформу было невозможно. Поэтому IBM на базе новых технологий разработала новую систему S/390 – OS/390, которые не только могли в многозадачном режиме выполнять все приложения для старых ЭВМ, но и работать со старыми устройствами.

AS/400 – OS/400. OS/400 появились в середине 90х и представляют из себя целое семейство вычислительных машин разных производителей и стоимости, которые позволяют на базе одной вычислительной машины моделировать несколько виртуальных машин и выполнять на них различные ОС, при том не только фирмы IBM.

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

 

Функции ОС

1) загрузка в память и запуск на выполнение программ

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

3) Управление дисковыми устройствами, если они имеются в системе.

ОС должна:

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

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

3) предоставлять унифицированный интерфейс работы с другими переферийными устройствами

4) обеспечивать пользовательское интерфейсное взаимодействие с ОС хотя бы на уровне командной строки

Это минимальный набор функций. В более сложных системах ОС обеспечивает и дополнительные функции.

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

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

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

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

 

Классификация ОС

1. по количеству пользователей

2. по количеству одновременно выполняемых программ:

а) однозадачные (MS-DOS)

б) многозадачные – в памяти одновременно размещается несколько программ (OS/370, Unix)

в) многопоточные – Linux, Windows NT – распараллеливание выполняемых внутри программ отдельных функций (потоки)

3. в зависимости от методов планирования времени ЦП:

а) системы пакетной обработки предназначены для последовательного выполнения некоторого потока заданий. Основным критерием функционирования таких систем является пропускная способность, т е количество заданий, выполняемых в 1цу времени. В системах пакетной обработки время ЦП обычно выделяется 1му готовому к выполнению заданию из очереди заданий. Получив время??

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

в) системы реального времени – системы, управляющие реальными объектами или процессами. Основным критерием работы системы реального времени является система??? реакции, под которой понимается время, прошедшее с момента поступления сигнала об изменении состояния управляемого объекта или процесса до выработки системой соответствующего ответного воздействия.

4. По своему назначению:

а) системы общего назначения (Windows)

б) серверные ОС – системы, которые могут управлять работой серверов (Windows, OS/2)

в) системы реального времени – системы специфические, уникальные

г) встроенные системы – системы, управляющие работой м/п встроенных различных приборов

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

д) для отладки и разработки встроенных систем создают специальные системы – крос-системы. Он моделируют работу устройств и имеют средства отладки и разработки.

5. Системы смарт-карт

 



Поделиться:


Последнее изменение этой страницы: 2017-02-06; просмотров: 149; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.2.184 (0.044 с.)