Содержание
- 2. 10. Механизмы синхронизации. 2002 v.0.2 type Семафор; Создать_Семафор(S: Семафор; НачЗначение: Integer); P(S: Семафор); V(S: Семафор); ЯДРО
- 3. 10. Механизмы синхронизации. 2002 v.0.2 type Семафор = ^рСемафор рСемафор = record Очередь: УказательНаОчередь; НЗначение: 0..1;
- 4. 10. Механизмы синхронизации. 2002 v.0.2 P(S: Семафор): 1. Запретить_прерывания(); 2. if (S.ТЗначение=0) then 2.1. Поставить_В_Очередь(ТекПроц,S.Очередь) 2.2.
- 5. 10. Механизмы синхронизации. 2002 v.0.2 V(S: Семафор): 1. Запретить_Прерывания(); 2. R:= Взять_Из_Очереди(S.Очередь); 3. Поставить_В_Очередь(R,ОчередьГотовых); 4. if(Очередь_Пуста(S.Очередь))
- 6. 10. Механизмы синхронизации. 2002 v.0.2 Пример сервисов, поддерживающих семафоры в RTEK KC_CloseSema – end the use
- 7. 10. Механизмы синхронизации. 2002 v.0.2 KC_LookupSema – look up a semaphore’s name to get its handle
- 8. 10. Механизмы синхронизации. 2002 v.0.2 Разделяемый ресурс – данные, процедуры, устройства, одновременно требуемые для выполнения нескольких
- 9. 10. Механизмы синхронизации. 2002 v.0.2 Высокоприоритетная Задача 3 удерживается низкоприоритетной Задачей 2 в течение временного интервала
- 10. 10. Механизмы синхронизации. 2002 v.0.2 Протокол наследования приоритетов Задача 1 (Р1 = а) t Задача 3
- 11. 10. Механизмы синхронизации. 2002 v.0.2 Priority Ceiling протокол Задача 1 (Р1 = а) t Задача 3
- 12. 10. Механизмы синхронизации. 2002 v.0.2 Недостатки механизма семафоров Низкий уровень, слабая защищенность от ошибок при программировании
- 13. 10. Механизмы синхронизации. 2002 v.0.2 Mutual Exclusion Type mutex = (занят, свободен); Множество значений: Множество действий:
- 14. 10. Механизмы синхронизации. 2002 v.0.2 Mutual Exclusion (2) Создать_Mutex(S); Приложение Задача 1 - владелец t Задача
- 15. 10. Механизмы синхронизации. 2002 v.0.2 type mutex = ^рMutex рMutex = record Очередь: УказательНаОчередь; Состояние: занят,
- 16. 10. Механизмы синхронизации. 2002 v.0.2 Реализация mutex (2) Реализация протокола наследования приоритетов требует модификации дескриптора задачи
- 17. 10. Механизмы синхронизации. 2002 v.0.2 lock(S: mutex): 1. Запретить_Прерывания; 2. if(S.Состояние=занят) then 2.1. S.Владелец.ТПриоритет:= ТекПроц.Приоритет; 2.2.
- 19. Скачать презентацию