Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

Примечание: в компиляторостроении под драйвером понимается утилита, которая позволяет управлять процессом трансляции и вызывает все остальные компоненты, как то собственно компилятор, оптимизатор, кодогенератор, и т. д. Например команда сс – это драйвер компилятора С.

Провайдеры и датчики

Модуль DTrace не оснащает код инструментальными средствами, делегируя эту задачу провайдерам, которые в свою очередь также являются модулями ядра. Когда модуль DTrace даёт соответствующую команду, провайдеры определяют точки в системе, куда они потенциально могут вставить инструментальные средства. Для каждой найденной точки провайдер делает обратный вызов модуля DTrace, чтобы создать датчик (probe). То есть, по сути, провайдер – это модуль ядра, который создаёт множество датчиков, сгруппированных по тому или иному принципу (например, функции ядра, системные вызовы или функции какого-то пользовательского приложения). При помощи команды modinfo(1M) можно посмотреть на некоторые модули ядра некоторых стандартных провайдеров в Solaris:

jedi# modinfo | grep Tracing

  4 f93dc000  16438 155   1  dtrace (Dynamic Tracing)

207 f930631c    d98 156   1  profile (Profile Interrupt Tracing)

208 f9200ab8    554 157   1  systrace (System Call Tracing)

209 feb56c04    c5c 158   1  fbt (Function Boundary Tracing)

211 f93894f8   1304 159   1  sdt (Statically Defined Tracing)

212 f927b000   3fcc 167   1  fasttrap (Fasttrap Tracing)

225 f91358bc    68c 241   1  lx_systrace (Linux Brand System Call Tracing)

В примере вы видите модули ядра самого DTrace и провайдеры, которые присутствуют при установке Solaris 10 в базовой конфигурации. О некоторых из них я расскажу подробнее, сейчас же хочу обратить ваше внимание на модуль lx_systrace, который реализует провайдер lxsyscall для типизированных зон Linux (BrandZ) и содержит множество датчиков для трассировки системных вызовов Linux. На данный момент, насколько мне известно, это единственно возможный способ воспользоваться DTrace для трассировки Linux-приложений.

Для того чтобы создать датчик, провайдер специфицирует имена модуля и функции для точки инструментальной модификации кода и собственно его семантическое имя. Причем под модулем в данном контексте надо понимать программную принадлежность датчика. Для ядра это будет название модуля ядра (например, zfs), для приложений это будет или библиотека (libjvm.so, libc.so), или даже некоторая пользовательская подсистема (Xorg). Функция – это имя функции, в которой находится датчик, как, например, ufs_read() в ядре или же printf() из libc для пользовательского приложения, а семантическое имя – по сути осмысленное название, как, например, on-cpu и off-cpu для датчиков планировщика или же start для датчиков ввода-вывода.


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2016 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100