Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПР2.docx
Скачиваний:
32
Добавлен:
15.02.2015
Размер:
430.81 Кб
Скачать

2.1. Локальные компьютерные системы

Как уже отмечалось выше, объектом защиты информации является компьютерная система. Рассмотрим более подробно компьютерные системы.

Локальная компьютерная система. Обработка данных

Компьютерная система служит для автоматизации информационных процессов, происходящих в информационных системах.

Схематично компьютерная система представлена на рис. 2.2.  

В компьютерных системах обработка данных может осуществляться двумя способами:

  • мультипроцессорная обработка данных;

  • мультипрограммная обработка данных.

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

Мультипрограммирование используется в:

  • системах пакетной обработки;

  • системах разделения времени;

  • системах реального времени.

 В системах пакетной обработки используется следующая система функционирования: в начале работы компьютерной системы формируется пакет заданий, каждое из которых содержит требование к ресурсам компьютерной системы; из этого пакета заданий формируется мультипрограммная смесь, т.е. множество одновременно выполняемых задач. Для одновременного выполнения выбираются задачи, предъявляющие разные требования к ресурсам так, чтобы обеспечивалась сбалансированная нагрузка всех устройств.

Рис. 2.2. Схема компьютерной сети

Главная цель – минимизация простоев всех устройств компьютерной системы и, прежде всего, центрального процессора.

Например, в мультипрограммной смеси желательно одновременное присутствие вычислительных задач и задач с интенсивным вводом – выводом.

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

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

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

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

Мультипроцессорная обработка данных осуществляется в компьютерных системах с несколькими процессорами, при этом несколько приложений могут одновременно выполняться на нескольких процессорах.

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

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

В наши дни становится общепринятым введение в ОС функций поддержки мультипроцессорной обработки данных. Такие функции имеются во всех популярных ОС, таких как Sun Solaris 2.x, Santa Grus Operations Open Server 3.x, IBM OS/2, Microsoft Windows, начиная с NT.

Любая компьютерная система располагает ресурсами двух типов (системными ресурсами):

  • аппаратные ресурсы, к которым относятся процессоры, оперативная память, накопители на магнитных дисках, устройства ввода и вывода, сетевые устройства и т. д.;

  • информационные ресурсы, к которым относятся программы и данные.

В компьютерных системах выполняются программы различного назначения.

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

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

Затем исходный модуль должен быть преобразован в объектный модуль. Объектный модуль – это программа, предоставленная в двоичном коде, но не настроенная на определенное адресное пространство.

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

Каждое приложение работает в своем адресном пространстве.

Преобразование исходного модуля в объектный осуществляется программой, называемой транслятором. Различают два вида трансляторов:  компиляторы и интерпретаторы.

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

Обработка данных представлена на рис. 2.3.

 

Рис. 2.3. Обработка данных

Для выполнения программы (загрузочного модуля) ей должны быть выделены ресурсы: оперативная память, процессорное время, устройства ввода-вывода, внешняя память и т. д.

Программа может быть выполнена только тогда, когда она и обрабатываемые ею данные находятся в оперативной памяти.

Для описания действий, выполненных в компьютерной системе, используются два основополагающих понятия: процесс и поток.

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

Для выполнения процессу нужны доступ одновременно к нескольким ресурсам – процессору, области памяти, возможно к определенному файлу или устройству ввода-вывода.

Например, процессу выделяется определенная область памяти для его кодов и данных.

Процесс – это планируемая единица работы ОС.

Например:

1.  Подключить устройство ввода.

2.  Осуществить вычисления по формуле.

3.  Подключить устройство вывода.

Поток – выполненная единица работы ОС.

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

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

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

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

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

2.1.1. Системные программные средства

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

 Основным системным программным средством компьютерной системы служит операционная система.

Операционная система

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

  • ядро – модули, выполняющие основные функции ОС;

  • модули – выполняют вспомогательные функции ОС.

В состав ядра входят функции, решающие внутрисистемные задачи организации вычислительного процесса, такие как переключение контекстов, загрузка/ выгрузка страниц, обработка прерываний. Эти функции недоступны для приложений. Другой класс функций ядра служит для поддержки приложений, создавая для них так называемую прикладную программную среду. Приложения могут обращаться к ядру с запросами – системными вызовами – для выполнения тех или иных действий, например для открытия и чтения файла, вывода графической информации на дисплей, получение системного времени и т. д. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования API. 

Интерфейс – набор аппаратных и программных средств, который позволяет осуществлять взаимодействие устройств и программ компьютерной системы.

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

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

Вспомогательные модули ОС обычно подразделяются на следующие группы:

a)  Утилиты – программы, решающие отдельные задачи управления и сопровождения компьютерных систем, такие, например, как программы сжатия дисков, архивирование данных и т. п.

b) Системные обрабатывающие программы – текстовые или графические редакторы, компиляторы, компоновщики, отладчики.

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

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

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

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

2.1.2.  Основные функции, выполняемые ос

Любая операционная система выполняет следующие основные функции:

  • управление процессами и потоками;

  • управление памятью;

  • управление внешними устройствами и файлами;

  • управление файловой системой.

 Управление процессами и потоками

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

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

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

Управление памятью

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

Управление внешними устройствами и файлами

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

Программа, управляющая конкретной моделью внешнего устройства и учитывающая все его особенности, обычно называется драйвером этого устройства (от английского drive – управлять).

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

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

Одной из основных подсистем ОС служит файловая система.

Файловая система – это часть ОС, включающая:

  • совокупность всех файлов на диске;

  • наборы структур данных, используемых для управления файлами, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске;

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

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

Сектор – наименьшая адресуемая единица обмена данными дискового устройства с оперативной памятью. ОС при работе с диском использует, как правило, собственную единицу дискового пространства, называемую кластером (cluster).

Чаще всего размер сектора составляет 512 байт. При создании файла место на диске ему выделяется кластерами. Например, если файл имеет размер 2560 байт, а размер кластера в файловой системе определен в 1024 байта, то файлу будет выделено на диске три кластера.

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

Для удобства работы с данными файлы группируют в каталоги (папки), которые, в свою очередь, образуют группы – каталоги (папки) более высокого уровня.

Пользователь может с помощью ОС выполнить над файлами и каталогами такие действия, как:

  • поиск файла или каталога по имени;

  • удаление файла;

  • вывод содержимого файла на внешнее устройство;

  • изменение содержимого файла;

  • сохранение содержимого файла и т. д.

2.1.3.  Микроядерная архитектура ОС

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

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

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

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]