Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Перспективы развития телекоммуникаций в России.




Пути совершенствования и развития телекоммуникаций в России определяются их состоянием в настоящее время и тенденциями развития мировых сетей связи. Действующие в России сети связи и передачи данных представляют весь диапазон используемых в мировой практике телекоммуникационных технологий. В большинстве эксплуатируемых российских сетей передачи данных используется протокол коммутаций пакетов X.25 (их доля составляет около 63 %), так как этот протокол обеспечивает надежную связь даже на линиях связи среднего качества. Внедрение перспективных сетевых технологий (АТМ, ISDN и др.) сдерживается нехваткой цифровых каналов связи, особенно высокоскоростных.

В России функционирует ряд сетей передачи данных. Наиболее распространенные из них (по числу охвата городов) Роспак, РИКО, Relcom, RoSprint, РОСНЕТ, ИНФОТЕЛ. Ими предоставляются следующие услуги: электронная почта, телеконференции, электронные доски объявлений, обеспечение доступа к базам данных, обеспечение многопротокольных режимов доступа, передача данных в режиме on-line, документооборот по стандарту EDIFAKT, передача телетайпных, телексных и факсимильных сообщений, клиринговые расчеты, электронные платежи и др. Однако не все из действующих сетей одновременно предоставляют все эти услуги.

Стратегия развития отрасли связи РФ определена в «Концепции программы Российской Федерации в области связи», разработанной Министерством связи РФ, в соответствии с которой главными задачами на период до 2005 г. являются создание технической базы информатизации общества и обеспечение органов управления народным хозяйством, населения средствами и услугами связи, соответствующими уровню развития страны. На завершающих этапах реализации этой программы планируется создание в крупных городах цифровых сетей, обеспечивающих услуги ISDN, повышение процента цифровизации телефонной сети, достижение достаточно высокого уровня качества функционирования международной и междугородной сети, создание национальной интеллектуальной сети и расширение предоставляемых ею услуг. На этих этапах все вновь устанавливаемое оборудование местных сетей должно быть цифровым.

В настоящее время усилия организаций связи направлены на развитие основы электросвязи России – Взаимосвязанной сети связи (ВСС), формирование стратегии внедрения новых сетей и технологий, разработку требований и создание отечественных систем и средств связи, внедрение новых услуг связи, формирование международных, государственных и отраслевых стандартов.

Планирование и диспетчеризация потоков в процессе функционирования ОС.

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

- определение момента времени для смены текущего активного потока;

- выбор для выполнения потока из очереди готовых потоков.

Существует множество различных алгоритмов планирования потоков, по-своему решающих каждую из задач. Алгоритмы планирования мо­гут преследовать различные цели и обеспечивать разное качество мультипро­граммирования. Например, в одном случае выбирается такой алгоритм планирования, при котором гарантируется, что ни один поток/процесс не будет занимать процессор дольше определенного времени, в другом случае целью является мак­симально быстрое выполнение “коротких” задач, а в третьем случае – преиму­щественное право занять процессор получают потоки интерактивных приложе­ний. Именно особенности реализации планирования потоков в наибольшей степени определяют специфику операционной системы, в частности, является ли она сис­темой пакетной обработки, системой разделения времени или системой реально­го времени.

Планирование в операционных системах может осуществляться как во время работы, так и заранее. В большинстве операционных систем универсального назначения планирование осуществляется динамически(on-line), т.е. решения принимаются во время работы системы на основе анализа текущей ситуации. В этом случае ОС всегда работает в условиях неопределенности – потоки и процессы появляются в случайные моменты вре­мени и также непредсказуемо завершаются. Динамические планировщики могут гибко приспосабливаться к изменяющейся ситуации и не используют никаких предположений о мультипрограммной смеси. Для того чтобы оперативно найти в условиях такой неопределенности оптимальный в некотором смысле порядок вы­полнения задач, операционная система должна затрачивать значительные усилия.

Другой тип планирования – статический– может быть использован в специа­лизированных системах, в которых весь набор одновременно выполняемых за­дач определен заранее, например в системах реального времени. Планировщик называется статическим (или предварительным планировщиком), если он при­нимает решения о планировании не во время работы системы, а заранее (off-line). Соотношение между динамическим и статическим планировщиками аналогично соотношению между диспетчером железной дороги, который пропускает поезда строго по предварительно составленному расписанию, и регулировщиком на пе­рекрестке автомобильных дорог, не оснащенном светофорами, который решает, какую машину остановить, а какую пропустить, в зависимости от ситуации на перекрестке.

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

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

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

