Ядро и вспомогательные модули ос – —

Ядро и вспомогательные модули ос

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

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

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

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

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

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

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

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

ПРИМЕЧАНИЕ 

Термин «ядро» в разных ОС трактуется по-разному. Одним из определяющих свойств ядра является работа в привилегированном режиме. Этот вопрос будет рассмотрен в следующем разделе.

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

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

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

Некоторая программа может существовать определенное время как пользовательское приложение, а потом стать частью ОС, или наоборот. Ярким примером такого изменения статуса программы является Web-браузер компании Microsoft, который сначала поставлялся как отдельное приложение, затем стал частью операционных систем Windows NT 4.0 и Windows 95/98, а сегодня существует большая вероятность того, что по решению суда этот браузер снова превратится в самостоятельное приложение.

Рис. 3.1. Нечеткость границы между ОС и приложениями

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

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

 системные обрабатывающие программы — текстовые или графические редакторы, компиляторы, компоновщики, отладчики;

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

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

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

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

Рис. 3.2. Взаимодействие между ядром и вспомогательными модулями ОС

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

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

studfiles.net

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

Ядро и вспомогательные модули ОС

Ядро в привилегированном режиме

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

Аппаратная зависимость и переносимость ОС

Типовые средства аппаратной поддержки ОС

Машинно-зависимые компоненты ОС

Переносимость операционной системы

Микроядерная архитектура

Концепция

Преимущества и недостатки микроядерной архитектуры

Совместимость и множественные прикладные среды

Двоичная совместимость и совместимость исходных текстов

Трансляция библиотек

Способы реализации прикладных программных сред

Выводы

Задачи и упражнения

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

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

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

Ядро и вспомогательные модули ос

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

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

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

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

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

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

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

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

ПРИМЕЧАНИЕ 

Термин «ядро» в разных ОС трактуется по-разному. Одним из определяющих свойств ядра является работа в привилегированном режиме. Этот вопрос будет рассмотрен в следующем разделе.

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

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

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

Некоторая программа может существовать определенное время как пользовательское приложение, а потом стать частью ОС, или наоборот. Ярким примером такого изменения статуса программы является Web-браузер компании Microsoft, который сначала поставлялся как отдельное приложение, затем стал частью операционных систем Windows NT 4.0 и Windows 95/98, а сегодня существует большая вероятность того, что по решению суда этот браузер снова превратится в самостоятельное приложение.

Рис. 3.1. Нечеткость границы между ОС и приложениями

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

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

 системные обрабатывающие программы — текстовые или графические редакторы, компиляторы, компоновщики, отладчики;

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

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

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

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

Рис. 3.2. Взаимодействие между ядром и вспомогательными модулями ОС

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

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

studfiles.net

Ядро и вспомогательные модули ОС — Студопедия.Нет

Содержание

Введение…………………………………………………………………………………………………….2

Что такое операционная система…………………………………………………………………3

Возникновение ОС……………………………………………………………………………………..3

Архитектура ОС………………………………………………………………………………………….8

    Ядро и вспомогательные модули ОС………………………………………………….8

    Ядро в привилегированном режиме……………………………………………………9

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

    Микроядерная архитектура………………………………………………………………10

Заключение……………………………………………………………………………………………….15

Список литературы……………………………………………………………………………………16

Введение

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

 

Операционная система, сокр. ОС (англ. operating system, OS) — комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений. Это определение применимо к большинству современных операционных систем общего назначения.То есть операционную системы можно назвать движущей силой нашего компьютера. Именно она даёт нам возможность взаимодействовать с компьютером. Она делает информацию, которую выдаёт нам компьютер, понятной для нашего восприятия, и в то же время переводит то, что мы вводим на компьютерный язык, чтобы компьютер смог выполнить поставленную перед ним задачу. Она является связующим звеном между аппаратурой компьютера и человеком.

Возникновение ОС

Идея компьютера была предложена английским математиком Чарльзом Бэбиджем (Charles Babage) в середине девятнадцатого века. Его механическая «аналитическая машина» так и не смогла по-настоящему заработать, потому что технологии того времени не удовлетворяли требованиям, необходимым для изготовления нужных деталей точной механики. Конечно, никакой речи об операционной системе для этого «компьютера» не шло.

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

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

