Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Примитивы ядра

 

Примитивы могут быть 3-ех уровней:

1) управление процессами;

2) примитивы синхронизации;

а) простейшая синхронизация;

б) временная (задержка для многозадачного режима);

в) событийная (по событию).

3) примитивы обмена сообщений;

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

б) процесс обмена информации между собой (почтовый ящик).

 

Все примитивы пишутся по одной и той же схеме:

Начало

1. пролог; сохранение контекста активного и вхождение в критический участок

2. контроль; проверка прав и параметров

<тело примитива>

3. выделение процесса; переключение контекста

 

Примитивы управления процессами:

- создать процесс;

- уничтожить процесс.

 

Создать процесс:

1. пролог;

2. контроль;

3. создать дескриптор;

4. включить в очередь;

5. переназначить.

 

Уничтожить процесс:

1. пролог;

2. контроль;

3. извлечь из очереди;

4. разрушить дескриптор;

5. переназначить.

 

Эта схема не годится в случае удаления активного процесса, т.к. это опасно. Поэтому рассмотрим другой вариант:

 

Уничтожить процесс:

1. пролог;

2. контроль;

3. извлечь из очереди;

4. включить в очередь удаления;

5. переназначить.

 

а) специальный процесс (демон);

б) в обработчике прерываний.

 

Обработчик прерываний:

Начало

Очистить очередь удаления

Переключение контекста

Конец

 

Простейшая синхронизация;

отладка
А) отсрочить выполнение

Б) возобновить выполнение

 

Отсрочить выполнение:

1. пролог;

2. контроль;

3. извлечь из очереди;

4. включить в очередь приостановленных;

5. переназначить;

 

Возобновить выполнение:

1. пролог;

2. контроль;

3. извлечь из очереди приостановленных;

4. включить в очередь готовых;

5. переназначить.

 

Временная синхронизация;

 

DELAY() ® P1

       
 
   
Недостатки: - простаивание процессора; - коллизии с обработчиком прерываний по таймеру.
 

 
 


К этому надо бы добавить:

+ реализация режима пассивных ожиданий;

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

 

Постановка

указ дескриптор              
T=Tn+Dt              

 

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

 

Событийная синхронизация;

 

1) Латентность – скрытность (например, заболевания).

 

                   
     
 
   
     
За это время система должна быть латентной
 
 
 
Dt << тик

 

 


2)Маскирование (запрет отдельных прерываний).

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

Микросхема PIC «20h, 21h, 22h (через порт 21h фактически и происходит маскирование)

 

Например, хотим запретить прерывание клавиатуры:

mov al, 00000010b

out 21h, al

 

3) Режим взаимного исключения;

Монитор – объект, содержащий:

- множество переменных (отражающих состояния системы);

- множество функций (функции изменения переменных).

 

1. Когда процесс получает доступ к ресурсу, то это влияет (приводит к) на изменение состояний системы.

2. Когда процесс запрашивает ресурс через монитор.

 

Монитор “знает” состояния системы и владеет функциями, способными их изменить, может предоставить этот ресурс либо отказать процессу.

 

3. Монитор работает в режиме взаимного исключения (ВИ).

 

0, критический участок свободен

FLAG =

1, критический участок занят

 

M: если FLAG = 1, то идти к М

 
 
Критический участок

 


FLAG = 0

Недостатки:

- такая схема (3) приводит к режиму активного ожидания, т.е. режиму, при котором ожидаются ресурсы процессора;

- нарушение принципа FIFO;

- FLAG – тоже общий ресурс Þ к нему тоже можно осуществить доступ.

 

Отсюда видно, что эта схема практически неприемлема, а если и приемлема, то безграмотна.

Попробуем ее немного улучшить (попробуем устранить последний недостаток):

 

M: mov ax, 1

 
 

 

 


lock xchg ax, FLAG

Cmp ax, 1

Jz M

 
 
Критический участок

 

 


FLAG = 0

 

Семафор Дейкстры (устраняет все 3 недостатка):

 

Семафор – объект, который состоит из:

- счетчика семафора;

- очереди семафора;

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

 

Захват_семафор()

CLI

DEC счетчик семафора (если счетчик семафора < 0, то дескр_проц отправляется в очередь семафора)

STI

Освоб_семафор()

CLI

INC счетчик семафора (если счетчик семафора <= 0, то дескр_проц, стоящий в очереди семафора 1-ым, отправляется в критический участок)

<== предыдущая лекция | следующая лекция ==>
Стратегия планирования | Обмен сообщениями между процессами
Поделиться с друзьями:


Дата добавления: 2013-12-13; Просмотров: 556; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.