Файл: Курс лекций по дисциплине СРВ (Артемов СП).pdf

Добавлен: 15.11.2018

Просмотров: 10803

Скачиваний: 12

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

56 

взаимодействия компонентов не влияет на «почтовый ящик» и другие 

модули. 


background image

57 

Особенности функционирования ОС РВ 

Ядро ОС обеспечивает выполнение следующих функций: 

1. 

Планирование задач. 

2. 

Синхронизация задач. 

3. 

Межзадачная коммуникация. 

4. 

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

Вспомогательные элементы: 

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

Сетевая поддержка. 

Интерфейс с оператором. 

Задача  –  готовая  к  выполнению  программа,  участвующая  в 

вычислительном процессе. 

Цель  менеджера  задач  –  определение  последовательности 

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

функций, которые называются функции ядра: 

1. 

Планирование задач. 

1.1. 

Циклическое  планирование.  Все  задачи  одна  за  другой.  Нет 

возможности изменения функционирующей задачи по приоритетам. 

1.2. 

Разделение времени. 

1.2.1.  Разделение  времени  на  равные  интервалы.  Для  каждой 

задачи выделяется интервал времени. Если задача не закончила своё 

исполнение  в  интервале,  то  выполняется  в  следующем  доступном 

интервале  (псевдопараллельное  исполнение  задач).  Реальное 

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

процессорах (вычислительных узлах). 

1.2.2.  Разделение  времени  с  вытеснением.  Разделение  по 

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

низкоприоритетная задача вытесняется. 


background image

58 

2. Назначение приоритетов (см. алгоритм планирования). 

3.  Синхронизация  задач  –  обеспечение  согласованности 

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

Синхронизируются: 

Связанность задач (то есть логическая последовательность 

задач). 

Обеспечение доступа к общим ресурсам. 

Обеспечение синхронизации с внешними событиями. 

Обеспечение синхронизации по времени. 

Связанность  задач  определяет  последовательность  функций 

реального  объекта.  Каждое  действие  в  системе  должно  происходить 

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

сохраняться история. Для этих целей используется «почтовый ящик» - 

буфер и сортировщик сообщений. Принцип связности реализуется как 

алгоритм функционирования системы. 

Обеспечение  доступа  к  общим  ресурсам  необходимо  для  того, 

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

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

Принтер

Память

Задача 1

Задача 2

Задача 3

Приоритет

5

7

9

Рис. 26. 

Проблемы  возникают  при  использовании  алгоритма  «с 

вытеснением».  


background image

59 

Если одна из задач захватит ресурс и не обеспечит доступ 

для  всех  остальных  или  не  успеет  выполнить  все  действия  на 

устройстве,  то  возникают  ошибки  функционирования,  связанные  с 

«гонками».  Их  можно  обнаружить  только  в  процессе  эксплуатации 

системы. 

Способы решения проблем гонок. 

1.  Создание  сервера  ресурса,  то  есть  задачи,  отвечающей  за 

доступ 

к 

ресурсу. 

Она 

обеспечивает 

планирование 

последовательности выполнения. 

2.  Запрет  прерывания  доступа  к  ресурсу  на  время  его 

использования. 

3.  Принцип «семафора».  

Реализация  проблем  «гонок»  осуществляется  в  критических 

секциях  –  участках  кода  программ,  где  происходит  обращение  к 

разделяемым  ресурсам.  Для  решения  можно  реализовать  несколько 

потоков и только 1 поток отвечает за доступ к ресурсу. 

Вторая  проблема  –  «смертельный  захват»  (DeadLock). 

Возникает, если задачи не поделили между собой ресурс.  

Пример: 

Задача А  →  дисплей  →  клавиатура 

Задача В  →  клавиатура  →  дисплей 

               

захват              требует 

задачи зашли в тупик. Ситуация DeadLock. 

Способы решения проблемы: 

1. 

Принцип  «либо  всё,  либо  ничего».  Только  одна  задача 

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

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

2. 

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


background image

60 

3. 

При  требованиях  доступа  к  занятому  ресурсу  задача, 

требующая ресурс отключается и ждёт выполнения задачи В. 

«Инверсия приоритетов» - это ситуация, при которой задача 

с  более  высоким  приоритетом  не  может  выполняться  из-за  задачи  с 

более низким приоритетом. 

Пример: 

А – высокоприоритетная задача. 

В – среднеприоритетная задача. 

С – низкоприоритетная задача.   

С → захватывает ресурс. 

В → выполняется. 

С → останавливается (ресурс захвачен). 

А  →  пытается  захватить  ресурс  и  останавливает  В,  но  С  уже 

захватила ресурс. В не выполнится пока А не выполнится. 

Решение: 

1.  Сервер  ресурсов.  Выполняется  задача  с  самым  высоким 

приоритетом, и доступ к ресурсам будет освобождаться. 

2. Перераспределение ресурсов. Ресурс выделяется той задаче, 

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

Для  оптимизации  поведения  системы  (выполнение  алгоритма  и 

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

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

который обеспечит взаимодействие ресурсов и задач.