Объекты DPC

Вакуум

Мы получили, что средняя длина свободного пробега обратно пропорциональна давлению Р, т.е. с уменьшением давления средняя длина свободного пробега увеличивается. Состояние газа, при котором средняя длина свободного пробега молекул становится соизмеримой с размерами сосуда, называется вакуумом.

Уровень вакуума Р, мм рт. ст. n, м-3
l < L – низкий l = L – средний l > L – высокий l >> L – сверхвысокий »1 »10-3 »10-6 »10-13 »1022 »1019 »1016 »109

Вакуум: l = L.

- давление вакуума.

К настоящему времени разработаны методы получения и поддержания вакуума в достаточно больших объёмах. Успехи в этой области являются достоянием вакуумной техники.

Теплопроводность газов

Рассмотрим газ, в котором каким-то способом поддерживается непостоянство температуры вдоль направления, которое мы обозначим буквой x. Представим мысленно площадку площадью S, перпендикулярную к этому направлению. В этом случае через площадку S возникает поток тепла, величина которого определяется формулой:

,

где - градиент температуры, т.е. величина, показывающая, как быстро изменяется температура в направлении оси х, c (каппа) – коэффициент пропорциональности, зависящий от свойств среды и называемый коэффициентом теплопроводности. Знак минус в формуле отражает то обстоятельство, что тепло течёт в направлении убывания температуры. Эта формула называется уравнением теплопроводности или законом Фурье.

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

Исходя из упрощённых представлений, будем считать, что количество молекул, пролетающих через площадку S за секунду, равно

.

Каждая молекула несёт с собой энергию, соответствующую температуре в том месте, где произошло последнее соударение её с другой молекулой. Молекулам, летящим вдоль оси х, следует приписать энергию

,

отвечающую температуре в плоскости (х-l), а молекулам, летящим в противоположном направлении, - энергию

,

отвечающую температуре в плоскости (х + l), где х – координата плоскости S (см. рис.).

Тогда количество энергии, переносимое молекулами за секунду через площадку S в положительном направлении оси х, можно записать следующим образом:

Сравнивая полученное выражение с законом Фурье, получим выражение для коэффициента теплопроводности через молекулярно-кинетические параметры газа:

.

Диффузия в газах

Предположим, что в единице объёма двухкомпонентной газовой смеси содержится n1 молекул одного вида и n2 молекул другого вида. Полное число молекул в единице объёма равно n = n1 + n2­. Допустим, что в направлении оси х создаются градиенты концентраций , причём . Тогда, , так что n, а, следовательно, и Р постоянны (в силу Р = nkT).

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

Поток молекул i – го вида через перпендикулярную к оси х поверхность S определяется выражением

,

где D – коэффициент пропорциональности, называемый коэффициентом диффузии. Знак минус указывает на то, что поток молекул направлен в сторону убывания концентрации. Умножив обе части этого равенства на массу молекулы i – го вида mi, получим выражение для потока массы i – ой компоненты:

,

где ri = nimi – парциальная плотность i – ой компоненты.

Эти формулы представляют собой эмпирические уравнения диффузии. Их называют уравнением Фика.

Получим уравнение диффузии, основываясь на молекулярно-кинетических представлениях, причём для упрощения расчётов будем считать, что молекулы обеих компонент мало отличаются друг от друга по массе (m1» m2» m) и имеют практически одинаковые эффективные диаметры (d1» d2» d). В этом случае молекулам обеих компонент можно приписывать одинаковую среднюю скорость теплового движения < u >, а среднюю длину свободного пробега вычислить по формуле , где n = n1 + n2.

Пусть изменение концентрации первой компоненты вдоль оси х даётся функцией n1 = n1 (x).

Поток молекул первой компоненты летящих через поверхность S в положительном направлении оси х, равен

,

а соответствующий поток молекул первой компоненты, летящих в отрицательном направлении оси х равен разности этих потоков

.

Таким образом, мы пришли к уравнению диффузии Фика, причём получили для коэффициента диффузии выражение

.

Вязкость газов

Сила трения между двумя слоями жидкости может быть вычислена по формуле

,

где h- коэффициент вязкости, - градиент скорости, т.е. величина, показывающая, как быстро изменяется скорость жидкости или газа в направлении х, перпендикулярном к направлению движения слоёв, S – величина поверхности, по которой действует сила F. Это уравнение и есть эмпирическое уравнение вязкости.

