Архитектура операционной системы
В настоящее время все оболочки, включая графические, имеют возможность работы с пользователем в диалоговом режиме, выдавая предупреждения, сообщения об ошибках в диалоговом окне.
Весь интерфейс, необходимый программам для обращения к ОС с целью получить определенный сервис — выполнить операцию ввода/вывода, получить или освободить участок памяти и т. д., обозначается термином операционная среда.
3. Система программирования включает прежде всего такие компоненты, как транслятор с соответствующего языка, библиотеки подпрограмм, редакторы, компоновщики и отладчики. Не бывает самостоятельных (оторванных от ОС) систем программирования. Любая система программирования может работать только в соответствующей ОС, под которую она и создана, однако при этом она может позволять разрабатывать программное обеспечение и под другие ОС. Система программирования – это весь комплекс программных средств, предназначенных для кодирования, тестирования, отладки программного обеспечения. Примеры систем программирования: Borland Delphi, Microsoft Visual Basic, Turbo Pascal и т. д.
4. Наконец, под утилитами понимают специальные системные программы, с помощью которых можно как обслуживать саму операционную систему, так и подготавливать для работы носители данных, выполнять перекодирование данных, осуществлять оптимизацию размещения данных на носителе и производить некоторые другие работы, связанные с обслуживанием вычислительной системы. К утилитам следует отнести и программу разбиения накопителя на магнитных дисках на разделы, и программу форматирования, и программу переноса основных системных файлов самой ОС. Естественно, что утилиты могут работать только в соответствующей операционной среде.
Большинство современных операционных систем представляют собой хорошо структурированные модульные системы, способные к развитию, расширению и переносу на новые платформы. Какой-либо единой архитектуры ОС не существует, но существуют универсальные подходы к структурированию ОС.
2.2.1 Ядро и вспомогательные модули ОС
Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на две группы (см. рис. 2.2):
· ядро — модули, выполняющие основные функции ОС;
·
модули, выполняющие вспомогательные функции ОС.
Рис. 2.2 Структура операционной системы
Модули ядра выполняют такие базовые функции ОС, как управление процессами, памятью, устройствами ввода-вывода и т. п.
Функции, выполняемые модулями ядра, являются наиболее часто используемыми функциями операционной системы, поэтому скорость их выполнения определяет производительность всей системы в целом. Для обеспечения высокой скорости работы ОС все модули ядра или большая их часть постоянно находятся в оперативной памяти, то есть являются резидентными.
Вспомогательные модули ОС выполняют полезные, но менее обязательные функции. К вспомогательным модулям могут быть отнесены программы архивирования данных на магнитной ленте, дефрагментации диска, текстового редактора. Вспомогательные модули ОС оформляются либо в виде приложений, либо в виде библиотек процедур.
Вспомогательные модули ОС обычно подразделяются на следующие группы:
· утилиты — программы, решающие отдельные задачи управления и сопровождения компьютерной системы, такие, например, как программы сжатия дисков, архивирования данных на магнитную ленту;
· системные обрабатывающие программы — текстовые или графические редакторы, компиляторы, компоновщики, отладчики;
· программы предоставления пользователю дополнительных услуг – специальный вариант пользовательского интерфейса, калькулятор и даже игры;
· библиотека процедур различного назначения, упрощающие разработку приложений, например библиотека математических функций, функций ввода-вывода и т. д.
Модули ОС, оформленные в виде утилит, системных обрабатывающих программ и библиотек, обычно загружаются в оперативную память только на время выполнения своих функций, то есть являются транзитными. Постоянно в оперативной памяти располагаются только самые необходимые коды ОС, составляющие ее ядро. Такая организация ОС экономит оперативную память компьютера.
Важным свойством архитектуры ОС, основанной на ядре, является возможность защиты кодов и данных операционной системы за счет выполнения функций ядра в привилегированном режиме.