Операционная система: назначение, классификация

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

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

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

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

В функции операционной системы входит:

· выполнение процедуры начальной загрузки;

· осуществление диалога с пользователем;

· управление файловой системой;

· ввод-вывод и управление данными;

· планирование и организация процесса обработки программ;

· запуск программ на выполнение;

· распределение ресурсов (оперативной памяти и кэша, процессора, внешних устройств) между одновременно работающими прикладными программами;

· всевозможные вспомогательные операции обслуживания, например, поиск файла (папки) по его имени или другим признакам;

· передача информации между различными внутренними устройствами;

· программная поддержка работы периферийных устройств (дисплея, клавиатуры, дисковых накопителей, принтера и др.).

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

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

· драйверы устройств - программы, предназначенные для управления периферийными устройствами;

· менеджер памяти - программа, которая координирует распределение памяти компьютера.

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

· по количеству пользователей: однопользовательская ОС (обслуживает только одногопользователя); многопользовательская (работает со многими пользователями);

· по числу процессов: однозадачные (обрабатывают только одну задачу — уже не используются); многозадачные (располагает в оперативной памяти одновременно несколько задач, которые попеременно обрабатывает процессор);

· по типу средств вычислительной техники: однопроцессорные, многопроцессорные (задачи могут выполняться на разных процессорах; серверы, как правило, многопроцессорные), сетевые (обеспечивают совместное использование ресурсов всеми выполняемыми в сети задачами).

· по типу интерфейса (способа взаимодействия с пользователем) операционные системы делятся на 2 класса: ОС с интерфейсом командной строки и ОС с графическим интерфейсом. Развитие графических возможностей дисплеев привело к коренному изменению принципов взаимодействия человека и компьютера. Командная строка была безвозвратно вытеснена графическим интерфейсом.

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

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

Процесс — это динамический объект, который возникает в операционной системе после того, как пользователь или сама операционная система решает "запустить программу на выполнение", то есть создать новую единицу вычислительной работы. Для ОС процесс - заявка на потребление системных ресурсов.

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

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

· либо он заканчивает свою деятельность;

· либо он не может продолжать свою работу, пока не произойдет некоторое событие, и операционная система переводит его в состояние ожидание;

· либо в результате возникновения прерывания в вычислительной системе (например, прерывания от таймера по истечении дозволенного времени выполнения) его возвращают в состояние готовность.

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

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

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

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

Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:

· планирование ресурса — то есть определение, какому процессу, когда и в каком
количестве (если ресурс может выделяться частями) следует выделить данный ресурс;

· удовлетворение запросов на ресурсы;

· отслеживание состояния и учет использования ресурса — то есть поддержание
оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;

· разрешение конфликтов между процессами.

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

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

1. Пусть процессы, находящиеся в состоянии готовность, организованы в очередь. Выбор нового процесса для исполнения осуществляется из начала очереди с удалением оттуда обслуженного процесса. Очередь подобного типа имеет в программировании специальное название: первым вошел, первым вышел, а алгоритм выбора процесса называется невытесняющим планированием.

2. Планировщик выбирает для очередного исполнения процесс, расположенный в начале очереди, и устанавливает таймер для генерации прерывания по истечении определенного кванта времени.

При выполнении процесса возможны два варианта:

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

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

Выполнение этого алгоритма подобно вертящейся карусели и называется вытесняющим планированием.

3. Выбирается процесс не из начала очереди, а процесс с минимальной длительностью. Такой алгоритм называется краткосрочным планированием, и он может быть как вытесняющим, так и невытесняющим.

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

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

Для полного описания этого алгоритма планирования необходимо указать:

· Количество очередей для процессов, находящихся в состоянии готовность.

· Алгоритм планирования, действующий между очередями.

· Алгоритмы планирования, действующие внутри очередей.

· Правила помещения родившегося процесса в одну из очередей.

· Правила перевода процессов из одной очереди в другую.

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

Рассмотрим случай, когда несколько процессов конкурируют за обладание конечным числом ресурсов. Если запрашиваемый процессом ресурс недоступен, процесс переходит в состояние ожидания. Но если требуемый ресурс удерживается другим ожидающим процессом (а он ждет выделения дополнительных ресурсов, которые при этом удерживаются другими процессами), то первый процесс не сможет сменить свое состояние. Такая ситуация называется тупиком. Говорят, что в мультипрограммной системе процесс находится в состоянии тупика, дедлока (deadlock) или клинча, если он ожидает события, которое никогда не произойдет.

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

Проблема тупиков включает в себя решение следующих задач: предотвращение тупиков, распознавание тупиков, восстановление системы после тупиков. Существует несколько способов борьбы с тупиками.

1. Тупики могут быть предотвращены на стадии написания программ.

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

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: