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

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

Операционная система обычно хранится во внешней памяти компьютера — на диске. При включении компьютера она считывается с дисковой памяти и размещается в оперативном запоминающем устройстве (ОЗУ). Этот процесс называется загрузкой операционной системы.

Операционная система сети включает набор управляющих и обслуживающих программ, обеспечивающих:

  • • межпрограммный метод доступа (возможность организации связи между отдельными прикладными программами комплекса, реализуемыми в различных узлах сети);
  • • доступ отдельных прикладных программ к ресурсам сети (в первую очередь к устройствам ввода-вывода);
  • • синхронизацию работы прикладных программных средств в условиях их обращения к одному и тому же вычислительному ресурсу;
  • • обмен информацией между программами с использованием сетевых «почтовых ящиков»;
  • • удаленный ввод заданий, вводимых с любого терминала, и выполнение их на любой ЭВМ в пакетном или оперативном режиме;
  • • обмен наборами данных (файлами) между ЭВМ сети;
  • • защиту данных и вычислительных ресурсов сети от несанкционированного доступа.

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

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

Все программные средства можно разделить на внутреннее и внешнее программное обеспечение (рис. 4.8).

Интерфейс ОС

Уровень 2

Уровень 3

1

1

Системные и прикладные программы

Операционная

система

Уровень 1

Интерфейс внутреннего ПО

11

Драйверы

Программа загрузки

Тестовая программа

Устройства ЭВМ (аппаратное обеспечение)

Рис. 4.8. Уровни иерархии программных средств

Программы уровня I (внутреннее программное обеспечение) хранятся в ПЗУ и работают непосредственно с аппаратурой ПЭВМ. Для ПЭВМ совокупность этих программ носит название ВЮЗ. В состав В108 входят:

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

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

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

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

К уровню 3 относятся все остальные программы. Программы уровней 2 и 3 хранятся в файлах.

Программное обеспечение уровня 1 — машинно-зависимое, т. е. для каждого микропроцессора или семейства ПЭВМ набор данных программ уникален.

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

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

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

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

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

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

Виды ОС. Microsoft Windows (Windows 95, 98, Me (Millennium Edition), NT (New Technology), 2000, 2003, XP (Experience)), Unix, Linux, MacOS и др.

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

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

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

Сетевая операционная система должна работать с максимально возможной скоростью. Добиться этого удается посредством «трех М»: многопоточности, многозадачности и многопроцессорности.

Многопоточность. Многопоточная обработка основана на том, что микропроцессор (в конечном счете ответственный за все происходящее в компьютере) работает с невероятной скоростью, измеряемой единицами времени — тактами. Эти такты выполняются независимо от того, обрабатывает процессор какую-нибудь задачу или нет. При этом многие такты приходятся на время, когда процессор работает вхолостую: например, когда программа ждет, пока сравнительно медленный дисковый накопитель выдаст данные для дальнейшей обработки.

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

Многозадачность. Многозадачность — одна из особенностей современных операционных систем от Windows 95 до Windows NT, OS/2 и Unix, состоящая в кажущейся способности одновременно выполнять несколько процессов. Она создается благодаря высокой скорости работы процессора и его способности перемежать выделенные разным задачам интервалы времени (их называют квантами), не обязательно завершая выполнение одного процесса до начала другого.

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

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

Операционные системы классифицируются следующим образом:

  • • по особенностям алгоритмов управления ресурсами — локальные и сетевые. Локальные ОС управляют ресурсами отдельного компьютера, сетевые ОС участвуют в управлении ресурсами сети;
  • • по числу одновременно выполняемых задач — однозадачные и многозадачные. Однозадачные ОС обеспечивают пользователя ЭВМ простым и удобным интерфейсом взаимодействия с компьютером, средствами управления периферийными устройствами и файлами. Многозадачные ОС, помимо этого, управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства;
  • • по числу одновременно работающих пользователей — однопользовательские и многопользовательские. Основное отличие многопользовательских систем от однопользовательских — наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей;
  • • по возможности распараллеливания вычислений в рамках одной задачи — поддержка многонитевости. Многонитевая ОС разделяет процессорное время не между задачами, а между их отдельными ветвями — нитями;
  • • по способу распределения процессорного времени между несколькими одновременно существующими в системе процессами или нитями — невытесняющая и вытесняющая многозадачность. В невытесняющей многозадачности механизм планирования процессов целиком сосредоточен в операционной системе, а в вытесняющей — распределен между системой и прикладными программами. При невытесняющей многозадачности активный процесс выполняется до тех пор, пока он сам по собственной инициативе не передаст управление операционной системе для выбора из очереди другого готового к выполнению процесса. При вытесняющей многозадачности решение о переключении процессора с одного процесса на другой принимается операционной системой, а не самим активным процессом;
  • • по зависимости от аппаратных платформ — зависимые и мобильные. В мобильных ОС аппаратно зависимые места локализованы так, что при переносе системы на новую платформу переписываются только они. Средство, облегчающее перенос ОС на другой тип компьютера, — написание ее на машинно-независимом языке, например, на С++;
  • • по особенностям областей использования — ОС пакетной обработки, разделения времени и реального времени. Системы пакетной обработки предназначены для решения задач вычислительного характера, не требующих быстрого получения результатов. Главная цель и критерий эффективности систем пакетной обработки — максимальная пропускная способность, т. е. решение максимального числа задач в единицу времени. В системах с разделением времени каждому пользователю предоставляется терминал, с которого он может вести диалог с программой. Каждой задаче выделяется некоторый квант процессорного времени, так что ни одна задача не занимает процессор надолго. Если квант времени выбран небольшим, то у всех пользователей, одновременно работающих на компьютере, создается впечатление, что каждый из них единолично использует машину. Системы реального времени применяются для управления различными техническими объектами, когда существует предельно допустимое время, в течение которого должна быть выполнена та или иная программа управления объектом. Невыполнение программы в срок может привести к аварийной ситуации. Таким образом, критерий эффективности систем реального времени — их способность выдерживать заранее заданные интервалы времени между запуском программы и получением результата — управляющего воздействия;
  • • по способу построения ядра системы — монолитное ядро или микроядерный подход. Операционные системы, использующие монолитное ядро, компонуются как одна программа, работающая в привилегированном режиме и использующая быстрые переходы с одной процедуры на другую, не требующие переключения из привилегированного режима в пользовательский, и наоборот. При построении ОС на базе микроядра, работающего в привилегированном режиме и выполняющего только минимум функций по управлению аппаратурой, функции более высокого уровня выполняют специализированные компоненты ОС — программные серверы, работающие в пользовательском режиме. При таком построении ОС работает более медленно, так как часто выполняются переходы между привилегированным режимом и пользовательским, но система получается более гибкой и ее функции можно модифицировать, добавляя или исключая серверы пользовательского режима;
  • • по наличию нескольких прикладных сред в рамках одной ОС, позволяющих выполнять приложения, разработанные для нескольких операционных систем. Концепция множественных прикладных сред наиболее просто реализуется в ОС на базе микроядра, над которым работают различные серверы, реализующие прикладную среду той или иной операционной системы;
  • • по распределению функций операционной системы среди компьютеров сети. В распределенной ОС реализованы механизмы, обеспечивающие пользователя возможностью представлять и воспринимать сеть в виде однопроцессорного компьютера. Признаки распределенной ОС — наличие единой справочной службы разделяемых ресурсов и службы времени, использование механизма вызова удаленных процедур для распределения программных процедур по машинам, многонитевая обработка, позволяющая распараллеливать вычисления в рамках одной задачи и выполнять эту задачу одновременно на нескольких компьютерах сети, и др.
 
< Пред   СОДЕРЖАНИЕ     След >