Re[2]: Можно ли сделать переключение контекста библиотеки в пределах процесса?
От: alexraynepe196  
Дата: 14.11.20 18:15
Оценка:
Здравствуйте, a7d3, Вы писали:

A>Нет, потому что MMU работает с контекстами виртуальных адресных пространств. Транслируя адреса из нескольких совершенно разных адресных пространств в одно пространство — реальные адреса физических страниц памяти.

A>Выполняется это посредством ассоциативного кэша в виде TLB (который как правило ещё и двух-уровневый).
Собственно я про это и говорил, коментируя ММУ — имея один общий сегмент кода, можно передавать ей разный сегмент данных.

A>Т.е. средства ОС не помогут в данном случае избежать необходимости ломать реализацию проблемной библиотеки — таки придётся её переделывать.

A>Чтобы библиотека в явной форме позволяла управлять контекстами — теми экземплярами объектной модели (областями данных), которые предоставляет для изменения клиентским кодом.
A>Фактически исполняемому коду библиотеки надо будет принимать некий токен/хэндл, являющийся индексом в таблице контекстов.

У меня нет возможности переделывать структуру клиентской библиотеку — собственно задача среды как раз есть смоделировать работу клиентского кода таким какой он есть.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.