Выполнение каждой программы стало включать большое количество вспомогательных работ: загрузка нужного транслятора (АЛГОЛ, ФОРТРАН, КОБОЛ и т.п.), запуск транслятора и получение результирующей программы в машинных кодах, связывание программы с библиотечными подпрограммами, загрузка программы в оперативную память, запуск программы, вывод результатов на периферийное устройство. Для организации эффективного совместного использования трансляторов, библиотечных программ и загрузчиков в штат многих вычислительных центров были введены должности операторов, профессионально выполнявших работу по организации вычислительного процесса для всех пользователей этого центра.

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

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

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

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

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

1)Монолитное ядро;

2)Микроядро;

3)Экзоядро;

4)Наноядро;

5)Гибридное ядро.

Но подробнее мы рассмотрим монолитное и модульное ядра, так как сначала операционная система Windows имела монолитное ядро, а позже усовершенствовалась до модульного ядра. « Монолитное ядро — классическая архитектура ядер операционных систем. Монолитные ядра предоставляют богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве». То есть в памяти нашего компьютера хранится информация, и каждой её составляющей соответствует число – адрес, который определяет место её хранения. Кстати, монолитное ядро сейчас всё равно является самой распространённой архитектурой ядер операционных систем. Монолитные ядра долго развивались и усовершенствовались. Сейчас они являются наиболее архитектурно зрелыми и пригодными к эксплуатации. Но, к сожалению, монолитное ядро имеет свои недостатки. Оно работает в одном адресном пространстве. Если вдруг произойдёт сбой в одном из компонентов, то нарушится работоспособность всей системы. Эти сбои невозможны в модульном ядре, о котором мы сейчас поговорим. «Модульное ядро — современная, усовершенствованная модификация архитектуры монолитных ядер операционных систем компьютеров. В отличие от «классических» монолитных ядер, считающихся ныне устаревшими, модульные ядра, как правило, не требуют полной перекомпиляции ядра при изменении состава аппаратного компьютера».  Взамен этим функциям модульные ядра просто дополнительно загружают модули ядра, которые в свою очередь поддерживают то или иное аппаратное обеспечение. Например, модульное ядро может загрузить нужный для работы драйвер. Модульное ядро может загрузить модуль прямо во время работы системы, не перезагружая её. А также подгрузка модуля может выполняться при перезагрузке ОС. В это время ОС перестраивается на загрузку определенных модулей. Но, не смотря на новые возможности, модульные ядра всё равно остаются монолитными. Они по-прежнему работают в адресном пространстве. Это даёт им возможность использовать все функции ядра. «Модульные ядра удобнее для разработки, чем традиционные монолитные ядра, не поддерживающие динамическую загрузку модулей, так как от разработчика не требуется многократная полная перекомпиляция ядра при работе над какой-либо его подсистемой или драйвером. Выявление, локализация, отладка и устранение ошибок при тестировании также облегчаются». То есть если нужно усовершенствовать функции модульного ядра, то сначала можно улучшить одну из его составляющих частей, например, какой-нибудь драйвер, а потом загрузить его к ядру. Эта задача гораздо усложняется в случае с монолитным ядром. Его придётся полностью переделывать, чтобы поместить туда новый драйвер. Функции, которые входят в состав ядра, решают очень важные задачи. Они переключают контексты, занимаются организацией процесса вычислений, загружают и выгружают страницы, обрабатывают прерывания. А в свою очередь приложения, работающие из режима пользователя, могут обращаться к ядру, чтобы выполнить нужные действия. Скорость выполнения функция ядра является показателем производительности ОС. Все модули ядра или большая их часть находятся в ОС. Ядро является главной составляющей компьютерной системы, благодаря которой она работает. По этой причине так необходимо, чтобы коды ядра были надежны.

 

Архитектура ОС

 

Ядро и вспомогательные модули ОС

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

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

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

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

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

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

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

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

 

studopedia.net

Ядро и вспомогательные модули ОС — МегаЛекции

ПРИНЦИПЫ ПОСТРОЕНИЯ ОПЕРАЦИОННЫХ СИСТЕМ

 

 

План лекции

 

Введение

 

УЧЕБНЫЕ ВОПРОСЫ:

 

1. Принципы построения ОС.

2. Ядро и вспомогательные модули ОС.

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

4. Аппаратная зависимость и переносимость ОС

 

Заключение

 

 

Учебная литература:

 

Основная:

1. Сетевые операционные системы / В.Г. Олифер, Н.А. Олифер. – СПб.: Питер, 2001. – С.57…86.

 

Дополнительная:

1.

 

ВВЕДЕНИЕ

 

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

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

 

Принципы построения ОС.

 

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

1) принцип модульности;

2) принцип параметрической настраиваемости;

3) принцип функциональной избирательности;

4) принцип функциональной избыточности.

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

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



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

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

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

Для того, чтобы ОС ввести в ЭВМ и настроить по заданным параметрам, необходима специальная программа, которая называется «Генератором ОС».

 

Ядро и вспомогательные модули ОС

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Рис. 2. Взаимодействие между ядром и вспомогательными модулями ОС

 

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

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

Постоянно в ОП располагаются только самые необходимые коды ОС, составляющие ее ядро. Такая организация ОС экономит ОП компьютера.

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

 

Привилегированный режим работы ОС

 

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

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

Обеспечить привилегии ОС невозможно без специальных средств аппаратной поддержки. Аппаратура компьютера должна поддерживать как минимум два режима работы – пользовательский режим (user mode) и привилегированный режим, который также называют режимом ядра (kernel mode), или режим супервизора (supervisor mode). Подразумевается, что ОС или некоторые ее части работают в привилегированном режиме, а приложения – в пользовательском режиме.

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

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

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

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

 

Рис. 7. Смена режимов при выполнении вызова к привилегированному ядру

 

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

Архитектура ОС, основанная на привилегированном ядре и приложениях пользовательского режима, стала по существу, классической. Ее используют многие популярные ОС, в том числе многочисленные версии UNIX, VAX VMS, IBM OS/390, OS/2, и с определенными модификациями — Windows NT.

 

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

 

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

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

 

Рис.4. Трехслойная структура ядра ВС.

 

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

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

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

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

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

 

Рис.5. Многослойная структура ядра ОС

 

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

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

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

· Менеджеры ресурсов. Этот слой состоит из мощных функциональных модулей, реализующих стратегические задачи по управлению основными ресурсами ВС. Обычно на данном слое работают менеджеры (называемые также диспетчерами) процессов, ввода-вывода, файловой системы и ОП. Разбиение на менеджеры может быть и несколько иным, например, менеджер файловой системы иногда объединяют с менеджером ввода-вывода, а функции управления доступом пользователей к системе в целом и ее отдельным объектам поручают отдельному менеджеру безопасности. Каждый из менеджеров ведет учет свободных и используемых ресурсов определенного типа и планирует их распределение в соответствии с запросами приложений. Например, менеджер виртуальной памяти управляет перемещением страниц из ОП на диск и обратно. Менеджер должен отслеживать интенсивность обращений к страницам, время пребывания их в памяти, состояния процессов, использующих данные, и многие другие параметры, на основании которых он время о времени принимает решения о том, какие страницы необходимо выгрузить и какие – загрузить. Для исполнения принятых решений менеджер обращается к нижележащему слою базовых механизмов с запросами о загрузке (выгрузке) конкретных страниц. Внутри слоя менеджеров существуют тесные взаимные связи, отражающие тот факт, что для выполнения процессу нужен доступ одновременно к нескольким ресурсам – процессору, области памяти, возможно, к определенному файлу или устройству ввода-вывода. Например, при создании процесса менеджер процессов обращается к менеджеру памяти, который должен выделить процессу определенную область памяти для его кодов и данных.

· Интерфейс системных вызовов. Этот слой является самым верхним слоем ядра и взаимодействует непосредственно с приложениями и системными утилитами, образуя прикладной программный интерфейс ОС. Функции АРI, обслуживающие системные вызовы, предоставляют доступ к ресурсам системы в удобной и компактной форме, без указания деталей их физического расположения. Например, в ОС UNIX с помощью системного вызова fd=open(*/doc/a.txt*, O_RDONLY) приложение открывает файл a.txt, хранящийся в каталоге /doc, а с помощью системного вызова read(fd, buffer, count) читает из этого файла в область своего адресного пространства, имеющую имя buffer, некоторое количество байт. Для осуществления таких комплексных действий системные вызовы обычно обращаются за помощью к функциям менеджеров ресурсов, причем для выполнения одного системного вызова может понадобиться несколько таких обращений.

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

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

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

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

 


Рекомендуемые страницы:


Воспользуйтесь поиском по сайту:

megalektsii.ru

Ядро и вспомогательные модули ОС

Поиск Лекций

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

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

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

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

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

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

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

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

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

Вспомогательные модули ОС выполняют не столь важные, как ядро, функции. Например, это могут быть программы архивирования данных, редактирования текстов и многое другое. Вспомогательные функции ОС, как правило, оформляются либо в виде пользовательских приложений, либо в виде библиотек процедур и функций. Вследствие того, что часть компонентов ОС разрабатывается в виде обычных приложений, имеющих стандартный для данной ОС формат, то часто очень сложно отделить вспомогательные модули ОС от обычных пользовательских приложений. По этой причине возникает некоторая размытость границ ОС. Решение о принадлежности какой-либо программы операционной системе принимает производитель ОС. Примером этого может являться web-браузер Internet Explorer компании Microsoft, который сначала поставлялся как отдельное приложение, а впоследствии стал частью ОС Windows 98 и Windows NT 4.0.

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

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

2) системные обрабатывающие программы – текстовые или графические редакторы, компиляторы, компоновщики, отладчики и другие программы, входящие в комплект поставки данной ОС;

3) программы предоставления пользователю дополнительных услуг – нестандартный вариант пользовательского интерфейса, включающий вспомогательные и даже игровые программы;

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

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

 

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

 

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

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

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

Несомненно, что обеспечение соответствующих привилегий ОС требует не только соответствующей программной, но и аппаратной поддержки. Аппаратура компьютера должна иметь возможность работать как минимум в двух режимах – пользовательском режиме (user mode) и привилегированном режиме, который также называется режимом ядра (kernel mode), или режимом супервизора (supervisor mode). В пользовательском режиме работы запрещено выполнение некоторых критичных для системы команд, связанных с переключением процессора между задачами, управлением устройствами ввода-вывода, доступом к механизмам распределения и защиты памяти. Некоторые команды в пользовательском режиме запрещено выполнять безусловно (например, команду перехода к привилегированному режиму работы), тогда как выполнение других запрещено только при определенных условиях. Однако контроль за выполнением этих условий находится в ведении ОС и обеспечивается за счет набора команд, которые безусловно запрещены для пользовательского режима. Например, контроль за доступом к памяти достигается за счет того, что команды конфигуриро­вания механизмов защиты памяти разрешается выполнять только в привилегированном режиме, при этом пользовательскому приложению запрещается обращение к областям памяти, занимаемым ОС или другими приложениями. Таким образом становится возможной локализации некорректно работающего приложения в собственной области памяти, и его ошибки не влияют на остальные приложения и ОС.

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

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

 

Рис. 2. Смена режимов при выполнении вызова функции ядра

 

Описанная выше архитектура, основанная на привилегированном ядре и приложениях пользовательского режима, стала классической. Ее применяют многие популярные ОС, в том числе версии UNIX, VAX VMS, IBM OS/390, OS/2.

В процессорах Intel, используемых в персональных компьютерах, возможность работы в привилегированном режиме появилась, начиная с процессора 80286. Однако разработчики широко распространенной ОС MS-DOS не использовали это свойство, и их ОС всегда работает в так называемом реальном режиме. Некорректно написанные приложения вполне могут разрушить основные модули MS-DOS, что приведет к краху системы.

 


Рекомендуемые страницы:

Поиск по сайту

poisk-ru.ru

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

Ресурсы. Понятие ресурса. Виды ресурсов. Классификация ресурсов. Управление ресурсами.

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

8.Ресурсами операционной системы являются …

9.Задачами ОС по управлению ресурсами являются:

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

10. В настоящее время практически все ОС для ПК, занимающие заметное место на рынке, стали …

11. В типичный набор средств аппаратной поддержки современных ОС входят компоненты:

12. При делении ядра на основные слои непосредственно над слоем машинно-зависимых модулей расположен слой …

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

14. Компонентами исполнительной части Windows NT являются: …

15. В функции микроядра Windows NT входят: …

16. ОС, основанные на концепции микроядра, уступают другим ОС в …

17. Работа микроядерной ОС соответствует …

Управление процессами. Понятие процесса и потока. Управление процессором. Граф состояний процесса. Блок управления процессом. Структура контекста процесса. Контекст и дескриптор процесса. Планирование и диспетчеризация процессов. Функции планировщика и диспетчера. Уровни планирования. Цели планирования. Критерии планирования. Вытесняющие и не вытесняющие алгоритмы планирования. Понятия приоритета и очереди процессов. Дисциплины обслуживания очередей. Способы реализации мультипрограммирования. Многопроцессорный режим работы. Асинхронные параллельные процессы. Проблемы управления процессами и пути их решения. Взаимоисключение. Критические участки. Совместное использование памяти. Примитивы взаимоисключения. Реализация примитивов взаимоисключение. Семафоры. Синхронизация процессов. Цели и средства синхронизации. Необходимость синхронизации и гонки. Взаимодействие между процессами. Обмен данными между процессами и потоками (конвейеры, очереди, разделяемая память). Средства обработки сигналов; понятие событийного программирования; средства коммуникации процессов. Тупики. Примеры, условия возникновения тупика, предотвращение тупиков, восстановление после тупика, обнаружение тупиков.

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

19. Отметьте наиболее отличное понятие в группе понятий о процессах:

20. Основным критерием ОС пакетной обработки является …

21. Выполнение задания за определенный промежуток времени гарантируется в …

22. ОС, в которой каждой задаче выделяется квант процессорного времени, – это …

23. Для операционных систем управления объектами, в которых важна быстрая реакция на события, подходит планирование на основе:

24. Мультипроцессорные системы принято делить на два основных типа:

25. При асимметричном мультипроцессировании как способе организации вычислительного процесса функции распределения задач и ресурсов выполняет …

26. При симметричном мультипроцессировании модули операционной системы выполняются …

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

28. В многопоточных системах поток есть …

29. С точки зрения экономии ресурсов операционной системы лучше распараллелить работу при помощи …

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

31. При планировании потоков операционная система не учитывает …

32. При вытесняющем мультипрограммировании функции планирования потоков …

33. При невытесняющем мультипрограммировании функции планирования потоков …

34. Какие принципы использованы в подсистеме планирования потоков в ОС Windows NT?

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

36. Для синхронизации потоков прикладных программ программист может использовать: …

37.Необходимым условием возникновения тупика в ОС является …

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

38. Внешними прерываниями являются …

39. Прерывания ранжируются по степени важности и срочности с помощью …

приоритета

40. Установите соответствие классов прерываний и программ их обрабатывающих: внешние прерывания; внутренние прерывания; программные прерывания.

Внешние-драйверами соответствующих внешних устройств;внутренние-спец.модулями ядра;программыные-процедурами ОС.

41. Способы, которыми шины выполняют прерывания:

Векторный(vectored) и опрашиваемый(polled).

42. Какие из прерываний можно считать синхронными?

Внутренние

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

43. Выделение оперативной памяти для выполнения программ обеспечивает…

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

44. В ОС реального времени (RTOS) обычно используется метод распределения памяти …

С фиксированной длинной участков

45.В системе памяти с перемещаемыми разделами обязательно должен выполняться процесс …

сжатия

46. Свопинг – это …

Свопинг(swapping)-образы процессов выгружаются на диск и возвращаются в оперативную память целиком.

47. Не существует … адресации.

Типы адресов:Символьные имена, виртуалные адреса,физические адреса.

Типы адресных пространств:плоское ,сегментированное.

48.Задача ОС, состоящая в том, чтобы не позволить выполняемому процессу записывать данные в память, назначенную другому процессу, называется …

Защита памяти

49.Функциями ОС по управлению памятью в мультипрограммной системе являются:

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

50.Какого типа адреса могут быть одинаковыми в разных процессах?

виртуальные

51.Сигнал страничного прерывания при страничной организации памяти вырабатывается …

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

52. В таблице сегментов памяти указывается:

53. Виртуальное адресное пространство процесса делится на части:

54. Дескриптор страницы при станичной организации памяти в ОС включает следующую информацию:

55. В качестве кэша для оперативной памяти может выступать …

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

56. Подсистема, являющаяся интерфейсом ко всем устройствам, подключенным к компьютеру, называется подсистемой …

57. К устройствам ввода-вывода не относится …

58. Достоинством модели файла-устройства является …

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

60. Существуют следующие типы интерфейсов для драйверов:

61. Программный модуль приостанавливает работу до завершения операций ввода-вывода при …

62. Программный модуль продолжает выполняться в мультипрограммном режиме одновременно с операцией ввода-вывода при …

63. В ОС Windows NT (XP и т.п.) передача команд и данных между драйверами и менеджером ввода-вывода осуществляется при помощи …

64. В ОС UNIX, Linux различают драйверы:

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

Файловые системы. Логическая организация файловой системы. Цели и задачи файловой системы. Типы файлов. Иерархическая структура файловой системы. Логическая структура диска. Организация файлов. Выделение и освобождение места в памяти. Дескриптор. Управление доступом. Физическая организация файловой системы. Диски, разделы, секторы, кластеры. Физическая организация и адресация файла. Примеры файловых систем. (FAT, NTFS).

