Главная страница
Навигация по странице:

  • 40. Разработка программ обработки прерываний для режима реального адреса.

  • 41. Разработка резидентных программ обработки прерываний.

  • 42. Работа с расширенной памятью в защищенном режиме работы процессора.

  • Список используемой литературы

  • готовая печатка. 1. Техника безопасности 5 Изучение требования безопасности на рабочем месте 7


    Скачать 1.09 Mb.
    Название1. Техника безопасности 5 Изучение требования безопасности на рабочем месте 7
    Анкорготовая печатка
    Дата31.01.2023
    Размер1.09 Mb.
    Формат файлаdocx
    Имя файлаGotovaya_pechatka.docx
    ТипРеферат
    #914139
    страница22 из 22
    1   ...   14   15   16   17   18   19   20   21   22

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



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

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

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

    Процессор ищет вектор прерывания в IDT, чтобы найти соответствующий обработчик прерываний.

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

    Обработчик прерываний выполняет и обрабатывает прерывание.

    Когда обработчик прерываний завершен, он возвращает управление прерванной программе, выполняя инструкцию "iret", которая восстанавливает сохраненное состояние выполнения из стека и возобновляет выполнение в точке, где произошло прерывание.

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

    40. Разработка программ обработки прерываний для режима реального адреса.



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

    Чтобы обработать аппаратное прерывание в реальном режиме, обычно выполняются следующие шаги:

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

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

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

    Обработчик прерываний выполняет и обрабатывает прерывание.

    Когда обработчик прерываний завершен, он возвращает управление прерванной программе, выполняя инструкцию "iret", которая восстанавливает сохраненное состояние выполнения из стека и возобновляет выполнение в точке, где произошло прерывание.

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

    Вот пример программы на языке ассемблера x86 (с использованием синтаксиса NASM), которая обрабатывает аппаратные прерывания в реальном режиме:

    section .data

    interrupt_message db "Interrupt occurred!", 10

    interrupt_message_len equ $ - interrupt_message
    section .text

    global _start
    _start:

    ; Set up the IVT and enable interrupts

    mov ax, 0x5A5A

    mov [ivt_initialized], ax

    sti ; Enable interrupts
    main_loop:

    ; Wait for an interrupt to occur

    hlt ; Halt the processor until an interrupt occurs

    jmp interrupt_handler


    41. Разработка резидентных программ обработки прерываний.



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

    Вспомогательная часть выполняет следующие действия:

    1.) сохраняет векторы "захватываемых" прерываний во внутренних переменных;

    2.) устанавливает эти векторы по адресу резидентной части программы;

    3.) инициализирует внутренние переменные резидентной части;

    4.) завершает работу программы без удаления резидентной части из памяти компьютера.

    Реализация этих действий на низком уровне представляет собой:

    1.) вызов 35-й функции прерывания DOS INT 21H (GET VECTOR), которая позволяет сохранить вектор прерывания в двухсловной метке;

    2.) вызов 25-й функции прерывания DOS INT 21H (SET VECTOR), которая позволяет установить вектор прерывания по известному адресу;

    3.) присвоение начальных значений внутренним переменным в зависимости от их назначения в программе;

    4.) вызов прерывания DOS 27H (KEEP), которое позволяет завершить выполнение программы без удаления резидентной части из памяти компьютера.

    С того момента как резидентная часть программы находится в ОЗУ, и на нее указывает вектор "захваченного" прерывания, она может быть активизирована путем вызова этого прерывания.

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

    В схеме "А" сначала вызывается системная обработка, а затем производится добавочная пользовательская обработка, написанная программистом. Эта схема подходит в том случае, когда программист хочет чем-либо дополнить системную обработку. Например, можно заставить машину менять по нажатию клавиш Ctrl-Alt атрибуты яркости символов на противоположные.

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

    Схема "C" полностью исключает системную обработку и заменяет ее пользовательской. При необходимости вообще исключить обработку данного прерывания резидентная часть должна состоять лишь из операторов засылки в порт 20H сигнала о конце прерывания (код 20H) и оператора возврата IRET. 

    Самым распространенным способом активизации резидентных программ по прерыванию является вызов по так называемым "горячим" клавишам ("hot keys"), т. е. по заранее установленной комбинации клавиш.

    Легче всего обрабатывать сочетания клавиш Ctrl, Alt, LeftShift и RightShift. Резидентная программа, вызываемая по "горячим клавишам", обычно устанавливается на прерывание INT 09H, хотя может устанавливаться и на прерывание INT 16H. В начале резидентной части необходимо проверить байт памяти, находящийся по адресу 0000:0417H, в котором хранятся битовые флаги состояния клавиатуры, т. е. информация о нажатых в данный момент управляющих клавишах. Если значение бита равно 1 (бит "взведен"), значит соответствующая клавиша в данный момент нажата или включен соответствующий режим.

    Схема иллюстрирует резидентную программу, использующую вызовы по "горячим" клавишам. Программа перехватывает аппаратное прерывание INT 09H и производит сначала системную обработку (схема "A"), затем проверяет флаги клавиатуры. Если флаги клавиатуры указывают на нажатие клавиш Ctrl и Alt, то программа осуществляет предписанные ей действия и передает управление основному процессу.

    Если необходимо использовать для активизации резидентной программы дополнительные (не входящие в байт флагов состояния клавиатуры) клавиши, то следует добавочно использовать порт клавиатуры. Далее приведен фрагмент резидентной части, активизирующейся по сочетанию клавиш Ctrl-Alt-R.

    42. Работа с расширенной памятью в защищенном режиме работы процессора.



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

    Организацию памяти в защищенном режиме разделяют на две части: сегментация (segmentation), и страничная организация (paging).

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

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

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

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

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

    Независимо от вида таблицы каждый дескриптор содержит следующую информацию, характеризующую сегмент:

    • базовый адрес сегмента в оперативной памяти. Сегмент может начинаться в любой точке адресного пространства объемом 232 = 4Гбайт. Это адресное пространство носит название линейного, а адрес в нем соответственно линейным адресом (для процессоров с разрядностью адресной шины 36 разрядов объем адресного пространства будет соответственно 236 = 64Гбайт.);

    • размер сегмента в байтах. Максимальный размер сегмента определяется разрядностью линейного адреса, при 32-разрядной организации процессора он равен 4 Гбайт;

    • тип сегмента (сегмент кода, сегмент данных, системный сегмент) и права на его использование (возможность модифицировать сегмент кода, считывать содержимое сегмента или выполнять этот код);

    • право доступа (позволяет указать, что данный сегмент доступен только для чтения);

    • уровень привилегий сегмента.

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

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

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

    Так же как и в случае реального режима будет использоваться двухкомпонентный логический адрес. По-прежнему логический адрес формируется при помощи сегментных регистров и регистров, где хранится смещение. Однако сегментные регистры содержат теперь не сегментный адрес, а так называемый селектор, часть которого (13 бит) представляет собой индекс в дескрипторной таблице, т.е. указывает на дескриптор, в котором находится полная информация о сегменте. Иначе это преобразование называется трансляция логического адреса в линейный.

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

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

    Заключение
    Учебной практики составлена на основании учебных планов специальности 09.02.01 «Компьютерные системы» 19995 «Наладчик технологического оборудования» разработанная в соответствии с Государственными образовательными стандартами.

    Учебная практика прошла в период с 01.12.2022 по 24.12.2022г.

    Место прохождения практики: ООО “Амур” Ленина 25

    Мною был выполнен отчет по учебной практике ПМ 02, состоящий из 58 страниц, содержащий в себе введение, содержание, заключение, список источников.

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

    Список используемой литературы


    1. Дибров М.В. Компьютерные сети и телекоммуникации. Маршрутизация в IP-сетях в 2 частях. Часть 1. Учебник и практикум для СПО. – М.: , 2017. – 333 с.

    2. Дибров М.В. Компьютерные сети и телекоммуникации. Маршрутизация в IP-сетях в 2 частях. Часть 2. Учебник и практикум для СПО. – М.: , 2017. – 351 с.

    3. В.Олифер, Н.Олифер. Компьютерные сети. Принципы, технологии, протоколы. Учебник. – СПб.: Питер, 2017. – 992 с.

    4. Вычислительные системы, сети и телекоммуникации. Учебник. – М.: КУРС, 2017. – 240 с.

    5. Андрей Робачевский. Интернет изнутри. Экосистема глобальной сети. – М.: Альпина Паблишер, 2017. – 224 с.

    6. Велихов, А. В. Основы информатики и компьютерной техники. Учебное пособие / А.В. Велихов. - М.: Солон-Пресс, 2021. - 544 c.

    7. Кэлкинс Solaris 8: Сертификация системного администратора / Кэлкинс, Билл. - М.: ДиаСофт, 2022. - 897 c.

    8. Попов, А.А. FoxPro 2.5/2.6. Создание приложений для FoxPro 2.5/2.6 в DOS и Windows / А.А. Попов. - М.: Калашников и К, 2020. - 660 c.

    9. Снайдер Unix. Руководство системного администратора / Снайдер и др. - М.: Киев: BHV, 2020. - 832 c.

    10. Тарин Macromedia Dreamweaver MX для Windows и Macintosh / Тарин, Дж Тауэрс. - М.: ДМК Пресс, 2020. - 768 c.

    11. Фленов, М.Е. Linux глазами хакера / М.Е. Фленов. - М.: БХВ-Петербург, 2021. - 544 c.

    12. Шенк, Т. Red Hat Linux для системных администраторов / Т. Шенк, Д. Барбер, Э. Тернер. - К.: DiaSoft, 2022. - 672 c.

    13. Windows IT PRO/Re. - М.: Открытые Системы, 2021. - 650 c.

    14. Джонс, Дон Средства автоматизации в Microsoft Windows (+ CD-ROM) / Дон Джонс. - М.: ЭКОМ Паблишерз, Бином. Лаборатория знаний, 2021. - 416 c.
    1   ...   14   15   16   17   18   19   20   21   22


    написать администратору сайта