КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Перспективы развития телекоммуникаций в России.Пути совершенствования и развития телекоммуникаций в России определяются их состоянием в настоящее время и тенденциями развития мировых сетей связи. Действующие в России сети связи и передачи данных представляют весь диапазон используемых в мировой практике телекоммуникационных технологий. В большинстве эксплуатируемых российских сетей передачи данных используется протокол коммутаций пакетов 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, но в этом случае не стоит рассчитывать на высокую скорость выполнения программы.
|