• Снять однокомнатную квартиру в Москве на октябрьском поле

    снять однокомнатную квартиру в Москве на октябрьском поле

    arenda-kvartir.ndv.ru

  • Порошковая покраска

    Порошковая покраска дисков(акция - порошковая покраска.

    www.flagman3000.ru





Linux Kernel (Ядро линукса) (часть 1)


Доступ к неоднородной памяти (NUMA)

Мы привыкли считать память компьютера однородным общедоступным ресурсом. Если не принимать во внимание роль аппаратных кэшей, мы полагаем, что время, необходимое процессору для обращения к ячейке памяти, практически не зависит от физического адреса ячейки и от конкретного процессора. К сожалению, в некоторых архитектурах это предположение неверно. Например, дела обстоят не так в отношении некоторых многопроцессорных компьютеров Alpha или MIPS.

Linux поддерживает модель NUMA (Non-Uniform Memory Access, Доступ к неоднородной памяти), в которой время обращения данного процессора к разным ячейкам памяти может варьироваться. Физическая память системы разделяется на несколько узлов. Время, необходимое данному процессору для обращения к страницам в пределах одного узла, одинаково. Однако оно может быть разным у двух различных процессоров. Для каждого процессора ядро старается минимизировать количество обращений к "дорогим" узлам, тщательно следя за тем, где хранятся данные ядра, наиболее часто запрашиваемые этим процессором.

Физическая память внутри каждого узла может быть разбита на несколько зон, в чем мы убедимся в следующем разделе. У каждого узла есть дескриптор типа pg data t. Все дескрипторы узлов собраны в однонаправленный список, на первый элемент которого указывает переменная pgdat iist.

Нас, как обычно, в первую очередь, интересует архитектура 80x86. В IBM- совместимых компьютерах применяется модель UMA (Uniform Memory Access, Доступ к однородной памяти), и, следовательно, поддержка модели NUMA не требуется. Однако если поддержка NUMA не компилирована в ядро, Linux будет использовать единственный узел, включающий в себя всю физическую память системы. Таким образом, переменная pgdat iist будет указывать на список из одного элемента (дескриптора узла 0), хранящийся В переменной contig_page_data.

Группирование физической памяти в одном узле в архитектуре 80x86 может показаться бесполезным делом, но такой подход делает код управления па
мятью переносимым на другие платформы, поскольку ядро может предполагать, что физическая память разделена на один или несколько узлов в любой архитектуре.

Предыдущая страница | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | Следующая страница




Возможно, Вас также заинтересует:

ОС Knoppix - это Linux без проблем

ВведениеЕсли вы цените свое время, умеете считать деньги и знаете стоимость информации, то эта книга для вас. А так как к книге прилагается компакт- диск с готовой к работе операционной системой Knoppix Live CD, то лишь достаточно вставить его в привод и перегрузить компьютер,...

Linux Kernel (Ядро линукса) (часть 1)

Спин-блокировкаСпин-блокировка необходима в многопроцессорной системе, потому что могут возникнуть другие прерывания того же типа, и другие процессоры могут приступить к их обработке. Без спин-блокировки к главному дескриптору прерывания могли бы обратиться сразу несколько процессоров. Как мы...

Linux Kernel (Ядро линукса) (часть 2)

Копирование при записи В системах Unix первых поколений создание процесса было реализовано довольно неуклюже: получив системный вызов fork о, ядро в буквальном смысле дублировало все адресное пространство родителя и присваивало копию процессу-потомку. Такая операция...

Linux Kernel (Ядро линукса) (часть 3)

Буферы блоков и головы буферовУ каждого буфера есть дескриптор голова буфера, имеющий тип buffer head. Этот дескриптор содержит всю информацию, необходимую ядру для работы с блоком, так что перед обработкой блока ядро обязательно проверяет голову...