ИСТОРИЯ
НОРМАТИВНЫЕ АКТЫ

П.Н. Афонин. «Информационные таможенные технологии»

Процессы могут одновременно претендовать на одни и те же ресурсы. В этом случае ОС поддерживает обслуживание очередей заявок к ресурсам.

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

На протяжении периода существования процесса его выполнение может быть многократно прервано и продолжено. Для возобновления выполнения процесса необходимо восстановить его среду. Эта информация называется контекстом процесса (состояние регистров, коды ошибок, указатели на открытые файлы и пр.).

ОС берет на себя функции синхронизации процессов, позволяющие приостанавливать или продолжать процессы при наступлении некоторых событий.

Для реализации сложных программных комплексов часто необходимо организовать их выполнение в виде параллельных процессов, и как следствие ОС должна предоставить средства для межпроцессного взаимодействия.

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

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

Защита памяти — это способность предохранять выполняемую задачу от ошибочного обращения к памяти, назначенной другим.

Управление файлами и внешними устройствами. ОС «экранирует» сложность реальной аппаратуры от программиста. Особенно ярко это проявляется в файловой системе. ОС организует представление о данных, хранящихся на внешнем накопителе, в виде файла — неструктурированной последовательности байтов, имеющей символьное имя. Для удобства работы файлы группируются в каталоги. Пользователь может с помощью ОС выполнять поиск файла по имени, удаление, вывод, изменение и сохранение. Файловая система выполняет преобразование символьных имен файлов в физические адреса на диске (цилиндр, поверхность, сектор).

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

Защита данных и администрирование. Безопасность данных вычислительной системы обеспечивается средствами отказоустойчивости ОС, направленными на защиту от сбоев отказов аппаратуры и ошибок программного обеспечения, а также средствами защиты от несанкционированного доступа. В последнем случае ОС защищает данные от ошибочного или злонамеренного поведения пользователя системы. Функции защиты ОС тесно связаны с функциями администрирования, так как именно администратор определяет права пользователей при их обращении к разным ресурсам системы — файлам, каталогам, принтерам, сканерам и т. п.

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

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

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

Сетевая ОС не полностью скрывает распределенную природу сети, т. е. является виртуальной сетью. Работая в сетевой ОС, пользователь, хотя и может запустить задание на любой машине, всегда знает, на какой машине выполняется его задание. По умолчанию задание выполняется на той машине, на которой пользователь сделал логический вход. Часто под сетевой ОС понимается набор ОС отдельных компьютеров сети.

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

1.3.2. Архитектура операционной системы

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

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

Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования API (Application Programming Interface). Ядро работает в привилегированном режиме, и большая часть его модулей постоянно находится в памяти (резидентные модули). Разделение ОС на ядро и вспомогательные модули облегчает ее расширяемость.

К вспомогательным модулям ОС относятся:

• утилиты (сжатие, архивирование, проверка, дефрагментация и пр.);
• системные обрабатывающие программы (редакторы, отладчики, компиляторы и пр.);
• программы дополнительных услуг (игры, калькулятор и пр.);
• библиотеки процедур (математических функций и пр.).

Вспомогательные модули ОС загружаются в оперативную память только на время выполнения (транзитные модули).

Ядро в привилегированном режиме. Современные ОС поддерживают как минимум два режима:

• пользовательский режим;
• привилегированный режим — режим ядра (kernel mode) — режим супервизора (supervisor mode).

Ядро выполняет все основные функции — поэтому работает в привилегированном режиме.

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

Машинно-зависимые компоненты ОС. Для облегчения переносимости ОС с одной аппаратной платформы на другую аппаратно-зависимый код локализуют в нескольких модулях ОС. При переносе, в случае несовпадении системы команд, перепрограммируются только эти модули. Разработчики стремятся сократить количество машинно-зависимых модулей. Реально разработчики ОС для переносимости ограничиваются несколькими аппаратными платформами: Pentium, Alpha, DEC, MIPS, многопроцессорные. К аппаратно-зависимым модулям ОС относятся также низкоуровневые драйверы внешних устройств. В Intel х86/Pentium разработка машинно-зависимого слоя упрощается за счет встроенной в постоянную память базовой системы ввода-вывода (BIOS).

1.3.3. Процессы и потоки, мультипрограммирование

Как указывалось выше, под процессом понимается программа в стадии выполнения. Процесс можно рассматривать также как единицу работы для процессора. Для современных типов процессоров существует и более мелкая единица работы — поток или нить. Процесс может породить один и более потоков.

В чем же состоит принципиальное различие в понятиях процесса и потока? Процесс рассматривается ОС как заявка на все виды ресурсов (память, файлы и пр.), кроме одного — процессорного времени. Поток — это заявка на процессорное время.

В дальнейшем в качестве единицы работы ОС будут использоваться понятия «процесс» и «поток». В тех же случаях, когда это не играет существенной роли, они будут называться задачей.

Планирование процессов и потоков. Планирование процессов и потоков включает:

• создание-уничтожение процессов;
• взаимодействие между процессами;
• распределение процессорного времени;
• обеспечение процессов необходимыми ресурсами (единолично, совместно);
• синхронизация (контроль возникновения «гонок», блокировок);
• после завершения процесса — «зачистка», т. е. удаление следов пребывания в системе.

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

Для взаимодействия, процессы обращаются к ОС, которая предоставляет средства общения (конвейеры, почтовые ящики, разделяемые секции памяти и др.).

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

Примером многопоточной обработки может служить выполнение запросов MS SQL Server.

С понятиями процесса и потока тесно связано понятие мультипрограммирования. Мультипрограммирование, или многозадачность (multi-tasking) — это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько задач (программ).

Общие критерии эффективности мультипрограммирования:

<<   [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] ...  [66]  >> 


Контактная информация: e-mail: [email protected]   
Все о таможне