Главная страница

Операционные системы. 4 лекционный комплекс. Тема Архитектурные особенности ос. Классификация. Введение в курс. Понятия и определения ос. Основные функции ос. Эволюция ос. Архитектурные особенности ос. Классификация ос


Скачать 0.52 Mb.
НазваниеТема Архитектурные особенности ос. Классификация. Введение в курс. Понятия и определения ос. Основные функции ос. Эволюция ос. Архитектурные особенности ос. Классификация ос
АнкорОперационные системы
Дата18.09.2019
Размер0.52 Mb.
Формат файлаdoc
Имя файла4 лекционный комплекс.doc
ТипОбзор
#87129
страница6 из 7
1   2   3   4   5   6   7


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

Защита адресногопространства задач.

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

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

Уровни привилегий для защиты адресного пространства задач.

Для того, чтобы запретить пользователю задач модифицировать область памяти, принадлежащую о.с. надо иметь специальные средства, одного разграничения адресного пространства через механизм сегментов мало, так как можно указывать различное значение адреса начала сегмента и тем самым получать доступ к чужим сегментам, то есть надо в явном виде разграничивать системные сегменты от сегментов пользователя. этому были введены два режима процессора: пользовательский и ядра. В режиме ядра программа может выполнять все действия и иметь доступ по любым адресам в пользовательском режиме существует ограничения, чтобы обнаруживать и пресекать запрещенные действия, перехватывать их и передавая их управление ядру о.с., в пользовательском режиме запрещается выполнение команды ввода-вывода и некоторые других, чтобы гарантировать , что только о.с. выполняет эти операции, то есть эти два режима имеют разные уровни привилегий. Микропроцессоры i80x86 имеют 4 уровня привилегий, часто уровни привилегий называются кольцами защиты, так как это помогает объяснить принцип действия самого механизма. Для указания уровня привилегий используются два вида, поэтому код 00 обозначает самый высший уровень, а 11 низший. Самый высший уровень привилегий предназначен для ядра о.с. , низкий-прикладных задач.Промежуточные уровни привилегий введены для большей свободы системных программистов в организации надежных вычислений при создании о.с. Предполагается, что уровень с кодом 1 может быть использован для систем сервиса-программ, обслуживающих аппаратуру, работу с портами вводавывода. Уровень привилегий с кодом 2 может быть использован для создания пользовательских интерфейсов, систем управления базами данных, то есть для реализации специальных системных функций, которые по отношению к ядру о.с. ведут себя как обычные приложения. На практике используются только два уровня:0 и 3.
Таким образом, режим ядра для микропроцессора i80*86 соответствует выполнению кода с уровнем привилегии 0 (PL0). Именно уровень привилегий задач определяет, какие команды в них можно использовать, какое подмножество сегментов или страниц в их адресном пространстве они могут обрабатывать.

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

Способы организации виртуальной памяти.

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

Сегментный способ организации виртуальной памяти.

Естественным способом разбиения программы на части является её разбиение на логические фрагменты - сегменты. Обычно сегментом является модуль или совокупность программных модулей. Логическое обращение к элементам программы будет означать указание имени сегмента, и смещения относительно его начала. Каждый сегмент, размещенный в памяти, имеет информационную структуру – дескриптор сегмента. Операционная система строит для каждого выполняемого процесса таблицу дескрипторов сегмента и при размещении каждого из сегментов в ОЗУ или внешней памяти в дескрипторе отмечается его текущее местоположение. Для этого используется бит присутствия. В поле «Адрес» диспетчер памяти записывает адрес физической памяти, с которого начинается сегмент, а в поле «Длина сегмента» его размер в байтах. Это поле используется для того, чтобы избежать наложения сегментов друг на друга и для того, чтобы контролировать, не обращается ли подзадача за пределы текущего сегмента (если это так то генерируется прерывание). Если сегмент находится во внешней памяти, то поля адреса и длины используются для указания адреса сегмента в координатах внешней памяти. В дескрипторе сегмента также содержатся данные о его типе (код или данные), права доступа, отметка об обращениях к сегменту. При передаче управления следующей задаче операционная система заносит в соответствующий регистр микропроцессора адрес таблицы дескрипторов сегментов этой задачи. Сама таблица дескрипторов сегмента также является сегментом данных, которые обрабатываются диспетчером памяти.



Страничный способ организации виртуальной памяти.

Способ разрывного размещения задач в памяти при котором все фрагменты задачи одинакового размера кратного степени двойки называется страничным, а фрагменты страницами. В этом случае память разбивается на физические страницы (кадры, фреймы). А программа разбивается на виртуальные страницы. Часть виртуальных страниц размещается в ОЗУ, а часть во внешней памяти. Место на жестком диске, где размещаются виртуальные страницы называют файлом подкачки или страничным файлом (SWAP-файл). Чтобы подчеркнуть, что записи этого файла-страницы замещают друг друга в ОЗУ в некоторых операционных системах виртуальные страницы располагаются не в файле, а в специальном разделе диска.

Физический адрес ячейки памяти определяется парой (Pp, i), а виртуальный (Pv, i). Pv – номер виртуальной страницы, Pp – номер физической страницы, а I – номер ячейки (индекс) внутри страницы. Для отображения виртуального адресного пространства на физическую память для каждой задачи необходимо иметь таблицы страниц для трансляции адресных пространств. Для описания каждой страницы диспетчер памяти операционной системы заводит соответствующий дескриптор. По номеру виртуальной страницы в таблице дескрипторов текущей задачи находится соответствующий элемент (дескриптор). Если бит присутствия равен единице, то данная страница находится в ОЗУ и в дескрипторе находится номер физической страницы, отведенной под данную виртуальную страницу.



Защита страничной памяти основана на контроле уровня доступа каждой страницы. Существующие уровни доступа: только чтения, чтение и запись, только выполнение. Каждая страница снабжается соответствующим кодом. При обращении к виртуальной странице отсутствующей в физической памяти возникает прерывание и управление передается диспетчеру памяти, который должен найти свободное место. Если свободной страницы нет, то диспетчер памяти, по одной из дисциплин замещения определит страницу подлежащую расформированию или сохранению во внешней памяти. На её место он разместит виртуальную страницу к которой было обращение из задачи. Диспетчер памяти выбирает для замещения ту страницу, на которую не было ссылки на протяжении наиболее длительного периода времени.

Дисциплина замещения – Least Recently Used связывает с каждой страницей время последнего её использования.

В Windows 2000 она называется FIFO. Страничный механизм приводит к тому, что без специальных аппаратных средств он существенно замедляет работу вычислительной системы. Поэтому обычно используют кэширование страничных дескрипторов. В микропроцессоре i80*86 используется кэш на 32 страничных дескриптора. Поскольку размер страницы в этих микропроцессорах 4Кб, то возможно быстрое обращение к 128Кб памяти.

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

Недостатки:

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

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

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

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

Для понимания защищенного режима работы необходимо знать основные регистры процессора i80*86.

31




15

0




31




15

0



















EAX

AX




EIP

IP



















EBX

BX




FLAGS

FLAGS



















ECX

CX


































EDX

DX

















































ESP

SP


































EBP

BP


































ESI

SI


































EDI

DI
































































15

0




63










47










15







0

CS




Права доступа

Базовый адрес

Длина сегмента

SS




 

 

 

DS




 

 

 

ES




 

 

 

FS




 

 

 

GS




 

 

 














































LDTR




 

 

 

TR




 

 

 














































15

0
















47










15







0

CR3




GTDR

 

 

CR2




IDTR

 

 

CR1








































CR0








































При каждом из сегментных регистров CS-GS изображены пунктиром скрытые от программистов, доступные только микропроцессору, 64 битовые регистры, в которые загружаются дескрипторы соответствующих сегментов. Регистр LDTR – регистр указатель на локальную таблицу сегментов текущей задачи, также имеет «теневой» 64 битовый регистр, в который микропроцессор заносит дескриптор указывающий на таблицу дескрипторов-сегментов задачи, описывающих её локальное виртуальное адресное пространство. Регистр - указатель задачи – TR (Task Register) указывает на дескриптор в глобальной таблице дескрипторов, чтобы получить доступ к дескриптору задачи Task State Segment – в информационной структуре для управления процессами (задачами).

Регистр Global Descriptor Table Register указывает на начальный адрес глобальной таблицы GDT регистров, содержащей дескрипторы общих сегментов.

