[an error occurred while processing this directive]
|
Они заранее должны быть прописаны для всех процессов; то есть, все entry от 0 до 32M принадлежпт процессу 0, с 32 до 64 - процессу 1 и т.д.
В чём вообще смысл: представьте, что вы переклютаете задачи, не меняя ProcID. Что для этого надо сделать? Надо полностью заменить Translation tables, а затем инвалидировать TLB (TLB - это кэш TT), ведь старый и новый процессы генерят одни и те же виртуальные адреса, и если не инвалидировать TLB, то новый процесс получит контроль над данными старого!
Но TT Walk - очень ресурсоёмкая операция, поэтому если есть возможность не инвалидировать TLB - это хорошо!
С кэшом ровно то же самое.
Чё-нибудь понятно, или я того.. заврался?
E-mail: info@telesys.ru