2.1.1 Функции операционной системы персонального компьютера

Персональный компьютер состоит из аппаратных и программных компонентов. К последним относятся:
|
![]() Рисунок 2‑1. Программные и аппаратные компоненты компьютера (Источник: Learning Materials for Information Technology Professionals (EUCIP-Mat)) |
Рисунок 2‑2. Предоставление аппаратных ресурсов приложениям (Источник: Learning Materials for Information Technology Professionals (EUCIP-Mat))
ОС предоставляет прикладным программам специальный интерфейс для обращения к аппаратным компонентам. Специфика самого обращения, а также управление аппаратными ресурсами и предотвращение конфликтных ситуаций являются задачами операционной системы.
К типичным функциям ОС персонального компьютера относятся:
- Пользовательская среда для работы с устройствами
- Автоматическая настройка устройств ввода/вывода
- Программный интерфейс обращения к устройствам
- Среда создания приложений
- Распределение ресурсов (ЦПУ, ОЗУ, файловая система, итд.)
- Поддержка компьютерных сетей (протоколы, веб-обозреватель)
- Средства безопасности (аутентификация, сетевой экран, ACL файловой системы, шифрование, настройка пользовательских ограничений и установки).
Современные ОС должны идти в ногу с новым аппаратным и программным обеспечением и соответствовать новым требованиям безопасности. Со стороны аппаратуры, развитие ОС обусловлено быстрым развитием многопроцессорных систем, высокими тактовыми частотами и более вместительными носителями информации, а со стороны программ - развитием мультимедийных приложений, Интернета и сетей, клиент/серверных приложений и виртуализацией.
Ввиду этого, работу по развитию ОС можно разделить на следующие категории:
- Миркоядерная архитектура (Microkernel architecture) - компактное ядро, к которому подключаются дополнительные компоненты.
- Многопоточность (Multithreading) - позволяет разбивать процессы на потоки, выполняющиеся параллельно.
- Симметричная многопроцессорная обработка (Symmetric multiprocessing) - процессоры делят основную память и устройства ввода/вывода и могут в равной степени исполнять все процессы.
- Объектно-ориентированный дизайн - упрощает добавление компонентов к микроядру, разработку инструментов и отладку самой ОС.
- Монитор виртуальных машин (Hypervisor) - программа, встроенная в слой между аппаратурой и ядром, позволяющая одновременное выполнение нескольких операционных систем на одном и том же компьютере.
Основные компоненты операционной системы объединены в единственную программу, называемую ядром. Ядро может быть крупным монолитным. В этом случае ядро содержит всё необходимое для функционирования ОС - планировщик, файловую систему, поддержку сети, драйверы, управление памятью итд. Микроядро, напротив, обеспечивает лишь основные функции, такие как планирование процессов, межпроцессное взаимодействие, обработка прерываний и исключений, синхронизацию в многопроцессорной системе. Микроярдо также содержит процедуры и базовые объекты, которыми могут пользоваться компоненты, работающие в режиме ядра. Операционные системы Microsoft Windows являются модульными, в них применён подход, схожий с микроядерной архитектурой. В ОС Linux применена архитектура монолитного ядра. Вокруг ядра Windows сосредоточены работающие в режиме ядра компоненты, предоставляющие все услуги ОС, такие как управление памятью, управление процессами и потоками, безопасность, ввод/вывод, сеть, межпроцессную коммуникацию и функции графического пользовательского интерфейса. В режиме ядра работают и драйверы, преобразующие команды ввода/вывода в специфичные запросы аппаратного ввода/вывода. Компоненты, работающие в режиме ядра, должны быть особенно хорошо протестированы, а драйверы - совместимы с ОС, так как сбои в их работе приведут к нестабильности всю ОС.
Для защиты от пользовательских приложений, ОС использует разные режимы работы процессора. Пользовательские программы запускаются в пользовательском режиме (User Mode), а служебные приложения самой ОС (системные службы и драйверы устройств) - в режиме ядра (Kernel Mode или Supervisor Mode). Приложения, запущенные в режиме ядра, являются привилегированными в том смысле, что имеют доступ ко всем командам процессора и всему адресному пространству. Применение разных режимов работы позволяет избежать ситуаций, когда неправильно работающая пользовательская программа ставит под угрозу стабильность всей системы.