- •Организация эвм
- •1. Принципы джона фон нейман. Поколения эвм
- •1.1. Принципы Джона фон Нейман
- •1.2. Поколения эвм: от ламп к интегральным микросхемам
- •1.2.1. Первое поколение эвм (1948 — 1958гг.)
- •1.2.2. Второе поколение эвм (1959 — 1967 гг.)
- •1.2.3. Третье поколение эвм (1968 — 1973 гг.)
- •Четвертое и пятое поколения эвм (1974 — настоящее время)
- •2. Архитектура технических средств
- •2.1.Микропроцессор
- •2. Краткие сведения об остальных компонентах компьютера
- •2.3. Функциональное назначение
- •2.4. Использование разъемов расширения
- •2.5. Совместимость блоков расширения
- •3. Классификация компьютеров по областям применения
- •3.1. Персональные компьютеры и рабочие станции
- •3.3. Серверы
- •3.4. Мейнфреймы
- •3.5. Кластерные архитектуры
- •4. Система прерываний
- •4.1. Общие сведения
- •4.2. Обработка прерываний.
- •4.3. Программирование контроллера прерываний
- •4.4. Обработка прерываний в реальном режиме
- •5. Иерархия памяти
- •5.1. Организация кэш-памяти
- •5.1.1. Где может размещаться блок в кэш-памяти?
- •5.1.2. Как найти блок, находящийся в кэш-памяти?
- •5.1.3. Какой блок кэш-памяти должен быть замещен при промахе?
- •5.1.4. Что происходит во время записи?
- •5.2.2. Развитие оперативной памяти
- •5.2.3. Установка оперативной памяти
- •5.3. Виртуальная память и организация защиты памяти
- •5.3.1. Концепция виртуальной памяти
- •5.3.2. Страничная организация памяти
- •5.3.3 Сегментация памяти
- •6. Организация ввода/вывода
- •6.1. Системные и локальные шины
- •6.2. Стандарты шин
- •6.3. Устройства ввода/вывода
- •6.3.1. Магнитные и магнитооптические диски
- •6.3.2. Дисковые массивы и уровни raid
- •6.3.3. Устройства архивирования информации
- •7. Многопроцессорные и многомашинные системы
- •7.1. Классификация эвм параллельной обработки
- •7.2. Модели связи и архитектуры памяти
- •8. Конвейерная обработка
- •8.1. Параллелизм и конвейеризация
- •8.2. Оценка производительности идеального конвейера
- •8.3. Конфликты в конвейере и способы минимизации их влияния на производительность процессора
- •8.3.1. Структурные конфликты
- •8.3.2. Конфликты по управлению
- •8.3.3. Конфликты по данным
- •9. Периферийные устройства
- •9.1. Принтеры
- •9.2. Мыши
- •9.3. Модемы
- •9.4. Сканеры
- •9.5. Накопители на жестких магнитных дисках
- •9.6. Накопители на гибких магнитных дисках
- •9.7. Накопители на компакт-дисках
- •9.8. Магнитооптические диски
- •9.9. Стримеры
- •9.10. Дигитайзеры
- •9.11. Плоттеры
- •9.12 Видеобластеры
- •9.13. Звуковые платы
- •9.14. Акустические системы
- •9.15. Трекболы
- •9.16 Джойстики
- •9.17. Источники бесперебойного питания.
- •Оглавление
5.3.3 Сегментация памяти
Другой подход к организации памяти опирается на тот факт, что программы обычно разделяются на отдельные области-сегменты. Каждый сегмент представляет собой отдельную логическую единицу информации, содержащую совокупность данных или программ и расположенную в адресном пространстве пользователя. Сегменты создаются пользователями, которые могут обращаться к ним по символическому имени. В каждом сегменте устанавливается своя собственная нумерация слов, начиная с нуля.
Обычно в подобных системах обмен информацией между пользователями строится на базе сегментов. Поэтому сегменты являются отдельными логическими единицами информации, которые необходимо защищать, и именно на этом уровне вводятся различные режимы доступа к сегментам. Можно выделить два основных типа сегментов: программные сегменты и сегменты данных (сегменты стека являются частным случаем сегментов данных). Поскольку общие программы должны обладать свойством повторной входимости, то из программных сегментов допускается только выборка команд и чтение констант. Запись в программные сегменты может рассматриваться как незаконная и запрещаться системой. Выборка команд из сегментов данных также может считаться незаконной, и любой сегмент данных может быть защищен от обращений по записи или по чтению.
Для реализации сегментации было предложено несколько схем, которые отличаются деталями реализации, но основаны на одних и тех же принципах.
В системах с сегментацией памяти каждое слово в адресном пространстве пользователя определяется виртуальным адресом, состоящим из двух частей: старшие разряды адреса рассматриваются как номер сегмента, а младшие – как номер слова внутри сегмента. Наряду с сегментацией может также использоваться страничная организация памяти. В этом случае виртуальный адрес слова состоит из трех частей: старшие разряды адреса определяют номер сегмента, средние – номер страницы внутри сегмента, а младшие – номер слова внутри страницы.
Как и в случае страничной организации, необходимо обеспечить преобразование виртуального адреса в реальный физический адрес основной памяти. С этой целью для каждого пользователя операционная система должна сформировать таблицу сегментов. Каждый элемент таблицы сегментов содержит описатель (дескриптор) сегмента (поля базы, границы и индикаторов режима доступа). При отсутствии страничной организации поле базы определяет адрес начала сегмента в основной памяти, а граница – длину сегмента. При наличии страничной организации поле базы определяет адрес начала таблицы страниц данного сегмента, а граница - число страниц в сегменте. Поле индикаторов режима доступа представляет собой некоторую комбинацию признаков блокировки чтения, записи и выполнения.
Таблицы сегментов различных пользователей операционная система хранит в основной памяти. Для определения расположения таблицы сегментов выполняющейся программы используется специальный регистр защиты, который загружается операционной системой перед началом ее выполнения. Этот регистр содержит дескриптор таблицы сегментов (базу и границу), причем база содержит адрес начала таблицы сегментов выполняющейся программы, а граница – длину этой таблицы сегментов. Разряды номера сегмента виртуального адреса используются в качестве индекса для поиска в таблице сегментов. Таким образом, наличие базово-граничных пар в дескрипторе таблицы сегментов и элементах таблицы сегментов предотвращает возможность обращения программы пользователя к таблицам сегментов и страниц, с которыми она не связана. Наличие в элементах таблицы сегментов индикаторов режима доступа позволяет осуществить необходимый режим доступа к сегменту со стороны данной программы. Для повышения эффективности схемы используется ассоциативная кэш-память.
Необходимо отметить, что в описанной схеме сегментации таблица сегментов с индикаторами доступа предоставляет всем программам, являющимся частями некоторой задачи, одинаковые возможности доступа, т. е. она определяет единственную область (домен) защиты. Однако для создания защищенных подсистем в рамках одной задачи для того, чтобы изменять возможности доступа, когда точка выполнения переходит через различные программы, управляющие ее решением, необходимо связать с каждой задачей множество доменов защиты. Реализация защищенных подсистем требует разработки некоторых специальных аппаратных средств.