Согласно второму закону Ньютона, взаимодействие двух слоёв с силой F можно рассматривать как процесс, в ходе которого от одного слоя к другому передаётся в единицу времени импульс, по величине равный F. Поэтому уравнение вязкости можно представить в виде

,

где К - импульс, передаваемый за секунду от слоя к слою через поверхность S. Следовательно, величину К можно рассматривать как поток импульса через поверхность S. Знак минус в этой формуле обусловлен тем обстоятельством, что импульс “течёт” в направлении убывания скорости u. Чтобы понять происхождение силы внутреннего трения, рассмотрим два соприкасающихся слоя газа некоторой толщины . Предположим, что слои движутся с различными скоростями u1 и u2. Каждая молекула газа участвует в двух перемещениях: хаотическом тепловом, средняя скорость которого равна < u >, и упорядоченном движении со скоростью u, которая много меньше < u >.

Пусть в какой-то момент времени слои обладают импульсами К1 и К2. Эти импульсы не могут оставаться неизменными, т.к. вследствие теплового движения происходит непрерывный переход молекул из одного слоя в другой. Попав в другой слой, молекулы претерпевают соударения с молекулами этого слоя, в результате чего она либо отдаёт избыток своего импульса другим молекулам (если она прилетела из слоя, движущегося с большей скоростью), либо увеличивает свой импульс за счёт других молекул (если она прилетела из слоя, движущегося с меньшей скоростью). В итоге импульс более быстро движущегося слоя убывает, а более медленно движущегося – возрастает.

Скорость u не может изменяться скачком на границе двух слоёв, а изменяется непрерывно в направлении х, перпендикулярном к слоям u = u (x) (см. рис.).

Среднее значение импульса молекул, летящих в положительном направлении оси х равно

,

а среднее значение импульса молекул, летящих в отрицательном направлении оси х, равно

.

Теперь поток импульса можно вычислить по формуле

.

Сравнивая полученное выражение с уравнением вязкости

,

и учитывая, что nm = r, получим выражение для коэффициента вязкости

.

Подставляя сюда выражения для l, < u > и r, получим, что коэффициент вязкости должен расти с температурой пропорционально .

Вызов DPC описывается Объектом DPC. Определение Объекта DPC (KDPC) произведено в ntddk.h и показано на Рисунке 6.4.

Рисунок 6.4. Объект DPC.

Объект DPC может быть выделен драйвером из любого невыгружаемого пространства (типа невыгружаемого пула). Объекты DPC инициализируются, используя функцию KeInitializeDpc(), прототип которой показан на Рисунке 6.5.

VOID KeInitializeDpc (IN PKDPC Dpc,

IN PKDEFERRED_ROUTINE DeferredRoutine,

IN PVOID DeferredContext);

Dpc: Указатель на DPC объект, который надо инициализировать.

DeferredRoutine: указатель на функцию, по которому должен быть сделан отложенный вызов на уровне IRQL DISPATCH_LEVEL.

Прототип функции DeferredRoutine следующий:

VOID (*PKDEFERRED_ROUTINE)(

IN PKDPC Dpc,

IN PVOID DeferredContext,

IN PVOID SystemArgument1,

IN PVOID SystemArgument2);

DeferredContext: значение для передачи к DeferredRoutine в качестве параметра, вместе с указателем на объект DPC и двумя дополнительными параметрами.

Рисунок 6.5. Прототип функции KeInitializeDpc() и DeferredRoutine.

Запрос на выполнение конкретной подпрограммы DPC делается путем помещения объекта DPC, описывающего эту подпрограмму DPC, в Очередь DPC заданного CPU, и последующим (обычно) запросом программного прерывания уровня IRQL dispatch_level. Имеется по одной Очереди DPC на процессор. CPU, к которому объект DPC поставлен в очередь, является обычно текущим процессором, на котором выдан запрос (на прерывание). Как выбирается процессор для конкретного DPC, обсуждается в этой главе позже, в разделе "Характеристики Объекта DPC". Объект DPC ставится в очередь с помощью функцию KeInsertQueueDpc(), как показано в Рисунке 6.6.

VOID KeInsertQueueDpc (IN PKDPC Dpc,

IN PVOID SystemArgument1,

IN PVOID SystemArgument2);

Dpc: Указывает на объект DPC, который нужно поставить в очередь.

SystemArgument1, SystemArgument2: произвольные значения, которые нужно передать функции DeferredRoutme как 3 и 4 параметры соответственно, наряду с указателем на объект DPC и параметром DeferredContext, определенным при инициализации Объекта DPC.

Рисунок 6.6. Прототип функции KeInsertQueueDpc().


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: