Re[27]: А если бы все с начала ?
От: AlexRK  
Дата: 16.01.18 20:09
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>В некоторых (относительно простых) случаях получается , верно, статический анализ. А в более сложных случаях — приходится вставлять условие, то есть проверять в рантайме, не статически. Фактически ты заставишь программиста писать все эти проверки в коде, вместо того, чтобы пустить все на нормальный самотек и ловить исключения, если он потек не туда.


Да, всё верно.

PD>Вот только быстрее это не будет. Потому что 99.9% обращений обычно валидны, так что тут лишние проверки, и ничего больше.

PD>А аппаратный контроль — это по сути тот же подход — пустить на самотек и ловить исключение в случае неприятности. В 99.9% их и не будет. Кстати, я не уверен даже в том, что там все проверки производятся. Если, скажем, *p обращение прошло, будет ли проверка по *(p+1), если это в пределах одной страницы ? Мне кажется, при этом TLB сработает, и проверки фактически не будет. Возможно, ошибаюсь.

Вы забываете про переключения контекста, которые очень сильно снижают производительность и выполняются в стстемах с аппаратной защитой _постоянно_. Статическая верификация позволяет выполнять весь код в одном «кольце» (да, собственно, кольца вообще не нужны).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.