Назначение и функции операционной системы
Операционная система компьютера представляет собой комплекс взаимосвязанных программ, который действует как интерфейс между приложениями и пользователями с одной стороны, и аппаратурой компьютера с другой стороны. В соответствии с этим определением ОС выполняет две группы функций:
· предоставление пользователю или программисту вместо реальной аппаратуры компьютера расширенной виртуальной машины, с которой удобней работать и которую легче программировать;
· повышение эффективности использования компьютера путем рационального управления его ресурсами в соответствии с некоторым критерием.
Для того чтобы успешно решать свои задачи, современный пользователь или даже прикладной программист может обойтись без досконального знания аппаратного устройства компьютера. Ему не обязательно быть в курсе того, как функционируют различные электронные блоки и электромеханические узлы компьютера. Более того, очень часто пользователь может не знать даже системы команд процессора. Пользователь-программист привык иметь дело с мощными высокоуровневыми функциями, которые ему предоставляет операционная система.
Операционная система избавляет программистов от необходимости напрямую работать с аппаратурой и берет на себя все рутинные операции, связанные с управлением всеми основными аппаратными устройствами компьютера: оперативной памятью, устройствами хранения информации, дисплеем, клавиатурой, сетевыми контроллерами, принтерами и т. д.
В результате реальная машина, способная выполнять только небольшой набор элементарных действий, определяемых ее системой команд, превращается в виртуальную машину, выполняющую широкий набор гораздо более мощных функций. Виртуальная машина тоже управляется командами, но это уже команды другого, более высокого уровня: удалить файл с определенным именем, запустить на выполнение некоторую прикладную программу, вывести текст из файла на печать.
Операционная система не только предоставляет пользователям и программистам удобный интерфейс к аппаратным средствам компьютера, но и является механизмом, распределяющим ресурсы компьютера.
К числу основных ресурсов современных вычислительных систем могут быть отнесены такие ресурсы, как процессоры, основная память, таймеры, наборы данных, диски, накопители на магнитных лентах, принтеры и т.д. Ресурсы распределяются между процессами. Процесс (задача) представляет собой базовое понятие большинства современных ОС и часто кратко определяется как программа в стадии выполнения.
Программа – это статический объект, представляющий собой файл с кодами и данными.
Процесс – это динамический объект, который возникает в операционной системе после того, как пользователь или сама операционная система решает «запустить программу на выполнение», то есть создать новую единицу вычислительной работы.
Назначением операционной системы является управление ресурсами вычислительной системы с целью наиболее эффективного их использования. Например, мультипрограммная операционная система организует одновременное выполнение сразу нескольких процессов на одном компьютере, поочередно переключая процессор с одного процесса на другой, исключая простои процессора, вызываемые обращениями процессов к вводу-выводу. ОС также отслеживает и разрешает конфликты, возникающие при обращении нескольких процессов к одному и тому же устройству ввода-вывода или к одним и тем же данным.
Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:
· планирование ресурса – то есть определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс;
· удовлетворение запросов на ресурсы;
· отслеживание состояния и учет использования ресурса– то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;
· разрешение конфликтов между процессами.
Для решения этих общих задач управления ресурсами разные ОС используют различные алгоритмы, особенности которых и определяют облик ОС в целом. Например, применяемый алгоритм управления процессором в значительной степени определяет, может ли ОС использоваться как система разделения времени, система пакетной обработки или система реального времени.
Задача организации эффективного совместного использования ресурсов несколькими процессами является весьма сложной, и сложность эта порождается в основном случайным характером возникновения запросов на потребление ресурсов. В мультипрограммной системе образуются очереди заявок от одновременно выполняемых программ к разделяемым ресурсам компьютера: процессору, странице памяти, к принтеру, к диску. Анализ и определение оптимальных дисциплин обслуживания заявок является предметом специальной области прикладной математики – теории массового обслуживания.
Функциональные компоненты ОС
Функции ОС обычно группируются либо в соответствии с типами локальных ресурсов, которыми она управляет, либо в соответствии со специфическими задачами, применимыми ко всем ресурсам. Такие группы функций называют подсистемами.
Наиболее важными подсистемами управления ресурсами являются подсистемы управления:
· процессами,
· памятью,
· файлами
· внешними устройствами
Общими для всех ресурсов являются подсистемы:
· интерфейса пользователя,
· защиты данных и администрирования.
Прикладному программисту возможности ОС доступны в виде набора функций, составляющих интерфейс прикладного программирования (API).