Перейти к содержанию

02. Функции и задачи операционных систем

Понятие функции операционной системы

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

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

Все эти функции тесно связаны друг с другом.

Например, запуск программы требует одновременно: 1. выделить ей память; 2. загрузить необходимые данные с диска; 3. создать процесс; 4. предоставить доступ к необходимым устройствам; 5. предоставить процессорное время; 6. контролировать права доступа.

Таким образом, одна операция пользователя может затрагивать сразу несколько компонентов ОС.


Управление процессами

Одной из главных задач ОС является управление выполняющимися программами.

Когда пользователь запускает программу, операционная система создаёт для неё процесс.

Процесс — это выполняющаяся программа вместе с необходимыми для её работы ресурсами.

Например, пользователь запускает текстовый редактор.

Происходит примерно следующее: Пользователь → запуск программы → ОС создаёт процесс → выделяются ресурсы → программа начинает выполняться.

Операционная система контролирует этот процесс на протяжении всего времени его работы.

Она должна: - запускать процессы; - останавливать процессы; - завершать процессы; - распределять процессорное время; - изменять приоритеты; - контролировать взаимодействие процессов.


Многозадачность

Современные операционные системы поддерживают многозадачность.

Многозадачность — это возможность системы обеспечивать выполнение нескольких задач практически одновременно.

Например, компьютер может одновременно: - воспроизводить музыку; - скачивать файл; - выполнять антивирусную проверку; - показывать видео; - принимать сетевые данные.

На одноядерном процессоре физически невозможно одновременно выполнять несколько инструкций разных процессов на одном ядре.

Поэтому ОС быстро переключает процессор между задачами.

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


Управление процессорным временем

Процессор является одним из важнейших ресурсов компьютера.

Если одновременно работает большое количество программ, операционная система должна определить, какой процесс и когда получит доступ к процессору.

Для этого используется планирование процессов.

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

Например, если пользователь работает с программой, ОС должна обеспечить ей достаточно процессорного времени, чтобы интерфейс оставался отзывчивым.

При этом фоновые задачи также должны продолжать выполняться.


Состояния процесса

В процессе работы процесс может находиться в различных состояниях.

Наиболее распространённые состояния: - создание — процесс создаётся операционной системой; - готовность — процесс готов к выполнению и ожидает процессор; - выполнение — процесс непосредственно выполняется; - ожидание — процесс ожидает определённого события или ресурса; - завершение — процесс прекращает работу.

Упрощённо: Создание → Готовность → Выполнение → Завершение

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


Управление оперативной памятью

Второй важнейшей функцией ОС является управление оперативной памятью.

Когда запускается программа, ей необходимо место в оперативной памяти.

Операционная система: - выделяет память процессам; - освобождает память; - отслеживает занятое пространство; - защищает память процессов друг от друга; - организует использование виртуальной памяти.

Например, если пользователь запускает браузер, ОС выделяет браузеру определённый объём памяти.

После закрытия программы соответствующая память может быть освобождена.


Виртуальная память

Современные ОС используют механизм виртуальной памяти.

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

Упрощённо можно представить: Оперативная память + специальное пространство на накопителе → виртуальная память

В Windows для этого используется файл подкачки.

В Linux может использоваться раздел или файл подкачки — swap.

Важно понимать, что накопитель значительно медленнее оперативной памяти.

Поэтому чрезмерное использование виртуальной памяти может привести к снижению производительности компьютера.


Управление файлами

Операционная система отвечает за работу с файлами и каталогами.

Она предоставляет программы для выполнения операций: - создание; - чтение; - запись; - копирование; - перемещение; - переименование; - удаление.

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

Упрощённая схема: Программа → ОС → файловая система → накопитель

После чтения данных они передаются обратно программе.


Файловая система

Для организации хранения данных используется файловая система.

Файловая система определяет: - каким образом организованы файлы; - как хранятся сведения о файлах; - где находятся данные; - как осуществляется доступ к ним; - какие права установлены для пользователей.

Примеры файловых систем:

Windows

  • NTFS;
  • FAT32;
  • exFAT.

Linux

  • ext4;
  • XFS;
  • Btrfs;

Разные файловые системы обладают различными возможностями и ограничениями.


Управление устройствами

Операционная система должна взаимодействовать с аппаратными устройствами.

К ним относятся: - процессор; - видеокарта; - накопители; - сетевые адаптеры; - клавиатура; - мышь; - принтер; - USB-устройства и другие компоненты.

Для взаимодействия используются драйверы устройств.

Упрощённая схема: Программа → ОС → драйвер → устройство

Например, программа хочет вывести изображение.

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


Plug and Play

Современные ОС поддерживают механизм Plug and Play — «подключи и работай».

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

Например, при подключении USB-клавиатуры ОС: 1. обнаруживает новое устройство; 2. определяет его тип; 3. находит подходящий драйвер; 4. загружает драйвер; 5. предоставляет устройству возможность работать.

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


Управление пользователями

Операционная система может поддерживать несколько пользователей.

Для каждого пользователя может существовать отдельная учётная запись.

Учётная запись обычно содержит: - имя пользователя; - пароль или другой способ аутентификации; - идентификатор пользователя; - принадлежность к группам; - права доступа; - настройки пользователя.

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


Группы пользователей

Пользователей можно объединять в группы.

Группа позволяет назначать права сразу нескольким пользователям.

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


Управление правами доступа

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

Ресурсами могут быть: - файлы; - каталоги; - устройства; - сетевые ресурсы; - системные настройки; - службы.

Например, один пользователь может иметь право: читать файл

а другой: читать + изменять файл.

Третий пользователь может вообще не иметь доступа.

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


Сетевые функции

Операционная система обеспечивает работу сетевых интерфейсов и протоколов.

Она позволяет: - назначать IP-адреса; - настраивать маску сети; - задавать шлюз; - использовать DNS; - устанавливать сетевые соединения; - работать с маршрутами; - взаимодействовать с другими компьютерами; - предоставлять сетевые службы.

Например, в Linux можно посмотреть сетевые интерфейсы с помощью:

ip addr

А проверить доступность другого узла:

ping 192.168.1.1

В Windows для просмотра сетевой конфигурации можно использовать:

ipconfig

Управление сетевыми службами

Операционная система может предоставлять различные сетевые службы.

Например: - веб-сервер; - DNS-сервер; - DHCP-сервер; - SSH; - файловый сервер; - сервер баз данных.

На сервере одновременно могут работать несколько служб.

ОС должна обеспечить их запуск, остановку, перезапуск и контроль состояния.

Например, в Linux службы обычно управляются с помощью системы systemd и команды:

systemctl

В Windows для управления службами используется специальный системный инструмент «Службы», а также командные средства.


Системные службы

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

Пользователь может даже не видеть её работу.

Примеры служб: - сетевые службы; - службы обновления; - службы журналирования; - службы печати; - службы удалённого доступа.

Служба может находиться в различных состояниях: - запущена; - остановлена; - запускается; - останавливается; - автоматически запускается вместе с системой.


Обеспечение безопасности

Безопасность является одной из основных функций операционной системы.

ОС должна защищать: - данные пользователей; - системные файлы; - процессы; - память; - сетевые соединения; - настройки системы.

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


Аутентификация и авторизация

Эти понятия необходимо различать.

Аутентификация

Аутентификация — это проверка того, кто именно пытается получить доступ к системе.

Например:

Пользователь вводит имя и пароль.

ОС проверяет предоставленные данные.

Авторизация

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

Например: Пользователь успешно вошёл в систему.

ОС определяет, что ему разрешено: - читать определённые файлы; - запускать программы; - изменять настройки.

Таким образом: Аутентификация → кто это? Авторизация → что ему разрешено?


Обработка ошибок

Во время работы компьютера могут возникать ошибки.

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

ОС должна обнаружить проблему и соответствующим образом на неё отреагировать.

В зависимости от ситуации система может: - показать сообщение пользователю; - записать информацию в журнал; - перезапустить службу; - завершить неисправный процесс; - заблокировать опасную операцию; - предложить восстановление.


Журналы событий

Для диагностики неисправностей ОС ведёт различные журналы.

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

Если сервер перестал работать, можно изучить журналы и определить, что происходило непосредственно перед возникновением проблемы.

В Windows используется, например, Просмотр событий.

В Linux часто используются журналы systemd, которые можно просматривать с помощью:

journalctl

Мониторинг системы

ОС предоставляет средства для наблюдения за состоянием компьютера.

Может контролировать: - загрузку процессора; - использование оперативной памяти; - нагрузку на накопители; - сетевой трафик; - количество процессов; - состояние служб.

В Windows для этого можно использовать: - Диспетчер задач; - Монитор ресурсов; - Просмотр событий; - PowerShell.

В Linux: - top; - htop; - ps; - free; - df; - ip; - systemctl; - journalctl.

Мониторинг позволяет обнаружить проблемы ещё до того, как они приведут к серьёзному отказу системы.


Интерфейс прикладного программирования

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

Для этого используются различные программные интерфейсы.

Одним из важнейших понятий является API — Application Programming Interface, то есть программный интерфейс приложения.

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

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

Таким образом, программа работает с предоставленным ОС интерфейсом, а не непосредственно с аппаратными компонентами.


Взаимодействие функций ОС

Функции операционной системы нельзя рассматривать полностью отдельно друг от друга.

Рассмотрим простой пример.

Пользователь запускает браузер.

Происходит следующее: 1. ОС получает команду запустить программу. 2. Файл программы считывается с накопителя. 3. ОС выделяет программе оперативную память. 4. Создаётся процесс. 5. Процесс получает процессорное время. 6. Браузер обращается к сетевой подсистеме. 7. ОС использует сетевой адаптер и соответствующие драйверы. 8. Полученные данные помещаются в память. 9. Браузер отображает данные пользователю.

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


Основные функции ОС в кратком виде

Функция Назначение
Управление процессами Организация выполнения программ
Управление памятью Распределение и освобождение памяти
Управление файлами Работа с файлами и каталогами
Управление устройствами Взаимодействие с аппаратным обеспечением
Управление пользователями Создание и управление учётными записями
Управление правами Контроль доступа к ресурсам
Сетевое управление Работа с сетевыми интерфейсами и соединениями
Управление службами Запуск и контроль фоновых служб
Безопасность Защита системы и данных
Журналирование Запись важных событий и ошибок
Мониторинг Контроль состояния системы
Обработка ошибок Обнаружение и обработка неисправностей
Пользовательский интерфейс Взаимодействие пользователя с ОС

Итог

Операционная система выполняет большое количество взаимосвязанных функций.

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