Помощь в учёбе, очень быстро...
Работаем вместе до победы

Взаимодействия подсистем ядра UNIX

РефератПомощь в написанииУзнать стоимостьмоей работы

На рис. 2.2 показана концептуальная высокоуровневая декомпозиция ядра Linux, где стрелками показаны зависимости одной подсистемы от другой. Планировщик использует ММ для регулирования объема памяти, выделяемого различным процессам, когда процессы возобновляют свою работу. Система VFS использует NET для поддержки сетевой файловой системы (NFS), а также применяет ММ для обеспечения работы… Читать ещё >

Взаимодействия подсистем ядра UNIX (реферат, курсовая, диплом, контрольная)

В ядре ОС UNIX можно выделить пять главных подсистем (см. параграф 2.1).

На рис. 2.2 показана концептуальная высокоуровневая декомпозиция ядра Linux, где стрелками показаны зависимости одной подсистемы от другой[1].

Концептуальная декомпозиция системы.

Рис. 2.2. Концептуальная декомпозиция системы.

Данная схема была построена разработчиками иЫ1Х в 1980;е гг. на основе использованных принципов взаимодействия различных подсистем с использованием системных вызовов. Такая схема длительно использовалась разработчиками в процессе создания и модификации ОС. Однако, но прошествии 20 лет эффективность работы системы стала ухудшаться, несмотря на значительные усилия разработчиков, стремящихся ее улучшить. Поскольку в реальном создании этой ОС принимало участие множество групп разработчиков из разных частей света (Европы, Азии, Южной и Северной Америки), их усилия не приносили положительных результатов. Это объяснялось тем, что каждая группа в течение долгого времени вносила изменения в некоторую подсистему, независимо от остальных групп, при этом не учитывая изменения, вносимые другими разработчиками. Координаторы проекта были не в состоянии отследить все изменения, сделанные за последние 15—20 лет. Поэтому и было принято решение о проведении реинжиниринга[2] системы 1лпих.

Результат такого реинжиниринга показал, что реальная структура системы 1лпих существенно отличается от ее концептуальной архитектуры. Так, на рис. 2.3 показана реальная архитектура системы 1лпих, полученная в результате такого реинжиниринга. На рисунке видно, что количество связей в реальной системе значительно больше. Это значит, что модификация системы только на основе старой концептуальной схемы может привести к ухудшению или нарушению работы ОС.

На схемах рис. 2.2 и 2.3 центральное место отведено процессу планирования — планировщику. Все остальные подсистемы существенно зависят от процесса планирования, так как именно он приостанавливает и возобновляет работу всех остальных процессов. Обычно работа подсистемы приостанавливается, когда некоторый процесс ожидает освобождения некоторого ресурса в виде устройства или памяти, которые заняты другим процессом. Например, когда процесс пробует послать сообщение через сеть, сетевой интерфейс приостанавливает работу процесса до тех пор, пока сетевой адаптер успешно не отошлет это сообщение. После отправки сообщения сетевой интерфейс возобновляет процесс с кодом, свидетельствующим об успешности или неуспешное™ выполнения операции. Все другие подсистемы зависят от планировщика аналогично.

Реальная декомпозиция модулей ядра.

Рис. 23. Реальная декомпозиция модулей ядра.

Другие зависимости проявляются менее очевидно, но являются не менее важными.

Планировщик использует ММ для регулирования объема памяти, выделяемого различным процессам, когда процессы возобновляют свою работу.

В то же время сами процессы планирования размещены в памяти и, следовательно, ММ влияет на работу планировщика.

Межпроцессное взаимодействие IPC зависит от ММ через механизм разделения памяти. Этот механизм предоставляет двум процессам доступ в одну общую область памяти в дополнение к их собственным неразделяемым областям.

Система VFS использует NET для поддержки сетевой файловой системы (NFS), а также применяет ММ для обеспечения работы виртуальных дисков.

Memory Manager использует VFS для поддержки работы своппинг или пейджинг. Однако когда процессу необходимо выделить память, то она выделяется прямо в swap-файле, при этом ММ выполняет запрос к файловой системе на выделение памяти из постоянной области и приостанавливает процесс.

В дополнение к зависимостям, которые показаны явно, все подсистемы ядра зависят от общих ресурсов, которые не показаны на рисунке. Эти ресурсы включают в себя процедуры, используемые всеми подсистемами для выделения и освобождения памяти, для самого ядра, процедур печати предупредительных сообщений или системных ошибок, а также системных отладочных процедур. Обращение к этим ресурсам происходит неявно, так как они используются главным образом внутри ядра.

  • [1] Bozeman I. Conceptual Architecture of the Linux Kernel. URL: http://www.stillhq.com/pdfdb/524/data.pdf.
  • [2] Bowman I. Conceptual Architecture of the Linux Kernel. URL: http://www.stillhq.com/pdfdb/524/data.pdf.
Показать весь текст
Заполнить форму текущей работой