Лекция: Многопоточность

При сжижении природного газа, его объем при атмосферном давлении уменьшается примерно в 630 раз. Благодаря этому, можно значительно уменьшить диаметр трубопроводов для транспортиров­ки больших объемов газа, получив значительную экономию капиталовложений.

Метан становится жидкостью при атмосферном давлении, если его охладить до минус 162 °С. При давлении 5 МПа он останется жидкостью, если его температура не превысит минус 85 «С. Таким об­разом, трубопроводный транспорт сжиженного природного газа (СПГ) возможен только при низких температурах.

Принципиальная схема перекачки сжиженного природного газа приведена на рис. 15.7.

Газ с промыслов поступает на головной завод сжижения (ГЗС), где производится его очистка, осушка, сжижение и отделение некон­денсирующихся примесей.

Вблизи от ГЗС или даже непосредственно на его террито­рии размещается головная насосная станция ГНС. В ее состав входят приемные емкости 2, подпорная 3 и основная 4 насосные, а также узел учета 5.

 

 

 

Рис. 15.7. Принципиальная схема перекачки сжиженного природаого газа: 1 — подводящий трубопровод; 2 — приемные емкости; 3 — подпорная насосная; 4 — основная насосная; 5 — узел учета; 6 — магистральный тру­бопровод; 7 — регулятор типа «до себя»; 8 — буферная емкость; ГЗС — головной завод сжижения; ГНС — головная насосная станция; ПСО — промежуточная станция охлаждения; ПНС — промежуточная насосная станция; НХ СПГ — низкотемпературное хранилище СПГ; УР — установка регазификации

 

Емкости 2 служат для приема СПГ с завода, а также для хранения некоторого его запаса с целью обеспечения бесперебой­ности работы трубопровода. Как правило, на ГНС устанавливаются горизонтальные цилиндрические емкости высо­кого давления.

Перекачка сжиженных газов осуществляется центробеж­ными насосами, но других типов, чем применяемые при перекачке нефти и нефтепродуктов. Благодаря малой вязкости СПГ, мощ­ность, потребляемая насосами в этом случае меньше, чем при работе на воде. Но давление на входе в насосы должно быть зна­чительно выше, чтобы предотвратить регазификацию СПГ.

Перекачка сжиженного природного газа осуществляется под давлением 4...5 МПа и при температуре минус 100...120 °С. Чтобы предотвратить нагрев газа за счет теплопритока от окру­жающей среды трубопроводы СПГ покрывают тепловой изоляцией, а вдоль трассы размещают промежуточные станции охлаждения (ПСО). Промежуточные насосные станции (ПНС) располагаются на расстоянии 100...400 км друг от друга. Это, как правило, больше, чем при перекачке нефти и нефтепродуктов, т.к. СПГ имеет меньшую вязкость.

Центробежные насосы очень чувствительны к наличию газа в перекачиваемой жидкости: при его содержании более 2 % происходит срыв их работы, т.е. перекачка прекращается. Чтобы предотвратить регазификацию СПГ в трубопроводах поддержи­вают давление не менее, чем на 0,5 МПа превышающее давление упругости его паров при температуре перекачки. Для этого на вхо­де в промежуточные насосные станции и в конце трубопровода устанавливают регуляторы давления 7 типа «до себя». Кроме того, для отделения газовой фазы, которая может образоваться в не­штатных ситуациях (снижение давления при остановках насосов, разрывах трубопровода и т.п.), перед насосами на насосных стан­циях устанавливают буферные емкости 8. В конце трубопровода размещаются низкотемпературное хранилище (НХ СПГ) и уста­новка регазификации (УР) сжиженного газа, Низкотемпературное хранилище служит для создания запасов СПГ, в частности, для компенсации неравномерности газопотребления. На установке ре­газификации СПГ переводится в газообразное состояние перед его отпуском потребителям.

По сравнению с транспортировкой природного газа в обыч­ном состоянии при перекачке СПГ общие металловложения в систему, включая головной завод сжижения, низкотемпературное хранилище, установку регазификации, в 3...4 раза меньше. Кроме того, уменьшается расход газа на перекачку, вследствие низкой температуры снижается интенсивность коррозионных процессов.

Вместе с тем, данный способ транспортировки газа имеет свои недостатки:

1. Для строительства линейной части и резервуаров при­меняются стали с содержанием никеля до 9' %. Они сохраняют работоспособность в условиях низких температур перекачки, од­нако в 6 раз дороже обычной углеродистой стали.

2. Перекачка СПГ должна вестись специальными криоген­ными насосами.

3. При авариях потери газа значительно больше, чем в слу­чае его транспортировки по обычной технологии.

Кроме природного в сжиженном состоянии транспортиру­ются и другие газы. Но наиболее широкое распространение получил трубопроводный транспорт сжиженных углеводородных газов (СУГ): этана, этилена, пропана, бутана и их смесей.

Основным сырьем для производства сжиженных углево­дородных газов являются попутный нефтяной газ, «жирный» газ газоконденсатных месторождений и газы нефтепереработки, на­звание сжиженного углеводородного газа принимают по наименованию компонентов, оставляющих большую его часть.

Сведения о давлении упругости насыщенных паров неко­торых индивидуальных углеводородов приведены в табл. 15.4.

Таблица 15.4

Зависимость давления упругости насыщенных паров

углеводородов от температуры

, Давление упругости паров, МПа
Температура, °С   этан пропан изобутан и-бутан
2,43 0,48 0,16 0,12
3,08 0,65 0,23 0,17
3,84 0,85 0,31 0,24
4,74 1,09 0,42 0,32

 

Из нее видно, что условия сохранения СУГ в жидком состоянии зна­чительно менее жесткие. Так, даже при 20 °С для сохранения жидкого состояния пропана достаточно поддерживать давление всего 0,85 МПа.

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

С другой стороны, компоненты СУГ тяжелее воздуха. По­этому при регазификации данные газы занимают положение у поверхности земли, создавая взрывоопасную среду. Этим опреде­ляется высокая потенциальная опасность трубопроводов СУГ, когда даже небольшая утечка способна привести к трагическим последствиям.

 

Многопоточность

 

Многопоточностью (multithreading) называется способность операционной сис­темы поддерживать в рамках одного процесса выполнение нескольких потоков. Тра­диционный подход, при котором каждый процесс представляет собой единый поток выполнения, называется однопоточным подходом. Две левые части рис. 4.1 иллюст­рируют однопоточные подходы. MS DOS является примером операционной системы, способной поддерживать не более одного однопоточного пользовательского процесса. Другие операционные системы, такие, как разнообразные разновидности UNIX, под­держивают процессы множества пользователей, но в каждом из этих процессов мо­жет содержаться только один поток. В правой половине рис. 4.1 представлены мно­гопоточные подходы. Примером системы, в которой один процесс может расщеп­ляться на несколько потоков, является среда выполнения Java. В этом разделе нас будет интересовать использование нескольких процессов, каждый из которых под­держивает выполнение нескольких потоков. Подобный подход принят в таких опе­рационных системах, как OS/2, Windows 2000 (W2K), Linux, Solaris, Mach, и ряде других. В этом разделе приведено общее описание многопоточного режима, а в по­следующих разделах будут подробно рассмотрены подходы, использующиеся в опе­рационных системах W2K, Solaris и Linux.

 

В многопоточной среде процесс определяется как структурная единица рас­пределения ресурсов, а также структурная единица защиты. С процессами свя­заны следующие элементы.

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

• Защищенный доступ к процессорам, другим процессам (при обмене информацией между ними), файлам и ресурсам ввода-вывода (устройствам и каналам).

 

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

• Состояние выполнения потока (выполняющийся, готовый к выполнению и т.д.).

• Сохраненный контекст не выполняющегося потока; один из способов рас­смотрения потока — считать его независимым счетчиком команд, работающим в рамках процесса.

• Стек выполнения.

• Статическая память, выделяемая потоку для локальных переменных.

• Доступ к памяти и ресурсам процесса, которому этот поток принадлежит этот доступ разделяется всеми потоками данного процесса.

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

 

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

Перечислим основные преимущества использования потоков с точки зрения производительности.

1. Создание нового потока в уже существующем процессе занимает намного меньше времени, чем создание совершенно нового процесса. Исследования, проведенные разработчиками операционной системы Mach, показали, что скорость создания процессов по сравнению с такой же скоростью в UNIX-совместимых приложениях, в которых не используются потоки, возрастает в 10 раз [TEVA87].

2. Поток можно завершить намного быстрее, чем процесс.

3. Переключение потоков в рамках одного и того же процесса происходит намного быстрее.

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

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

Примером приложения, в котором можно удачно применить потоки, явля­ется файловый сервер. При получении каждого нового файлового запроса про­грамма управления файлами может порождать новый поток. Из-за того, что сер­веру приходится обрабатывать очень большое количество запросов, за короткий промежуток времени будут создаваться и удаляться множество потоков. Если такая серверная программа работает на многопроцессорной машине, то на раз­ных процессорах в рамках одного процесса могут одновременно выполняться не­сколько потоков. Кроме того, из-за того, что процессы или потоки файлового сервера должны совместно использовать данные из файлов, а следовательно, ко­ординировать свои действия, рациональнее использовать потоки и общую об­ласть памяти, а не процессы и обмен сообщениями.

Потоковая конструкция процесса полезна и на однопроцессорных машинах. Она помогает упростить структуру программы, выполняющей несколько логиче­ски различных функций.

В [LETW88] приводится четыре следующих примера использования потоков в однопользовательской многозадачной системе.

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

• Асинхронная обработка. Элементы асинхронности в программе можно реализо­вать в виде потоков. Например, в качестве меры предосторожности на случай отключения электричества можно сделать так, чтобы текстовый редактор каждую минуту сбрасывал на диск содержимое буфера оперативного запоминающе­го устройства. Можно создать поток, единственной задачей которого будет создание резервной копии и который будет планировать свою работу непосредст­венно с помощью операционной системы. Это позволит обойтись без помещения в основную программу замысловатого кода, обеспечивающего проверку соблю­дения временного графика или координацию ввода и вывода.

• Скорость выполнения. Многопоточный процесс может производить вычисления с одной порцией данных, одновременно считывая с устройства ввода-вывода следующую порцию. В многопроцессорной системе несколько пото­ков одного и того же процесса могут выполняться одновременно.

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

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

еще рефераты
Еще работы по информатике