66. Система управлений файлами – это …

67. Файловая система является частью …

68. К атрибутам файла не относится …

69. Отметьте наиболее отличное понятие в группе:

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

71. В общем случае в файловых системах существуют права доступа к каталогам и файлам:

72. Объединение файловых систем, находящихся на разных устройствах, называется …

73. Разметка логического диска под конкретный тип файловой системы называется …

74.Жесткие диски – это память …

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

76.Минимальный фактический размер файла на диске равен одному …

77.Недостатки массива жестких дисков конфигурации RAID-0:

78.Конфигурация массива жестких дисков RAID-1 обеспечивает …

79.В массиве жестких дисков конфигурации RAID-3 для хранения корректирующей информации используется …

80.Установите соответствие технологии RAID количеству данных, записываемых за одну операцию записи на диск:

81.В RAID-5 происходит замедление работы при …

82. Логический раздел FAT включает следующие области:

83.Числовое значение – 12, 16, 32 – в файловой системе FAT отражает …

84.Какую структуру образуют файлы в файловой системе FAT?

85. Аббревиатура FAT расшифровывается как …

86. Файловая система FAT поддерживает следующие типы файлов:

87.В файловой системе FAT атрибуты файлов хранятся …

88.В файловой системе FAT понятие текущий каталог связано с …

89.Недостатки файловой системы FAT:

90. Индексный указатель в файловой системе FAT может принимать значения, характеризующие следующие состояния кластера:

91. Файлы NTFS в зависимости от способа размещения делятся на:

92. Основой структуры раздела файловой системы NTFS является …

93. Основными целями использования файла являются:

94. Основными критериями эффективности физической организации файлов являются:

95. В файловой системе NTFS часть файла, размещаемая в записи MFT, называется …

96. В файловой системе NTFS части файла, размещаемые вне записи MFT, называются …

97.Все файлы и каталоги в файловой системе NTFS однозначно идентифицируются:

98.Занятость дискового пространства в файловой системе NTFS определяется …

99. Базовой единицей распределения дискового пространства для файловой системы NTFS является …

100.Данные небольшого файла в файловой системе NTFS хранятся …

101. В качестве адреса отрезка NTFS использует:

102.Для нахождения данных больших файлов в файловой системе NTFS используется …

103.В записях небольших каталогов файловой системы NTFS всегда содержится следующая информация:

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

104. Безопасная операционная система обладает свойствами:

105. Угрозы в ОС классифицируются на:

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

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

108.В ОС аудит – это процедура …

109.В ОС Windows NT процесс Winlogon может находиться в состоянии:

110.При входе в ОС Windows NT (XP и т.п.) процессу Winlogon передается:

111. Средствами защиты информации в ОС являются:

112. Для обеспечения высокого уровня безопасности системы необходимо …

113.Аутентификация – это процесс системы безопасности ОС обеспечивающий …

114.Правила разграничения доступа системы безопасности ОС не должны позволять …

115. Пользовательский интерфейс и утилиты. Принципы построения интерфейсов ОС. Интерфейс прикладного программирования (Windows API, POSIX). Командные языковые процессоры.

116. Что такое интерфейс программирования приложений (API – application programming interface)?

117. Для добавления в ОС новой высокоуровневой функции API достаточно создание …

118. Для совместимости приложений в разных ОС на уровне исходных текстов требуется наличие …

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

120.Конфигурация системы и генерация. Загрузка и настройка ОС.

121. Системный реестр ОС – это …

122. Особенности реализации ОС. Сетевые ОС: Сетевые службы. Сетевые файловые системы. Концепции распределенной обработки в сетевых ОС.

123. В вычислительных сетях выделяются типы умышленных угроз:

124. Сетевыми ОС являются:

125. Для построения сетевых служб ОС используется …

126. Для реализации сетевой файловой системы в ОС Windows NT используется клиент-серверный протокол …

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

Статьи к прочтению:

HAVE как Вспомогательный Глагол


Похожие статьи:

csaa.ru

11

11.                 Ядро и вспомогательные модули ОС.

 

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

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

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

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

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

 

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

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

            системные обрабатывающие программы — текстовые или графические редакторы, компиляторы, компоновщики, отладчики;

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

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

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

 

gsmtut.narod.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *