Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции По Операционным Системам (Иванько А. Ф.).doc
Скачиваний:
52
Добавлен:
07.10.2014
Размер:
147.97 Кб
Скачать

Подсистемы управления процессами.

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

Подсистемы управления памятью

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

1)отслеживание состояния этого ресурса.

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

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

На разных этапах жизненного цикла программного обеспечения для переменных и кодов требуются три типа адресов:

1)Символьные

2) Виртуальные, переменные в процессе выполнения программы

3)Физические, адреса ячеек памяти

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

Подсистемное управление файлами, устройствами ввода вывода.

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

Средства зашиты данных и администрирование

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

Интерфейс прикладного програмирования

Предназначен для использования прикладными программами системных ресурсов и реализованный системой функцийю. Aplication Program Interface (AP) АР описывает сосовкупность функции пренадлежаших ядру или настройкам ОС. АР составляет набор функций представляемый системой програмирования разработчику прикладной программы и ориентированна на организацию взаимодействия результируюшей прикладной программы с целевой вычислительной системой. В своюочердь целевая вычислительная система предсталяет собой совокупность программных и аппаратных средств в окружении которых выполняется результируюшая программа. Сама результируюшая программа пораждается систмой программирования на основании кода исходной программы созданного разработчиком, а также объектных модулей и библиотек входяших в состав системы программирования. АР используется не только прикладными но и многими системными программными, как в составе ОС так и в составе системы програмирования. Функции АР позволяют разработчику строить результирующую прикладную программу так, чтобы использывать средства целевой вычислителительной системы для выполнения типовых операций. Но при этом разработчик программы избавлен от необходимости создавать исходный код для выполнения этих операций. Программные интерфейсы Ар включает не только функции но и соглашения об их использовании, которые регламентируются ОС, архитектурой целевой вычислительной системы и системой программировани. Сушествует несколько вариантов реализации АР.

1) Реализация АР на уровне ОС

2)Реализация АР на уровне системы программирования

3) Реализация на уровне внешней библиотеки процедур и функций

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

Концепция назначения и типы прерывания

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

1) Внешние прерывание связанное с сигналами от внешних переферийных устройств

2) Внутренние прерывания возникаюшие от ошибок в вычислительном процессе

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

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

1) Векторный способ, характеризуется тем что в момент передачи процесса выдается номер вызываемой процедуры в соответствии с которым осушествляется обработка прерываний

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

1) Функция прерывания передает управление подпрограмме обработке прерываний через вектор прерываний который содержит адреса всех программ обработки прерываний

2) В архитектуре обработки прерываний должно быть предусмотрено сохранение адреса прерванной команды

3) Входяшие прерывания задерживаются если в данный момент обрабатывается другое прерывание для предотврашения потери прерывания

4) Ловушка - это программа сгененрированная прерыванием, которая либо вызывается ошибкой либо выполняется по запросу пользователя.

25.11.09

Основные модули ОС:

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

-Управление основной памятью

-управление файлами

-управление системой ввода вывода

-управление внешней памятью

-Модуль поддержки сетей

-система зашиты

-система поддержки командного интерпретатора.

Такие как загрузчик, драйвер ввода вывода, файлы конфигурации ОС.

Для управления ходом выполнения приложений ОС должна иметь по отношению к приложениям определенные привилегии в противном случае некорректно работающее приложение может вмешаться в работу ОС и повредить часть ее кодов.ОС должна обладать исключительными полномочиями для того чтобы играть роль арбитра в споре приложений за ресурсы компьютера. Ни одно из приложений не должно иметь возможностей без ведома ОС получать дополнительную область памяти, занимать процессом дольше разрешенного времени, а также непосредственно управлять совместно используемыми внешними устройствами. Обеспечить привилегии ОС не возможно без специальных средств аппаратной поддержки. Аппаратура компьютера должна поддерживать как минимум два режима работы, а именно пользовательский и привилегированный режим работы( режим ядра или режимом супервизора). Подразумевается что вся ОС или некоторые ее части работают в привилегированном режиме, а приложения работают в пользовательском режиме. Так как ядро выполняет основные функции ОС то чаше всего именно ядро ОС работает в привилегированном режиме. Приложения ставятся в подчиненное положение за счет запрета выполнения в пользвательском режиме некоторых критичных команд связанных с переключение процессора с задачи на задачу, управлением устройствами ввода вывода, доступом к механизмам распределения и защиты памяти. Выполнение некоторых инструкций в пользовательском режиме безусловно, а некоторые другие инструкции могут выполняться толь ко при определенных условиях. Условия разрешения выполнения критичных инструкция находится под полным контроле ОС и этот контроль обеспечивается за счет инструкций безусловно запряженных для пользовательского режима. Кроме того в привилегированном режиме обеспечивается защита тех областей памяти которые выделены различным приложениям от несанкционированного проникновения других приложений и пользователя. Между количеством уровнем привилегий реализуемых аппаратурой и количеством уровней привилегий реализуемой ОС нет прямого соответствия, но если аппаратура поддерживает хотя бы 2 уровня привилегий то на этой базе можно создать программно развитую систему защиты областей памяти и других ресурсов. Для повышения устойчивости ОС обеспечивается работа в привилегированном режиме за счет уменьшения выполнения системных вызовов. Системный вызов привилегированного ядра и возврат в исходное состояние выполняется медленнее, чем переключение и вызов процедуры или стандартной программы, чем вызов процедуры без смены режима. Архитектура ОС основанная на привилегированном ядре является классической, ее используют такие ОС как Unix OS2 Window NT. XP и т.д. В ряде случаев разработчики ОС отступают от классической архитектуры и организуют работу ядра и приложений в одном и том же режиме. Например, ОС NET2 компании NOVEL эта ОС использует привилегированный режим работы процессоров Intel Pentium для работы ядра, так и для работы специфических приложений. У этой ОС отсутствует система аппаратной зашиты памяти от работы некорректных приложений, но вместе с тем у этой ОС есть преимущество, которое заключается в повышение скорости обработки информации за счет отсутствий переключений с одного режима работы на другой. Есть и несколько другая архитектура, когда существует двойное ядро, когда ядро ОС может состоять из нескольких модулей, которые работают в привилегированном режиме. ОС MS DOS состоит из двух модулей. Вычислительную систему ОС работающую на основе ядра можн рассматривать как систему состоящую из трех иерархически расположенных слоев:

Нижний слой представляет собой аппаратуру компьютера

Промежуточный слой, ядро работающее в привилегированном режиме

Верхний слой это утилиты обрабатывающие программы и приложения

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

2.12.09

Многослойная структура ОС

Ядро ОС может состоять из следующих слоев:

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

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

3) Базовые механизмы ядра. Выполняет наиболее примитивные операции ядра, такие как программное переключение процессов, деспетчерезация прерываний, перемешение страниц из оперативной памяти на диск и т.д.

4) Менеджеры ресурсов. Этот слой состоит из стационарных модулей реализуюшими основые задачи по управлению основными ресурсами. В этом слое работают деспетчеры процесооров, ввода вывода, менеджеры файловой системы и управлению памятью.

5) Интерфейс системных вызовов. Этот слой взаимодействует вместе с приложениями и образует прикладной программный интерфейс.

15