Почему 16-битный адрес с 12-битным смещением приводит к размеру страницы 4 КБ? - PullRequest
10 голосов
/ 12 сентября 2010

Я читаю книгу "Современная операционная система".И я не совсем понимаю, что такое «Размер страницы».

В книге автор говорит:

Входящий 16-битный виртуальный адрес разбит на 4-битную страницучисло и 12-битное смещение.С 4 битами для номера страницы мы можем иметь 16 страниц, а с 12 битами для смещения мы можем адресовать все 4096 байтов на странице.?С 12 битами мы можем адресовать 4096 записей на странице, правильно.Но одна запись - это адрес (в этом случае размер адреса = 16 бит).Поэтому я думаю, что мы можем обратиться к 4096 (запись) * 16 (бит) = 4096 (запись) * 2 (байт) = 8 КБ, но почему в книге сказано, что мы можем адресовать 4096 (байт)?заранее!:)

Ответы [ 4 ]

9 голосов
/ 12 сентября 2010

Предполагается, что используется адресная память в байтах (которую использует почти каждая машина, созданная за последние 30 лет), поэтому каждый адрес относится к байту, а не к записи или адресу или какому-либо другому большему значению.Чтобы хранить 16-битное значение, вам понадобятся два последовательных адреса (два байта).

Более 30 лет назад раньше были машины с адресом слова, которые работали, как вы думаете.Но таким машинам было непросто иметь дело с байтово-ориентированными данными (такими как символы ASCII), и поэтому они потеряли популярность.В настоящее время такие вещи, как адресуемость байтов, 8-битные байты и целые числа, дополняющие два, в значительной степени предполагаются.

3 голосов
/ 12 сентября 2010

12 бит - это смещение на странице.Смещение указывается в байтах, а не в адресах.2 ^ 12 - 4096.

0 голосов
/ 03 октября 2016

хорошо, так что у вас есть 16-битный виртуальный адрес, давайте посмотрим, что это значит. Это значит, что у вас 2 ** 16 = 65536 байт.

4-битный номер страницы, что означает, что есть 16 страниц при 2 ^ 4 = 16 Теперь вы называете страницы как страница1, страница2 ... страница16.

Теперь у нас осталось 12 битов, давайте посмотрим, сколько адресов может представлять 12 битов 2 ** 12 = 4096 байт

65536 байт можно также разделить на 16 страниц, каждый из которых содержит 4096 байт: 4096 * 16 = 65536

.
0 голосов
/ 17 апреля 2014

Вы рассчитываете размер страницы, то есть размер страницы в таблице страниц в памяти.Поскольку мы используем 12 бит для смещения, каждый кадр в физической памяти равен 2 ^ 12 = 4096K.Однако каждая страница в таблице страниц занимает в памяти 2 ^ 12 записей x 2 байта = 8 КБ.

...