Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в ОСРВ. Назначение. Применение. Стандарты..doc
Скачиваний:
71
Добавлен:
02.05.2014
Размер:
221.18 Кб
Скачать

8 Типы задач

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

1. Циклические задачи. Характерны для процессов управления и интерактивных процессов.

2. Периодические задачи. Характерны для многих технологических процессов и задач синхронизации.

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

9 Виды программирования

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

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

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

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

10 Виды ресурсов

По своей природе ресурсы можно разделить на

• аппаратные:

— процессор,

— область памяти,

— периферийные устройства,

— прерывания,

• программные:

— программа,

— данные,

— файлы,

— сообщения.

По своим характеристикам ресурсы разделяют на:

• активные:

— способны изменять информацию (процессор),

• пассивные:

— способны хранить информацию,

• локальные:

— принадлежат одному процессу время жизни совпадает с временем жизни процесса,

• разделяемые:

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

• постоянные:

— используются посредством операций "захватить" и "освободить",

• временные

— используются посредством операций "создать" и "удалить".

Разделяемые ресурсы бывают:

• не критичные:

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

• критичные:

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

11 Типы взаимодействия процессов

По типу взаимодействия различают

• сотрудничающие процессы:

— процессы, разделяющие только коммуникационный канал, по которому один передает данные, а другой их получает;

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

• конкурирующие процессы:

— процессы, использующие совместно разделяемый ресурс;

— процессы, использующие критические секции;

— процессы, использующие взаимные исключения.

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

Определение. Взаимное исключение(mutual exclusion , mutex) — это способ синхронизации параллельно работающих процессов (задач), использующих разделяемый постоянный критичный ресурс. Если ресурс занят, то системный вызов "захватить ресурс" переводит процесс (задачу) из состояния выполнения в состояние ожидания. Когда ресурс будет освобожден посредством системного вызова "Освободить ресурс", то этот процесс (задача) вернется в состояние выполнения и продолжит свою работу. Ресурс при этом перейдет в состояние "занят".

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

При синхронизации задач необходимо бороться с 3-мя проблемами:

1. "блокировка" ("lockout"):

• процесс (задача) ожидает ресурс, который никогда не освободится,

2. "тупик" ("deadlock")

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

3. "застой" ("starvation")

• процесс (задача) монополизировал процессор.

Для минимизации этик проблем используются следующие идеи.

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

• Задачи делятся на группы:

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

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

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