Ядро ОС Linux

       

Данные управления памятью в таблице процессов


Ниже приводится краткое описание некоторых данных, содержащихся в таблице процессов, которые используются для управления памятью: [Это должно быть документировано значительно лучше. Необходима значительно большая детализация]

  • Ограничения на память процесса: ulong start_code, end_code, end_data, brk, start_stack;
  • Определение нарушения страницы: ulong min_flt, maj_flt, cmin_flt, cmaj_flt;
  • Локальная таблица дескриптора: struct desc_struct ltd[32] представляет собой локальную таблицу дескриптора задачи.
  • rss количество резидентных страниц.
  • swappable: если - 0, тогда страницы процесса не замещаются.
  • kernel_stack_page: указатель на страницу, размещенную при распараллеливании.
  • saved_kernel_stack: V86 режим работы.
  • struct tss
  • Сегмент стека esp0 указатель на стек ядра (kernel_stack_page)

    ss0 сегмент стека ядра (0х10)

    esp1 = ss1 = esp2 = ss2 = 0

    неиспользуемые привилегированные уровни.

  • Секторы сегмента: ds = es = fs = gs = ss = 0x17, cs = 0x0f все указатели на сегменты в текущем ltd[].
  • cr3: указывает на директорию страниц для данного процесса.
  • ltd: _LTD(n) селектор для LTD текущей задачи.


  • Содержание раздела