Bush 0 Posted December 19, 2010 Report Share Posted December 19, 2010 Добрый день. Читаю о дескрипторе сегментов. Возник вопрос, касательно размещения информации о начале/конце сегмента. Скрин: Верхнее изображение взято мною отсюда. Нижнее - это детализация верхного изображения, выполненная мною для большей наглядности: разбил на 4 части, по два байта каждая и пронумеровал по порядку все биты. Из схемы видно, что адрес начала сегмента прописан в битах 16-39 и 56-63. Т.е. для того, чтобы получить полный линейный адрес начала сегмента, необходимо выполнить конкатенацию этих битов? Почему линейный адрес не прописывается подряд, например с 16 по 47? Для чего такое разбиение? Аналогичное разбиение видим для адреса конца сегмента - он так же разбит на два блока битов: 0-15 и 48-51. Благодарю за внимание. С уважением Андрей. Quote Link to post Share on other sites
AccessD 1 Posted December 19, 2010 Report Share Posted December 19, 2010 Полистайте "Understanding the Linux Kernel", раздел про сегменты. Quote Link to post Share on other sites
Bush 0 Posted December 19, 2010 Author Report Share Posted December 19, 2010 Если кого интересует ответ, то он такой (получил на др. форуме): Цитата: Так сложилось исторически. Впервые защищенный режим появился в 80286, где дескрипторы были по 8 байт, но два старших были зарезервированы. В 80386 ввели поддержку адресации 4Г памяти, и для этого расширили поля базы и лимита, но для обеспечения обратной совместимости младшие 6 байт дескриптора оставили без изменений. Quote Link to post Share on other sites
Bush 0 Posted December 19, 2010 Author Report Share Posted December 19, 2010 Ещё меня интересовал такой вопрос: почему в том случае, когда флаг G установлен в 1, за единицу измерения (при определении размера смещения последней ячейки сегмента) принимается именно 4096 байт (т.е. 2 в 12 степени), а не что-то другое? Ответ скорее всего такой: потому, что 4Kb - это размер страницы (4096b = 4Kb). В Linux отдаётся предпочтение страничной модели памяти. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.