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