Bush Опубликовано 19 декабря, 2010 Жалоба Поделиться Опубликовано 19 декабря, 2010 Добрый день. Читаю о дескрипторе сегментов. Возник вопрос, касательно размещения информации о начале/конце сегмента. Скрин: Верхнее изображение взято мною отсюда. Нижнее - это детализация верхного изображения, выполненная мною для большей наглядности: разбил на 4 части, по два байта каждая и пронумеровал по порядку все биты. Из схемы видно, что адрес начала сегмента прописан в битах 16-39 и 56-63. Т.е. для того, чтобы получить полный линейный адрес начала сегмента, необходимо выполнить конкатенацию этих битов? Почему линейный адрес не прописывается подряд, например с 16 по 47? Для чего такое разбиение? Аналогичное разбиение видим для адреса конца сегмента - он так же разбит на два блока битов: 0-15 и 48-51. Благодарю за внимание. С уважением Андрей. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AccessD Опубликовано 19 декабря, 2010 Жалоба Поделиться Опубликовано 19 декабря, 2010 Полистайте "Understanding the Linux Kernel", раздел про сегменты. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Bush Опубликовано 19 декабря, 2010 Автор Жалоба Поделиться Опубликовано 19 декабря, 2010 Если кого интересует ответ, то он такой (получил на др. форуме): Цитата: Так сложилось исторически. Впервые защищенный режим появился в 80286, где дескрипторы были по 8 байт, но два старших были зарезервированы. В 80386 ввели поддержку адресации 4Г памяти, и для этого расширили поля базы и лимита, но для обеспечения обратной совместимости младшие 6 байт дескриптора оставили без изменений. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Bush Опубликовано 19 декабря, 2010 Автор Жалоба Поделиться Опубликовано 19 декабря, 2010 Ещё меня интересовал такой вопрос: почему в том случае, когда флаг G установлен в 1, за единицу измерения (при определении размера смещения последней ячейки сегмента) принимается именно 4096 байт (т.е. 2 в 12 степени), а не что-то другое? Ответ скорее всего такой: потому, что 4Kb - это размер страницы (4096b = 4Kb). В Linux отдаётся предпочтение страничной модели памяти. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.