Router# show region
Region Manager:
Start | End | Size (b) | Class | Media | Name |
0x1A000000 | 0x01FFFFFF | Iomem | R/W | iomem | |
0x31A00000 | 0x31FFFFFF | Iomem | R/W | iomem: (iomem_cwt) | |
0x4B000000 | 0x4B0FFFFF | PCI | R/W | pcimem | |
0x60000000 | 0x619FFFFF | Local | R/W | main | |
0x600088F8 | 0x61073609 | IText | R/O | main: text | |
0x61074000 | 0x611000FF | IData | R/W | main: data | |
0x61100100 | 0x6128153F | IBss | R/W | main: bss | |
0x61281540 | 0x619FFFFF | Local | R/W | main: heap | |
0x7B000000 | 0x7B0FFFFF | PCI | R/W | pcimen: (pcimen_cwt) | |
0x80000000 | 0x819FFFFF | Local | R/W | main: (main_k0) | |
0xA0000000 | 0xA19FFFFF | Local | R/W | main: (main_k1) |
Рис.5.3. Результат виконання команди show region
Колонки StartіEnd виведеної таблиці вказують на початкові і кінцеві адреси областей пам’яті в загальному просторі віртуальної пам’яті системи. Справа вказані відповідні області і підобласті. Імена підобластей не виділені дужками і відділені двокрапкою від відповідних областей. На рис.5.4 показані відповідні області з підобластями.
Рис. 5.4. Карта пам’яті і області пам’яті
Між різними областями пам’яті спеціально залишені пропуски в просторі адрес (наприклад, область pcimem закінчується на адресі 0x4B0FFFFF, а область main починається з адреси 0x60000000). Ці вільні області можуть використовуватися для розширення і надає деякого роду захист від виконання потоків з помилками. Якщо потік, який вийшов з під контролю, почне записувати сміття різні ділянки пам’яті, то такий потік негайно буде зупинений при спробі записати будь-що у вільну пам’ять.
З прикладу, що зображені на рис.5.3 і рис. 5.4 бачимо, що вся область DRAM-пам’яті, починаючи з адреси 0х60000000 і закінчуючи адресою 0х619FFFFF, роздивляється як локальна область (local) і поділяється на декілька підобластей. Такі під області відповідають різноманітним частинам образу системи IOS (текст. BBS і дані), також кучі. Кучею позначається вся вільна локальна пам’ять після того, як в неї був завантажений образ системи.
Назви деяких областей повторюються в різних адресах пам’яті, як, наприклад, для області iomem:(iomem_cwt):
Start | End | Size (b) | Class | Media | Name |
0x1A000000 | 0x01FFFFFF | Iomem | R/W | iomem | |
0x31A00000 | 0x31FFFFFF | Iomem | R/W | iomem: (iomem_cwt) | |
..... |
Такі регіони, що повторюються називаються аліасами (aliases).В деяких платформах Cisco використовується декілька діапазонів адрес для зазначення одної тої ж самої області пам’яті. Аліаси використовуються для забезпечення альтернативного методу доступу до регіону пам’яті, в той час як інший діапазон адрес забезпечує некешований доступ до тої ж самої ділянки пам’яті.
Дублюючі області пам’яті створюються в процесі ініціалізації системи. Звичайно, аліаси не враховуються при розрахунку загального об’єму пам’яті системи ( тому що вони насправді не являються окремою фізичною пам’яттю, а лише надають альтернативний метод доступу).
Пули пам’яті
Керування пам’яті в системі IOS виконується за допомогою так званих пулів пам’яті (memory pools). Кожний пул являє собою блок пам’яті, який може буди виділений з кучі або звільнений від використовування. Пули складаються з областей пам’яті, а керування ними виконується ядром системи. Дуже часто пул пам’яті в точності відповідає області пам’яті, однак один пул може покривати і декілька ділянок пам’яті. Таким чином, пам’ять може виділятися для використання зразу декількох областей, що є дуже ефективним.
Інформація про пули пам’яті може бути отримана за допомогою команди show memory.
Router#show memory
Head | Total (b) | Used (b) | Free (b) | Lowest (b) | Largest (b) | |
Processor | ||||||
I/O | 1A00000 | |||||
PCI | 4B000000 | |||||
….. |
Рис.5.5.Результат виконання команди show memory
З прикладу 5.5 видно, що в системі віділені три пули пам’яті: Processor,I/OIPCL. Порівнюючи значення колонки Head (адреса пула) з відповідними значеннями з колонкиStart (початкова адреса) команди show region (приклад рис.5.6), можливо визначити, які області покриває кожний пул пам’яті.
Дата добавления: 2016-05-05; просмотров: 413;