Эволюция ЭВМ привела к появлению большого количества операционных систем (ОС). Классификацию ОС можно проводить по самым разным признакам.
По числу одновременно выполняемых приложений – однозадачные (все ресурсы предоставляются одному приложению) и многозадачные. Полная многозадачность – параллельное выполнение приложений на разных процессорах. Вытесняющая многозадачность, или режим разделения времени – поочерёдная работа нескольких приложений на одном процессоре.
По числу одновременно работающих с ОС пользователей различают однопользовательские и многопользовательские ОС. По наличию возможностей, обеспечивающих работу в вычислительной сети, – несетевые и сетевые.
Можно провести условную классификацию сложности ОС в зависимости от сферы применения ЭВМ.
Самые сложные – это ОС для мэйнфреймов, которые ориентированы на обработку множества одновременных заданий, большинству из которых требуется огромное количество операций ввода/вывода. Такие системы обычно выполняют три вида операций: пакетную обработку, обработку транзакций (групповые операции, выполняемые по принципу «или всё, или ничего», например, продажа ж/д- и авиабилетов) и разделение времени. Эти системы, работающие в режиме разделения времени, позволяют множеству удалённых пользователей одновременно выполнять свои задания на одной машине, например, работать с большой базой данных. Примером операционной системы для мэйнфреймов является OS/390.
Уровнем ниже находятся серверные ОС, которые одновременно обслуживают множество пользователей и делят между ними программно-аппаратные ресурсы ЭВМ. Типичными серверными ОС являются UNIX и Windows NT. Справедливости ради стоит отметить, что в настоящее время всё большее распространение получают серверные версии ОС Linux, под управлением которых работают многие суперкомпьютеры и мэйнфреймы.
Следующую категорию составляют ОС для персональных компьютеров. Такие системы широко используются в повседневной работе пользователей. Основными ОС в этой категории являются операционные системы платформы Windows, Linux и операционная система компьютера Macintosh.
Особо следует выделить такой тип ОС, как системы реального времени. Эти системы управляют процессами, подчинёнными жёстким временным требованиям, например, технологическим процессом конвейерного производства. Системы VxWorks и QNX являются операционными системами реального времени.
Встроенные операционные системы используются в карманных компьютерах и бытовой технике. Устройства бытовой техники не считаются компьютерами, но обладают теми же характеристиками, что и системы реального времени, и при этом имеют особые размер, память и ограничения мощности, что выделяет их в отдельный класс. Примерами таких операционных систем являются PalmOS и Windows CE (Consumer Electronics – бытовая техника).
Самые маленькие ОС работают в смарт-картах, управляя всего несколькими, а иногда только одной операцией. Роль таких ОС выполняет ПО SIM -карт, банковских микропроцессорных карт и др. (таксофонные карты, карты доступа).
Важнейшими понятиями операционных систем являются процесс, память и файл.
Процессом называют программу в момент её выполнения. С каждым процессом связано его адресное пространство, т.е. список адресов памяти от некоторого минимума до некоторого максимума. Адресное пространство содержит саму программу, данные к ней и её стек. Вся информация о процессе хранится в таблице операционной системы. Эта таблица называется таблицей процессов и представляет собой связанный список структур, по одной на каждый существующий в данный момент процесс. В таблице процессов хранится следующая информация о каждом процессе: состояние процесса; счётчик команд; распределение памяти; стояние открытых файлов; указатель стека; использование и распределение ресурсов.
Информация из таблицы процессов используется ОС дляпрерывания, остановки и повторного запуска какого-нибудь процесса. Переключение ЦП с процесса на процесс называется многозадачностью или мультипрограммированием. Некоторые процессы являются фоновыми – выполняют функции, не связанные напрямую с пользователем (например, службы диспетчера печати, журнализации событий, шифрования). Обработку прерываний и выполнение процедур, связанных с управлением процессами, осуществляет специальная программа ОС – планировщик.
Процесс рассматривается, прежде всего, как способ группирования ресурсов, необходимых для работы приложения. В то же время каждый процесс можно рассматривать как поток исполняемых команд. Поток имеет счётчик команд, регистры с текущими переменными, стек, где хранится протокол выполнения процесса. Концепция потоков добавляет к модели процесса возможность одновременного выполнения в одной и той же среде процесса нескольких достаточно независимых программ. Несколько потоков, работающих параллельно в одном многопоточном процессе, аналогичны нескольким процессам, идущим параллельно на одном компьютере. Процессор быстро переключается между потоками, создавая впечатление параллельной работы потоков. При этом потоки разделяют одно адресное пространство, совместно используют одни и те же ресурсы процесса.
Потоки иногда называют упрощёнными процессами, так как с потоком не связаны никакие особо выделенные ресурсы. Потоки легко создавать и уничтожать. Время создания потока в сто раз меньше времени создания процесса. Использование потоков во многих случаях позволяет увеличить производительность работы. Например, рассмотрим работу текстового редактора. Во время возникающих при вводе текста пауз может выполняться фоновая разбивка на страницы, автоматическое сохранение документа, проверка правописания и др.
Управление памятью. Оперативная память ЭВМ предназначена для временного хранения выполняемой программы. Если в памяти хранится несколько программ, то необходим защитный механизм, чтобы они не мешали друг другу. Этот механизм управляется операционной системой. Кроме того, ОС управляет адресным пространством процессов. Часть ОС, осуществляющая управление памятью, называется модулем управления памяти или менеджером памяти. Способы управления основаны на разбиении памяти на разделы и отличаются организацией распределения задач. При этом очерёдность может зависеть от соотношения количества разделов и задач, а также их размеров.
Если адресное пространство всех активных процессов окажется больше, чем ОЗУ компьютера, то ОС хранит часть адресов в оперативной памяти, а часть на диске, и меняет их местами по мере необходимости. В этом случае возможны два варианта управления. Первый – свопинг (swapping) или подкачка – приостанавливаемый процесс полностью переносится на диск, освобождая память. Второй, более сложный, позволяет используемые части активных процессов оставлять в оперативной памяти, а временно неиспользуемые – на диске (виртуальная память). При этом физический размер оперативной памяти виртуально увеличивается за счёт использования свободной дисковой памяти.