Скачиваний:
84
Добавлен:
13.03.2016
Размер:
89.6 Кб
Скачать

Лекция 16

8. Операционная система

Операционной системой (ОС) МПС называют программу, главное назначение которой – это управление ресурсами системы.

ОС управляет следующими основными ресурсам: процессорами, памятью, устройствами ввода-вывода.

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

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

На рис.8.1 приведена структура типичной мультитерминальной (одновременная работа нескольких пользователей) системы UNIX.

На рис.8.2 приведена структура Windows NT. POSIX (Portable Operating System Interface for Computer Environment) – платформенно-независимый системный интерфейс.

На рис.8.3 приведена структура RTEMS (Real Time Executive for Multiprocessor Systems) – ОС реального времени для встроенных систем.

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

Задача. Задача – наименьший исполняемый “поток” (thread), который может конкурировать за ресурсы системы.

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

Говорят, что задача выполняется (находится в состоянии выполнения), если ей выделен ЦПУ. Говорят, что задача готова (находится в состоянии готовности), если она могла бы сразу использовать ЦПУ, предоставленный в ее распоряжении. Говорят, что задача заблокирована (находится в состоянии блокировки), если она ожидает появления некоторого события (например, завершения операции вывода), чтобы получить возможность продолжить выполнение.

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

Когда задача поступает в систему, она устанавливается в конец списка готовых задач. Эта задача постепенно продвигается к головной части списка – по мере завершения выполнения предыдущих задач. Когда задача оказывается первой в списке готовых и когда освобождается ЦПУ, этой задаче выделяется ЦПУ и говорят, что происходит смена состояния задачи – она переходит из состояния готовности в состояние выполнения (рис.8.4). Предоставление ЦПУ

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

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

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

Когда завершается операция ввода-вывода (или происходит другое событие, ожидаемое задачей) задача переходит из состояния блокировки в состояние готовности.

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

Режимом задачи является комбинация нескольких компонент:

преимущество, квантование времени, уровень прерывания.

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

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

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

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

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

События. События обеспечивают высокопроизводительный метод взаимодействия и синхронизации задач. Флаг события используется задачей или подпрограммой обработки прерывания (ISR) для информирования другой задачи о значимой ситуации.

Соседние файлы в папке ВстроенныеСистемы