Как происходит разделение на поездки при расшифровке модуля памяти установленного на бви сдо
Под памятью ( memory ) в данном случае подразумевается оперативная (основная) память компьютера. В однопрограммных операционных системах основная память разделяется на две части. Одна часть для операционной системы (резидентный монитор , ядро ), а вторая – для выполняющейся в текущий момент времени программы. В многопрограммных ОС "пользовательская" часть памяти – важнейший ресурс вычислительной системы – должна быть распределена для размещения нескольких процессов, в том числе процессов ОС. Эта задача распределения выполняется операционной системой динамически специальной подсистемой управления памятью ( memory management ). Эффективное управление памятью жизненно важно для многозадачных систем. Если в памяти будет находиться небольшое число процессов, то значительную часть времени процессы будут находиться в состоянии ожидания ввода-вывода и загрузка процессора будет низкой.
В ранних ОС управление памятью сводилось просто к загрузке программы и ее данных из некоторого внешнего накопителя (перфоленты, магнитной ленты или магнитного диска) в ОЗУ . При этом память разделялась между программой и ОС. На рис. 6.3 показаны три варианта такой схемы. Первая модель раньше применялась на мэйнфреймах и мини-компьютерах. Вторая схема сейчас используется на некоторых карманных компьютерах и встроенных системах, третья модель была характерна для ранних персональных компьютеров с MS-DOS .
С появлением мультипрограммирования задачи ОС, связанные с распределением имеющейся памяти между несколькими одновременно выполняющимися программами, существенно усложнились.
Функциями ОС по управлению памятью в мультипрограммных системах являются:
- отслеживание (учет) свободной и занятой памяти;
- первоначальное и динамическое выделение памяти процессам приложений и самой операционной системе и освобождение памяти по завершении процессов;
- настройка адресов программы на конкретную область физической памяти;
- полное или частичное вытеснение кодов и данных процессов из ОП на диск, когда размеры ОП недостаточны для размещения всех процессов, и возвращение их в ОП;
- защита памяти, выделенной процессу, от возможных вмешательств со стороны других процессов;
- дефрагментация памяти .
Перечисленные функции особого пояснения не требуют, остановимся только на задаче преобразования адресов программы при ее загрузке в ОП.
Для идентификации переменных и команд на разных этапах жизненного цикла программы используются символьные имена, виртуальные (математические, условные, логические – все это синонимы) и физические адреса (рис. 6.4).
Символьные имена присваивает пользователь при написании программ на алгоритмическом языке или ассемблере. Виртуальные адреса вырабатывает транслятор , переводящий программу на машинный язык . Поскольку во время трансляции неизвестно, в какое место оперативной памяти будет загружена программа , транслятор присваивает переменным и командам виртуальные (условные) адреса, считая по умолчанию, что начальным адресом программы будет нулевой адрес .
Физические адреса соответствуют номерам ячеек оперативной памяти, где в действительности будут расположены переменные и команды.
Совокупность виртуальных адресов процесса называется виртуальным адресным пространством. Диапазон адресов виртуального пространства у всех процессов один и тот же и определяется разрядностью адреса процессора (для Pentium адресное пространство составляет объем, равный 2 32 байт , с диапазоном адресов от 0000.000016 до FFFF.FFFF16).
Существует два принципиально отличающихся подхода к преобразованию виртуальных адресов в физические. В первом случае такое преобразование выполняется один раз для каждого процесса во время начальной загрузки программы в память . Преобразование осуществляет перемещающий загрузчик на основании имеющихся у него данных о начальном адресе физической памяти, в которую предстоит загружать программу, а также информации, предоставляемой транслятором об адресно-зависимых элементах программы.
Второй способ заключается в том, что программа загружается в память в виртуальных адресах. Во время выполнения программы при каждом обращении к памяти операционная система преобразует виртуальные адреса в физические.
6.3. Распределение памяти
Существует ряд базовых вопросов управления памятью, которые в различных ОС решаются по -разному. Например, следует ли назначать каждому процессу одну непрерывную область физической памяти или можно выделять память участками? Должны ли сегменты программы, загруженные в память , находиться на одном месте в течение всего периода выполнения процесса или их можно время от времени сдвигать? Что делать, если сегменты программы не помещаются в имеющуюся память ? Как сократить затраты ресурсов системы на управление памятью ? Имеется и ряд других не менее интересных проблем управления памятью [5, 10, 13, 17].
Ниже приводится классификация методов распределения памяти, в которой выделено два класса методов – с перемещением сегментов процессов между ОП и ВП (диском) и без перемещения, т.е. без привлечения внешней памяти (рис. 6.5). Данная классификация учитывает только основные признаки методов. Для каждого метода может быть использовано несколько различных алгоритмов его реализации.
Рис. 6.5. Классификация методов распределения памяти
На рис. 6.6 показаны два примера фиксированного распределения. Одна возможность состоит в использовании разделов одинакового размера. В этом случае любой процесс, размер которого не превышает размера раздела, может быть загружен в любой доступный раздел. Если все разделы заняты и нет ни одного процесса в состоянии готовности или работы, ОС может выгрузить процесс из любого раздела и загрузить другой процесс, обеспечивая тем самым процессор работой.
Рис. 6.6. Варианты фиксированного распределения памяти
При использовании разделов с одинаковым размером имеются две проблемы.
- Программа может быть слишком велика для размещения в разделе. В этом случае программист должен разрабатывать программу, использующую оверлеи, чтобы в любой момент времени требовался только один раздел памяти. Когда требуется модуль, отсутствующий в данный момент в ОП, пользовательская программа должна сама его загрузить в раздел памяти программы. Таким образом, в данном случае управление памятью во многом возлагается на программиста.
- Использование ОП крайне неэффективно. Любая программа, независимо от ее размера, занимает раздел целиком. При этом могут оставаться неиспользованные участки памяти большого размера. Этот феномен появления неиспользованной памяти называется внутренней фрагментацией (internal fragmentation).
Бороться с этими трудностями (хотя и не устранить полностью) можно посредством использования разделов разных размеров. В этом случае программа размером до 8 Мбайт может обойтись без оверлеев, а разделы малого размера позволяют уменьшить внутреннюю фрагментацию при загрузке небольших программ.
В том случае, когда разделы имеют одинаковый раздел, размещение процессов тривиально – в любой свободный раздел. Если все разделы заняты процессами, которые не готовы к немедленной работе, любой из них может быть выгружен для освобождения памяти для нового процесса.
Когда разделы имеют разные размеры, есть два возможных подхода к назначению процессов разделам памяти. Простейший путь состоит в том, чтобы каждый процесс размещался в наименьшем разделе, способном вместить данный процесс (в этом случае в задании пользователя указывался размер требуемой памяти). При таком подходе для каждого раздела требуется очередь планировщика, в которой хранятся выгруженные из памяти процессы, предназначенные для данного раздела памяти. Достоинство такого способа в возможности распределения процессов между разделами ОП так, чтобы минимизировать внутреннюю фрагментацию.
Недостаток заключается в том, что отдельные очереди для разделов могут привести к неоптимальному распределению памяти системы в целом. Например, если в некоторый момент времени нет ни одного процесса размером от 7 до 12 Мбайт, то раздел размером 12 Мбайт будет пустовать, в то время как он мог бы использоваться меньшими процессами. Поэтому более предпочтительным является использование одной очереди для всех процессов. В момент, когда требуется загрузить процесс в ОП, выбирается наименьший доступный раздел, способный вместить данный процесс.
В целом можно отметить, что схемы с фиксированными разделами относительно просты, предъявляют минимальные требования к операционной системе; накладные расходы работы процессора на распределение памяти невелики. Однако у этих схем имеются серьезные недостатки.
- Количество разделов, определенное в момент генерации системы, ограничивает количество активных процессов (т.е. уровень мультипрограммирования).
- Поскольку размеры разделов устанавливаются заранее во время генерации системы, небольшие задания приводят к неэффективному использованию памяти. В средах, где заранее известны потребности в памяти всех задач, применение рассмотренной схемы может быть оправдано, но в большинстве случаев эффективность этой технологии крайне низка.
Для преодоления сложностей, связанных с фиксированным распределением, был разработан альтернативный подход, известный как динамическое распределение. В свое время этот подход был применен фирмой IBM в операционной системе для мэйнфреймов в OS/MVT ( мультипрограммирование с переменным числом задач – Multiprogramming With a Variable number of Tasks). Позже этот же подход к распределению памяти использован в ОС ЕС ЭВМ [12] .
При динамическом распределении образуется перемененное количество разделов переменной длины. При размещении процесса в основной памяти для него выделяется строго необходимое количество памяти. В качестве примера рассмотрим использование 64 Мбайт (рис. 6.7) основной памяти. Изначально вся память пуста, за исключением области, задействованной ОС. Первые три процесса загружаются в память , начиная с адреса, где заканчивается ОС, и используют столько памяти, сколько требуется данному процессу. После этого в конце ОП остается свободный участок памяти, слишком малый для размещения четвертого процесса. В некоторый момент времени все процессы в памяти оказываются неактивными, и операционная система выгружает второй процесс, после чего остается достаточно памяти для загрузки нового, четвертого процесса.
Поскольку процесс 4 меньше процесса 2, появляется еще свободный участок памяти. После того как в некоторый момент времени все процессы оказались неактивными, но стал готовым к работе процесс 2, свободного места в памяти для него не находится, а ОС вынуждена выгрузить процесс 1, чтобы освободить необходимое место и разместить процесс 2 в ОП. Как показывает данный пример, этот метод хорошо начинает работу, но плохо продолжает. В конечном счете, он приводит к наличию множества мелких свободных участков памяти, в которых нет возможности разместить какой-либо новый процесс. Это явление называется внешней фрагментацией ( external fragmentation ), что отражает тот факт, что сильно фрагментированной становится память , внешняя по отношению ко всем разделам.
Один из методов преодоления внешней фрагментации – уплотнение ( compaction ) процессов в ОП. Осуществляется это перемещением всех занятых участков так, чтобы вся свободная память образовала единую свободную область. В дополнение к функциям, которые ОС выполняет при распределении памяти динамическими разделами, в данном случае она должна еще время от времени копировать содержимое разделов из одного места в другое, корректируя таблицы свободных и занятых областей. Эта процедура называется уплотнением или сжатием.
Перечислим функции операционной системы по управлению памятью в этом случае.
- Перемещение всех занятых участков в сторону старших или младших адресов при каждом завершении процесса или для вновь создаваемого процесса в случае отсутствия раздела достаточного размера.
- Коррекция таблиц свободных и занятых областей.
- Изменение адресов команд и данных, к которым обращаются процессы при их перемещении в памяти, за счет использования относительной адресации .
- Аппаратная поддержка процесса динамического преобразования относительных адресов в абсолютные адреса основной памяти.
- Защита памяти, выделяемой процессу, от взаимного влияния других процессов.
Уплотнение может выполняться либо при каждом завершении процесса, либо только тогда, когда для вновь создаваемого процесса нет свободного раздела достаточного размера. В первом случае требуется меньше вычислительной работы при корректировке таблиц свободных и занятых областей, а во втором – реже выполняется процедура сжатия.
Так как программа перемещается по оперативной памяти в ходе своего выполнения, в данном случае невозможно выполнить настройку адресов с помощью перемещающего загрузчика. Здесь более подходящим оказывается динамическое преобразование адресов. Достоинствами распределения памяти перемещаемыми разделами являются эффективное использование оперативной памяти, исключение внутренней и внешней фрагментации, недостатком – дополнительные накладные расходы ОС.
При использовании фиксированной схемы распределения процесс всегда будет назначаться одному и тому же разделу памяти после его выгрузки и последующей загрузке в память . Это позволяет применять простейший загрузчик , который замещает при загрузке процесса все относительные ссылки абсолютными адресами памяти, определенными на основе базового адреса загруженного процесса.
Ситуация усложняется, если размеры разделов равны (или неравны) и существует единая очередь процессов, – процесс по ходу работы может занимать разные разделы . Такая же ситуация возможна и при динамическом распределении. В этих случаях расположение команд и данных, к которым обращается процесс, не является фиксированным и изменяется всякий раз при выгрузке, загрузке или перемещении процесса. Для решения этой проблемы в программах используются относительные адреса. Это означает, что все ссылки на память в загружаемом процессе даются относительно начала этой программы. Таким образом, для корректной работы программы требуется аппаратный механизм, который бы транслировал относительные адреса в физические в процессе выполнения команды, обращающейся к памяти.
Применяемый обычно способ трансляции показан на рис. 6.8. Когда процесс переходит в состояние выполнения, в специальный регистр процесса, называемый базовым, загружается начальный адрес процесса в основной памяти. Кроме того, используется "граничный" (bounds) регистр , в котором содержится адрес последней ячейки программы. Эти значения заносятся в регистры при загрузке программы в основную память . При выполнении процесса относительные адреса в командах обрабатываются процессором в два этапа. Сначала к относительному адресу прибавляется значение базового регистра для получения абсолютного адреса. Затем полученный абсолютный адрес сравнивается со значением в граничном регистре. Если полученный абсолютный адрес принадлежит данному процессу, команда может быть выполнена. В противном случае генерируется соответствующее данной ошибке прерывание .
В настоящее время на Северной дороге действуют 22 пункта расшифровки скоростемерных лент и электронных носителей. Их общий штат составляет 138 человек. В рамках инвестиционной программы ОАО «РЖД» в 2010 г. завершена модернизация устройства КЛУБ-У всего парка пассажирских тепловозов серии ТЭП70, КПД-ЗП оборудованы электровозы ВЛ80С и тепловозы ЧМЭЗ. В 2011 г. оснащенность устройством КЛУБ-У локомотивов пассажирского движения составит 100 %, ас записью параметров в электронный носитель — 65 % (табл. 1). В 2010 г. системой САУТ оснащено свыше 80 % электровозов ВЛ10, ВЛ11 и ВЛ80 (табл. 2). В текущем году эта работа будет завершена полностью.
В связи с массовым поступлением электронных скоростемеров, созданием рабочих мест по дешифрации движения в системах автоматизированной расшифровки САР КПД или СУД-У, внедрением электронного аналога журнала формы ТУ-133 АСУ НБД и развитием сетей передачи данных, руководством Северной магистрали принято инновационное решение о создании Центра расшифровки электронных носителей.
В концепции организации Центра определены следующие цели:
- оптимизация и централизация расшифровки электронных носителей параметров движения локомотивов;
- реализация стратегии гарантированной безопасности движения поездов;
- формирование и корректировка единых электронных баз данных систем безопасности с целью снижения количества сбоев и отказов (определение и управление рисками);
- повышение качества расшифровки и унификация персонала путем реализации единой системы обучения;
- совершенствование программного обеспечения систем автоматизированной расшифровки и удаленного считывания электронных носителей параметров движения локомотива;
- сокращение численности штата техников-расшифровщиков за счет внедрения, усовершенствования и использования современных технологий;
- организация системы дистанционного мониторинга за работой Центра и эффективностью мер, принятых в депо по выявленным нарушениям;
- получение опыта организации и работы Центра расшифровки электронных носителей для дальнейшего распространения и реализации на сети дорог.
Кроме основных задач по анализу поездок локомотивных бригад, специалисты Центра планируют организовать расшифровку файлов систем регистрации РПС-САУТ, РПДА, РПРТ. В ближайшее время будет организован системный анализ содержания напольного оборудования и технического состояния локомотивных устройств САУТ, а также оперативное расследование грубых нарушений безопасности движения при расшифровке РПС-САУТ и файлов систем автоведения.
ПЕРСПЕКТИВЫ СТАНОВЛЕНИЯ
На первом этапе будут организованы два отделения, которые обеспечат расшифровку поездок локомотивных бригад. В частности, будет создано первое отделение с учетом оборотных депо (ТД) Кострома, Рыбинск, Данилов, Кулой, Сольвычегодск, а также пунктов подмены локомотивных бригад (ППЛБ) депо Иваново и Ростов.
Второе отделение будет обслуживать депо Буй, Л оста, Няндома, Исакогорка с учетом ТД Шарья, Череповец, Вожега, Коноша, Малошуйка и Обозерская. Это произойдет в текущем году после окончательной модернизации устройством КЛУБ-У всех пассажирских тепловозов серии 2ТЭ10УТ.
На втором этапе будет организовано третье отделение для обслуживания депо Печора, Воркута, Котлас с учетом ТД Инта, Елецкая и др. То есть произойдет перераспределение объема работы техников-расшифровщиков по территориальному принципу эксплуатации локомотивов.
С момента организации третьего отделения его специализацией станет расшифровка параметров движения КЛУБ-У и будет произведено окончательное закрепление за ним всех депо тепловозной тяги.
ТЕХНОЛОГИЯ УДАЛЕННОГО СЧИТЫВАНИЯ И РАСШИФРОВКИ ЭЛЕКТРОННЫХ НОСИТЕЛЕЙ
В настоящее время на Северной дороге эксплуатируется система удаленного считывания модулей памяти КПД-ЗП. Пересылка информации осуществляется на серверы каждого из депо, сопроводительные документы сдаются установленным порядком.
С организацией Центра принципиально изменится направление потоков информации в сетях СПД. При этом потребуется организация системы передачи электронных копий сопроводительных документов к поездке, удаленного считывания файлов КЛУБ-У, РПДА, РПРТ и учета переданной информации. Рассматривается вариант формирования так называемого «объединенного файла поездки» (т.е. «привязки» электронных копий сопроводительных документов к файлам КПД-ЗП или КЛУБ-У) для их систематизации.
Передача информации будет осуществляться следующим образом. С компьютера информация поступит на сервер Центра. Сопроводительные документы техник-расшифровщик просканирует в электронную копию и направит на сервер для «привязки» к файлу поездки. Оригиналы документов будут храниться в архиве депо строго определенный срок. В случае сбоя в работе архивы баз данных сервера Центра сохраняются на резервном сервере.
С целью повышения производительности планируется использование для расшифровки поездки двух мониторов: на одном — система расшифровки, на другом — вспомогательные приложения АСУ ВОП-2, АСУ НБД и др.
Системы расшифровки в автоматическом режиме позволят вносить информацию о поездке локомотивной бригады в журнал № 1 АСУ НБД, о выявленных нарушениях — в журнал № 2.
НА ЗАВЕРШАЮЩЕМ ЭТАПЕ
На дороге была создана рабочая группа специалистов по организации Центра. Руководством дирекции тяги были поставлены задачи подготовить проекты документов, организовать курсы подготовки и повышения квалификации будущих работников в ОАО «НИИАС» (КЛУБ-У) и в ОАО «Электромеханика» (КПД-ЗП).
Определили и здание для размещения Центра. В ближайшее время специалисты оснастят его сетями ЛВС и СПД, а также рабочие места операторов по расшифровке. На все вместе взятое потребуется около 50 млн.руб.
Однако не все так просто. Перед специалистами Центра стоит целый ряд вопросов, требующих практического решения. Например, для повышения производительности труда необходимо совершенствовать программное обеспечение автоматизированных систем расшифровки, АСУ НБД. Потребуется разработка программного обеспечения для учета и устранения неисправностей приборов безопасности в ремонте, доводка некоторого локомотивного оборудования.
Практически на каждой сетевой школе, организуемой Дирекцией тяги (ЦТ) — филиалом ОАО «РЖД», обсуждаются ключевые проблемы. Одна из них — внедрение полноценной сетевой версии СУД-У. Разработчики этой системы (ОАО «НИИАС») «анонсировали» ее готовность к эксплуатации, однако сегодня крайне необходимо решить финансовые вопросы, чтобы завершить весь цикл практического внедрения на местах. Кроме того, специалистам Центра необходимо техническое задание на доработку программного обеспечения систем расшифровки САР КПД-3, СУД-У, а также свод всей информации в единый классификатор нарушений безопасности движения поездов.
Параллельно с организацией Центра специалистам службы локомотивного хозяйства и дирекции тяги Северной дороги потребуется решить множество вопросов документального обеспечения деятельности вновь создаваемого подразделения. Например, рассмотреть 18 положений и инструкций, касающихся организации работы отделений расшифровки, их правовой принадлежности к Центру (не к депо!), организации контроля за работой и обучения техников-расшифровщиков.
ЗАДАЧИ И ОБЯЗАННОСТИ
Машинист локомотива:
- в оборотном депо сдает дежурному маршрут машиниста и электронный носитель. После удаленного считывания информации на сервер Центра получает у дежурного маршрут машиниста с отметками о сдаче и считывании электронного носителя. Электронный носитель остается на хранении у дежурного для выдачи следующей локомотивной бригаде;
- в основном депо сдает дежурному маршруты машиниста, электронный носитель, справку о тормозах формы ВУ-45, бланк предупреждений формы ДУ-61, выписку о полученных по радиосвязи приказах на проследование запрещающих сигналов, объяснение о случаях сбоев при регистрации параметров, сбоях и отказах устройств безопасности, а также сопроводительные документы на следование в пункт оборота.
Дежурный по депо:
- принимает от машиниста электронный носитель, маршрут машиниста, а также сопроводительные документы и производит считывание информации электронного носителя. При этом удаленное считывание информации, ее передача на сервер Центра должны регистрироваться специальной программой автоматического учета;
- вносит в маршрут машиниста запись о считанном электронном носителе, свою фамилию, подпись и заверяет штампом;
- в депо приписки локомотивной бригады в течение смены обеспечивает сохранность полученных сопроводительных документов для техника-расшифровщика депо, который обязан передать электронные копии на сервер Центра.
Техник-расшифровщик основного депо:
- с использованием специальной программы автоматического учета сверяет полноту сдачи электронных носителей (удаленных считываний) и сопроводительных документов (на следование локомотивной бригады в пункт оборота и обратно);
- производит ввод данных и передачу электронных копий сопроводительных документов, их «привязку» (посредством специально разработанного модуля совместимости программ) к файлу поездки на сервере Центра.
Специалисты программного обеспечения сервера Центра расшифровки осуществляют:
- «привязку» файлов поездок и электронных копий документов (в автоматическом режиме или оператором), сортировку и хранение полученной из депо информации;
автоматическую загрузку в АРМы техников-расшифровщиков, работавших в день поездки, ограничений скорости движения,хранение баз данных;
загрузку в системы автоматизированной расшифровки информации о выданных при следовании поезда приказах на проследование запрещающих сигналов, путевых записок, разрешений и др., а также возможность просмотра маршрута следования поезда по станциям участка. Здесь потребуется доработка программного обеспечения системы «ГИД-Урал» и распоряжение о вводе ДНЦ или ДСП информации в систему;
автоматическую загрузку из «ГИД-Урал» в системы автоматизированной расшифровки информации о расписании движения поезда (для пассажирских) и сравнение графика исполненного движения с фактическими данными;
удаленный просмотр расшифрованных поездок командно-инструкторским составом депо;
- «привязку» файлов поездок КПД-ЗП и РПДА.
Техник-расшифровщик Центра:
получает с сервера на «свой» АРМ файл поездки, электронные копии сопроводительных документов и другую информацию, а также расшифровывает поездку установленным порядком. При этом на одном мониторе рабочего места отображается вспомогательная информация автоматизированных систем («ГИД-Урал», АСУ НБД и др.), на втором проводится расшифровка;
информацию о расшифрованной поездке (дата, табельный номер машиниста, номер поезда) передает в электронный журнал № 1 формы ТУ-133, т.е. автоматически формируется учетная запись, повышается производительность труда техника-расшифровщика. При этом, в процессе автоматизированной расшифровки поездки в электронные журналы N9 2, 3 формы ТУ-133 в автоматическом режиме заносятся выявленные нарушения;
после расшифровки файла поездки КПД-ЗП или КЛУБ-У проверяет выявленные системой автоведения нарушения. При необходимости вводит их в АСУ НБД.
Старший техник-расшифровщик отделения Центра:
- осуществляет контроль за сроками расшифровки и расследования выявленных нарушений;
- готовит анализ результатов расшифровки в сравнении с предыдущим периодом. Особо отмечает причины роста нарушений, вносит предложения по их профилактике;
- проверяет качество расшифровки поездок в сроки, установленные нормативными документами ОАО «РЖД»;
- оказывает практическую помощь в организации работы по расшифровке электронных носителей и ведении журналов формы ТУ-133;
- готовит справки для предоставления причастным службам и дирекциям по следованию поезда и правильности управления тормозами машинистом.
Инженеры Центра:
- осуществляют контроль за сроками расследования нарушений командно-инструкторским составом эксплуатационных депо, руководством ремонтных депо и причастных предприятий;
- формируют сводный анализ и доклад о результатах расшифровки и техническом состоянии ТПС начальнику Центра;
- корректируют электронные базы данных устройств безопасности локомотивов КЛУБ-У, САУТ и др.;
- обеспечивают функционирование систем удаленного считывания и автоматизированной расшифровки электронных носителей;
- обеспечивают расшифровку файлов РПС-САУТ в случаях грубых нарушений безопасности, отказов технических средств, выборочный контроль действий локомотивных бригад.
Начальник Центра:
- обобщает всю полученную из отделений информацию;
- готовит доклад и оперативно передает руководителям службы локомотивного хозяйства информацию о нарушениях, выявленных при расшифровке скоростемерных лент ЗСЛ-2М;
- разрабатывает программы профилактики нарушений.
ПРОБЛЕМЫ И РЕШЕНИЯ
Центру требуется помощь разработчиков системы расшифровки САР КПД. Например, программное обеспечение по учету удаленного считывания модулей памяти и передаваемой на сервер информации. Необходимо также обеспечить сохранность информации при сбоях в удаленном считывании модулей, особенно в ночной период. Доработки требует программное обеспечение САР КПД по автоматической передаче баз данных действующих предупреждений об ограничении скорости движения поездов (например, из АСУ ВОП-2). Нужна реализация ввода оператором депо данных об обеспечении поезда тормозами формы ВУ-45, выданных машинисту при следовании по участку разрешений (на бланках формы ДУ-50, ДУ-56, ДУ-64 и др.), другой дополнительной информации.
Необходим автоматический перенос из САР КПД данных о расшифрованной поездке и выявленных нарушениях в электронные журналы № 1 — 3 формы ТУ-133 (АСУ НБД). Нужна система учета работы в САР КПД техников-расшифровщиков с отображением информации о депо приписки машиниста, дате считывания модуля, расшифровки поездки в автоматизированном режиме.
Сегодня требуется автоматизированное выявление нарушений при эксплуатации систем автоматического управления тормозами САУТ-Ц, САУТ-ЦМ/485, в том числе несанкционированного использования кнопок пульта управления.
Специалистам ПКБ ЦТ придется переработать такие методические пособия, как «Система автоматизированной расшифровки параметров движения локомотивов и МВПС», «Внесение изменений и дополнений в нормативно-справочную информацию»,. «Чтение модулей памяти КПД-3 в удаленных пунктах», а также руководство по эксплуатации системы САР КПД.
Необходим единый классификатор нарушений в эксплуатации и техническом содержании приборов безопасности (например, КПД-3, неисправность сигнализаторов 115А, несоответствие положения ручки крана машиниста № 395, нестабильное показание давления в тормозной магистрали, одновременная регистрация всех огней АЛСН и др.) в автоматическом и ручном режимах работы САР КПД.
Для решения этих и других вопросов необходимо привлечь разработчиков СУД-У (ОАО «НИИАС») и в кратчайшие сроки реализовать их в «сетевой» версии СУД-У № 6 с функцией удаленного считывания кассет регистрации КЛУБ-У в локомотивных депо. Также можно использовать научный потенциал разработчиков АСУ ВОП-2 для совместного решения проблемы автоматической передачи баз данных действующих предупреждений об ограничении скорости движения поездов в автоматизированные системы расшифровки СУД-У и КПД-3.
Привлечение разработчиков программы «ГИД-Урал» (ВНИИЖТ) позволит реализовать автоматическое формирование справки о случаях выдачи приказов на проследование запрещающих сигналов при неисправности СЦБ, бланков разрешений форм ДУ-64, ДУ-59, ДУ-50, ДУ-55, ДУ-56, что значительно улучшит условия расшифровки и положительно скажется на обеспечении безопасности движения поездов.
Для более достоверного определения причин отказа или сбоя в работе оборудования разработчикам КПД-3 (ОАО «Электромеханика») специалисты Центра предлагают реализовать возможность отображения при расшифровке модуля памяти МПМЭ кода неисправности комплекса КПД-3 всех индексов с указанием времени начала и окончания отказа.
Решение вышеназванных вопросов позволит значительно повысить производительность техников-расшифровщиков как на Северной дороге, так и по сети в целом.
НЕКОТОРЫЕ ВЫВОДЫ
Конечно, все, о чем рассказано выше, произойдет не так быстро, как хотелось бы локомотивщикам Северной магистрали. Потребуются время и капитальные вложения, которые окупятся с лихвой. Создание практически новой структуры приведет к централизации расшифровки, независимости ее результатов от руководителей локомотивных депо, повысит объективность в работе. Все вместе взятое положительно скажется на качестве расшифровки благодаря проведению единой системы обучения, даст возможность организовать дистанционный контроль за работой Центра, что в конечном итоге принесет ожидаемый результат и положительно скажется на безопасности движения поездов.
Под памятью ( memory ) в данном случае подразумевается оперативная (основная) память компьютера. В однопрограммных операционных системах основная память разделяется на две части. Одна часть для операционной системы (резидентный монитор , ядро ), а вторая – для выполняющейся в текущий момент времени программы. В многопрограммных ОС "пользовательская" часть памяти – важнейший ресурс вычислительной системы – должна быть распределена для размещения нескольких процессов, в том числе процессов ОС. Эта задача распределения выполняется операционной системой динамически специальной подсистемой управления памятью ( memory management ). Эффективное управление памятью жизненно важно для многозадачных систем. Если в памяти будет находиться небольшое число процессов, то значительную часть времени процессы будут находиться в состоянии ожидания ввода-вывода и загрузка процессора будет низкой.
В ранних ОС управление памятью сводилось просто к загрузке программы и ее данных из некоторого внешнего накопителя (перфоленты, магнитной ленты или магнитного диска) в ОЗУ . При этом память разделялась между программой и ОС. На рис. 6.3 показаны три варианта такой схемы. Первая модель раньше применялась на мэйнфреймах и мини-компьютерах. Вторая схема сейчас используется на некоторых карманных компьютерах и встроенных системах, третья модель была характерна для ранних персональных компьютеров с MS-DOS .
С появлением мультипрограммирования задачи ОС, связанные с распределением имеющейся памяти между несколькими одновременно выполняющимися программами, существенно усложнились.
Функциями ОС по управлению памятью в мультипрограммных системах являются:
- отслеживание (учет) свободной и занятой памяти;
- первоначальное и динамическое выделение памяти процессам приложений и самой операционной системе и освобождение памяти по завершении процессов;
- настройка адресов программы на конкретную область физической памяти;
- полное или частичное вытеснение кодов и данных процессов из ОП на диск, когда размеры ОП недостаточны для размещения всех процессов, и возвращение их в ОП;
- защита памяти, выделенной процессу, от возможных вмешательств со стороны других процессов;
- дефрагментация памяти .
Перечисленные функции особого пояснения не требуют, остановимся только на задаче преобразования адресов программы при ее загрузке в ОП.
Для идентификации переменных и команд на разных этапах жизненного цикла программы используются символьные имена, виртуальные (математические, условные, логические – все это синонимы) и физические адреса (рис. 6.4).
Символьные имена присваивает пользователь при написании программ на алгоритмическом языке или ассемблере. Виртуальные адреса вырабатывает транслятор , переводящий программу на машинный язык . Поскольку во время трансляции неизвестно, в какое место оперативной памяти будет загружена программа , транслятор присваивает переменным и командам виртуальные (условные) адреса, считая по умолчанию, что начальным адресом программы будет нулевой адрес .
Физические адреса соответствуют номерам ячеек оперативной памяти, где в действительности будут расположены переменные и команды.
Совокупность виртуальных адресов процесса называется виртуальным адресным пространством. Диапазон адресов виртуального пространства у всех процессов один и тот же и определяется разрядностью адреса процессора (для Pentium адресное пространство составляет объем, равный 2 32 байт , с диапазоном адресов от 0000.000016 до FFFF.FFFF16).
Существует два принципиально отличающихся подхода к преобразованию виртуальных адресов в физические. В первом случае такое преобразование выполняется один раз для каждого процесса во время начальной загрузки программы в память . Преобразование осуществляет перемещающий загрузчик на основании имеющихся у него данных о начальном адресе физической памяти, в которую предстоит загружать программу, а также информации, предоставляемой транслятором об адресно-зависимых элементах программы.
Второй способ заключается в том, что программа загружается в память в виртуальных адресах. Во время выполнения программы при каждом обращении к памяти операционная система преобразует виртуальные адреса в физические.
6.3. Распределение памяти
Существует ряд базовых вопросов управления памятью, которые в различных ОС решаются по -разному. Например, следует ли назначать каждому процессу одну непрерывную область физической памяти или можно выделять память участками? Должны ли сегменты программы, загруженные в память , находиться на одном месте в течение всего периода выполнения процесса или их можно время от времени сдвигать? Что делать, если сегменты программы не помещаются в имеющуюся память ? Как сократить затраты ресурсов системы на управление памятью ? Имеется и ряд других не менее интересных проблем управления памятью [5, 10, 13, 17].
Ниже приводится классификация методов распределения памяти, в которой выделено два класса методов – с перемещением сегментов процессов между ОП и ВП (диском) и без перемещения, т.е. без привлечения внешней памяти (рис. 6.5). Данная классификация учитывает только основные признаки методов. Для каждого метода может быть использовано несколько различных алгоритмов его реализации.
Рис. 6.5. Классификация методов распределения памяти
На рис. 6.6 показаны два примера фиксированного распределения. Одна возможность состоит в использовании разделов одинакового размера. В этом случае любой процесс, размер которого не превышает размера раздела, может быть загружен в любой доступный раздел. Если все разделы заняты и нет ни одного процесса в состоянии готовности или работы, ОС может выгрузить процесс из любого раздела и загрузить другой процесс, обеспечивая тем самым процессор работой.
Рис. 6.6. Варианты фиксированного распределения памяти
При использовании разделов с одинаковым размером имеются две проблемы.
- Программа может быть слишком велика для размещения в разделе. В этом случае программист должен разрабатывать программу, использующую оверлеи, чтобы в любой момент времени требовался только один раздел памяти. Когда требуется модуль, отсутствующий в данный момент в ОП, пользовательская программа должна сама его загрузить в раздел памяти программы. Таким образом, в данном случае управление памятью во многом возлагается на программиста.
- Использование ОП крайне неэффективно. Любая программа, независимо от ее размера, занимает раздел целиком. При этом могут оставаться неиспользованные участки памяти большого размера. Этот феномен появления неиспользованной памяти называется внутренней фрагментацией (internal fragmentation).
Бороться с этими трудностями (хотя и не устранить полностью) можно посредством использования разделов разных размеров. В этом случае программа размером до 8 Мбайт может обойтись без оверлеев, а разделы малого размера позволяют уменьшить внутреннюю фрагментацию при загрузке небольших программ.
В том случае, когда разделы имеют одинаковый раздел, размещение процессов тривиально – в любой свободный раздел. Если все разделы заняты процессами, которые не готовы к немедленной работе, любой из них может быть выгружен для освобождения памяти для нового процесса.
Когда разделы имеют разные размеры, есть два возможных подхода к назначению процессов разделам памяти. Простейший путь состоит в том, чтобы каждый процесс размещался в наименьшем разделе, способном вместить данный процесс (в этом случае в задании пользователя указывался размер требуемой памяти). При таком подходе для каждого раздела требуется очередь планировщика, в которой хранятся выгруженные из памяти процессы, предназначенные для данного раздела памяти. Достоинство такого способа в возможности распределения процессов между разделами ОП так, чтобы минимизировать внутреннюю фрагментацию.
Недостаток заключается в том, что отдельные очереди для разделов могут привести к неоптимальному распределению памяти системы в целом. Например, если в некоторый момент времени нет ни одного процесса размером от 7 до 12 Мбайт, то раздел размером 12 Мбайт будет пустовать, в то время как он мог бы использоваться меньшими процессами. Поэтому более предпочтительным является использование одной очереди для всех процессов. В момент, когда требуется загрузить процесс в ОП, выбирается наименьший доступный раздел, способный вместить данный процесс.
В целом можно отметить, что схемы с фиксированными разделами относительно просты, предъявляют минимальные требования к операционной системе; накладные расходы работы процессора на распределение памяти невелики. Однако у этих схем имеются серьезные недостатки.
- Количество разделов, определенное в момент генерации системы, ограничивает количество активных процессов (т.е. уровень мультипрограммирования).
- Поскольку размеры разделов устанавливаются заранее во время генерации системы, небольшие задания приводят к неэффективному использованию памяти. В средах, где заранее известны потребности в памяти всех задач, применение рассмотренной схемы может быть оправдано, но в большинстве случаев эффективность этой технологии крайне низка.
Для преодоления сложностей, связанных с фиксированным распределением, был разработан альтернативный подход, известный как динамическое распределение. В свое время этот подход был применен фирмой IBM в операционной системе для мэйнфреймов в OS/MVT ( мультипрограммирование с переменным числом задач – Multiprogramming With a Variable number of Tasks). Позже этот же подход к распределению памяти использован в ОС ЕС ЭВМ [12] .
При динамическом распределении образуется перемененное количество разделов переменной длины. При размещении процесса в основной памяти для него выделяется строго необходимое количество памяти. В качестве примера рассмотрим использование 64 Мбайт (рис. 6.7) основной памяти. Изначально вся память пуста, за исключением области, задействованной ОС. Первые три процесса загружаются в память , начиная с адреса, где заканчивается ОС, и используют столько памяти, сколько требуется данному процессу. После этого в конце ОП остается свободный участок памяти, слишком малый для размещения четвертого процесса. В некоторый момент времени все процессы в памяти оказываются неактивными, и операционная система выгружает второй процесс, после чего остается достаточно памяти для загрузки нового, четвертого процесса.
Поскольку процесс 4 меньше процесса 2, появляется еще свободный участок памяти. После того как в некоторый момент времени все процессы оказались неактивными, но стал готовым к работе процесс 2, свободного места в памяти для него не находится, а ОС вынуждена выгрузить процесс 1, чтобы освободить необходимое место и разместить процесс 2 в ОП. Как показывает данный пример, этот метод хорошо начинает работу, но плохо продолжает. В конечном счете, он приводит к наличию множества мелких свободных участков памяти, в которых нет возможности разместить какой-либо новый процесс. Это явление называется внешней фрагментацией ( external fragmentation ), что отражает тот факт, что сильно фрагментированной становится память , внешняя по отношению ко всем разделам.
Один из методов преодоления внешней фрагментации – уплотнение ( compaction ) процессов в ОП. Осуществляется это перемещением всех занятых участков так, чтобы вся свободная память образовала единую свободную область. В дополнение к функциям, которые ОС выполняет при распределении памяти динамическими разделами, в данном случае она должна еще время от времени копировать содержимое разделов из одного места в другое, корректируя таблицы свободных и занятых областей. Эта процедура называется уплотнением или сжатием.
Перечислим функции операционной системы по управлению памятью в этом случае.
- Перемещение всех занятых участков в сторону старших или младших адресов при каждом завершении процесса или для вновь создаваемого процесса в случае отсутствия раздела достаточного размера.
- Коррекция таблиц свободных и занятых областей.
- Изменение адресов команд и данных, к которым обращаются процессы при их перемещении в памяти, за счет использования относительной адресации .
- Аппаратная поддержка процесса динамического преобразования относительных адресов в абсолютные адреса основной памяти.
- Защита памяти, выделяемой процессу, от взаимного влияния других процессов.
Уплотнение может выполняться либо при каждом завершении процесса, либо только тогда, когда для вновь создаваемого процесса нет свободного раздела достаточного размера. В первом случае требуется меньше вычислительной работы при корректировке таблиц свободных и занятых областей, а во втором – реже выполняется процедура сжатия.
Так как программа перемещается по оперативной памяти в ходе своего выполнения, в данном случае невозможно выполнить настройку адресов с помощью перемещающего загрузчика. Здесь более подходящим оказывается динамическое преобразование адресов. Достоинствами распределения памяти перемещаемыми разделами являются эффективное использование оперативной памяти, исключение внутренней и внешней фрагментации, недостатком – дополнительные накладные расходы ОС.
При использовании фиксированной схемы распределения процесс всегда будет назначаться одному и тому же разделу памяти после его выгрузки и последующей загрузке в память . Это позволяет применять простейший загрузчик , который замещает при загрузке процесса все относительные ссылки абсолютными адресами памяти, определенными на основе базового адреса загруженного процесса.
Ситуация усложняется, если размеры разделов равны (или неравны) и существует единая очередь процессов, – процесс по ходу работы может занимать разные разделы . Такая же ситуация возможна и при динамическом распределении. В этих случаях расположение команд и данных, к которым обращается процесс, не является фиксированным и изменяется всякий раз при выгрузке, загрузке или перемещении процесса. Для решения этой проблемы в программах используются относительные адреса. Это означает, что все ссылки на память в загружаемом процессе даются относительно начала этой программы. Таким образом, для корректной работы программы требуется аппаратный механизм, который бы транслировал относительные адреса в физические в процессе выполнения команды, обращающейся к памяти.
Применяемый обычно способ трансляции показан на рис. 6.8. Когда процесс переходит в состояние выполнения, в специальный регистр процесса, называемый базовым, загружается начальный адрес процесса в основной памяти. Кроме того, используется "граничный" (bounds) регистр , в котором содержится адрес последней ячейки программы. Эти значения заносятся в регистры при загрузке программы в основную память . При выполнении процесса относительные адреса в командах обрабатываются процессором в два этапа. Сначала к относительному адресу прибавляется значение базового регистра для получения абсолютного адреса. Затем полученный абсолютный адрес сравнивается со значением в граничном регистре. Если полученный абсолютный адрес принадлежит данному процессу, команда может быть выполнена. В противном случае генерируется соответствующее данной ошибке прерывание .
Оперативная память отвечает за скорость загрузки приложений и влияет на их работу. Ее скорость работы можно увеличить, даже не покупая новый дорогой комплект. Для этого нужно поставить ее в двухканальный режим. Как это сделать — в этой статье.
Что такое двухканальный режим
Двухканальный режим означает, что два канала памяти будут работать параллельно. Это один из самых распространенных многоканальных режимов работы памяти. Он улучшает производительность вашего ПК за счет увеличения количества каналов связи между плашками и контроллером памяти в процессоре.
Критерии для двухканального режима
Самый частый вопрос: можно ли устанавливать оперативную память разного объема в компьютер? Ответ — да, можно, при этом она будет стабильно работать. НО, двухканальный режим работать не будет при такой установке.
Среднестатистическому пользователю разница заметна не будет, но для тех, кто работает с требовательными программами и любит сидеть в тяжелых играх, это существенный минус. Тесты тому подтверждение.
Dual Channel — двухканальный режим.
Single Channel — одноканальный режим.
Подробные тесты в играх можно посмотреть здесь:
Также можно ставить модули с разной частотой и таймингами, но работать они будут с характеристиками менее производительной планки. Проблем с двухканальным режимом при такой конфигурации не возникает.
Производитель памяти не имеет значения, если все предыдущие нюансы были учтены. Желательно, чтобы у всех планок были одинаковые производители чипов, иначе могут возникнуть проблемы с совместимостью. Если в одной из планок стоят чипы производства Samsung, то и в другой должны стоять чипы Samsung.
Точную информацию о том, какие чипы применяются в той или иной модели, можно узнать на сайте производителя плашек памяти.
Таким образом, планки с разным объемом или разными производителями чипов работать в двухканальном режиме не будут, во всех остальных случаях потребуется просто правильно вставить модули в материнскую плату.
Как настроить двухканальный режим
Чтобы пользоваться многоканальным режимом памяти процессор должен иметь контроллер, поддерживающий такую функцию, а материнская плата должна поддерживать эту архитектуру. Кроме того, желательно, чтобы чипы памяти были от одного производителя, в противном случае система может просто не запускаться.
Приступим к установке памяти. В материнских платах с четырьмя слотами под оперативную память каналы обычно распределены так: к каждой паре разъемов подходит свой канал.
В таком случае, если у вас будет всего один модуль оперативной памяти, где бы он ни стоял, память всегда будет работать в одноканальном режиме. Если модуля два, то при неправильной установке связь с процессором либо будет осуществляться в одноканальном режиме, либо вовсе будет черный экран, так как материнская плата начнет ругаться на неправильную установку.
Для того, чтобы работал двухканальный режим, в большинстве случаев оперативную память следует вставлять в слоты A2 и B2, если у вас два модуля, или во все четыре слота, если модуля четыре.
В некоторых случаях производители иначе распределяют каналы связи, поэтому, перед установкой лучше посмотреть документацию к материнской плате.
Если на материнской плате только два слота под оперативную память, то стоит вставлять модули либо в оба слота, либо в B1 слот.
Иногда производители материнских плат раскрашивают слоты в разный цвет. В большинстве случаев слоты раскрашены через один:
Обычно слоты, куда требуется вставить модули для получения двухканального режима, очень яркие и сразу привлекают внимание, чтобы пользователь ничего не напутал. Есть исключения, в которых производитель решает сделать наоборот, поэтому, опять же, стоит читать документацию. Кроме нее вы можете ориентироваться на маркировку слотов, которая нанесена рядом.
Реже встречаются варианты, когда производитель раскрашивает слоты по каналам связи. То есть, A1 и A2 слоты раскрашены, к примеру, в красный цвет, так как к ним подходит один канал, а B1 и B2 — в фиолетовый, потому что передача информации с них осуществляется по другому каналу.
К слову о документации к материнским платам. Обычно в мануалах слоты подписаны по такой схеме: форм-фактор + название слота, например, DIMM_A2. Здесь указываются только рекомендуемые варианты установки модулей в материнскую плату. Чтобы не запутаться в наименовании и порядке слотов, нужно сравнить изображения из документации с маркировкой на материнской плате.
Как проверить корректность работы
Таким образом, двухканальный режим оперативной памяти — очень классная вещь, которая значительно ускоряет ваш компьютер. Причем, для ее реализации не нужно ломать себе голову сложными схемами и кошелек — большими тратами. Достаточно либо переставить модули памяти, либо докупить планку, что будет стоить не так уж дорого, зато во много раз улучшит ваше впечатление от использования ПК.
Читайте также: