Научная статья на тему 'Многопоточность в приложениях'

Многопоточность в приложениях Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
430
82
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гладышев Е.И., Мурыгин А.В.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Многопоточность в приложениях»

Секция «Информационно-управляющие системы»

Характеристика ТА932М1-05250М ТА932МД ТА932МД-0413РМ

-аналоговые (0-6,3 В) 256 128 128

-температурные (0-188 Ом) 160 160 256

-цифровые (8-разрядные) 160 64 96

Интерфейс с БА КИС специализированный RS232 RS232

Интерфейс с БК MIL-1553 MIL-1553 MIL-1553

САС/ВБР 10/0,995 15/0,995 15/0,995

Условия эксплуатации герметичный приборный отсек негерметичный спутник негерметичный спутник

Рабочий температурный диапазон, °С от 0 до + 40 от - 10 до + 35 от - 10 до + 35

Потребление, Вт < 17,6 < 12,9 < 12,9

Объем, см3 29410 6340 6375

Масса ТМ системы, кг 12,7 7,25 7,0

Масса 8-разрядного канала, г 22,0 20,6 14,5

Развитие ТМС с 2003 года позволило улучшить следующие технические показатели:

• возможность эксплуатации ТМС в составе КА с негерметичным приборным отсеком;

• срок активного существования увеличился в 1,5 раза;

• масса одного 8-разрядного измерительного канала уменьшилась в 1,5 раза;

• значительно уменьшились габаритные размеры (примерно в 4,6 раза).

В настоящее время система ТА932МД-0413РМ успешно прошла комплексные испытания на стенде отработки аппаратно-программных средств бортового комплекса управления КА «Экспресс-АМ5» (1.08 БКУ), и были начаты испытания на стенде отработки аппаратно-программных средств системы ориентации стабилизации КА «Экспресс-АМ5» (01.ИМ).

© Быкодорова Е. Д., Старосельцев А. С., Дымов Д. В., 2012

УДК 621.39

Е. И. Гладышев Научный руководитель - А. В. Мурыгин Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Красноярск

МНОГОПОТОЧНОСТЬ В ПРИЛОЖЕНИЯХ

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

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

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

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

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

Поток (thread) представляет собой независимую последовательность инструкций в программе. Потоки играют важную роль как для клиентских, так и для серверных приложений. К примеру, во время ввода какого-то кода С# в окне редактора Visual Studio проводится анализ на предмет различных синтаксических ошибок. Этот анализ осуществляется отдельным фоновым потоком [2].

В приложении, которое функционирует на сервере, один поток всегда ожидает поступления запроса от клиента и потому называется потоком-слушателем (listener thread). При получении запроса он сразу же пересылает его отдельному рабочему потоку (worker thread), который дальше сам продолжает взаимодействовать с клиентом. Поток-слушатель после этого незамедлительно возвращается к своим обязанностям по ожиданию поступления следующего запроса от очередного клиента.

Каждый процесс состоит из ресурсов, таких как оконные дескрипторы, файловые дескрипторы и дру-

Актуальные проблемы авиации и космонавтики. Информационные технологии

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

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

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

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

Поток представляет собой координируемую единицу исполняемого кода. Своим происхождением этот термин обязан понятию «поток исполнения». При организации многозадачности на основе потоков у каждого процесса должен быть, по крайней мере, один поток, хотя их может быть и больше. Это означает, что в одной программе одновременно могут решаться две задачи и больше. Например, текст может форматироваться в редакторе текста одновременно с его выводом на печать, при условии, что оба эти действия выполняются в двух отдельных потоках [3].

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

Главное преимущество многопоточной обработки заключается в том, что она позволяет писать программы, которые работают очень эффективно благодаря возможности выгодно использовать время простоя, неизбежно возникающее в ходе выполнения большинства программ. Как известно, большинство устройств ввода-вывода, будь то устройства, подключенные к сетевым портам, накопители на дисках или клавиатура, работают намного медленнее, чем центральный процессор (ЦП). Поэтому большую часть своего времени программе приходится ожидать отправки данных на устройство ввода-вывода или приема информации из него. А благодаря многопоточной обработке программа может решать какую-нибудь другую задачу во время вынужденного простоя.

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

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

Библиографические ссылки

1. Самсонов М. Тенденции рынка телекоммуникационного ПО //ИнформКурьер-Связь. 2003. № 2.

2. Павлова Л. Новый поворот в CRM-сознании // ИнформКурьерСвязь. 2005. № 12.

3. Компания «Восточный ветер» обзорная статья о перспективах развития биллинговых систем. URL: http://www.amobile.ru/billing/development.htm.

© Гладышев Е. И., 2012

УДК 002.66

Н. Н. Голомаздина Научный руководитель - Е. А. Юронен Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Красноярск

ЭТАПЫ И ОПЫТ ВНЕДРЕНИЯ СИСТЕМ ЭЛЕКТРОННОГО ДОКУМЕНТООБОРОТА

Рассматриваются актуальность проблем автоматизации документооборота на предприятий, этапы подготовки процесса внедрения систем электронного документооборота. Приведен пример положительного опыта внедрения системы «Documentum» в исполнительных органах государственной власти Пермского края.

07 февраля 2008 утвержден приказ президента РФ общества в Российской Федерации», целью которого № Пр-212 «Стратегия развития информационного является «повышение качества жизни граждан, обес-

i Надоели баннеры? Вы всегда можете отключить рекламу.