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