- •1. Архитектура информационных таможенных систем 4
- •Глава 2. Информационно-техническая политика 39
- •Глава 3. Единая автоматизированная
- •Глава 4. Базы информационных данных 69
- •Глава 5. Программные продукты, используемые
- •Глава 6. Основы компьютерных телекоммуникаций 134
- •1. Архитектура таможенных систем
- •1.2. Операционные системы
- •1.2.1. Назначение и функции операционной системы
- •1.2.2. Архитектура операционной системы
- •1.2.3. Процессы и потоки, мультипрограммирование
- •1.2.4. Мультипроцессорная обработка
- •1.2.5. Управление памятью
- •1.2.6. Кэш-память
- •1.2.7. Организация ввода-вывода
- •1.3. Файловые системы
- •1.3.1. Логическая и физическая организация файловой системы
- •1. Небольшой файл (small)
- •2. Большой файл (large)
- •3. Очень большой файл (huge)
- •4. Сверхбольшой файл (extremely huge)
- •1. Небольшие каталоги (small indexes)
- •2. Большие каталоги (large indexes)
- •1.3.2. Сравнительный анализ быстродействия файловых систем fat и
- •2. Информационно-техническая политика фтс россии
- •2.4. Концепция информационно-технической
- •2.4.1. Электронное декларирование
- •2.4.2. Система управления рисками
- •2.4.3. Система предварительного информирования
- •2.4.4. «Зеленый коридор»
- •2.4.5. Оценка эффективности реализуемой системы организационных
- •3. Единая автоматизированная
- •3.1. Задачи автоматизации процессов
- •3.4. Принципы построения еаис
- •3.6. Типовые требования по безопасности
- •4. Базы информационных данных
- •4.1. Основные понятия процесса
- •4.2. Системы управления базой
- •4.3. Особенности баз данных, используемых в фтс россии
- •4.3.1. Центральная база данных
- •4.4. Распределенные технологии
- •4.5. Принципы построения систем поддержки
- •4.6. Принципы построения систем, ориентированных
- •4.6.1. Хранилища данных
- •4.6.2. Модели данных, используемые для хранилищ
- •4.6.3. Методы аналитической обработки данных в хранилище
- •4.6.4. Хранилища данных в еаис
- •4.7. Case-тбхнологии при проектировании таможенных
- •5. Программные продукты, используемые в фтс россии. Функциональные автоматизированные
- •5.1. Средства автоматизации органов управления фтс
- •5.2. Функциональные арм и их взаимодействие
- •5.2.1. Понятие об автоматизированном рабочем месте
- •5.2.2. Арм участников вэд
- •5.3. Автоматизированная система контроля
- •5.4. Автоматизированная система пограничного
- •5.5. Комплексные средства автоматизации
- •5.5.1. Аист-рт21
- •5.5.2. «Аист м»
- •6. Основы компьютерных телекоммуникаций
- •6.1. Структура компьютерных сетей.
- •6.1.1. Линии связи
- •6.1.2. Аппаратура линий связи
- •6.1.3. Технологии объединения отдельных компьютеров в сеть
- •6.1.4. Организация совместного использования линий связи
- •6.1.5. Адресация компьютеров
- •6.2. Способы коммутации и передачи данных в сетях
- •6.3. Сетевая технология ethernet
- •6.4. Структуризация — средство построения
- •6.5. Сетевые технологии token ring, fddi
- •6.5.1. Сетевая технология Token Ring
- •6.5.2. Сетевая технология fddi
1.2.2. Архитектура операционной системы
Наиболее общим подходом к структуризации ОС является разделение всех ее модулей на две группы: ядро и вспомогательные модули.
Ядро включает модули, выполняющие основные функции ОС: управление процессами, памятью, управление вводом-выводом, файловую систему и пр.
Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования API (Application Programming Interface). Ядро работает в привилегированном режиме, и большая часть его модулей постоянно находится в памяти (резидентные модули). Разделение ОС на ядро и вспомогательные модули облегчает ее расширяемость.
К вспомогательным модулям ОС относятся:
- утилиты (сжатие, архивирование, проверка, дефрагментация и пр.);
- системные обрабатывающие программы (редакторы, отладчики, компиляторы и пр.);
- программы дополнительных услуг (игры, калькулятор и пр.);
- библиотеки процедур (математических функций и пр.).
Вспомогательные модули ОС загружаются в оперативную память только
на время выполнения (транзитные модули).
Ядро в привилегированном режиме. Современные ОС поддерживают как минимум два режима:
- пользовательский режим;
- привилегированный режим — режим ядра (kernel mode) — режим супервизора (supervisor mode).
Ядро выполняет все основные функции — поэтому работает в привилегированном режиме.
Контроль за выполнением критичных инструкций обеспечивается запретом их выполнения в пользовательском режиме. Например, доступ к памяти (доступ к системным таблицам памяти) разрешен только в привилегированном режиме. Для упорядочивания прав доступа вводятся уровни привилегий. Работа с возможностью переключения в привилегированный режим приводит к замедлению работы.
Машинно-зависимые компоненты ОС. Для облегчения переносимости ОС с одной аппаратной платформы на другую аппаратно-зависимый код локализуют в нескольких модулях ОС. При переносе, в случае несовпадении системы команд, перепрограммируются только эти модули. Разработчики стремятся сократить количество машинно-зависимых модулей. Реально разработчики ОС для переносимости ограничиваются несколькими аппаратными платформами: Pentium, Alpha, DEC, MIPS, многопроцессорные. К аппаратно-зависимым модулям ОС относятся также низкоуровневые драйверы внешних устройств. В Intel х 86/Pentium разработка машинно-зависимого слоя упрощается за счет встроенной в постоянную память базовой системы ввода- вывода (BIOS).
1.2.3. Процессы и потоки, мультипрограммирование
Как указывалось выше, под процессом понимается программа в стадии выполнения. Процесс можно рассматривать также как единицу работы для процессора. Для современных типов процессоров существует и более мелкая единица работы — поток или нить. Процесс может породить один и более потоков.
В чем же состоит принципиальное различие в понятиях процесса и потока? Процесс рассматривается ОС как заявка на все виды ресурсов (память, файлы и пр.), кроме одного — процессорного времени. Поток — это заявка на процессорное время.
В дальнейшем в качестве единицы работы ОС будут использоваться понятия «процесс» и «поток». В тех же случаях, когда это не играет существенной роли, они будут называться задачей.
Планирование процессов и потоков. Планирование процессов и потоков включает:
- создание-уничтожение процессов;
- взаимодействие между процессами;
- распределение процессорного времени;
- обеспечение процессов необходимыми ресурсами (единолично, совместно);
- синхронизация (контроль возникновения «гонок», блокировок);
- после завершения процесса — «зачистка», т. е. удаление следов пребывания в системе.
Каждый процесс изолируется от других своим виртуальным адресным пространством, под которым понимается совокупность адресов, которыми может манипулировать программный модуль процесса. ОС отображает виртуальное адресное пространство на отведенную процессу физическую память.
Для взаимодействия, процессы обращаются к ОС, которая предоставляет средства общения (конвейеры, почтовые ящики, разделяемые секции памяти и др.).
Возможность распараллеливания вычислений в рамках процесса на потоки повышает эффективность ОС. Механизм распараллеливания вычислений для одного приложения называется многопоточной обработкой. Потоки процесса имеют одно виртуальное адресное пространство. Распараллеливание ускоряет выполнение процесса за счет отсутствия переключения ОС с одного адресного пространства на другое, которое имеет место при выполнении процессов. Программы становятся более логичными. Особый эффект при этом достигается в мультипроцессорных системах.
Примером многопоточной обработки может служить выполнение запросов MS SQL Server.
С понятиями процесса и потока тесно связано понятие мультипрограммирования. Мультипрограммирование, или многозадачность (multitasking) — это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько задач (программ).
Общие критерии эффективности мультипрограммирования:
- пропускная способность;
- удобство работы пользователей;
- реактивность системы (заданные интервалы времени).
В зависимости от критерия различают:
- системы пакетной обработки;
- разделения времени;
- системы реального времени.
Мультипрограммирование в системах пакетной обработки. Главная цель мультипрограммирования такого вида — минимизация простоев всех устройств компьютера. Это, как правило, задачи вычислительного характера. Оператор формирует пакет заданий и вводит его тем или иным способом во внешнюю память. ОС выбирает из пакета мультипрограммную смесь из программ таким образом, чтобы максимально загрузить систему.
В этом режиме невозможно гарантировать выполнение задачи в течение определенного времени. Мультипрограммирование организовано за счет параллельной работы канала или контроллера и процессора.
Переключение процессора с одной задачи на друг ую — инициатива самой задачи. В подобных системах пользователь отстраняется от вычислительного процесса.
Мультипрограммирование в системах разделения времени. Основной критерий систем разделения времени — организация интерактивной работы пользователей с несколькими приложениями.
Мультипрограммирование организуется путем выделения каждой задаче некоторого, достаточно небольшого, отрезка времени — кванта. По завершении кванта задача принудительно приостанавливается и в соответствии с заложенным алгоритмом выбирается на выполнение новая задача.
Системы разделения времени имеют меньшую пропускную способность по сравнению с системами пакетной обработки при прочих равных условиях. Это обусловлено потерей времени на переключение процессора с задачи на задачу.
ОС MS Windows, Unix являются примерами систем разделения времени.
Мультипрограммирование в системах реального времени. ОС реального времени используются при управлении техническими объектами или технологическими процессами. Их особенностью является наличие предельного времени, в течение которого должна быть выполнена та или иная задача.
Мультипрограммная смесь (набор одновременно выполняемых задач) представляет собой фиксированный набор заранее разработанных программ, переключение которых осуществляется по прерываниям или по расписанию.
Для систем реального времени важна скорость обработки прерываний. Задача максимальной загрузки устройств — не актуальна.
Мультипрограммирование на основе прерываний. Прерывание — это способ переключения процессора на выполнение потока команд, отличного от того, который выполнялся, с последующим возвратом.
Различают внешние (аппаратные), внутренние и программные прерывания.
Внешние прерывания происходят асинхронно, т. е. происходят в случайный момент времени в процессе выполнения программы (например, от внешних устройств), внутренние — синхронно, т. е. возникают по конкретной причине и можно предугадать возникновение такого прерывания (например, при делении на ноль).
Программные прерывания не являются «истинными» прерываниями. Они возникают при выполнении определенной команды процессора и применяются в том случае, когда необходимо выполнить некоторые привилегированные действия (например, обратиться к порту компьютера). Прерываниям равного значения приписываются уровни приоритетов (уровни — IRQ). Каждое из прерываний обслуживается обработчиком прерываний (Interrupt Service Routine).
Внешние прерывания обрабатываются драйверами, внутренние — модулями ядра, а программные — процедурами из API.