- •6. Организация ассоциативной, кэш и виртуальной памяти
- •6.1 Память с ассоциативным доступом
- •6.3 Виртуалды жадтың архитектурасы.
- •6.3.1 Физикалық жад пен виртуалды жад түсінігін қолданудың қиындығы
- •6.3.2. Жадының беттік ұйымдастырылуы.
- •6.3.3. Жадының беттік ұйымдастырудағы сегментациясы
- •Өзіндік дайындалу үшін сұрақтар:
6.3.3. Жадының беттік ұйымдастырудағы сегментациясы
Жадының беттік ұйымдастырудағы сегментациясы және оның түрлері. Жадының ұйымдастырылуына бұл тіл табу бағдарламаларды жеке облыстарға – сегменттерге бөлу мүмкіндігіне келіп тіркеледі. Әрбір сегмент мәліметтердің немесе бағдарлама кодтарының жиынтығынан тұратын және қолданушының адрестік жазықтығында орналасқан жеке логикалық бірлік мағлұматтарын өзімен көрсетеді. Сегменттер оларға символдық аты бойынша үндеу жасай алатын қолданушылармен жасалады. Әрбір сегментте, нөлден бастап өзінің жеке сөздер нөмірленуі тағайындалады.
Әдетте, мұндай жүйелерде қолданушылар арасында ақпараттар алмасуы сегменттер бағасында құрастырылады. Сегменттер қорғауды қажет ететін, жеке логикалық бірлік ақпараттар болып есептеледі және дәл осы дәрежеде сегментке әр түрлі режимді рұқсаттар беріледі. Сегменттердің екі негізгі типтерін бөлуге болады: программдық сегменттер және мәліметтер сегменті (стек стегменттері мәліметтер стегменттерінің дара жағдайы болып есептеледі). Ортақ программалар қайта құру қабілеттеріне ие болуы керек болғандықтан, программалық сегменттерде тек топтар таңдалуы мен оқылу константалары рұқсат етіледі. Программалық сегменттерде жазба жазу қауіпсіздік бұзу болып есептеледі және жүйемен тыйым салынған. Сонымен қоса, мәліметтер сегментінен де топтар таңдалуы қауіпсіздік бұзу болып есептеледі және кез келген мәліметтер сегменті жазбамен үндеуден немесе оқудан қорғалған болуы мүмкін.
Схемы сегментации памяти при страничной организации памяти. Для реализации сегментации существуют несколько схем, которые отличаются друг от друга деталями реализации, но основаны на одних и тех же принципах. При сегментации памяти каждое слово в адресном пространстве пользователя определяется виртуальным адресом, состоящим из двух частей: старшие разряды адреса рассматриваются как номер сегмента, а младшие – как номер слова внутри сегмента. Наряду с сегментацией может также использоваться страничная организация памяти. В этом случае виртуальный адрес слова состоит из трех частей: старшие разряды адреса определяют номер сегмента, средние –номер страницы внутри сегмента, а младшие – номер слова внутри страницы.
Как и в случае страничной организации, необходимо обеспечить преобразование виртуального адреса в физический адрес основной памяти. С этой целью для каждого пользователя операционная система должна сформировать таблицу сегментов. Каждый элемент таблицы сегментов содержит описатель (дескриптор) сегмента (поля базы, границы и индикаторов режима доступа). При отсутствии страничной организации поле базы определяет адрес начала сегмента в основной памяти, а граница – длину сегмента. При наличии страничной организации поле базы определяет адрес начала таблицы страниц данного сегмента, а граница — число страниц в сегменте. Поле индикаторов режима доступа представляет собой некоторую комбинацию признаков блокировки чтения, записи и выполнения.
Пример преобразования адресов с помощью сегментной таблицы приведен на рис. 6.10.
Каждый сегмент (S) виртуального пространства имеет в таблице свой адрес (S), по которому хранится вся информация, относящаяся к данному сегменту. Эта информация включает:
– тип доступа (поле RWX) к сегменту;
– местоположение сегмента (поле F, если F=1, то сегмент S находится в ОП, если F=0, то во вторичной памяти);
– начальный адрес сегмента и размер сегмента (поле L).
Выборка и замена сегментов выполняется аналогично выборке и замене страниц. Реальный адрес вычисляется путем добавления к начальному адресу, полученному из таблицы сегментов, адреса внутри сегмента.
В рассмотренной схеме сегментации таблица сегментов с индикаторами доступа предоставляет всем программам, являющимся частями некоторой задачи, одинаковые возможности доступа, т. е. она определяет единственную область (домен) защиты. Однако для создания защищенных подсистем в рамках одной задачи, чтобы изменять возможности доступа, когда точка выполнения переходит через различные программы, управляющие ее решением, необходимо связать с каждой задачей множество доменов защиты. Реализация защищенных подсистем требует разработки некоторых специальных аппаратных средств.
Таблицы сегментов различных пользователей операционная система хранит в основной памяти. для определения расположения таблицы сегментов выполняющейся программы используется специальный регистр защиты, который загружается операционной системой перед началом ее выполнения. Этот регистр содержит дескриптор таблицы сегментов (базу и границу), причем база содержит адрес начала таблицы сегментов выполняющейся программы, а граница – длину этой таблицы сегментов. Разряды номера сегмента виртуального адреса используются в качестве индекса для поиска в таблице сегментов. Таким образом, наличие базово-граничных пар в дескрипторе таблицы сегментов и элементах таблицы сегментов предотвращает возможность обращения программы пользователя к таблицам сегментов и страниц, с которыми она не связана. Наличие в элементах таблицы сегментов индикаторов режима доступа позволяет осуществить необходимый режим доступа к сегменту со стороны данной программы. Для повышения эффективности схемы используется ассоциативная кэш-память.
Әдебиеттер тізімі:
1. Тихонов В.А., Баранов А.В. Организация ЭВМ и систем. Учебник /Под ред. акад. В.К Левина. -М.: Гелиос АРВ, 2008. -400 с.
2. Алхимов Ю.В. Микропроцессоры и цифровые системы в неразрушающем контроле. Учебное пособие. -Томск: Изд-во Томского политехнического университета, 2008. -245 с.
