Лекция 4. Концептуальные основы ОС. Ресурс.
Дисциплины распределения ресурсов, используемые в ОС. Концепция прерывания
В IBM-совместимом компьютере имеется 256 различных прерываний с номерами от 0 до OFFH (номера представлены в виде шестнадцатеричных цифр). В самом начале адресного пространства памяти машины расположена таблица адресов прерываний. Каждый из этих адресов указывает на процедуру в памяти, которая будет исполнена в результате возникновения прерывания. Адреса программ прерываний чаще называют… Читать ещё >
Лекция 4. Концептуальные основы ОС. Ресурс. Дисциплины распределения ресурсов, используемые в ОС. Концепция прерывания (реферат, курсовая, диплом, контрольная)
Как уже говорилось ранее, любой вопрос, касающийся структуры или функций ОС, связан с представлением о ней, как о механизме управления процессами и управления ресурсами.
Различают ресурсы двух типов. К первому типу относятся ресурсы вычислительной системы, распределением и защитой которых занимаются отдельные системные управляющие программы, причем они располагают различными средствами для разрешения конфликтных ситуаций. Второй тип ресурсов — это ресурсы, представляемые пользователю непосредственно ОС или являющиеся доступными только при работе с ОС (их иногда называют абстрактными структурами).
Прежде чем перейти к проблеме управления ресурсами, необходимо определить три основных понятия:
само понятие ресурса;
роль стратегии управления ресурсами;
отношение между управляемыми ресурсами и программами, которыми они распределяются.
Рассмотрим более подробно понятие ресурс. В первых ОС ресурсами считались: процессорное время, память, каналы ввода-вывода и периферийные устройства, т. е. ресурсы вычислительной системы. Теперь это понятие стало больше и универсальней. Ресурс — это некоторая абстрактная структура с целым рядом атрибутов, характеризующих способы доступа к этим структурам и её физическое представление в системе. Определим, поэтому, ресурсы для операционной системы как объекты, доступ к которым необходимо соответствующим образом контролировать.
Стратегия управления. Если в системе предусмотрена некоторая совокупность ресурсов, то управлять их использованием можно лишь на основе некоторой стратегии. Стратегия — это четкая формулировка целей, к которым следует стремиться для обеспечения успешного, с точки зрения пользователя, функционирования системы в целом. Отметим, что наибольшее влияние на разработку ОС оказала именно необходимость совместного использования вычислительных ресурсов. Первоначально это было обусловлено стремлением наиболее полно использовать аппаратуру, вспомогательные устройства и даже, на раннем этапе развития ЭВМ, оплату труда операторов. Естественно, что сейчас экономическая значимость этих факторов не существенна, т. е. непосредственный эффект от совместного использования процессорного времени и памяти оптимизирован, а вот эффект от оптимизированного совместного использования данных увеличивается. Поэтому механизм доступа и распределения сохраняет свою значимость.
В основе процесса управления, как правило, лежит определенная стратегия. Без определенной стратегии невозможно оценить эффективность любого алгоритма и даже процедуры, непосредственно не связанной с программированием. И здесь при организации управления ресурсами необходимо принять решение, что наиболее выгодно для пользователя — быстро обслуживать отдельные запросы или поддерживать высокую степень загрузки оборудования.
Стратегия управления должна быть сформулирована в виде набора целевых функций планирования, которые устанавливают определенные ограничения на следующие параметры:
среднее время выполнения заданий;
число запаздывающих ответов;
максимально допустимое время ответа;
степень загрузки оборудования;
загрузку оборудования, при условии, что время ответа не превышает некоторого установленного значения;
параметры обслуживания заданий различных типов.
Принятие подобных решений в принципе может возлагаться на пользователя, хотя лучше, когда система сама способна реализовывать заданную стратегию. Одним из важнейших интерфейсов ОС является интерфейс с особыми механизмами, призванными направлять работу системы для достижения установленных целей. Конечно, лучше всего сделать подобный интерфейс более или менее естественным, и не перегружать его техническими деталями. Это в полной мере отображено в ОС для РС. В тоже время в ОС для больших ЭВМ существует возможность спецификации характеристик её функционирования, причем, в число характеристик входят не только характеристики обслуживания пользователя, но и различного рода количественные соотношения между степенью загрузки оборудования и эффективностью выполнения отдельных программ. Однако применение этого интерфейса, предполагает довольно высокий уровень специальной технической подготовки персонала. Следует заметить, что чем выше гибкость системы, тем меньше она требует ручного планирования. При создании управляющих механизмов возникает ряд проблем.
Во-первых, конечно, важно обладать возможностью сообщать системе, каким образом следует обслуживать данные программы. Однако для этого требуется более или менее высокий уровень специальной, в том числе и технической подготовки. Поэтому для работы с интерфейсами, позволяющими формировать системную стратегию, необходимо детально ознакомиться с принятой дисциплиной обслуживания, и, что особенно важно, с порядком использования различного рода очередей, т. е. необходимо дополнительное техническое посредничество между пользователем и ОС.
Во-вторых, возникает проблема степени согласованности функционирования различных механизмов, влияющих на системную стратегию. Действительно, по мере развития систем, в них появляются всё новые и новые средства управления ресурсами, возникают и совершенствуются интерфейсы, служащие для определения стратегий управления. При этом различные интерфейсы могут базироваться на различных понятиях. Существенное различие двух сходных интерфейсов, основанных на различных понятиях и имеющих различный синтаксис, мешает разобраться в системной стратегии и понять, как при заданных параметрах система будет вести себя в зависимости от интенсивности работы.
Все эти проблемы связаны, прежде всего, с вопросами удобства применения ОС и сложности их структуры. При этом возникает ещё одна проблема. Эффективность управления ресурсами зависит не только от имеющихся средств определения и реализации стратегий управления, но и от стиля программирования. Программы, естественно, имеют различные структуры и способы использования ресурсов, но плохой стиль программирования приводит к созданию программ, работающих с ресурсами в таком порядке, что у системных механизмов управления возникают дополнительные сложности. В принципе ОС может поощрять одни программы и наказывать другие в зависимости от их характеристик. Регулировать работу программы можно, передавая и отнимая у неё ресурсы. Но даже с целью повышения эффективности работы программы или параллельно работающих программ, невозможно изменить её основную структуру. Однако если ОС трудно справиться с программой, это не означает, что последняя плоха. Напротив, она может быть идеальной для решения частной задачи, но будет создавать неудобства для работы ОС. Таким образом, стиль программирования существенно влияет не только на размер результирующей программы, но и на количество необходимых ресурсов.
Стратегии управления ресурсами могут меняться в зависимости от размеров программ.
Если имеются несколько очень коротких программ, и каждая достаточно мала, значит, программе потребуется вероятней всего незначительное количество ресурсов на непродолжительное время. Такой программе можно выделить в личное пользование запрашиваемые ресурсы, причем вполне естественно предположить, что работать с ними она будет интенсивно. Отклонение параметров реального выполнения процесса должно быть невелико, поэтому какое-либо особое динамическое управление ресурсами после их распределения не имеет смысла.
Если несколько достаточно малых программ в совокупности составляют одну достаточно большую, ресурсов ей потребуется много. В этой ситуации используются две стратегии управления, применяющиеся как вместе, так и по отдельности.
Во-первых, это распределение ресурсов по необходимости. Это означает, что распределение ресурсов становится функцией среды выполнения. Ресурсы запрашиваются и выделяются в процессе выполнения задания, а не при его предварительной обработке.
Во-вторых, это динамическое управление ресурсами. При подобном управлении выделение или лишение ресурсов происходит на основании их использования. Эта стратегия базируется на предположении о том, что существует расхождение между номинальным и реальным использованием ресурсов, т. е. между фактическими кратковременными обращениями к ресурсам (реальное использование) и заказами на ресурс (номинальное использование). Иными словами система пытается не допускать простоя ресурсов. Естественно, что вторую стратегию разумно применять лишь для управления большими программами, т.к. именно в этом случае интенсивность работы с ресурсами будет заметно колебаться, поэтому можно добиться существенной экономии ресурсов, перераспределяя их. Однако такой способ пригоден лишь для управления вспомогательными ресурсами, лишение которых не приводит к серьезным для программ последствиям.
Концепция прерываний Большинство изменений в ОС происходит в результате прерываний, которые вызывают процессы в ОС. Можно сказать, что программы обработки прерываний представляют собой движущую силу, обеспечивающую функционирование всех систем. Иногда говорят, что ОС является управляемой по прерываниям.
Прерывания — механизм, позволяющий организовать параллельное функционирование отдельных устройств вычислительной системы и реагировать на особые состояния, возникающие при работе процессора. Структуры прерываний зависят, прежде всего, от аппаратной архитектуры, но имеют нечто общее — прерывание непременно влечет за собой изменение порядка выполнения команд процессором.
Прерывания делятся на три категории:
внешние аппаратные прерывания, происходящие в результате событий, которые осуществляются вне процессора (например, нажатие клавиши);
внутренние аппаратные, вырабатываемые самим процессором;
программные прерывания, инициируемые выполняемой программой по специальной команде, чтобы получить сервисные услуги ОС.
Второй тип прерываний можем разделить на следующие:
ошибка процессора (деление на 0, несовпадение четности и т. д.);
ошибка адресации, т. е. фиксируется недопустимый адрес (недопустимым адресом считается либо несуществующий, либо меньший минимального значения, хранящегося в базовом регистре);
прерывания от каналов ввода-вывода.
Механизмы прерывания являются предметом ожесточенных споров между разработчиками аппаратуры и программного обеспечения. Первые, естественно, требуют более простые схемы.
Можно организовать различные схемы структур прерываний.
Во-первых, вместо области сохранения можно предусмотреть группы регистров для хранения сразу нескольких векторов состояния.
Во-вторых, каждому типу прерываний можно присваивать определенный приоритет, и группе регистров векторов состояний ставить в соответствие множество областей сохранения. При возникновении прерывания, имеющего определенный приоритет, информация будет помещаться только в отвечающую данному приоритету область сохранения.
Применяется также система масок прерываний, обрабатываемых некоторыми специальными командами.
И наконец, можно рассматривать большее число классов прерываний.
Основным механизмом функционирования MS DOS является система прерываний.
Каждое прерывание имеет уникальный номер, и с ним связана определенная подпрограмма. Когда вызывается прерывание, процессор останавливает свою работу и выполняет прерывание. Затем загружается адрес программы обработки прерывания и ей передается управление. После окончания её работы управление передается основной программе, которая была прервана.
В технической литературе и книгах по программированию прерыванием принято называть не сам процесс кратковременного останова выполнения текущей программы, а процедуру обработки такого процесса.
В IBM-совместимом компьютере имеется 256 различных прерываний с номерами от 0 до OFFH (номера представлены в виде шестнадцатеричных цифр). В самом начале адресного пространства памяти машины расположена таблица адресов прерываний. Каждый из этих адресов указывает на процедуру в памяти, которая будет исполнена в результате возникновения прерывания. Адреса программ прерываний чаще называют векторами. Каждый вектор прерывания имеет длину 4 байта. Таким образом, вектора располагаются в памяти компьютера с адреса 0 до 3FFH. При возникновении любого прерывания, значения регистра флагов процессора и текущее значение счетчика команд CS: IP автоматически сохраняются в стеке, прерывания временно запрещаются и выполняется переход по вектору прерывания.
Векторная система прерываний обеспечивает большую гибкость: программист всегда имеет возможность переключить любое прерывание на свою процедуру. Для этого необходимо только изменить в памяти соответствующий вектор так, чтобы он на нее указывал. Это называется перехватом прерывания.
Аппаратные прерывания относятся к прерываниям низшего уровня, им присвоены младшие номера, и обслуживает их базовая система ввода-вывода.
Логические и программные прерывания относят к верхнему уровню, они имеют большие номера, и их обслуживает в основном базовый модуль DOS.
Ядро Операционной Системы Уже упоминалась структура прерываний, как примитивы, входящие в ядро. Определим понятие ядра, которое является наиболее значимым элементом ОС. Ядро ОС — есть совокупность программных элементов, активно использующихся большинством прикладных и других программ высокого уровня и фактически представляющих собой органичное продолжение аппаратуры вычислительной системы.
Ядра бывают разными, но фактически при разработке ядра ОС следует решить вопрос, какие функции следует поместить на нулевой уровень иерархической структуры.
Эти функции имеют следующие свойства:
они являются резидентными, т. е. постоянно находятся в оперативной памяти, хотя не все резидентные программы входят в ядро;
чаще всего они выполняются в режиме управления, не допуская прерываний, т. е. являются примитивами;
элементы ядра считаются одними из самых привилегированных, в смысле доступа к различной хранимой информации.
В число функций ядра обычно входят: механизмы обработки прерываний, диспетчирования, механизм обобщенного вызова, поддержка ввода-вывода, механизм управления файловой системой.
Вход в ядро обычно осуществляется с помощью прерываний, следовательно, он должен быть заложен в ядре.
Фактически сервисные процедуры обработчика прерываний имеют статус примитивов. Обработчик прерываний в первую очередь выполняет действия, требуемые для сохранения информации о состоянии системы на момент прерывания.
Иногда информация о состоянии помещается для сохранения в очередь диспетчера, как часть записи, соответствующей прерванной программе. Любая такая запись содержит специально выделенную область, предназначенную для размещения информации о состоянии на момент, когда процесс теряет управление. Естественно, что обработчик прерываний должен иметь доступ к конкретным элементам очереди диспетчера.
Выводы.
- 1. Ресурс — это некоторая абстрактная структура с целым рядом атрибутов, характеризующих способы доступа к этим структурам и её физическое представление в системе.
- 2. Различают ресурсы двух типов. К первому типу относятся ресурсы вычислительной системы, распределением и защитой которых занимаются системные управляющие программы. Второй тип ресурсов — это ресурсы, представляемые пользователю непосредственно ОС, или являющиеся доступными только при работе с ОС.
- 3. Прерывания — механизм, позволяющий организовать параллельное функционирование отдельных устройств вычислительной системы и реагировать на особые состояния, возникающие при работе процессора. Структуры прерываний зависят, прежде всего, от аппаратной архитектуры, но имеют нечто общее — прерывание непременно влечет за собой изменение порядка выполнения команд процессором.