Регистр IDTR содержит информация для доступа к таблице прерываний IDT. Управляющий регистр CR0 содержит целый ряд блоков которые управляют режимом работы микропроцессора. Самый младший бит этого регистра Protect Enable определяет режим работы. Если PE равен 0 – это реальный режим, если 1 – защищенный. Старший бит этого разряда Paging, определяет включен (PG=1) или нет (PG=0) режим страничного преобразования адресов. Регистр CR2 содержит адрес подпрограммы, которая вызывается, если происходит обращение к отсутствующей странице. Для выполнения эффективной и надежной работы вычислительной системы в !!! режиме необходимо выполнение двух требований:

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

  2. Наличие общего разделяемого адресного пространства, поэтому в микропроцессоре i80*86 реализован сегментный способ распределения памяти. Кроме этого, в этих микропроцессорах может быть и страничная организация памяти. Каждый сегмент описывается дескриптором сегмента в котором указывется базовый адрес сегмента, размер сегмента, права доступа и некоторая другая информация. Локальный адрес пространства процесса определяется через таблицу Local Descriptor Table.

Общее или глобальное адресное пространство определяется через другую таблицу Global Descriptor Table.

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

15






















2

1

0

index (номер сегмента)

 

 

IT

 

 




























RPL

Поле индекса определяет номер сегмента в таблице дескрипторов. Поле индикатора в таблице сегментов (Table Index)(это бит с номером два) определяет общий это сегмент (0) или локальный (1). Это пространство описывает локальную таблицу дескрипторов IDT. Поле уровня привилегии – биты 0 и 1 указывают запрашиваемый уровень привилегии (Request Privilege Level). При своем запуске операционная система инициализирует GDTR. Этот регистр содержит начальный адрес глобальной таблицы дескрипторов и её размер. Для управления процессами операционная система имеет информационную структуру – дескриптор процесса. Часть дескриптора процесса, с которой работает микропроцессор называется сегментом состояния задачи (Task State Segment). В основном этот сегмент содержит контекст задачи. Процессор получает доступ к TSS с помощью регистра задачи TR. Регистр TR содержит индекс т.е. номер элемента глобальной таблицы дескрипторов сегмента TSS. Дескриптор заносится в теневую часть регистра. В одном из полей TSS находится указатель, т.е. селектор на локальную таблицу дескрипторов данной задачи. При переходе процессора с одной задачи на другую содержимое поля заносится микропроцессом в одноименный регистр. Линейный адрес команды определяется следующим образом – микропроцессор анализирует бит TI в селекторном регистре поля и в зависимости от его значения извлекает из глобальной либо локальной таблицы дескриптор сегментного кода с номером который равен содержимому поля индекс. Этот дескриптор заносится в теневую часть регистра CS. Микропроцессор сравнивает значения регистра EIP с полем размера сегмента, содержащегося в извлеченном сегменте и если смещение относительно начала сегмента не превышает размера сегмента, то значения EIP прибавляется к значению поля начала сегмента и получается искомый линейный адрес. Линейный адрес будет либо равен физическому (если страничное преобразование отключено), либо с помощью страничной трансляции преобразуется физический адрес. Если смещение из регистра EIP превышает размер сегментного кода, то это аварийная ситуация вызывает прерывание, и управление предается ядру операционной системы.



31













12

11
















9

8




7

6







5







4




3







2







1







0

Адрес таблицы страниц

Для операционной системы

ОО

Dirty

Acces

OO

User/Ядро

Read/Write

Prescut

Дескриптор для описания страницы имеет следующий формат.

Прежде всего микропроцессор анализирует 0-ой бит. Если поле Prescut равно 0, то данная страница отсутствует в ОЗУ. Бит Dirty отмечает что данная страница модифицирована и её необходимо сохранить на винчестере при её замещении. Бит управления Access устанавливается в 1, если к данной странице установлен доступ. Этот бит используется для определения страницы которая будет замещаться.

Первый и второй биты используются для защиты памяти.

Основные понятия и концепции организации ввода/вывода.

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

  1. Устройства внешней памяти:

  1. Устройства памяти с произвольным доступом (дискеты, магнитные, оптические и магнитооптические диски) Direct Access Storage Device.

  2. Устройства памяти с последовательным доступом (стримеры)

  1. Сетевые и коммуникационные устройства (модем, сетевые адаптеры)

  2. Устройства алфавитно-цифрового ввода/вывода (телетайпы, текстовые терминалы)

  3. Устройства звукового ввода/вывода

  4. Устройства графического ввода/вывода (сканер, плоттеры, видео кодеры)

  5. Позиционные устройства ввода/вывода (дигитайзеры, световые перья, мыши)

  6. Датчики и исполнительные устройства управляющих систем

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

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

.

Существует два основных подхода к адресации этих режимов:

    1. отдельные адресные пространства ввода/вывода

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

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


1   2   3   4   5   6   7


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