- сохранение контекста текущего потока, который требуется сменить;

- загрузка контекста нового потока, выбранного в результате планирования;

- запуск нового потока на выполнение.

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

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

Во многих операционных системах встречаются компоненты, которые называются планировщик (scheduler), или диспетчер (dispatcher). Не следует однозначно судить о функциональном назначении этих компонентов по их названиям, т.е. считать, что планировщик выпол­няет планирование, а диспетчер – диспетчеризацию в том смысле, в котором эти функции были определены выше. Чаще всего оба этих названия используются для обозначения компонентов, которые занимаются планированием.

ОС выполняет планирование потоков, принимая во внимание их состояние. В мультипрограммной системе поток может находиться в одном из трех основ­ных состояний:

- выполнение – активное состояние потока, во время которого поток обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;

- ожидание – пассивное состояние потока, находясь в котором, поток заблоки­рован по своим внутренним причинам (ждет осуществления некоторого со­бытия, например завершения операции ввода-вывода, получения сообщения от другого потока или освобождения какого-либо необходимого ему ресурса);

- готовность – также пассивное состояние потока, но в этом случае поток за­блокирован в связи с внешним по отношению к нему обстоятельством (имеет все требуемые для него ресурсы, готов выполняться, однако процессор занят выполнением другого потока).

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

99. Подпрограммы – функции. Примеры.

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

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

Описание подпрограммы-функции должно располагаться в разделе описаний, то есть между заголовком программы (или другой подпрограммы) и зарезервированным словом begin. Описание подпрограммы-функции начинается с заголовка, который имеет вид

function name_of_f unction (argumentslist): type_of_result;

Здесь идентификатор типа результата type_of_result описывает тип значения, носителем которого является идентификатор (имя) функции name_of_function. Список параметров argumentslist содержит перечисление идентификаторов переменных — параметров функции. Эти параметры используются для передачи данных в подпрограмму-функцию. После имени переменной или группы имен следуют двоеточие и идентификатор типа переменных из этой группы. Список параметров может отсутствовать. Имя функции задается в соответствии с обычными правилами Паскаля.

Внутренняя структура подпрограммы-функции аналогична структуре программы, то есть сначала в ней идут описания, а затем, после зарезервированного слова begin — исполняемые операторы. Завершается подпрограмма-функция зарезервированным словом end, но за ним следует не точка, а символ «точка с запятой». В разделе описаний подпрограммы-функции могут содержаться описания других подпрограмм. Таких описаний может быть несколько. В теле подпрограммы-функции должен присутствовать оператор присваивания, в левой части которого указано имя функции, а в правой находится выражение.

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

Сделаю одно замечание. В дальнейшем наши программы будут использовать математический сопроцессор. Математический сопроцессор — это устройство, предназначенное для ускорения математических вычислений с вещественными числами. Были времена, когда математический сопроцессор был необязательной частью компьютера. Внутреннему представлению данных в сопроцессоре соответствует вещественный тип Extended. Указание транслятору генерировать код для математического сопроцессора задается директивой компилятора {$N+}, размещаемой в начале программы. Обратите внимание на то, что это не комментарий, хотя здесь используются фигурные скобки. Конструкция {$...} со знаком доллара сразу после открывающей фигурной скобки всегда обозначает

директиву компилятора. Директива компилятора позволяет включить требуемый режим его работы.

ПРИМЕЧАНИЕ Директиву {$N+} можно опустить, если в интегрированной среде Турбо Паскаля выбраны опции Options | Compiler | 8087/80287 (в интегрированной среде разработки компиляция для 80x87 выполняется по умолчанию) и Options | Compiler | Emulation (одновременно). Если же вы не располагаете математическим сопроцессором, следует выбрать в диалоговом окне пункт Emulation, но в этом случае не стоит рассчитывать на высокую скорость выполнения программы.


Поделиться:

Дата добавления: 2014-12-23; просмотров: 83; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты