Главная » Просмотр файлов » Э. Таненбаум - Архитектура компьютера

Э. Таненбаум - Архитектура компьютера (1127755), страница 123

Файл №1127755 Э. Таненбаум - Архитектура компьютера (Э. Таненбаум - Архитектура компьютера) 123 страницаЭ. Таненбаум - Архитектура компьютера (1127755) страница 1232019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 123)

Одну часть занимает сегмент, а вторая часть превращается в новый свободный фрагмент, который по определению меньше, чем прежний. Без дефрагментации (превращения всех маленьких пустот в одну большую) оба алгоритма в конечном итоге приведут к заполнению памяти пустотами, слишком маленькими даже для самого мелкого сегмента. Опишем один из таких процессов. Всякий раз, когда сегмент удаляется из памяти, а одна или обе соседние области этого сегмента — не сегменты, а пустоты, смежные пустоты можно объединить. Если на рис. 6.8, г удалить сегмент 5, то две соседние пустбты, объединившись с фрагментом размером 4 Кбайт, который занимал удаленный сегмент, дадут в результате свободный фрагмент размером уже 11 Кбайт.

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

В этом случае одни страницы сегмента могут находиться в памяти, а другие — на диске. Чтобы разбить сегмент на страницы, для каждого сегмента нужна отдельная таблица страниц. Поскольку сегмент представляет собой линейное адресное пространство, все варианты разбиения на страницы, которые мы до сих пор рассматривали, применимы к любому сегменту. Единственное отличие состоит в том, что каждый сегмент получает отдельную таблицу страниц. 492 Глава 6. Уровень операционной системы МШ.Т1СЯ (Ми1Г1р1ехес1 1п1огшат1оп апг1 Сошрийпй ашетт)се — служба общей информации и вычислений) — это древняя операционная система, совмещающая сегментацию с разбиением на страницы.

Она была разработана Массачусетским технологическим институтом совместно с компаниями Вей 1.аЪз и Сепега1 Е!естпс [49, 1551. Адреса в МП1.Т!СЯ состоят из двух частей: номера сегмента и адреса внутри сегмента. Для каждого процесса существовал дескрипторный сегмент, содержащий дескрипторы каждого сегмента. При аппаратном получении виртуального адреса для нахождения дескриптора нужного сегмента номер сегмента использовался в качестве индекса в дескрипторном сегменте (рис.

6.9). Дескриптор указывал на таблицу страниц, что позволяло разбивать на страницы каждый сегмент обычным способом. Для повышении производительности недавно использованные сочетания сегментов и страниц помещались в ассоциативную память из 16 элементов. Операционная система М1Л.Т1СЯ уже давно не применяется, но виртуальная память всех процессоров 1пте1, начиная с 386, очень похожа на эту систему. Составной Мс!~Т!СЗ-адрес Рис.

6.9. Преобразование соотавного М0! Т!СЗ-адреса в адрес основной памяти Виртуальная память Репбит 4 Рептшш 4 имеет сложную систему виртуальной памяти, которая поддерживает вызов страниц по требованию, чистую сегментацию и сегментацию с разбиением на страницы. Виртуальная память состоит из двух таблиц: ЕРТ (Еоса1 1)езсг1ргог ТаЫе — локальная таблица дескрипторов) и 01ЭТ (01оЪа! Пезсг1ртог ТаЫе— глобальная таблица дескрипторов). Каждая программа имеет собственную локальную таблицу дескрипторов, а единственная глобальная таблица дескрипторов разделяется всеми программами компьютера.

Локальная таблица дескрипторов описывает локальные сегменты каждой программы (ее код, данные, стек и т. д.), Виртуальная память 493 а глобальная таблица дескрипторов — системные сегменты, в том числе самой операционной системы. Как уже отмечалось в главе 5, чтобы получить доступ к сегменту, Репгшш 4 сначала загружает селектор сегмента в один из сегментных регистров. Во время выполнения программы регистр СЯ содержит селектор сегмента кода, Р8 — селектор сегмента данных и т.

д. Каждый селектор представляет собой 16-разрядное число (рис. 6.10). Биты 1З 1 г Уровень привилегий 10-3) Рис. 6.10. Селектор Реп1)огп 4 Один из битов селектора показывает, является сегмент локальным или глобальным (то есть к какой из двух таблиц дескрипторов, локальной или глобальной, он относится). Е1це 13 бит определяют номер элемента в локальной или глобальной таблице дескрипторов, поэтому объем каждой из этих таблиц ограничен значением 8 Кбайт (2'3) сегментных дескрипторов. Оставшиеся два бита связаны с защитой. Мы опишем их позже.

Дескриптор О недействителен и вызывает исключение. Его можно загрузить в регистр сегмента, чтобы показать, что регистр сегмента недоступен, но если попытаться использовать дескриптор О, будет вызвано исключение. Когда селектор загружается в сегментный регистр, соответствующий дескриптор вызывается из локальной или глобальной таблицы дескрипторов и сохраняется во внутренних регистрах диспетчера памяти, поэтому к нему можно быстро получить доступ. Дескриптор состоит из 8 байт. Сюда входит базовый адрес сегмента, его размер и другая информация (рис. 6.11).

Относительный адрес 32 бита -3) 1— в ует в памяти вует в памяти 0 — 1 1 — 3 сегмент Рнс. 6.11. Дескриптор сегмента кода Репбогп 4. Сегменты данных практически ничем не различаются 494 Глава 6. Уровень операционной системы Формат селектора выбран таким образом, чтобы упростить поиск дескриптора. Сначала на основе бита 2 в селекторе выбирается локальная или глобальная таблица дескрипторов. Затем селектор копируется во временный регистр диспетчера памяти, а три младших бита принимают значение 0 — в результате 13-разрядное число селектора умножается на 8. Наконец, к этому значению прибавляется адрес из локальной или глобальной таблицы дескрипторов (который хранится во внутренних регистрах диспетчера памяти), и в результате получается указатель на дескриптор.

Например, селектор 72 обращается к элементу 9 в глобальной таблице дескрипторов, который находится в ячейке с адресом СПТ+ 72. Давайте проследим, каким образом пара (селектор, смещение) превращается в физический адрес. Как только аппаратно определяется, какой именно регистр сегмента используется, во внутренних регистрах можно найти полный дескриптор, соответствующий данному селектору. Если такого сегмента не существует (селектор 0), или в данный момент он не находится в памяти (Р = 0), вызывается исключение. В первом случае это — программная ошибка; второй случай требует, чтобы операционная система вызвала нужный сегмент.

Затем аппаратно проверяется, не выходит ли смещение за пределы сегмента. Если выходит, то снова вызывается исключение. По логике вещей в дескрипторе должно быть 32-разрядное поле для определения размера сегмента, но там в наличии имеется всего 20 бит, поэтому в данном случае используется совершенно другая схема. Если поле С (Стаи!аг)1у — степень детализации) равно О, то поле Е1М!Т (максимальное значение) дает точный размер сегмента (до 1 Мбайт).

Если поле С равно 1, то поле 1.1М1Т указывает размер сегмента в страницах, а не в байтах. Размер страницы в компьютере Репсшш 4 никогда не бывает меньше 4 Кбайт, поэтому 20 бит достаточно для сегментов размером до 2зз байт. Если сегмент находится в памяти, а смещение не выходит за границу сегмента, Репг1пш 4 прибавляет 32-разрядное поле ВАЗЕ (базовый адрес) в дескрипторе к смещению, в результате чего получается линейный адрес (рис. 6.12). Поле ВАЗЕ разбивается на три части и разносится по дескриптору, чтобы обеспечить совместимость с процессором 80286, в котором размер ВАКЕ составляет всего 24 бита.

Поэтому каждый сегмент может начинаться с произвольного места в 32-разрядном адресном пространстве. 32-разрядный линейный адрес Рис. б.12. Преобразование пары селектор-смещение в линейный адрес Виртуальная память 495 Если разбиение на страницы блокировано (это определяется по биту в глобальном регистре управления), линейный адрес интерпретируется как физический адрес и отправляется в память для чтения или записи. Таким образом, при блокировке разбиения на страницы мы имеем «чистую» схему сегментации, где каждый базовый адрес сегмента присутствует в его дескрипторе.

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

Поэтому, чтобы сократить размер таблицы страниц для маленьких сегментов, применяется двухуровневое отображение. Каждая работающая программа имеет специальную таблицу страниц, которая состоит из 1024 32-разрядных элементов. Ее адрес указывается глобальным регистром. Каждый элемент в этой таблице указывает на таблицу страниц, которая также содержит 1024 32-разрядных элементов. Элементы таблицы страниц указывают на страничные кадры. Схема изображена на рис. 6.13. Линейный адрес 10 12 Биты 10 Таблица страниц Каталог страниц Страничный кадр Выбранное слово О!й рис.

6.13. Отображение линейного адреса на физический На рис. 6.13, а мы видим линейный адрес, разбитый на три поля: О1К, РАСЕ и ОРГ. Поле П1К используется в качестве индекса в каталоге страниц для нахождения указателя на нужную таблицу страниц. Поле РАСЕ является индексом в таблице страниц при нахождении физического адреса страничного кадра. Наконец, поле ОГГ прибавляется к адресу страничного кадра, что позволяет получить физический адрес нужного байта или слова. Размер каждого элемента таблицы страниц — 32 бита, 20 из которых содержат номер страничного кадра. Оставшиеся биты включают бит доступа и бит 496 Глава 6.

Уровень операционной системы изменения, которые устанавливаются аппаратно, чтобы помочь операционной системе, биты защиты и некоторые другие. В каждой таблице страниц содержатся элементы для 1024 страничных кадров по 4 Кбайт каждый, поэтому одна таблица страниц может работать со значением 4 Мбайт памяти. Сегмент короче 4 Мбайт будет иметь каталог страниц с одним элементом (указателем на его единственную таблицу страниц). Таким образом, непроизводительные издержки для коротких сегментов составляют всего две страницы, а не миллион страниц, как было бы в одноуровневой таблице страниц. Чтобы избежать повторных обращений к памяти, диспетчер памяти Репг1пш 4 имеет встроенную аппаратную поддержку для поиска недавно использовавшихся комбинаций полей П1К-РАСЕ и отображения их на физический адрес соответствующего страничного кадра.

Характеристики

Тип файла
DJVU-файл
Размер
13,7 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6473
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее