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

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

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

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

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

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

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

  • если разработанное управляющее ПО получается достаточно большим по объему;

  • если в процессе его выполнения требуется нескольких вычисли- тельных потоков;

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

Для управления процессами в таких операционных системах используется один из двух подходов:

1) управление на основе приоритетов событий. При использовании данной стратегии управление передается тому процессу, который связан с обработкой наиболее приоритетного события;

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

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

В настоящее время существует достаточно большое количество операционных систем реального времени: LynxOS, RTLinux, VxWorks и т.д. Одной из наиболее известных операционных систем реального времени является QNX, которая иногда используется и в качестве настольной. Помимо этих коммерчески распространяемых продуктов существует еще и некоторое количество операционных систем, разработанных самостоятельно компаниями, но не распространяемых на коммерческой основе, а используемых только в составе уже готовых программно-аппаратных комплексов.