Классификация вычислительных систем, в которых применяются ОС

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

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

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

С точки зрения однопользовательской ОС пользователи неразличимы, поэтому если такую ОС начинают использовать несколько пользователей, то каждому из них ОС предоставляет доступ ко всем ресурсам и, возможно, к тому же самому информационному окружению. При работе с уникальными данными – например, с данными на съемном диске, информационное окружение различно.

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

Поддержка ОС только одного пользователя не исключает возможности одновременного выполнения многих задач пользователя.

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

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

Однозадачные ОС. Данный класс ОС предназначен для одновременного выполнения только 1 задачи. Сразу после старта системы управление передаётся программе, играющей роль оболочки для работы пользователя. Как правило, одна из функций такой оболочки - запуск других программ.

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

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

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

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

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

1. Создание и уничтожение процессов - загрузка программы в память, создание информационного окружения и передача управления процессу при его создании, удаление информационного окружения и выгрузка процесса из памяти при его уничтожении;

2. Распределение системных ресурсов между процессами - планирование выполнения процессов, формирование очереди процессов и управление приоритетами процессов в очереди.

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

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

ОС семейства Unix относятся к многопользовательским многозадачным ОС

 

 

Состав и структура ОС.

Выделяется 2 уровня: ядро системы и вспомогательные системные программные средства, иногда называемые системными утилитами.

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

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

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

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

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

Система ввода/вывода обрабатывает запросы всех рассмотренных выше компонентов ядра и преобразовывает их в вызов логических устройств, поддерживаемых ОС. Каждое такое устройство представляет собой логический объект, обращение к которому происходит стандартным для ОС средствам (к адресу в ОП, либо к спец. файлу). Логическое устройство может быть чисто виртуальным (целиком функционировать внутри ядра ОС) или представлять логический объект, связанный через драйверы с реальными аппаратными устройствами.

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

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

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